|  |  | 
 |  |  |         return 1; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     int OnCellItemChanged(TEvent* evt, int p) | 
 |  |  | 	 | 
 |  |  |     int ReCalcPOPrice() | 
 |  |  |     { | 
 |  |  |         int startRow = getItemHeadRow(dw_cell); | 
 |  |  |         if (startRow < 1) return 1; | 
 |  |  |         startRow++; | 
 |  |  |  | 
 |  |  |         int sRow = dw_cell.GetRow(); | 
 |  |  |         int eRow = dw_cell.GetAnchorRow(); | 
 |  |  |         int sCol = dw_cell.GetColumn(); | 
 |  |  |         int eCol = dw_cell.GetAnchorCol(); | 
 |  |  |         auto Exchange = [](int& first, int& second) | 
 |  |  |             { | 
 |  |  |                 int tmp = first;first = second;second = tmp; | 
 |  |  |             }; | 
 |  |  |         if (sRow > eRow)Exchange(sRow, eRow); | 
 |  |  |         if (sCol > eCol)Exchange(sCol, eCol); | 
 |  |  |  | 
 |  |  |         if (action != L"purch") return 1; | 
 |  |  |  | 
 |  |  |         if (sRow < startRow  && eRow < startRow) return 1; | 
 |  |  |         if (sRow < startRow) sRow = startRow; | 
 |  |  |         int colPrice0 = getItemCol(dw_cell, startRow - 1, L"价格"); | 
 |  |  |         int colPrice1 = getItemCol(dw_cell, startRow - 1, L"价格1"); | 
 |  |  |         int colPrice2 = getItemCol(dw_cell, startRow - 1, L"价格2"); | 
 |  |  |         int colPrice3 = getItemCol(dw_cell, startRow - 1, L"价格3"); | 
 |  |  |         int colPrice = getItemCol(dw_cell, startRow - 1, L"采购价"); | 
 |  |  |         int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID"); | 
 |  |  |         bool shouldRedraw = false; | 
 |  |  |  | 
 |  |  |         if ((colPrice0 >= sCol && colPrice0 <= eCol) || (colPrice1 >= sCol && colPrice1 <= eCol) | 
 |  |  |             || (colPrice2 >= sCol && colPrice2 <= eCol) || (colPrice3 >= sCol && colPrice3 <= eCol)) | 
 |  |  |         { | 
 |  |  |             for (int row = sRow; row <= eRow; row++) | 
 |  |  |             { | 
 |  |  |                 if (dw_cell.GetItemString(row, colSKUID) == L"")continue; | 
 |  |  |                 for (int col = sCol; col <= eCol; col++) | 
 |  |  |                 { | 
 |  |  |                     if (colPrice0 == col || colPrice1 == col || colPrice2 == col || colPrice3 == col) | 
 |  |  |                     { | 
 |  |  |                         xstring pricea = L""; | 
 |  |  |                         xstring priceb = L""; | 
 |  |  |                         xstring pricec = L""; | 
 |  |  |  | 
 |  |  |                         xstring price0 = dw_cell.GetItemString(row, colPrice0); | 
 |  |  |                         xstring price1 = dw_cell.GetItemString(row, colPrice1); | 
 |  |  |                         xstring price2 = L""; | 
 |  |  |                         if (colPrice2 > 0) price2 = dw_cell.GetItemString(row, colPrice2); | 
 |  |  |                         xstring price3 = L""; | 
 |  |  |                         if (colPrice3 > 0) price3 = dw_cell.GetItemString(row, colPrice3); | 
 |  |  |  | 
 |  |  |                         xstring price = L""; | 
 |  |  |  | 
 |  |  |                         if (price0 != L"") | 
 |  |  |                         { | 
 |  |  |                             price = price0; | 
 |  |  |                             if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1) | 
 |  |  |                             { | 
 |  |  |                                 alert(L"价格中没指定ABC"); | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             } | 
 |  |  |                             else if (price.find(L"A") > 0 || price.find(L"a") > 0) | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             else if (price.find(L"B") > 0 || price.find(L"b") > 0) | 
 |  |  |                                 if (priceb == L"") priceb = price; else priceb += L"+" + price; | 
 |  |  |                             else if (price.find(L"C") > 0 || price.find(L"c") > 0) | 
 |  |  |                                 if (pricec == L"") pricec = price; else pricec += L"+" + price; | 
 |  |  |                         } | 
 |  |  |                         if (price1 != L"") | 
 |  |  |                         { | 
 |  |  |                             price = price1; | 
 |  |  |                             if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1) | 
 |  |  |                             { | 
 |  |  |                                 alert(L"价格中没指定ABC"); | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             } | 
 |  |  |                             else if (price.find(L"A") > 0 || price.find(L"a") > 0) | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             else if (price.find(L"B") > 0 || price.find(L"b") > 0) | 
 |  |  |                                 if (priceb == L"") priceb = price; else priceb += L"+" + price; | 
 |  |  |                             else if (price.find(L"C") > 0 || price.find(L"c") > 0) | 
 |  |  |                                 if (pricec == L"") pricec = price; else pricec += L"+" + price; | 
 |  |  |                         } | 
 |  |  |                         if (price2 != L"") | 
 |  |  |                         { | 
 |  |  |                             price = price2; | 
 |  |  |                             if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1) | 
 |  |  |                             { | 
 |  |  |                                 alert(L"价格中没指定ABC"); | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             } | 
 |  |  |                             else if (price.find(L"A") > 0 || price.find(L"a") > 0) | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             else if (price.find(L"B") > 0 || price.find(L"b") > 0) | 
 |  |  |                                 if (priceb == L"") priceb = price; else priceb += L"+" + price; | 
 |  |  |                             else if (price.find(L"C") > 0 || price.find(L"c") > 0) | 
 |  |  |                                 if (pricec == L"") pricec = price; else pricec += L"+" + price; | 
 |  |  |                         } | 
 |  |  |                         if (price3 != L"") | 
 |  |  |                         { | 
 |  |  |                             price = price3; | 
 |  |  |                             if (price.find(L"A") < 1 && price.find(L"B") < 1 && price.find(L"C") < 1 && price.find(L"a") < 1 && price.find(L"b") < 1 && price.find(L"b") < 1) | 
 |  |  |                             { | 
 |  |  |                                 alert(L"价格中没指定ABC"); | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             } | 
 |  |  |                             else if (price.find(L"A") > 0 || price.find(L"a") > 0) | 
 |  |  |                                 if (pricea == L"") pricea = price; else pricea += L"+" + price; | 
 |  |  |                             else if (price.find(L"B") > 0 || price.find(L"b") > 0) | 
 |  |  |                                 if (priceb == L"") priceb = price; else priceb += L"+" + price; | 
 |  |  |                             else if (price.find(L"C") > 0 || price.find(L"c") > 0) | 
 |  |  |                                 if (pricec == L"") pricec = price; else pricec += L"+" + price; | 
 |  |  |                         } | 
 |  |  |                         price = pricec; | 
 |  |  |                         if (priceb != L"") | 
 |  |  |                         { | 
 |  |  |                             if (price == L"") | 
 |  |  |                                 price = priceb; | 
 |  |  |                             else | 
 |  |  |                                 price += L"+" + priceb; | 
 |  |  |                         } | 
 |  |  |                         if (pricea != L"") | 
 |  |  |                         { | 
 |  |  |                             if (price == L"") | 
 |  |  |                                 price = pricea; | 
 |  |  |                             else | 
 |  |  |                                 price += L"+" + pricea; | 
 |  |  |                         } | 
 |  |  |                         dw_cell.SetItemString(row, colPrice, price); | 
 |  |  |                         shouldRedraw = true; | 
 |  |  | 						 | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if(shouldRedraw)dw_cell.Redraw(); | 
 |  |  |         return 1; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     int OnCellItemChanged(TEvent* evt, LPARAM p) | 
 |  |  |     { | 
 |  |  |         CELLNMHDR&  hdr = *(CELLNMHDR*)evt->notify.pnmh; | 
 |  |  |         xstring value = hdr.data; | 
 |  |  |         int row = hdr.currentrow; | 
 |  |  |         int col = hdr.currentcol; | 
 |  |  |  | 
 |  |  | 		 | 
 |  |  |         trace(L"\r\n----row:" + xstring(row) + L"--col:" + xstring(col)); | 
 |  |  |         trace(L"\r\n----row:" + xstring(row) + L"--col:" + xstring(col)); | 
 |  |  |         trace(L"\r\n--value:" + dw_cell.GetItemString(row, col) + L"--orig:" + orivalue); | 
 |  |  | 
 |  |  |         else if (comdid == L"xmPurched") | 
 |  |  |         { | 
 |  |  |             //if(makeMessage(L"/task/quote/purchar/backtosaler")==-1) return 1; | 
 |  |  |             //dw_cell.SetRowColumn(dw_cell.GetRow(), dw_cell.GetColumn()); | 
 |  |  |             return OnSaleBack(); | 
 |  |  |         } | 
 |  |  |         else if (comdid == L"xmPurch2") | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             SendCtrlCmd(dw_cell, cmd); | 
 |  |  |             if (comdid == L"IK_xmEditCut"|| comdid == L"IK_xmEditCut")ReCalcPOPrice(); | 
 |  |  |             return 1; | 
 |  |  |         } | 
 |  |  |         else if (comdid == L"xmFormatCellDeleteRow") |