以下是解释:
我的数据库中有两个表,tblDiscount和tblDaily表。它们通过tenantId列相互关联。
我在sql中有一个查询,它创建了另一个名为GSC的列,它在tbldaily表中汇总了现金,费用,礼品和折扣的价值。结果传递给asp.net中的sqldatasource,在那里它用于加载gridview。
我在gridview中放了一个复选框列,条件是当用户选中复选框/ es gridview并单击按钮时,gridview必须重新加载并更新GSC列,从之前的总和中扣除折扣值(现金+充电+礼品+折扣)。复选框的检查用作在tblDiscount表中插入一个值,另一方面取消选中这些值将删除所述表中的记录。
我想要实现的目标:
当用户搜索租户和特定日期时(例如:搜索麦当劳,交易日期:01/01/2014 - 2014年1月31日),gridview将按原样加载gridview创建专栏:GSC,总结现金,信用,礼品和折扣价值。当他/她检查01/01/2014 - 01/05/2014复选框行时,单击重新计算按钮:
一个。系统将在tblDiscount表中插入数据(tbldiscount列为:dates,tenantID)。
湾然后gridview将重新计算gridview - GSC COLUMN从中扣除折扣值
当用户取消选中已检查的日期时,它将执行相反的操作:
一个。将删除tbldiscount中的数据
湾gridview将再次重新计算GSC列 - 添加折扣值。
gridview和recompute按钮中的复选框类似于在tblDiscount中插入和删除数据的工具,并且信号汇总并从GRIDVIEW DATA中的GSC(销售总销售额)中扣除折扣。
怎么做?
以下是我开始的代码:
protected void btnRecompute_Click(object sender, EventArgs e)
{
//int counter = 0;
double newGSC = 0;
string oDisc = "", gsc = "", oDiscFinal = "", gscFinal = "", answer = "";
con.Open();
foreach (GridViewRow row in grdDSTR.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("chkCheckRow") as CheckBox);
if (chkRow.Checked)
{
oDisc = (row.Cells[7].Text);
oDiscFinal = (oDisc.Replace(",", string.Empty));
gsc = (row.Cells[10].Text);
gscFinal = (gsc.Replace(",", string.Empty));
newGSC = Convert.ToDouble(gscFinal) - Convert.ToDouble(oDiscFinal);
}
}
}
}
我从那里开始实际上提取了复选复选框的GSC AND DISCOUNT COLUMN的值并从DISCOUNT中减去GSC,差异将用于更新数据库,但这是不可能的,因为GSC不是实际的列在tblDaily中,它只是一个计算或自制的列。
主要目标或问题,如何根据复选框中的日期在tblDiscount中插入数据,然后重新计算GSC列,从中扣除折扣值,反之亦然
更新
IF EXISTS (select * from tbldiscount
where date between '02/01/2014' and '02/28/2014'
and tenantcode = 'OHBUFF11')
BEGIN
select ....
convert(varchar,cast(((sum(a.cash) + SUM(a.charge) + SUM(a.gift)) - (SUM(a.surcharge))) as money),1) as GSC
...
where (a.date between '02/01/2014' and '02/28/2014') and b.tenantcode = 'OHBUFF11'
END
ELSE
BEGIN
select ....
convert(varchar,cast(((sum(a.cash) + SUM(a.charge) + SUM(a.gift)+ SUM(a.other)) - (SUM(a.surcharge))) as money),1) as GSC
...
where (a.date between '02/01/2014' and '02/28/2014') and b.tenantcode = 'OHBUFF11'
END
在我更新的评论中,我尝试在mssql中测试我的查询,使用IF EXIST QUERY,我将测试折扣表是否有数据,如果为true,它将转到第一个选项,其中折扣值不是GSC总和,否则可以选择将其添加到GSC。
发现限制:如何仅确定仅在tblDiscount中可用的复选框/日期?
感谢您在hwo上预先分享您的逻辑思想