0
是否有任何方法將兩個單元合併爲一個(不是視圖,而是單元)?例如將DataTable中的兩個相似行合併爲一個
前:
ID | Item | Unit Price | Qty
-------------------------------
8 Pasta $20 1
9 Pasta $20 1
後:
ID | Item | Unit Price | Qty
-------------------------------
8 Pasta $20 2
我下面的代碼,是不是上面的一樣,它只是改變數量和addAmnt的價值。在聲明繼續之後,DT應該有兩行而不是一行。
if (TransactionControl.SelectedTable == TransactionTypes.Edit)
{
bool[] bb = new bool[]
{
true, //while
true, //Row Count = 0 & 1
false //Merge
};
Int32 origProductID = Convert.ToInt32(TransDetailDT.CurrentRow.Cells[2].Value);
decimal origQty = Convert.ToDecimal(TransDetailDT.CurrentRow.Cells[6].Value);
decimal origSRP = Convert.ToDecimal(TransDetailDT.CurrentRow.Cells[7].Value);
decimal addAmnt = TransactionControl.AddAmt;
DataTable DT;
do
{
DT = tblTransactionDetailTA.GetTDetail(TransactionControl.TransactionID, Convert.ToInt32(TransDetailDT.CurrentRow.Cells[2].Value), addAmnt);
if(bb[1] && DT.Rows.Count == 0)
{
tblTransactionDetailTA.UpdateSingleItem(Convert.ToDecimal(TransactionControl.Qty), addAmnt, origQty, origProductID, origSRP, TransactionControl.TransactionID);
bb[1] = false;
bb[2] = true;
continue;
}
if(bb[1] && DT.Rows.Count == 1)
{
DataRow DR = DT.Rows[0];
DR["Quantity"] = numQty.Value;
DR["SpecialPrice"] = addAmnt;
DR.EndEdit();
tblTransactionDetailTA.Update(DR);
bb[1] = false;
bb[2] = true;
continue;
}
if (bb[2] && DT.Rows.Count > 1)
{
DT.Rows[0]["Quantity"] = Convert.ToDouble(DR1["Quantity"]) +
Convert.ToDouble(DR2["Quantity"]);
DT.Rows[1].Delete();
tblTransactionDetailTA.Update(DT);
bb[0] = false;
}
else { bb[0] = false; MessageBox.Show("false"); }
}
while (bb[0]);
qryTransactionDetailTA.Fill(litePOSDataSet.qryTransactionDetail);
}
最後一部分作品(newDT部分),並感謝:) –