在数据发生变化时显示网格中的每日销售总额 [英] show daily sale total in the grid when ever the data changes
本文介绍了在数据发生变化时显示网格中的每日销售总额的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
public partial class gridBind:System.Web.UI.Page
{
public SqlConnection con = new SqlConnection();
受保护 void Page_Load( object sender,EventArgs e)
{
if (!(IsPostBack))
{
con .ConnectionString = ConfigurationManager.ConnectionStrings [ con]。ConnectionString;
SqlDataAdapter adp = new SqlDataAdapter( SELECT SLHD.VOUCH_CODE,SLHD.VOUCH_DATE,SLHD.VOUCH_NUM,SUM(SLTXN.CALC_NET_AMT)AS AMT,ACT.ACT_NAME,SUM(SLTXN.TOT_QTY)来自SL_HEAD20132014的数量作为SLHD,ACCOUNTS AS ACT,SL_TXN20132014 AS SLTXN WHERE SLHD.ACT_CODE = ACT.ACT_CODE和SLTXN.VOUCH_CODE = SLHD.VOUCH_CODE SLHD.VOUCH_CODE,SLHD.VOUCH_NUM,SLHD.VOUCH_NUM,ACT.ACT_NAME订购SLHD.VOUCH_DATE,con);
DataSet ds = new DataSet();
adp.Fill(ds);
grdRecord.DataSource = ds;
grdRecord.DataBind();
}
}
}
现在我的输出就像
VOUCH_CODE VOUCH_DATE VOUCH_NUM AMT ACT_NAME数量
1 12/5/2013 00:00:00 SLGS 1 1271.0000现金16.0000
2 12/6/2013 00:00:00 SLGS 2 220.0000现金1.0000
3 12/6/2013 00:00:00 SLGS 3 220.0000现金1.0000
4 12/6/2013 00:00:00 SLGS 4 540.0000现金4.0000
5 12/13/2013 00:00:00 SLGS 5 600.0000手中现金2.0000
6 12/16/2013 00:00:00 SLGS 6 314.0000现金3.0000
但我想要
VOUCH_CODE VOUCH_DATE VOUCH_NUM AMT ACT_NAME数量
1 12/5 / 2013 00:00:00 SLGS 1 1271.0000现金16.0000
2 12/5/2013 00:00:00 SLGS 1 1271.0000现金16.0000 //每日总记录更改
3 12/6 / 2013 00:00:00 SLGS 2 220.0000手中的现金1.0000
4 12/6/2013 00 :00:00 SLGS 3 220.0000现金1.0000
5 12/6/2013 00:00:00 SLGS 4 540.0000现金4.0000
6 12/6/2013 00:00:00 SLGS 4 980.0000现金6.0000 //每日记录日期变更总数
等..........
解决方案
试试这个:
- 创建表格
创建 表 [dbo]。[SL_HEAD](
[VOUCH_CODE] [ varchar ]( 30 ) NOT NULL ,
[VOUCH_DATE] date 不 NULL ,
[VOUCH_NUM] [ varchar ](< span class =code-digit> 30 ) NOT NULL ,
[AMT] int NOT NULL ,
[ACT_NAME] [ varchar ]( 30 ) NOT NULL ,
[QTY] int NOT NULL ,
) ON [ PRIMARY ]
- 测试表插入查询
insert 进入 SL_HEAD 值(' 1',' 2014-03-26',' 000-00', 200 ,' 测试', 26 )
将 插入 SL_HEAD 值(' 2',' 2014-03-26 ',' 000-00', 240 ,' 测试', 16 )
插入 进入 SL_HEAD 值(' 3',' 2014-03-27',' 000-00', 100 ,' 测试', 89 )
insert into SL_HEAD values (' 4', 2014 -03-27',' 000-00', 125 ,' 测试', 34 )
插入 进入 SL_HEAD 值(' 5',' 2014-03-27',' 000-00', 195 ,' 测试', 76 )
插入 进入 SL_HEAD 值(' 6',' 2014-03-27',' 000-00', 854 ,' 测试', 23 )
选择
VOUCH_CODE,
VOUCH_DATE,
VOUCH_NUM ,
AMT,
ACT_NAME,
数量
来自
(
选择
VOUCH_CODE,
VOUCH_DATE,
VOUCH _NUM,
AMT,
ACT_NAME,
数量
来自
SL_HEAD
union 全部
选择 max(VOUCH_CODE) +1 as VOUCH_CODE,
max(VOUCH_DATE) as VOUCH_DATE,
max( VOUCH_NUM) as VOUCH_NUM,
sum(AMT) as AMT,
max( ACT_NAME) as VOUCH_NUM,
sum(QTY) as QTY
来自
SL_HEAD
group by
VOUCH_DATE
)q
订单 按 VOUCH_DATE,vouch_CODE
决赛输出将是这样的
1 2014-03-03 -2 6 000-00 200测试26
2 2014-03-26 000-00 240测试16
3 2014-03-26 000-00 440测试42 >
3 2014-03-27 000-00 100测试89
4 2014-03-27 000-00 125测试34
5 2014-03- 27 000-00 195测试76
6 2014-03-27 000-00 854测试23
7 2014-03-27 000-00 1274测试222
public partial class gridBind : System.Web.UI.Page
{
public SqlConnection con = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
{
if(!(IsPostBack))
{
con.ConnectionString = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlDataAdapter adp = new SqlDataAdapter("SELECT SLHD.VOUCH_CODE,SLHD.VOUCH_DATE,SLHD.VOUCH_NUM,SUM(SLTXN.CALC_NET_AMT) AS AMT,ACT.ACT_NAME,SUM(SLTXN.TOT_QTY) AS QTY FROM SL_HEAD20132014 AS SLHD,ACCOUNTS AS ACT,SL_TXN20132014 AS SLTXN WHERE SLHD.ACT_CODE=ACT.ACT_CODE AND SLTXN.VOUCH_CODE=SLHD.VOUCH_CODE GROUP BY SLHD.VOUCH_CODE,SLHD.VOUCH_DATE,SLHD.VOUCH_NUM,ACT.ACT_NAME ORDER BY SLHD.VOUCH_DATE ", con);
DataSet ds = new DataSet();
adp.Fill(ds);
grdRecord.DataSource = ds;
grdRecord.DataBind();
}
}
}
now my output is like
VOUCH_CODE VOUCH_DATE VOUCH_NUM AMT ACT_NAME QTY
1 12/5/2013 00:00:00 SLGS 1 1271.0000 CASH IN HAND 16.0000
2 12/6/2013 00:00:00 SLGS 2 220.0000 CASH IN HAND 1.0000
3 12/6/2013 00:00:00 SLGS 3 220.0000 CASH IN HAND 1.0000
4 12/6/2013 00:00:00 SLGS 4 540.0000 CASH IN HAND 4.0000
5 12/13/2013 00:00:00 SLGS 5 600.0000 CASH IN HAND 2.0000
6 12/16/2013 00:00:00 SLGS 6 314.0000 CASH IN HAND 3.0000
but i want
VOUCH_CODE VOUCH_DATE VOUCH_NUM AMT ACT_NAME QTY
1 12/5/2013 00:00:00 SLGS 1 1271.0000 CASH IN HAND 16.0000
2 12/5/2013 00:00:00 SLGS 1 1271.0000 CASH IN HAND 16.0000 // total daily record date changes
3 12/6/2013 00:00:00 SLGS 2 220.0000 CASH IN HAND 1.0000
4 12/6/2013 00:00:00 SLGS 3 220.0000 CASH IN HAND 1.0000
5 12/6/2013 00:00:00 SLGS 4 540.0000 CASH IN HAND 4.0000
6 12/6/2013 00:00:00 SLGS 4 980.0000 CASH IN HAND 6.0000 // total daily record date changes
so on..........
解决方案
Try This :
-- Create table CREATE TABLE [dbo].[SL_HEAD]( [VOUCH_CODE] [varchar](30) NOT NULL, [VOUCH_DATE] date NOT NULL, [VOUCH_NUM] [varchar](30) NOT NULL, [AMT] int NOT NULL, [ACT_NAME] [varchar](30) NOT NULL, [QTY] int NOT NULL, ) ON [PRIMARY] --test table insert query insert into SL_HEAD values('1','2014-03-26','000-00',200,'Test',26) insert into SL_HEAD values('2','2014-03-26','000-00',240,'Test',16) insert into SL_HEAD values('3','2014-03-27','000-00',100,'Test',89) insert into SL_HEAD values('4','2014-03-27','000-00',125,'Test',34) insert into SL_HEAD values('5','2014-03-27','000-00',195,'Test',76) insert into SL_HEAD values('6','2014-03-27','000-00',854,'Test',23) select VOUCH_CODE, VOUCH_DATE, VOUCH_NUM, AMT, ACT_NAME, QTY from ( select VOUCH_CODE, VOUCH_DATE, VOUCH_NUM, AMT, ACT_NAME, QTY from SL_HEAD union all select max(VOUCH_CODE)+1 as VOUCH_CODE, max(VOUCH_DATE) as VOUCH_DATE, max(VOUCH_NUM) as VOUCH_NUM, sum(AMT) as AMT, max(ACT_NAME) as VOUCH_NUM, sum(QTY) as QTY from SL_HEAD group by VOUCH_DATE ) q order by VOUCH_DATE,vouch_CODE
The Final out put will be like this
1 2014-03-26 000-00 200 Test 26
2 2014-03-26 000-00 240 Test 16
3 2014-03-26 000-00 440 Test 42
3 2014-03-27 000-00 100 Test 89
4 2014-03-27 000-00 125 Test 34
5 2014-03-27 000-00 195 Test 76
6 2014-03-27 000-00 854 Test 23
7 2014-03-27 000-00 1274 Test 222
这篇关于在数据发生变化时显示网格中的每日销售总额的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文