下面记录一下 WPF的临时表
首先,我这边呢是在做商品零售、要通过商品的条形码获取到商品、然后显示在临时表里面
string strCommodityBarCode = txm.Text.ToString().Trim();获取条形码
如果不等于空就执行查询
abcd = myClient.LSSYSP(strCommodityBarCode).Tables[0];
dgvStaff.ItemsSource = abcd.DefaultView;
如果查询到的数据大于0
循环获取它的数据
for (int i = 0; i < dgvStaff.Items.Count; i++)
{ ComdityID = Convert.ToInt32(((DataRowView)dgvStaff.Items[i]).Row[“CommodityID”]);
PiceID = Convert.ToInt32(((DataRowView)dgvStaff.Items[i]).Row[“PiceID”]);
UnitID = Convert.ToInt32(((DataRowView)dgvStaff.Items[i]).Row[“UnitID”]);
CommodityName = Convert.ToString(((DataRowView)dgvStaff.Items[i]).Row[“CommodityName”]);
CommodityNumber = Convert.ToString(((DataRowView)dgvStaff.Items[i]).Row[“CommodityNumber”]);
UnitName = Convert.ToString(((DataRowView)dgvStaff.Items[i]).Row[“UnitName”]);
CommodityBarCode = Convert.ToString(((DataRowView)dgvStaff.Items[i]).Row[“CommodityBarCode”]);
RetailPice = Convert.ToString(((DataRowView)dgvStaff.Items[i]).Row[“RetailPice”]);
txm.Text = null;
}
记录临时表的条数
count = dgCompartment.Items.Count;
编号
string Number = Convert.ToString(count + 1);
当查询到临时表的数据小于一条、查询到商品的数据大于0条时 新建临时表
if (count < 1 && dgvStaff.Items.Count > 0)
{
dg = new DataTable();
dg.Columns.Add(“CommodityID”, typeof(int));
dg.Columns.Add(“PiceID”, typeof(int));
dg.Columns.Add(“UnitID”, typeof(int));
dg.Columns.Add(“number”, typeof(string));
dg.Columns.Add(“CommodityName”, typeof(string));
dg.Columns.Add(“CommodityNumber”, typeof(string));
dg.Columns.Add(“UnitName”, typeof(string));
dg.Columns.Add(“CommodityBarCode”, typeof(string));
dg.Columns.Add(“StockQuantity”, typeof(string));
dg.Columns.Add(“RetailPice”, typeof(string));
dg.Columns.Add(“jine”, typeof(string));
dg.Rows.Add();
dg.Rows[0]["CommodityID"] = ComdityID;
dg.Rows[0]["PiceID"] = PiceID;
dg.Rows[0]["UnitID"] = UnitID;
dg.Rows[0]["number"] = Number;
dg.Rows[0]["CommodityName"] = CommodityName;
dg.Rows[0]["CommodityNumber"] = CommodityNumber;
dg.Rows[0]["UnitName"] = UnitName;
dg.Rows[0]["CommodityBarCode"] = CommodityBarCode;
dg.Rows[0]["StockQuantity"] = mar;
dg.Rows[0]["RetailPice"] = RetailPice;
dg.Rows[0]["jine"] = (mar * Convert.ToInt32(RetailPice));
dgCompartment.ItemsSource = dg.DefaultView;
}
当获取到商品条数大于0 临时表数据大于1的时候,临时表里面有同样商品的就数量加1,
否则新增一条数据、
dg.Rows.Add();
dg.Rows[0][“CommodityID”] = ComdityID;
dg.Rows[0][“PiceID”] = PiceID;
dg.Rows[0][“UnitID”] = UnitID;
dg.Rows[0][“number”] = Number;
dg.Rows[0][“CommodityName”] = CommodityName;
dg.Rows[0][“CommodityNumber”] = CommodityNumber;
dg.Rows[0][“UnitName”] = UnitName;
dg.Rows[0][“CommodityBarCode”] = CommodityBarCode;
dg.Rows[0][“StockQuantity”] = mar;
dg.Rows[0][“RetailPice”] = RetailPice;
dg.Rows[0][“jine”] = (mar * Convert.ToInt32(RetailPice));
dgCompartment.ItemsSource = dg.DefaultView;
判断的方法有很多种,可以先判断如果同样的商品数量加1、金额也对应增加,
然后判断数量或者金额是否比以前加多了,如果加多了就不用执行下一步了,
否则增加一条数据