110,565
社区成员
发帖
与我相关
我的任务
分享
DataTable orderdt = orderdal.GetRows();
DataTable buydt = buydal.GetRows();
DataTable apdt = new DataTable();//建立临时表
apdt.Columns.Add("pici");
apdt.Columns.Add("riqi");
apdt.Columns.Add("chanping");
apdt.Columns.Add("dindanshu");
apdt.Columns.Add("fahuo");
apdt.Columns.Add("danjia");
apdt.Columns.Add("dinzongjia");
apdt.Columns.Add("fazongjia");
apdt.Columns.Add("yingfuhuokuan");
apdt.Columns.Add("shifuhuokuan");
apdt.Columns.Add("yingfuyunfei");
apdt.Columns.Add("shifuyunfei");
apdt.Columns.Add("yukuan");
DataRow aprow = apdt.NewRow();
aprow["pici"] = buydt.Rows[0]["Ex1"];
aprow["riqi"] = buydt.Rows[0]["Ex2"];
aprow["chanping"] = buydt.Rows[0]["Standard"];
aprow["dindanshu"] = orderdt.Rows[0]["Qty"];
aprow["fahuo"] = buydt.Rows[0]["Qty"];
aprow["danjia"] = buydt.Rows[0]["SalesPrice"];
dinzongjia = Convert.ToDecimal(orderdt.Rows[0]["Qty"]) * Convert.ToDecimal(orderdt.Rows[0]["SalesPrice"]);
aprow["dinzongjia"] = dinzongjia;
fazongjia = Convert.ToDecimal(buydt.Rows[0]["Qty"]) * Convert.ToDecimal(buydt.Rows[0]["SalesPrice"]);
aprow["fazongjia"] = fazongjia;
//aprow["yingfuhuokuan"] = buydt.Rows[0]["BuyNote"];
aprow["yingfuhuokuan"] = dinzongjia;
aprow["shifuhuokuan"] = paydt.Rows[0]["ThisPayAmount"];
aprow["yingfuyunfei"] = Convert.ToDecimal(buydt.Rows[0]["Qty"]) * Convert.ToDecimal(buydt.Rows[0]["FreightPrice"]);
aprow["shifuyunfei"] = buydt.Rows[0]["WaybillNote"];
aprow["yukuan"] = dinzongjia - fazongjia;
apdt.Rows.Add(aprow);
for (int i = 1; i < orderdt.Rows.Count; i++)
{
DataRow aprow1 = apdt.NewRow();
aprow1["pici"] = buydt.Rows[i]["Ex1"];
aprow1["riqi"] = buydt.Rows[i]["Ex2"];
aprow1["chanping"] = buydt.Rows[i]["Standard"];
aprow1["dindanshu"] = orderdt.Rows[i]["Qty"];
aprow1["fahuo"] = buydt.Rows[i]["Qty"];
aprow1["danjia"] = buydt.Rows[i]["SalesPrice"];
aprow1["dinzongjia"] = Convert.ToDecimal(orderdt.Rows[i]["Qty"]) * Convert.ToDecimal(orderdt.Rows[i]["SalesPrice"]);
aprow1["fazongjia"] = Convert.ToDecimal(buydt.Rows[i]["Qty"]) * Convert.ToDecimal(buydt.Rows[i]["SalesPrice"]);
yingfuhuokuan = Convert.ToDecimal(paydt.Rows[i]["ThisPayAmount"]) - Convert.ToDecimal(apdt.Rows[i - 1]["yukuan"]);//从第二行数据开始根据公式(实际付款-厂家余款)计算应付款
aprow1["yingfuhuokuan"] = yingfuhuokuan;
aprow1["shifuhuokuan"] = paydt.Rows[i]["ThisPayAmount"];
aprow1["yingfuyunfei"] = Convert.ToDecimal(buydt.Rows[i]["Qty"]) * Convert.ToDecimal(buydt.Rows[i]["FreightPrice"]);
aprow1["shifuyunfei"] = buydt.Rows[i]["WaybillNote"];
yukuan = (Convert.ToDecimal(orderdt.Rows[i]["Qty"]) - Convert.ToDecimal(buydt.Rows[i]["Qty"])) * Convert.ToDecimal(buydt.Rows[i]["SalesPrice"]) + (Convert.ToDecimal(paydt.Rows[i]["ThisPayAmount"]) - Convert.ToDecimal(apdt.Rows[i]["yingfuhuokuan"]));//第二行数据开始计算余款公式为(订单数量-发货数量)*单价+(实付货款-应付货款)
aprow1["yukuan"] = yukuan;
apdt.Rows.Add(aprow1);
}
private void Databind()
{
DataTable orderdt = orderdal.GetRows();
DataTable buydt = buydal.GetRows();
DataTable paydt = paydal.GetRows();
apdt.Columns.Add("pici");
apdt.Columns.Add("riqi");
apdt.Columns.Add("chanping");
apdt.Columns.Add("dindanshu");
apdt.Columns.Add("fahuo");
apdt.Columns.Add("danjia");
apdt.Columns.Add("dinzongjia");
apdt.Columns.Add("fazongjia");
apdt.Columns.Add("yingfuhuokuan");
apdt.Columns.Add("shifuhuokuan");
apdt.Columns.Add("yingfuyunfei");
apdt.Columns.Add("shifuyunfei");
apdt.Columns.Add("yukuan");
DataRow aprow = apdt.NewRow();
for (int i = 0; i < orderdt.Rows.Count; i++)
{
aprow["pici"] = buydt.Rows[i]["Ex1"];//批次
aprow["riqi"] = buydt.Rows[i]["Ex2"];//日期
aprow["chanping"] = buydt.Rows[i]["Standard"];//产品型号
aprow["dindanshu"] = orderdt.Rows[i]["Qty"];//订单数量
aprow["fahuo"] = buydt.Rows[i]["Qty"];//发货数量
aprow["danjia"] = buydt.Rows[i]["SalesPrice"];//订单价格
dinzongjia = Convert.ToDecimal(orderdt.Rows[i]["Qty"]) * Convert.ToDecimal(orderdt.Rows[i]["SalesPrice"]);//订单总价
aprow["dinzongjia"] = dinzongjia;
fazongjia = Convert.ToDecimal(buydt.Rows[i]["Qty"]) * Convert.ToDecimal(buydt.Rows[i]["SalesPrice"]);//发货总价
aprow["fazongjia"] = fazongjia;
aprow["yingfuhuokuan"] = Convert.ToDecimal(orderdt.Rows[0]["Qty"]) * Convert.ToDecimal(orderdt.Rows[0]["SalesPrice"]);//应付货款只更新第一行数据
aprow["shifuhuokuan"] = paydt.Rows[i]["ThisPayAmount"];//实付货款
aprow["yingfuyunfei"] = Convert.ToDecimal(buydt.Rows[i]["Qty"]) * Convert.ToDecimal(buydt.Rows[i]["FreightPrice"]);//应付运费
aprow["shifuyunfei"] = buydt.Rows[i]["WaybillNote"];//实付运费
aprow["yukuan"] = Convert.ToDecimal(paydt.Rows[0]["ThisPayAmount"]) - (Convert.ToDecimal(buydt.Rows[0]["Qty"]) * Convert.ToDecimal(buydt.Rows[0]["FreightPrice"]));//余款只更新第一行数据
apdt.Rows.Add(aprow);
}
for (int i = 1; i < orderdt.Rows.Count; i++)
{
DataRow aprow1 = apdt.NewRow();
yingfuhuokuan = Convert.ToDecimal(apdt.Rows[i]["dinzongjia"]) - Convert.ToDecimal(apdt.Rows[i - 1]["yukuan"]);//从第二行数据开始根据公式(实际付款-厂家余款)计算应付款
aprow1["yingfuhuokuan"] = yingfuhuokuan;
yukuan = (Convert.ToDecimal(orderdt.Rows[i]["Qty"]) - Convert.ToDecimal(buydt.Rows[i]["Qty"])) * Convert.ToDecimal(buydt.Rows[i]["SalesPrice"])
+ (Convert.ToDecimal(paydt.Rows[i]["ThisPayAmount"]) - Convert.ToDecimal(apdt.Rows[i]["yingfuhuokuan"]));//第二行数据开始计算余款公式为(订单数量-发货数量)*单价+(实付货款-应付货款)
aprow1["yukuan"] = yukuan;
apdt.Rows.Add(aprow1);
}
this.GridView1.DataSource = apdt;
this.GridView1.DataBind();
}
代码运行 提示apdt.Rows.Add(aprow);这行出错,提示该行已属于此表,怎么弄?
var query=from t1 in orderdt.AsEnumerable()
join t2 in buydt.AsEnumerable() on t1.Field<string>("Key1") equals t2.Field<string>("Key2")
select new
{
//你的apdt里面的字段
}
query就相当于你的apdt表yingfuhuokuan = Convert.ToDecimal(apdt.Rows[i]["dinzongjia"]) - Convert.ToDecimal(apdt.Rows[i - 1]["yukuan"]);//从第二行数据开始根据公式(实际付款-厂家余款)计算应付款