From 6c8c9ddaeb2bc6245a374c9354296bcfc2d96c06 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 29 四月 2025 14:10:22 +0800
Subject: [PATCH] update

---
 jrj/project/business/QuoteFile.cpp | 1196 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 822 insertions(+), 374 deletions(-)

diff --git a/jrj/project/business/QuoteFile.cpp b/jrj/project/business/QuoteFile.cpp
index 55ff4f5..7131f1e 100644
--- a/jrj/project/business/QuoteFile.cpp
+++ b/jrj/project/business/QuoteFile.cpp
@@ -166,10 +166,10 @@
 			while (true)
 			{
 				xstring guid = guids;
-				if (guids.find(L",L") >= 0)
+				if (guids.find(L",") >= 0)
 				{
-					guid = guids.left(guids.find(L",L"));
-					guids = guids.mid(guids.find(L",L") + 1, 99999);
+					guid = guids.left(guids.find(L","));
+					guids = guids.mid(guids.find(L",") + 1, 99999);
 				}
 				else
 				{
@@ -201,10 +201,10 @@
 			while (true)
 			{
 				xstring guid = guids;
-				if (guids.find(L",L") >= 0)
+				if (guids.find(L",") >= 0)
 				{
-					guid = guids.left(guids.find(L",L"));
-					guids = guids.mid(guids.find(L",L") + 1, 99999);
+					guid = guids.left(guids.find(L","));
+					guids = guids.mid(guids.find(L",") + 1, 99999);
 				}
 				else
 				{
@@ -231,7 +231,7 @@
 		xstring fstr = L"";
 		while (strs != L"")
 		{
-			int pos = strs.find(L",L");
+			int pos = strs.find(L",");
 			if (pos < 0)
 			{
 				str = strs;
@@ -245,7 +245,7 @@
 			if (fstr == L"")
 				fstr = GetImageUrl(str);
 			else
-				fstr += L",L" + GetImageUrl(str);
+				fstr += L"," + GetImageUrl(str);
 		}
 		return fstr;
 	}
@@ -254,10 +254,10 @@
 	{
 		xstring content = L"";
 		xstring base = L"";
-		base += L"<QuoteNo>" + getBaseItem(cell, L"报价单号:") + L"</QuoteNo>";
-		base += L"<ExpDate>" + getBaseItem(cell, L"报价截止日期:") + L"</ExpDate>";
-		base += L"<PrjName>" + getBaseItem(cell, L"项目名称:") + L"</PrjName>";
-		base += L"<QuoteDate>" + dw_base.GetItemString(1, L"QuoteDate") + L"</QuoteDate>";
+		base += L"<QuoteNo>" + getBaseXmlItem(cell, L"报价单号:") + L"</QuoteNo>";
+		base += L"<ExpDate>" + getBaseXmlItem(cell, L"报价截止日期:") + L"</ExpDate>";
+		base += L"<PrjName>" + getBaseXmlItem(cell, L"项目名称:") + L"</PrjName>";
+		base += L"<QuoteDate>" + dw_base.GetItemXmlString(1, L"QuoteDate") + L"</QuoteDate>";
 
 		int startRow = getItemHeadRow(cell);
 
@@ -275,20 +275,21 @@
 		int colSKUID = getItemCol(cell, startRow - 1, L"SKUID");
 		int colSaleRemark = getItemCol(cell, startRow - 1, L"业务To采购备注");
 
+		int colBuyerMOQ = getItemCol(cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(cell, startRow - 1, L"体积,体积(M3)L");
-		int col40HQ = getItemCol(cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(cell, startRow - 1, L"体积,体积(M3)");
+		int col40HQ = getItemCol(cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
 		int colSupplier1 = getItemCol(cell, startRow - 1, L"供应商1");
 		int colSupplier = getItemCol(cell, startRow - 1, L"供应商");
 		int colPOPrice1 = getItemCol(cell, startRow - 1, L"价格1");
 		int colPOPrice = getItemCol(cell, startRow - 1, L"价格");
 
-		int colInnerOuter = getItemCol(cell, startRow - 1, L"装箱数(内/外)L");
+		int colInnerOuter = getItemCol(cell, startRow - 1, L"装箱数(内/外)");
 		int colItemQty = getItemCol(cell, startRow - 1, L"数量,Qty");
 		int colPackage = getItemCol(cell, startRow - 1, L"Package,包装方式");
 		int colBuyer = getItemCol(cell, startRow - 1, L"采购人员");
@@ -312,33 +313,34 @@
 			xstring itemStr = L"";
 			rowid = getRowID(cell, row);
 			itemStr += L"<RowID>" + getRowID(cell, row) + L"</RowID>";
-			itemStr += L"<SKUID>" + cell.GetItemString(row, colSKUID) + L"</SKUID>";
+			itemStr += L"<SKUID>" + cell.GetItemXmlString(row, colSKUID) + L"</SKUID>";
 			itemStr += L"<customer-photo>" + getRowTerm(cell, row, L"customer-photo") + L"</customer-photo>";
 			itemStr += L"<supplier-photo>" + getRowTerm(cell, row, L"supplier-photo") + L"</supplier-photo>";
 			itemStr += L"<customer-photo-url>" + getImageList(getRowTerm(cell, row, L"customer-photo")) + L"</customer-photo-url>";
 			itemStr += L"<supplier-photo-url>" + getImageList(getRowTerm(cell, row, L"supplier-photo")) + L"</supplier-photo-url>";
-			itemStr += L"<ItemNo>" + cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<CustomItemNo>" + cell.GetItemString(row, colCustomerItemNo) + L"</CustomItemNo>";
-			itemStr += L"<ItemName>" + cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
-			itemStr += L"<CustomerImage>" + cell.GetItemString(row, colCustomerImage) + L"</CustomerImage>";
-			itemStr += L"<BuyerPrice>" + cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
-			itemStr += L"<SaleRemark>" + cell.GetItemString(row, colSaleRemark) + L"</SaleRemark>";
+			itemStr += L"<ItemNo>" + cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<CustomItemNo>" + cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomItemNo>";
+			itemStr += L"<ItemName>" + cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<CustomerImage>" + cell.GetItemXmlString(row, colCustomerImage) + L"</CustomerImage>";
+			itemStr += L"<BuyerPrice>" + cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+			itemStr += L"<SaleRemark>" + cell.GetItemXmlString(row, colSaleRemark) + L"</SaleRemark>";
 
-			itemStr += L"<BuyerRemark>" + cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
-			itemStr += L"<FactoryImage>" + cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
-			itemStr += L"<GWT>" + cell.GetItemString(row, colGWT) + L"</GWT>";
-			itemStr += L"<NWT>" + cell.GetItemString(row, colNWT) + L"</NWT>";
-			itemStr += L"<VolDesc>" + cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<Vol>" + cell.GetItemString(row, colVol) + L"</Vol>";
-			itemStr += L"<F40HQ>" + cell.GetItemString(row, col40HQ) + L"</F40HQ>";
-			itemStr += L"<Packing>" + cell.GetItemString(row, colInnerOuter) + L"</Packing>";
-			itemStr += L"<Quantity>" + cell.GetItemString(row, colItemQty) + L"</Quantity>";
-			itemStr += L"<Package>" + cell.GetItemString(row, colPackage) + L"</Package>";
-			itemStr += L"<Buyer>" + cell.GetItemString(row, colBuyer) + L"</Buyer>";
-			itemStr += L"<RemarkS>" + cell.GetItemString(row, colRemark) + L"</RemarkS>";
-			itemStr += L"<FOBPrice>" + cell.GetItemString(row, colFOBPrice) + L"</FOBPrice>";
+			itemStr += L"<BuyerMOQ>" + cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+			itemStr += L"<BuyerRemark>" + cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+			itemStr += L"<FactoryImage>" + cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+			itemStr += L"<GWT>" + cell.GetItemXmlString(row, colGWT)+ L"</GWT>";
+			itemStr += L"<NWT>" + cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+			itemStr += L"<VolDesc>" + cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<Vol>" + cell.GetItemXmlString(row, colVol) + L"</Vol>";
+			itemStr += L"<F40HQ>" + cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
+			itemStr += L"<Packing>" + cell.GetItemXmlString(row, colInnerOuter) + L"</Packing>";
+			itemStr += L"<Quantity>" + cell.GetItemXmlString(row, colItemQty) + L"</Quantity>";
+			itemStr += L"<Package>" + cell.GetItemXmlString(row, colPackage) + L"</Package>";
+			itemStr += L"<Buyer>" + cell.GetItemXmlString(row, colBuyer) + L"</Buyer>";
+			itemStr += L"<RemarkS>" + cell.GetItemXmlString(row, colRemark) + L"</RemarkS>";
+			itemStr += L"<FOBPrice>" + cell.GetItemXmlString(row, colFOBPrice) + L"</FOBPrice>";
 
 
 			itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
@@ -354,10 +356,10 @@
 	{
 		xstring content = L"";
 		xstring base = L"";
-		base += L"<QuoteNo>" + getBaseItem(cell, L"报价单号:") + L"</QuoteNo>";
-		base += L"<ExpDate>" + getBaseItem(cell, L"报价截止日期:") + L"</ExpDate>";
-		base += L"<PrjName>" + getBaseItem(cell, L"项目名称:") + L"</PrjName>";
-		base += L"<QuoteDate>" + dw_base.GetItemString(1, L"QuoteDate") + L"</QuoteDate>";
+		base += L"<QuoteNo>" + getBaseXmlItem(cell, L"报价单号:") + L"</QuoteNo>";
+		base += L"<ExpDate>" + getBaseXmlItem(cell, L"报价截止日期:") + L"</ExpDate>";
+		base += L"<PrjName>" + getBaseXmlItem(cell, L"项目名称:") + L"</PrjName>";
+		base += L"<QuoteDate>" + dw_base.GetItemXmlString(1, L"QuoteDate") + L"</QuoteDate>";
 
 		int startRow = getItemHeadRow(cell);
 
@@ -375,13 +377,14 @@
 		int colSKUID = getItemCol(cell, startRow - 1, L"SKUID");
 		int colSaleRemark = getItemCol(cell, startRow - 1, L"业务To采购备注");
 
+		int colBuyerMOQ = getItemCol(cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(cell, startRow - 1, L"体积,体积(M3)L");
-		int col40HQ = getItemCol(cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(cell, startRow - 1, L"体积,体积(M3)");
+		int col40HQ = getItemCol(cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
 		int colPOPrice = getItemCol(cell, startRow - 1, L"价格");
 		int colSupplier = getItemCol(cell, startRow - 1, L"供应商");
@@ -396,7 +399,7 @@
 		int colBOMType2 = getItemCol(cell, startRow - 1, L"类型2");
 		int colBOMType3 = getItemCol(cell, startRow - 1, L"类型3");
 
-		int colInnerOuter = getItemCol(cell, startRow - 1, L"装箱数(内/外)L");
+		int colInnerOuter = getItemCol(cell, startRow - 1, L"装箱数(内/外)");
 		int colItemQty = getItemCol(cell, startRow - 1, L"数量,Qty");
 		int colPackage = getItemCol(cell, startRow - 1, L"Package,包装方式");
 		int colBuyer = getItemCol(cell, startRow - 1, L"采购人员");
@@ -420,45 +423,46 @@
 
 			xstring itemStr = L"";
 			itemStr += L"<RowID>" + getRowID(cell, row) + L"</RowID>";
-			itemStr += L"<SKUID>" + cell.GetItemString(row, colSKUID) + L"</SKUID>";
+			itemStr += L"<SKUID>" + cell.GetItemXmlString(row, colSKUID) + L"</SKUID>";
 			itemStr += L"<customer-photo>" + getRowTerm(cell, row, L"customer-photo") + L"</customer-photo>";
 			itemStr += L"<supplier-photo>" + getRowTerm(cell, row, L"supplier-photo") + L"</supplier-photo>";
-			itemStr += L"<ItemNo>" + cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<CustomItemNo>" + cell.GetItemString(row, colCustomerItemNo) + L"</CustomItemNo>";
-			itemStr += L"<ItemName>" + cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
-			itemStr += L"<CustomerImage>" + cell.GetItemString(row, colCustomerImage) + L"</CustomerImage>";
-			itemStr += L"<BuyerPrice>" + cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
-			itemStr += L"<SaleRemark>" + cell.GetItemString(row, colSaleRemark) + L"</SaleRemark>";
+			itemStr += L"<ItemNo>" + cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<CustomItemNo>" + cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomItemNo>";
+			itemStr += L"<ItemName>" + cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<CustomerImage>" + cell.GetItemXmlString(row, colCustomerImage) + L"</CustomerImage>";
+			itemStr += L"<BuyerPrice>" + cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+			itemStr += L"<SaleRemark>" + cell.GetItemXmlString(row, colSaleRemark) + L"</SaleRemark>";
 
-			itemStr += L"<BuyerRemark>" + cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
-			itemStr += L"<FactoryImage>" + cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
-			itemStr += L"<GWT>" + cell.GetItemString(row, colGWT) + L"</GWT>";
-			itemStr += L"<NWT>" + cell.GetItemString(row, colNWT) + L"</NWT>";
-			itemStr += L"<VolDesc>" + cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<Vol>" + cell.GetItemString(row, colVol) + L"</Vol>";
-			itemStr += L"<F40HQ>" + cell.GetItemString(row, col40HQ) + L"</F40HQ>";
-			itemStr += L"<Packing>" + cell.GetItemString(row, colInnerOuter) + L"</Packing>";
-			itemStr += L"<Quantity>" + cell.GetItemString(row, colItemQty) + L"</Quantity>";
-			itemStr += L"<Package>" + cell.GetItemString(row, colPackage) + L"</Package>";
-			itemStr += L"<Buyer>" + cell.GetItemString(row, colBuyer) + L"</Buyer>";
-			itemStr += L"<RemarkS>" + cell.GetItemString(row, colRemark) + L"</RemarkS>";
-			itemStr += L"<FOBPrice>" + cell.GetItemString(row, colFOBPrice) + L"</FOBPrice>";
+			itemStr += L"<BuyerMOQ>" + cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+			itemStr += L"<BuyerRemark>" + cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+			itemStr += L"<FactoryImage>" + cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+			itemStr += L"<GWT>" + cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+			itemStr += L"<NWT>" + cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+			itemStr += L"<VolDesc>" + cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<Vol>" + cell.GetItemXmlString(row, colVol) + L"</Vol>";
+			itemStr += L"<F40HQ>" + cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
+			itemStr += L"<Packing>" + cell.GetItemXmlString(row, colInnerOuter) + L"</Packing>";
+			itemStr += L"<Quantity>" + cell.GetItemXmlString(row, colItemQty) + L"</Quantity>";
+			itemStr += L"<Package>" + cell.GetItemXmlString(row, colPackage) + L"</Package>";
+			itemStr += L"<Buyer>" + cell.GetItemXmlString(row, colBuyer) + L"</Buyer>";
+			itemStr += L"<RemarkS>" + cell.GetItemXmlString(row, colRemark) + L"</RemarkS>";
+			itemStr += L"<FOBPrice>" + cell.GetItemXmlString(row, colFOBPrice) + L"</FOBPrice>";
 
-			itemStr += L"<Supplier>" + cell.GetItemString(row, colSupplier) + L"</Supplier>";
-			itemStr += L"<Supplier1>" + cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
-			itemStr += L"<Supplier2>" + cell.GetItemString(row, colSupplier2) + L"</Supplier2>";
-			itemStr += L"<Supplier3>" + cell.GetItemString(row, colSupplier3) + L"</Supplier3>";
-			itemStr += L"<POPrice>" + cell.GetItemString(row, colPOPrice) + L"</POPrice>";
-			itemStr += L"<POPrice1>" + cell.GetItemString(row, colPOPrice1) + L"</POPrice1>";
-			itemStr += L"<POPrice2>" + cell.GetItemString(row, colPOPrice2) + L"</POPrice2>";
-			itemStr += L"<POPrice3>" + cell.GetItemString(row, colPOPrice3) + L"</POPrice3>";
+			itemStr += L"<Supplier>" + cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+			itemStr += L"<Supplier1>" + cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+			itemStr += L"<Supplier2>" + cell.GetItemXmlString(row, colSupplier2) + L"</Supplier2>";
+			itemStr += L"<Supplier3>" + cell.GetItemXmlString(row, colSupplier3) + L"</Supplier3>";
+			itemStr += L"<POPrice>" + cell.GetItemXmlString(row, colPOPrice) + L"</POPrice>";
+			itemStr += L"<POPrice1>" + cell.GetItemXmlString(row, colPOPrice1) + L"</POPrice1>";
+			itemStr += L"<POPrice2>" + cell.GetItemXmlString(row, colPOPrice2) + L"</POPrice2>";
+			itemStr += L"<POPrice3>" + cell.GetItemXmlString(row, colPOPrice3) + L"</POPrice3>";
 
-			itemStr += L"<BOMType>" + cell.GetItemString(row, colBOMType) + L"</BOMType>";
-			itemStr += L"<BOMType1>" + cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
-			itemStr += L"<BOMType2>" + cell.GetItemString(row, colBOMType2) + L"</BOMType2>";
-			itemStr += L"<BOMType3>" + cell.GetItemString(row, colBOMType2) + L"</BOMType3>";
+			itemStr += L"<BOMType>" + cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+			itemStr += L"<BOMType1>" + cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+			itemStr += L"<BOMType2>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType2>";
+			itemStr += L"<BOMType3>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType3>";
 			itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
 			itemStr += L"<EnquiryLineID>" + getRowTerm(cell, row, L"EnquiryLineID") + L"</EnquiryLineID>";
 
@@ -470,19 +474,19 @@
 				if (cell.GetItemString(row, colItemName) != L"" || cell.GetItemString(row, colItemSpec) != L"") break;
 				if (cell.GetItemString(row, colSupplier) == L"")break;
 				xstring extStr = L"";
-				extStr += L"<Supplier>" + cell.GetItemString(row, colSupplier) + L"</Supplier>";
-				extStr += L"<Supplier1>" + cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
-				extStr += L"<Supplier2>" + cell.GetItemString(row, colSupplier2) + L"</Supplier2>";
-				extStr += L"<Supplier3>" + cell.GetItemString(row, colSupplier3) + L"</Supplier3>";
-				extStr += L"<POPrice>" + cell.GetItemString(row, colPOPrice) + L"</POPrice>";
-				extStr += L"<POPrice1>" + cell.GetItemString(row, colPOPrice1) + L"</POPrice1>";
-				extStr += L"<POPrice2>" + cell.GetItemString(row, colPOPrice2) + L"</POPrice2>";
-				extStr += L"<POPrice3>" + cell.GetItemString(row, colPOPrice3) + L"</POPrice3>";
+				extStr += L"<Supplier>" + cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+				extStr += L"<Supplier1>" + cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+				extStr += L"<Supplier2>" + cell.GetItemXmlString(row, colSupplier2) + L"</Supplier2>";
+				extStr += L"<Supplier3>" + cell.GetItemXmlString(row, colSupplier3) + L"</Supplier3>";
+				extStr += L"<POPrice>" + cell.GetItemXmlString(row, colPOPrice) + L"</POPrice>";
+				extStr += L"<POPrice1>" + cell.GetItemXmlString(row, colPOPrice1) + L"</POPrice1>";
+				extStr += L"<POPrice2>" + cell.GetItemXmlString(row, colPOPrice2) + L"</POPrice2>";
+				extStr += L"<POPrice3>" + cell.GetItemXmlString(row, colPOPrice3) + L"</POPrice3>";
 
-				extStr += L"<BOMType>" + cell.GetItemString(row, colBOMType) + L"</BOMType>";
-				extStr += L"<BOMType1>" + cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
-				extStr += L"<BOMType2>" + cell.GetItemString(row, colBOMType2) + L"</BOMType2>";
-				extStr += L"<BOMType3>" + cell.GetItemString(row, colBOMType2) + L"</BOMType3>";
+				extStr += L"<BOMType>" + cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+				extStr += L"<BOMType1>" + cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+				extStr += L"<BOMType2>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType2>";
+				extStr += L"<BOMType3>" + cell.GetItemXmlString(row, colBOMType2) + L"</BOMType3>";
 
 				itemStr += L"<ExtItem>" + extStr + L"</ExtItem>"; //备用采购信息
 				xstring eid = GetGuid();
@@ -507,10 +511,9 @@
 
 		xaserverarg argx;
 		argx.AddArg(L"QuoteNo", dw_base.GetItemString(1, L"QuoteNo"));
-		int p1 = argx;
 		if (dw_base.GetItemString(1, L"QuoteNo") != L"")
 		{
-			OpenWindow(L"dev:xpage[xmQuoteBillList.vx]", p1);
+			OpenWindow(L"dev:xpage[xmQuoteBillList.vx]", argx);
 		}
 		if (argx.GetArgString(L"action") != L"ok") return 1;
 
@@ -566,6 +569,11 @@
 		return 1;
 	}
 
+	xstring getBaseXmlItem(xcell dw_cell, xstring colname)
+	{
+		return xutil::ToXmlText(getBaseItem(dw_cell, colname));
+	}
+
 	xstring getBaseItem(xcell dw_cell, xstring colname)
 	{
 		int row = 0;
@@ -612,12 +620,12 @@
 
 	int getItemCol(xcell dw_obj, int row, xstring head)
 	{
-		xstring fullhead = L",L" + head + L",L";
+		xstring fullhead = L"," + head + L",";
 		int headRow = row;
 		int colCount = dw_obj.GetValidCol(headRow);
 		for (int col = 1; col <= colCount; col++)
 		{
-			if (fullhead.find(L",L" + dw_obj.GetItemString(headRow, col) + L",L") >= 0) return col;
+			if (fullhead.find(L"," + dw_obj.GetItemString(headRow, col) + L",") >= 0) return col;
 		}
 		return -1;
 	}
@@ -645,8 +653,8 @@
 			xstring left = str.left(str.find(prop + L":") + prop.length() + 1);
 			if (str.find(L";") >= 0)
 				right = str.mid(str.find(L";") + 1, 9999);
-			else 	if (str.find(L",L") >= 0)
-				right = str.mid(str.find(L",L") + 1, 9999);
+			else 	if (str.find(L",") >= 0)
+				right = str.mid(str.find(L",") + 1, 9999);
 			str = left + val + L";" + right;
 			//alert(str);
 			dw_obj.SetItemString(row, 0, str);
@@ -664,8 +672,8 @@
 			str = str.mid(str.find(prop + L":") + prop.length() + 1, 9999);
 			if (str.find(L";") >= 0)
 				str = str.left(str.find(L";"));
-			else if (str.find(L",L") >= 0)
-				str = str.left(str.find(L",L"));
+			else if (str.find(L",") >= 0)
+				str = str.left(str.find(L","));
 			return str;
 		}
 		return L"";
@@ -749,8 +757,8 @@
 			str = str.mid(str.find(L"rowid:") + 6, 99999);
 			if (str.find(L";") >= 0)
 				str = str.left(str.find(L";"));
-			else if (str.find(L",L") >= 0)
-				str = str.left(str.find(L",L"));
+			else if (str.find(L",") >= 0)
+				str = str.left(str.find(L","));
 			return str;
 		}
 		return L"";
@@ -828,13 +836,14 @@
 		int colItemSpec = getItemCol(dw_cell, startRow - 1, L"Specifications,规格,产品规格");
 		int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
 
+		int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
 		int colSupplier = getItemCol(dw_cell, startRow - 1, L"供应商");
 		int colSupplier1 = getItemCol(dw_cell, startRow - 1, L"供应商1");
@@ -854,14 +863,14 @@
 
 			xstring itemStr = L"";
 			itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
-			itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<CustomerItemNo>" + dw_cell.GetItemString(row, colCustomerItemNo) + L"</CustomerItemNo>";
-			itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
-			itemStr += L"<BuyerPrice>" + dw_cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
-			itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
-			itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+			itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<CustomerItemNo>" + dw_cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomerItemNo>";
+			itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<BuyerPrice>" + dw_cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+			itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+			itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
 
 			if (dw_cell.GetItemString(row, colBuyerPrice) == L"") return L"采购价格没有录入";
 			if (dw_cell.GetItemString(row, colGWT) == L"") return L"毛重没有录入";
@@ -880,13 +889,14 @@
 			{
 				if (dw_cell.GetItemString(row, colPOPrice1) == L"") return L"采购价格1没有录入";
 			}
-			itemStr += L"<BuyerRemark>" + dw_cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
-			itemStr += L"<FactoryImage>" + dw_cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
-			itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGWT) + L"</GWT>";
-			itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNWT) + L"</NWT>";
-			itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<Vol>" + dw_cell.GetItemString(row, colVol) + L"</Vol>";
-			itemStr += L"<F40HQ>" + dw_cell.GetItemString(row, col40HQ) + L"</F40HQ>";
+			itemStr += L"<BuyerMOQ>" + dw_cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+			itemStr += L"<BuyerRemark>" + dw_cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+			itemStr += L"<FactoryImage>" + dw_cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+			itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+			itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+			itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<Vol>" + dw_cell.GetItemXmlString(row, colVol) + L"</Vol>";
+			itemStr += L"<F40HQ>" + dw_cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
 
 			itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
 			itemStr += L"<EnquiryLineID>" + getRowTerm(dw_cell, row, L"EnquiryLineID") + L"</EnquiryLineID>";
@@ -1022,11 +1032,11 @@
 		int colItemSpec = getItemCol(dw_cell, startRow - 1, L"Specifications,规格,产品规格");
 		int colBuyer = getItemCol(dw_cell, startRow - 1, L"采购人员");
 		int colPackage = getItemCol(dw_cell, startRow - 1, L"Package,包装方式");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
-		int colGW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)L");
-		int colNW = getItemCol(dw_cell, startRow - 1, L"净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"长X宽X高(CM)L");
+		int colGW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)");
+		int colNW = getItemCol(dw_cell, startRow - 1, L"净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"长X宽X高(CM)");
 
 		int colPrice = getItemCol(dw_cell, startRow - 1, L"采购价");
 
@@ -1052,25 +1062,25 @@
 			xstring itemStr = L"";
 			xstring issend = L"1";
 			itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
-			itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
 			itemStr += L"<RowNo>" + xstring(row - startRow + 1) + L"</RowNo>";
-			itemStr += L"<Purchor>" + dw_cell.GetItemString(row, colBuyer) + L"</Purchor>";
-			itemStr += L"<Package>" + dw_cell.GetItemString(row, colPackage) + L"</Package>";
-			itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNW) + L"</NWT>";
-			itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGW) + L"</GWT>";
-			itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<Supplier>" + dw_cell.GetItemString(row, colSupplier) + L"</Supplier>";
-			itemStr += L"<BuyPrice>" + dw_cell.GetItemString(row, colPOPrice) + L"</BuyPrice>";
-			itemStr += L"<Supplier1>" + dw_cell.GetItemString(row, colSupplier1) + L"</Supplier1>";
-			itemStr += L"<BuyPrice1>" + dw_cell.GetItemString(row, colPOPrice1) + L"</BuyPrice1>";
-			itemStr += L"<BOMType1>" + dw_cell.GetItemString(row, colBOMType1) + L"</BOMType1>";
-			itemStr += L"<BOMType>" + dw_cell.GetItemString(row, colBOMType) + L"</BOMType>";
-			itemStr += L"<POPrice>" + dw_cell.GetItemString(row, colPrice) + L"</POPrice>";
-			itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
-			itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+			itemStr += L"<Purchor>" + dw_cell.GetItemXmlString(row, colBuyer) + L"</Purchor>";
+			itemStr += L"<Package>" + dw_cell.GetItemXmlString(row, colPackage) + L"</Package>";
+			itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNW) + L"</NWT>";
+			itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGW) + L"</GWT>";
+			itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<Supplier>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</Supplier>";
+			itemStr += L"<BuyPrice>" + dw_cell.GetItemXmlString(row, colPOPrice) + L"</BuyPrice>";
+			itemStr += L"<Supplier1>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</Supplier1>";
+			itemStr += L"<BuyPrice1>" + dw_cell.GetItemXmlString(row, colPOPrice1) + L"</BuyPrice1>";
+			itemStr += L"<BOMType1>" + dw_cell.GetItemXmlString(row, colBOMType1) + L"</BOMType1>";
+			itemStr += L"<BOMType>" + dw_cell.GetItemXmlString(row, colBOMType) + L"</BOMType>";
+			itemStr += L"<POPrice>" + dw_cell.GetItemXmlString(row, colPrice) + L"</POPrice>";
+			itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+			itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
 
 			if (dw_cell.GetItemString(row, colBuyer) == L"")issend = L"0";
 			itemStr += L"<IsSend>" + issend + L"</IsSend>";
@@ -1096,11 +1106,11 @@
 		int colItemSpec = getItemCol(dw_cell, startRow - 1, L"Specifications,规格,产品规格");
 		int colBuyer = getItemCol(dw_cell, startRow - 1, L"采购人员");
 		int colPackage = getItemCol(dw_cell, startRow - 1, L"Package,包装方式");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
-		int colGW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)L");
-		int colNW = getItemCol(dw_cell, startRow - 1, L"净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"长X宽X高(CM)L");
+		int colGW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)");
+		int colNW = getItemCol(dw_cell, startRow - 1, L"净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"长X宽X高(CM)");
 
 		int colProductInfo = getItemCol(dw_cell, startRow - 1, L"业务部产品信息");
 		int colProductInfo1 = getItemCol(dw_cell, startRow - 1, L"采购部产品信息");
@@ -1118,19 +1128,19 @@
 			xstring itemStr = L"";
 			xstring issend = L"1";
 			itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
-			itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<CustomerItemNo>" + dw_cell.GetItemString(row, colCustomerItemNo) + L"</CustomerItemNo>";
-			itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<CustomerItemNo>" + dw_cell.GetItemXmlString(row, colCustomerItemNo) + L"</CustomerItemNo>";
+			itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
 			itemStr += L"<RowNo>" + xstring(row - startRow + 1) + L"</RowNo>";
-			itemStr += L"<Purchor>" + dw_cell.GetItemString(row, colBuyer) + L"</Purchor>";
-			itemStr += L"<Package>" + dw_cell.GetItemString(row, colPackage) + L"</Package>";
-			itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNW) + L"</NWT>";
-			itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGW) + L"</GWT>";
-			itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
-			itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
+			itemStr += L"<Purchor>" + dw_cell.GetItemXmlString(row, colBuyer) + L"</Purchor>";
+			itemStr += L"<Package>" + dw_cell.GetItemXmlString(row, colPackage) + L"</Package>";
+			itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNW) + L"</NWT>";
+			itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGW) + L"</GWT>";
+			itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+			itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
 			if (dw_cell.GetItemString(row, colBuyer) == L"")issend = L"0";
 			itemStr += L"<IsSend>" + issend + L"</IsSend>";
 
@@ -1156,7 +1166,7 @@
 		int colItemSpec = getItemCol(dw_cell,startRow - 1,L"Specifications,规格,产品规格");
 		int colBuyer = getItemCol(dw_cell,startRow - 1,L"采购人员");
 		int colPackage = getItemCol(dw_cell,startRow - 1,L"Package,包装方式");
-		int col40HQ= getItemCol(dw_cell,startRow - 1,L"40HQ,QTY(40HQ)L");
+		int col40HQ= getItemCol(dw_cell,startRow - 1,L"40HQ,QTY(40HQ)");
 		int colBuyer = getItemCol(dw_cell,startRow - 1,L"采购人员");
 
 		xstring items=L"<data>";
@@ -1172,14 +1182,14 @@
 			xstring itemStr = L"";
 			xstring issend=L"1";
 			itemStr += L"<RowID>"+getRowID(dw_cell,row)+L"</RowID>";
-			itemStr += L"<ItemNo>"+dw_cell.GetItemString(row, colItemNo)+L"</ItemNo>";
-			itemStr += L"<ItemName>"+dw_cell.GetItemString(row, colItemName)+L"</ItemName>";
-			itemStr += L"<ItemCName>"+dw_cell.GetItemString(row, colItemCName)+L"</ItemCName>";
-			itemStr += L"<ItemSpec>"+dw_cell.GetItemString(row, colItemSpec)+L"</ItemSpec>";
+			itemStr += L"<ItemNo>"+dw_cell.GetItemXmlString(row, colItemNo)+L"</ItemNo>";
+			itemStr += L"<ItemName>"+dw_cell.GetItemXmlString(row, colItemName)+L"</ItemName>";
+			itemStr += L"<ItemCName>"+dw_cell.GetItemXmlString(row, colItemCName)+L"</ItemCName>";
+			itemStr += L"<ItemSpec>"+dw_cell.GetItemXmlString(row, colItemSpec)+L"</ItemSpec>";
 			itemStr += L"<RowNo>"+(row - startRow +1).toString()+L"</RowNo>";
-			itemStr += L"<Purchor>"+dw_cell.GetItemString(row, colBuyer)+L"</Purchor>";
-			itemStr += L"<Package>"+dw_cell.GetItemString(row, colPackage)+L"</Package>";
-			if(dw_cell.GetItemString(row, colBuyer) ==L"")issend=L"0";
+			itemStr += L"<Purchor>"+dw_cell.GetItemXmlString(row, colBuyer)+L"</Purchor>";
+			itemStr += L"<Package>"+dw_cell.GetItemXmlString(row, colPackage)+L"</Package>";
+			if(dw_cell.GetItemXmlString(row, colBuyer) ==L"")issend=L"0";
 			itemStr += L"<IsSend>"+issend+L"</IsSend>";
 
 			items += L"<Item>"+itemStr+L"</Item>";
@@ -1219,13 +1229,14 @@
 		int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
 		int colPurchor = getItemCol(dw_cell, startRow - 1, L"采购员,采购人员");
 
+		int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 
 		int colSupplier1 = getItemCol(dw_cell, startRow - 1, L"供应商1");
 		int colPOPrice1 = getItemCol(dw_cell, startRow - 1, L"价格1");
@@ -1320,14 +1331,14 @@
 		{
 			head = dw_cell.GetItemString(row, col);
 			if (head == L"Product Name" || head == L"Product Description") namecol = col;
-			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)L") pricecol = col;
+			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)") pricecol = col;
 			if (head == L"采购To业务备注") purchremarkcol = col;
 			if (head == L"采购人员") purchercol = col;
 		}
 
 		xstring items = GetPurchedItems();
 		xaserverarg arg4 ;
-		arg4.setNativePointer(xaserverarg::CreateInstance());
+		
 		trace(items);
 		arg4.AddArg(L"value", items);
 		OpenWindow(L"dev:xpage[QuoteFilePurched.vx]", arg4);
@@ -1391,14 +1402,14 @@
 			//if(dw_cell.GetItemString(row, colItemName)==L"")continue;
 			xstring itemStr = L"";
 			itemStr += L"<RowID>" + getRowID(dw_cell, row) + L"</RowID>";
-			itemStr += L"<ItemNo>" + dw_cell.GetItemString(row, colItemNo) + L"</ItemNo>";
-			itemStr += L"<ItemName>" + dw_cell.GetItemString(row, colItemName) + L"</ItemName>";
-			itemStr += L"<ItemCName>" + dw_cell.GetItemString(row, colItemCName) + L"</ItemCName>";
-			itemStr += L"<ItemSpec>" + dw_cell.GetItemString(row, colItemSpec) + L"</ItemSpec>";
-			itemStr += L"<BuyerPrice>" + dw_cell.GetItemString(row, colBuyerPrice) + L"</BuyerPrice>";
-			itemStr += L"<ProductInfo>" + dw_cell.GetItemString(row, colProductInfo) + L"</ProductInfo>";
-			itemStr += L"<ProductInfo1>" + dw_cell.GetItemString(row, colProductInfo1) + L"</ProductInfo1>";
-			itemStr += L"<Buyer>" + dw_cell.GetItemString(row, colPurchor) + L"</Buyer>";
+			itemStr += L"<ItemNo>" + dw_cell.GetItemXmlString(row, colItemNo) + L"</ItemNo>";
+			itemStr += L"<ItemName>" + dw_cell.GetItemXmlString(row, colItemName) + L"</ItemName>";
+			itemStr += L"<ItemCName>" + dw_cell.GetItemXmlString(row, colItemCName) + L"</ItemCName>";
+			itemStr += L"<ItemSpec>" + dw_cell.GetItemXmlString(row, colItemSpec) + L"</ItemSpec>";
+			itemStr += L"<BuyerPrice>" + dw_cell.GetItemXmlString(row, colBuyerPrice) + L"</BuyerPrice>";
+			itemStr += L"<ProductInfo>" + dw_cell.GetItemXmlString(row, colProductInfo) + L"</ProductInfo>";
+			itemStr += L"<ProductInfo1>" + dw_cell.GetItemXmlString(row, colProductInfo1) + L"</ProductInfo1>";
+			itemStr += L"<Buyer>" + dw_cell.GetItemXmlString(row, colPurchor) + L"</Buyer>";
 
 			/*
 			if(dw_cell.GetItemString(row, colBuyerPrice)==L"") return L"采购价格没有录入";
@@ -1431,13 +1442,14 @@
 				if(dw_cell.GetItemString(row, colVolDesc)==L"") return L"体积信息没有录入";
 			}
 			*/
-			itemStr += L"<BuyerRemark>" + dw_cell.GetItemString(row, colBuyerRemark) + L"</BuyerRemark>";
-			itemStr += L"<FactoryImage>" + dw_cell.GetItemString(row, colFactoryImage) + L"</FactoryImage>";
-			itemStr += L"<GWT>" + dw_cell.GetItemString(row, colGWT) + L"</GWT>";
-			itemStr += L"<NWT>" + dw_cell.GetItemString(row, colNWT) + L"</NWT>";
-			itemStr += L"<VolDesc>" + dw_cell.GetItemString(row, colVolDesc) + L"</VolDesc>";
-			itemStr += L"<Vol>" + dw_cell.GetItemString(row, colVol) + L"</Vol>";
-			itemStr += L"<F40HQ>" + dw_cell.GetItemString(row, col40HQ) + L"</F40HQ>";
+			itemStr += L"<BuyerMOQ>" + dw_cell.GetItemXmlString(row, colBuyerMOQ) + L"</BuyerMOQ>";
+			itemStr += L"<BuyerRemark>" + dw_cell.GetItemXmlString(row, colBuyerRemark) + L"</BuyerRemark>";
+			itemStr += L"<FactoryImage>" + dw_cell.GetItemXmlString(row, colFactoryImage) + L"</FactoryImage>";
+			itemStr += L"<GWT>" + dw_cell.GetItemXmlString(row, colGWT) + L"</GWT>";
+			itemStr += L"<NWT>" + dw_cell.GetItemXmlString(row, colNWT) + L"</NWT>";
+			itemStr += L"<VolDesc>" + dw_cell.GetItemXmlString(row, colVolDesc) + L"</VolDesc>";
+			itemStr += L"<Vol>" + dw_cell.GetItemXmlString(row, colVol) + L"</Vol>";
+			itemStr += L"<F40HQ>" + dw_cell.GetItemXmlString(row, col40HQ) + L"</F40HQ>";
 
 			itemStr += L"<PurchedDate>" + sdate + L"</PurchedDate>";
 			itemStr += L"<supplier-photo>" + getRowTerm(dw_cell, row, L"supplier-photo") + L"</supplier-photo>";
@@ -1507,8 +1519,8 @@
 		int colItemQty = getItemCol(dw_cell, headrow, L"数量,Qty");
 		//int colItemSpec = getItemCol(dw_cell,headrow,L"Specifications,规格,产品规格");
 		int colItemPurchDate = getItemCol(dw_cell, headrow, L"业务发送采购时间");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
-		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)L");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
+		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
 		int col = 0;
 		int namecol = 0;
 		int pricecol = 0;
@@ -1520,7 +1532,7 @@
 		{
 			head = dw_cell.GetItemString(row, col);
 			if (head == L"Product Name" || head == L"Product Description") namecol = col;
-			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)L") pricecol = col;
+			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)") pricecol = col;
 			if (head == L"采购To业务备注") purchremarkcol = col;
 			if (head == L"采购人员") purchercol = col;
 		}
@@ -1533,7 +1545,7 @@
 
 		xstring items = GetPurchItems();
 		xaserverarg arg4 ;
-		arg4.setNativePointer(xaserverarg::CreateInstance());
+		
 		trace(items);
 		arg4.AddArg(L"value", items);
 		OpenWindow(L"dev:xpage[QuoteFilePurch.vx]", arg4);
@@ -1573,8 +1585,8 @@
 		int colItemQty = getItemCol(dw_cell, headrow, L"数量,Qty");
 		//int colItemSpec = getItemCol(dw_cell,headrow,L"Specifications,规格,产品规格");
 		int colItemPurchDate = getItemCol(dw_cell, headrow, L"业务发送采购时间");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
-		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)L");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
+		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
 		int colSalebackDate = getItemCol(dw_cell, startRow - 1, L"采购提交业务时间");
 
 		int col = 0;
@@ -1588,7 +1600,7 @@
 		{
 			head = dw_cell.GetItemString(row, col);
 			if (head == L"Product Name" || head == L"Product Description") namecol = col;
-			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)L") pricecol = col;
+			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)") pricecol = col;
 			if (head == L"采购To业务备注") purchremarkcol = col;
 			if (head == L"采购人员") purchercol = col;
 		}
@@ -1598,7 +1610,7 @@
 			return 1;
 		}
 
-		xstring strs = L",L";
+		xstring strs = L",";
 		row++;
 
 		int colCustomerPhoto = getItemCol(dw_cell, startRow - 1, L"Photo,Customer Photo");
@@ -1610,11 +1622,11 @@
 			if (str == L"")break;
 
 			//ensureRowID(dw_cell,row);
-			if (strs.find(L",L" + str + L",L") < 0)
+			if (strs.find(L"," + str + L",") < 0)
 			{
 				if (purcher.selectSingleNode(L"//Name[.='" + str + L"']"))
 				{
-					strs += str + L",L";
+					strs += str + L",";
 				}
 				else
 				{
@@ -1624,7 +1636,7 @@
 			}
 			row++;
 		}
-		if (strs == L",L")
+		if (strs == L",")
 		{
 			alert(L"请指定采购人员!");
 			return 1;
@@ -1666,11 +1678,11 @@
 			str = dw_cell.GetItemString(row, purchercol);
 			if (str == L"")break;
 
-			if (strs.find(L",L" + str + L",L") < 0)
+			if (strs.find(L"," + str + L",") < 0)
 			{
 				if (purcher.selectSingleNode(L"//Name[.='" + str + L"']"))
 				{
-					strs += str + L",L";
+					strs += str + L",";
 				}
 				else
 				{
@@ -1687,16 +1699,16 @@
 		xml x ;
 		
 
-		if (strs.left(1) == L",L") strs = strs.mid(1, 9999);
-		if (strs.right(1) == L",L") strs = strs.left(strs.length() - 1);
+		if (strs.left(1) == L",") strs = strs.mid(1, 9999);
+		if (strs.right(1) == L",") strs = strs.left(strs.length() - 1);
 
 		xstring purchors = strs;
 
 		xstring supplier;
-		if (strs.find(L",L", 0) > 0)
+		if (strs.find(L",", 0) > 0)
 		{
-			supplier = strs.left(strs.find(L",L", 0));
-			strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+			supplier = strs.left(strs.find(L",", 0));
+			strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 		}
 		else
 		{
@@ -1713,10 +1725,10 @@
 			if (supplier == username)  len = 0;
 			if (len < 1)
 			{
-				if (strs.find(L",L", 0) > 0)
+				if (strs.find(L",", 0) > 0)
 				{
-					supplier = strs.left(strs.find(L",L", 0));
-					strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+					supplier = strs.left(strs.find(L",", 0));
+					strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 				}
 				else
 				{
@@ -1768,10 +1780,10 @@
 
 
 			if (SendToPurcher(supplier, cell1.GetData()) == -1) return 1;
-			if (strs.find(L",L", 0) > 0)
+			if (strs.find(L",", 0) > 0)
 			{
-				supplier = strs.left(strs.find(L",L", 0));
-				strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+				supplier = strs.left(strs.find(L",", 0));
+				strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 			}
 			else
 			{
@@ -1846,7 +1858,7 @@
 						}
 						dw_cell.SetRowColumn(lastrow, 1);
 						dw_cell.SetAnchorRowColumn(lastrow, 1);
-						SendCtrlCmd(dw_cell, L"xmFormatCellDeleteRow");
+						//SendCtrlCmd(dw_cell, L"xmFormatCellDeleteRow");  //now not direct delete purch next
 						drow++;
 					}
 				}
@@ -1855,12 +1867,16 @@
 		}
 
 		xstring finished = L"1";
+		PUser& user = publiccode::GetUser();
+		xstring myname = user.name;
 		for (row = startRow; row <= rowCount; row++)
 		{
 			if (getRowID(dw_cell, row) == L"") continue;
 			if (dw_cell.GetItemString(row, colItemName) == L"")continue;
 			if (dw_cell.GetItemString(row, colSalebackDate) == L"")
 			{
+				xstring purchor = dw_cell.GetItemString(row, purchercol);
+				if (purchor != L"" && purchor != myname) continue; //purchnext
 				finished = L"0";
 				break;
 			}
@@ -1869,11 +1885,7 @@
 		if (0 == 1)OnUpdateEntityFile();
 		OnUpdate();
 
-		if (finished == L"1")
-		{
-			OnUpdateProcessed();
-			alert(L"xxxxx");
-		}
+		if (finished == L"1")OnUpdateProcessed();
 
 		//OnSaveEx(true);
 		//alert(L"询价信息已发送给:"+purchors);
@@ -1932,8 +1944,8 @@
 		int colItemQty = getItemCol(dw_cell, headrow, L"数量,Qty");
 		//int colItemSpec = getItemCol(dw_cell,headrow,L"Specifications,规格,产品规格");
 		int colItemPurchDate = getItemCol(dw_cell, headrow, L"业务发送采购时间");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
-		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)L");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
+		int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
 
 		int col = 0;
 		int namecol = 0;
@@ -1946,7 +1958,7 @@
 		{
 			head = dw_cell.GetItemString(row, col);
 			if (head == L"Product Name" || head == L"Product Description") namecol = col;
-			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)L") pricecol = col;
+			if (head == L"FOB Price" || head == L"Fob Price" || head == L"FOB Price(USD)") pricecol = col;
 			if (head == L"采购To业务备注") purchremarkcol = col;
 			if (head == L"采购人员") purchercol = col;
 		}
@@ -1956,7 +1968,7 @@
 			return 1;
 		}
 
-		xstring strs = L",L";
+		xstring strs = L",";
 		row++;
 
 		int colCustomerPhoto = getItemCol(dw_cell, startRow - 1, L"Photo,Customer Photo");
@@ -2005,11 +2017,11 @@
 			}*/
 
 			ensureRowID(dw_cell, row);
-			if (strs.find(L",L" + str + L",L") < 0)
+			if (strs.find(L"," + str + L",") < 0)
 			{
 				if (purcher.selectSingleNode(L"//Name[.='" + str + L"']"))
 				{
-					strs += str + L",L";
+					strs += str + L",";
 				}
 				else
 				{
@@ -2019,7 +2031,7 @@
 			}
 			row++;
 		}
-		if (strs == L",L")
+		if (strs == L",")
 		{
 			alert(L"找不到采购人员数据!");
 			return 1;
@@ -2027,7 +2039,7 @@
 
 		xstring items = GetPurchItems();
 		xaserverarg arg4 ;
-		arg4.setNativePointer(xaserverarg::CreateInstance());
+		
 		trace(items);
 		arg4.AddArg(L"value", items);
 		OpenWindow(L"dev:xpage[QuoteFilePurch.vx]", arg4);
@@ -2039,16 +2051,16 @@
 		xml x ;
 		
 
-		if (strs.left(1) == L",L") strs = strs.mid(1, 9999);
-		if (strs.right(1) == L",L") strs = strs.left(strs.length() - 1);
+		if (strs.left(1) == L",") strs = strs.mid(1, 9999);
+		if (strs.right(1) == L",") strs = strs.left(strs.length() - 1);
 
 		xstring purchors = strs;
 
 		xstring supplier;
-		if (strs.find(L",L", 0) > 0)
+		if (strs.find(L",", 0) > 0)
 		{
-			supplier = strs.left(strs.find(L",L", 0));
-			strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+			supplier = strs.left(strs.find(L",", 0));
+			strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 		}
 		else
 		{
@@ -2065,10 +2077,10 @@
 			int len = ts.length();
 			if (len < 1)
 			{
-				if (strs.find(L",L", 0) > 0)
+				if (strs.find(L",", 0) > 0)
 				{
-					supplier = strs.left(strs.find(L",L", 0));
-					strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+					supplier = strs.left(strs.find(L",", 0));
+					strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 				}
 				else
 				{
@@ -2138,16 +2150,16 @@
 				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
 				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
 				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
-				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
-				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
-				SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+				//SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+				//SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
+				//SendCtrlCmd(cell1, L"xmFormatCellInsertCol");
 
 				cell1.SetItemString(headrow, purchremarkcol + 1, L"供应商");
 				cell1.SetItemString(headrow, purchremarkcol + 2, L"类型");
 				cell1.SetItemString(headrow, purchremarkcol + 3, L"价格");
-				cell1.SetItemString(headrow, purchremarkcol + 4, L"供应商1");
-				cell1.SetItemString(headrow, purchremarkcol + 5, L"类型1");
-				cell1.SetItemString(headrow, purchremarkcol + 6, L"价格1");
+				//cell1.SetItemString(headrow, purchremarkcol + 4, L"供应商1");
+				//cell1.SetItemString(headrow, purchremarkcol + 5, L"类型1");
+				//cell1.SetItemString(headrow, purchremarkcol + 6, L"价格1");
 
 				int colRemark = getItemCol(cell1, headrow, L"Remarks");
 				cell1.SetRowColumn(1, colRemark);
@@ -2169,10 +2181,10 @@
 			}
 
 			if (SendToPurcher(supplier, cell1.GetData()) == -1) return 1;
-			if (strs.find(L",L", 0) > 0)
+			if (strs.find(L",", 0) > 0)
 			{
-				supplier = strs.left(strs.find(L",L", 0));
-				strs = strs.mid(strs.find(L",L", 0) + 1, 9999);
+				supplier = strs.left(strs.find(L",", 0));
+				strs = strs.mid(strs.find(L",", 0) + 1, 9999);
 			}
 			else
 			{
@@ -2213,11 +2225,15 @@
 	{
 		trace(L"BusinessItemID:" + id);
 		xml x = ViewObject::RetrieveData(L"/sale/data/TO/business/document", L"BusinessItemID", id);
-
+		
+		BSTR str;
+		x.get_xml(str);
+		::SysFreeString(str);
 		/*
 		xml sheet ;
 		sheet.setNativePointer(x.CreateInstance());
 		sheet.loadXML(x.selectSingleNode(L"data/*").xml);
+		wangushendi xiuluowushen taigukuangmo
 		*/
 
 		//trace(x.xml());
@@ -2363,7 +2379,7 @@
 		{
 			int pos = str.find(L";", str.find(tm + L":") + 1);
 			if (pos < 0) return 1;
-			str = str.left(pos) + L",L" + guid + str.mid(pos, 99999);
+			str = str.left(pos) + L"," + guid + str.mid(pos, 99999);
 		}
 		else
 		{
@@ -2385,7 +2401,7 @@
 			if (pos > 0 && str.mid(pos - 1, 1) == L":")
 				str = str.left(pos) + guid + str.mid(pos, 99999);
 			else
-				str = str.left(pos) + L",L" + guid + str.mid(pos, 99999);
+				str = str.left(pos) + L"," + guid + str.mid(pos, 99999);
 		}
 		else
 		{
@@ -2417,7 +2433,7 @@
 		while (true)
 		{
 			count++;
-			spos = images.find(L",L", spos + 1);
+			spos = images.find(L",", spos + 1);
 			if (spos < 0) break;
 		}
 		trace(L" count:" + xstring(count));
@@ -2485,11 +2501,11 @@
 				while (true)
 				{
 					if (i == index) break;
-					spos = images.find(L",L", spos + 1);
+					spos = images.find(L",", spos + 1);
 					if (spos < 0) break;
 					i++;
 				}
-				int epos = images.find(L",L", spos + 1);
+				int epos = images.find(L",", spos + 1);
 				if (spos >= 0)
 				{
 					if (epos < 0)
@@ -2511,8 +2527,8 @@
 
 			if (im.GetImageCount() - sindex >= 1)
 			{
-				if (images.find(L",L") == 0) images = images.mid(1, 9999);
-				int pos1 = images.find(L",L");
+				if (images.find(L",") == 0) images = images.mid(1, 9999);
+				int pos1 = images.find(L",");
 				if (pos1 < 0) pos1 = images.find(L";");
 				xstring id = images;
 				if (pos1 >= 0) id = images.left(pos1);
@@ -2587,7 +2603,7 @@
 		return 1;
 	}
 
-	int GetOpenFileNames(xarray<xstring>& items, xstring initFileName, xstring filter, xstring ext)
+	int GetOpenFileNames(xarray<xstring>& items, xstring initFileName, const string filter, xstring ext)
 	{
 		//xstring path = GetOpenFileName(L"",
 		//		"JPEG 文件(*.jpg)\0*.jpg;*.jpeg;*.png;*.gif;*.bmp\0全部文件(*.*)\0*.*\0",
@@ -2611,7 +2627,7 @@
 		int	 nFilterIndex = 1;
 		OPENFILENAMEW ofn;
 
-		ofn.lStructSize = 88;//sizeof(ofn);
+		ofn.lStructSize = sizeof(ofn);
 		ofn.hwndOwner = 0;
 		ofn.hInstance = 0;
 		ofn.lpstrFilter = filter;
@@ -2648,13 +2664,13 @@
 			else
 			{
 				wchar_t* start = szPath;
-				start += pos * 2;
+				start += pos;;
 				xstring str = start;
 				while (true)
 				{
 					if (str == L"")break;
 					items.push_back(path + L"/" + str);
-					start += (str.length() + 1) * 2;
+					start += (str.length() + 1) ;
 					str = start;
 				}
 			}
@@ -2795,17 +2811,157 @@
 		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);
-		if (row == ARow && col == ACol && dw_cell.GetItemString(row, col) == orivalue) return 1;
+		//if (row == ARow && col == ACol && dw_cell.GetItemString(row, col) == orivalue) return 1;
 		trace(L"\r\n--enter:");
 
 		ARow = row;
@@ -2831,17 +2987,17 @@
 		//int colToPODate = getItemCol(dw_cell,startRow - 1,L"业务发送采购时间");
 
 
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 		int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
 
 		int colPONote = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colPOPhoto = getItemCol(dw_cell, startRow - 1, L"工厂图片");
 		int colPOPrice = getItemCol(dw_cell, startRow - 1, L"采购价");
-		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)L");
-		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)L");
+		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)");
+		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)");
 		int colSKUNo = getItemCol(dw_cell, startRow - 1, L"SKUID,SKUNo");
 
 		if (col == colFOBPrice)
@@ -2868,7 +3024,7 @@
 			if (dw_cell.GetItemString(row, colItemNo) != L"")
 			{
 				xaserverarg argx ;
-				argx.setNativePointer(argx.CreateInstance());
+				
 				argx.AddArg(L"GoodsNo", dw_cell.GetItemString(row, colItemNo));
 				OpenWindow(L"dev:xpage[CustomerItemNoList.vx]", argx);
 				if (argx.GetArgString(L"action") != L"ok") return 1;
@@ -2934,44 +3090,50 @@
 			/*计算体积*/
 			double v = 0.0;
 			xstring desc = dw_cell.GetItemString(row, colVolDesc);
-			if (desc.find(L"cm") >= 0)
+			if(desc!=L"")
 			{
-				desc = desc.replace(L"cm", L"");
-				dw_cell.SetItemString(row, colVolDesc, desc);
-			}
-			if (desc.find(L"CM") >= 0)
-			{
-				desc = desc.replace(L"CM", L"");
-				dw_cell.SetItemString(row, colVolDesc, desc);
-			}
-			if (desc == L"")
-				dw_cell.SetItemString(row, colVol, L"");
-			else
-			{
-				v = calcVol(desc) / 1000000.00;
-				xstring str = xstring(v);
-				if (str.find(L".") >= 0)	str = str.left(str.find(L".") + 5);
-				dw_cell.SetItemString(row, colVol, str);
-				dw_cell.Redraw();
-			}
-
-			xstring qtyperPack = dw_cell.GetItemString(row, colQtyPerPack);
-			if (qtyperPack != L"")
-			{
-				xstring qty1 = qtyperPack;
-				xstring qty2 = L"";
-				double qty = 0.00;
-				int pos2 = qtyperPack.find(L"/");
-				if (pos2 >= 0)
+				if (desc.find(L"cm") >= 0)
 				{
-					qty1 = qtyperPack.left(qtyperPack.find(L"/"));
-					qty2 = qtyperPack.mid(qtyperPack.find(L"/") + 1, 9999);
+					desc = desc.replace(L"cm", L"");
+					dw_cell.SetItemString(row, colVolDesc, desc);
 				}
-				//if(qty1 !=L"") qty = qty1.toDouble();
-				//if(qty2 !=L"") qty = qty*qty2.toDouble();
-				qty = qty2.toDouble();
-				double ttl = 65.0 * qty / v;
-				dw_cell.SetItemString(row, col40HQ, xstring((int)ttl));
+				if (desc.find(L"CM") >= 0)
+				{
+					desc = desc.replace(L"CM", L"");
+					dw_cell.SetItemString(row, colVolDesc, desc);
+				}
+				if (desc == L"")
+					dw_cell.SetItemString(row, colVol, L"");
+				else
+				{
+					v = calcVol(desc) / 1000000.00;
+					xstring str = xstring(v);
+					if (str.find(L".") >= 0)	str = str.left(str.find(L".") + 5);
+					dw_cell.SetItemString(row, colVol, str);
+					dw_cell.Redraw();
+				}
+
+				xstring qtyperPack = dw_cell.GetItemString(row, colQtyPerPack);
+				if (qtyperPack != L"")
+				{
+					xstring qty1 = qtyperPack;
+					xstring qty2 = L"";
+					double qty = 0.00;
+					int pos2 = qtyperPack.find(L"/");
+					if (pos2 >= 0)
+					{
+						qty1 = qtyperPack.left(qtyperPack.find(L"/"));
+						qty2 = qtyperPack.mid(qtyperPack.find(L"/") + 1, 9999);
+					}
+					//if(qty1 !=L"") qty = qty1.toDouble();
+					//if(qty2 !=L"") qty = qty*qty2.toDouble();
+					if (qty2 != L"")
+					{
+						qty = qty2.toDouble();
+						double ttl = 65.0 * qty / v;
+						dw_cell.SetItemString(row, col40HQ, xstring((int)ttl));
+					}
+				}
 			}
 		}
 
@@ -3015,14 +3177,14 @@
 						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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							if (pricec == L"") pricec = price; else pricec += L"+" + price;
 					}
 					if (price1 != L"")
 					{
@@ -3030,14 +3192,14 @@
 						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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							if (pricec == L"") pricec = price; else pricec += L"+" + price;
 					}
 					if (price2 != L"")
 					{
@@ -3045,14 +3207,14 @@
 						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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							if (pricec == L"") pricec = price; else pricec += L"+" + price;
 					}
 					if (price3 != L"")
 					{
@@ -3060,14 +3222,14 @@
 						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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							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"+L" + price;
+							if (pricec == L"") pricec = price; else pricec += L"+" + price;
 					}
 					price = pricec;
 					if (priceb != L"")
@@ -3075,14 +3237,14 @@
 						if (price == L"")
 							price = priceb;
 						else
-							price += L"+L" + priceb;
+							price += L"+" + priceb;
 					}
 					if (pricea != L"")
 					{
 						if (price == L"")
 							price = pricea;
 						else
-							price += L"+L" + pricea;
+							price += L"+" + pricea;
 					}
 					dw_cell.SetItemString(row, colPrice, price);
 					dw_cell.Redraw();
@@ -3144,17 +3306,18 @@
 		int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
 		int colPackage = getItemCol(dw_cell, startRow - 1, L"Package");
 		int colPurchor = getItemCol(dw_cell, startRow - 1, L"采购员,采购人员");
-		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)L");
+		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
 		int colFOBPrice = getItemCol(dw_cell, startRow - 1, L"FOB Price,FOB Price(USD),Fob Price");
 		int colQuantity = getItemCol(dw_cell, startRow - 1, L"数量,Qty");
 
+		int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int colHQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int colHQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 		int colSKUNo = getItemCol(dw_cell, startRow - 1, L"SKUID,SKUNo");
 
 
@@ -3252,7 +3415,7 @@
 	{
 		xml xp ;
 		xaserverarg arg_pic ;
-		arg_pic.setNativePointer(arg_pic.CreateInstance());
+		
 		arg_pic.AddArg(L"SKUNo", goodsno);
 
 		ximageview im = GetControl(L"frame:im1");
@@ -3311,7 +3474,7 @@
 	{
 		xml xp ;
 		xaserverarg arg_pic ;
-		arg_pic.setNativePointer(arg_pic.CreateInstance());
+		
 		arg_pic.AddArg(L"GoodsNo", goodsno);
 
 		ximageview im = GetControl(L"frame:im1");
@@ -3368,14 +3531,31 @@
 		startRow++;
 		int row = dw_cell.GetRow();
 
+		int colPurchPrice = getItemCol(dw_cell, headrow, L"价格");
 		int colPurchPrice1 = getItemCol(dw_cell, headrow, L"价格1");
 		int colPurchPrice2 = getItemCol(dw_cell, headrow, L"价格2");
 		int colPurchPrice3 = getItemCol(dw_cell, headrow, L"价格3");
 		if (colPurchPrice3 > 0) return  1;
 
-		if (colPurchPrice2 < 1)
+		if (colPurchPrice1 < 1)
 		{
-			//dw_cell.SetColumnCount(dw_cell.GetColumnCount()+3);
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount()+3);
+			//dw_cell.SetColumnCount(dw_cell.GetValidCol()+3);
+			dw_cell.SetRowColumn(row, colPurchPrice + 1);
+			dw_cell.SetAnchorRowColumn(row, colPurchPrice + 1);
+
+			SendCtrlCmd(dw_cell, L"xmFormatCellInsertCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellInsertCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellInsertCol");
+
+			dw_cell.SetItemString(headrow, colPurchPrice + 1, L"供应商1");
+			dw_cell.SetItemString(headrow, colPurchPrice + 2, L"类型1");
+			dw_cell.SetItemString(headrow, colPurchPrice + 3, L"价格1");
+			dw_cell.SetColumnWidth(colPurchPrice + 2, 0);
+		}
+		else if (colPurchPrice2 < 1)
+		{
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount()+3);
 			//dw_cell.SetColumnCount(dw_cell.GetValidCol()+3);
 			dw_cell.SetRowColumn(row, colPurchPrice1 + 1);
 			dw_cell.SetAnchorRowColumn(row, colPurchPrice1 + 1);
@@ -3387,10 +3567,11 @@
 			dw_cell.SetItemString(headrow, colPurchPrice1 + 1, L"供应商2");
 			dw_cell.SetItemString(headrow, colPurchPrice1 + 2, L"类型2");
 			dw_cell.SetItemString(headrow, colPurchPrice1 + 3, L"价格2");
+			dw_cell.SetColumnWidth(colPurchPrice1 + 2, 0);
 		}
-		else
+		else if(colPurchPrice3 < 1)
 		{
-			//dw_cell.SetColumnCount(dw_cell.GetColumnCount()+3);
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount()+3);
 			//dw_cell.SetColumnCount(dw_cell.GetValidCol()+3);
 			dw_cell.SetRowColumn(row, colPurchPrice2 + 1);
 			dw_cell.SetAnchorRowColumn(row, colPurchPrice2 + 1);
@@ -3402,6 +3583,61 @@
 			dw_cell.SetItemString(headrow, colPurchPrice2 + 1, L"供应商3");
 			dw_cell.SetItemString(headrow, colPurchPrice2 + 2, L"类型3");
 			dw_cell.SetItemString(headrow, colPurchPrice2 + 3, L"价格3");
+			dw_cell.SetColumnWidth(colPurchPrice2 + 2, 0);
+		}
+		return 1;
+	}
+
+	int OnDelBOMItem()
+	{
+		int startRow = getItemHeadRow(dw_cell);
+		int headrow = startRow;
+		if (startRow < 1) return 1;
+		startRow++;
+		int row = dw_cell.GetRow();
+
+		int colPurchPrice1 = getItemCol(dw_cell, headrow, L"价格1");
+		int colPurchPrice2 = getItemCol(dw_cell, headrow, L"价格2");
+		int colPurchPrice3 = getItemCol(dw_cell, headrow, L"价格3");
+		if (colPurchPrice3 > 0)
+		{
+			dw_cell.SetRowColumn(row, colPurchPrice3 - 2);
+			dw_cell.SetAnchorRowColumn(row, colPurchPrice3 - 2);
+
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount() - 3);
+			return 1;
+		}
+
+		if (colPurchPrice2 > 0)
+		{
+			dw_cell.SetRowColumn(row, colPurchPrice2 -2);
+			dw_cell.SetAnchorRowColumn(row, colPurchPrice2 -2);
+
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount() - 3);
+
+			return 1;
+		}
+
+		if (colPurchPrice1 > 0)
+		{
+			dw_cell.SetRowColumn(row, colPurchPrice1 - 2);
+			dw_cell.SetAnchorRowColumn(row, colPurchPrice1 - 2);
+
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+
+			dw_cell.SetColumnCount(dw_cell.GetColumnCount() - 3);
+
+			return 1;
 		}
 		return 1;
 	}
@@ -3410,6 +3646,7 @@
 	int OnCmdDispatch(xstring comdid)
 	{
 		if (comdid == L"xmAddBOMItem") return OnAddBOMItem();
+		if (comdid == L"xmDelBOMItem") return OnDelBOMItem();
 		if (comdid == L"xmQuoteBill")
 		{
 			if (dw_base.GetItemString(1, L"CustomerID") == L"")
@@ -3444,7 +3681,12 @@
 		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")
+		{
+			return OnPurch2();
 		}
 		else if (comdid == L"xmPurch")
 		{
@@ -3548,6 +3790,7 @@
 				}
 			}
 			SendCtrlCmd(dw_cell, cmd);
+			if (comdid == L"IK_xmEditCut"|| comdid == L"IK_xmEditCut")ReCalcPOPrice();
 			return 1;
 		}
 		else if (comdid == L"xmFormatCellDeleteRow")
@@ -3555,10 +3798,10 @@
 			if (action == L"purch")
 			{
 				int crow = dw_cell.GetRow();
-				xstring cmd = comdid.mid(3, comdid.length());
-				if (getRowID(dw_cell, crow) == L"") SendCtrlCmd(dw_cell, cmd);
+				if (getRowID(dw_cell, crow) == L"") SendCtrlCmd(dw_cell, comdid);
 				return 1;
 			}
+			return 1;
 		}
 		return 0;
 	}
@@ -3589,6 +3832,20 @@
 			xstring error = x.text();
 			alert(error);
 			return -1;
+		}
+		return 1;
+	}
+
+	int OnPurch2()
+	{
+		xaserverarg arg;
+		arg.AddArg(L"EntityID", entityID);
+		OpenWindow(L"dev:xpage[QuoteFilePurch2Select.vx]", arg);
+		xstring taskID = arg.GetArgString(L"TaskID");
+		xstring reason = arg.GetArgString(L"Reason");
+		if (taskID != L"")
+		{
+			ProcessSendMessage(L"/task/quote/repurch", taskID, reason, L"", true);
 		}
 		return 1;
 	}
@@ -3630,7 +3887,7 @@
 				dw_goods.SetItemString(i, L"ItemID", ItemID);
 				xstring Item = L"<Item update.new='1' update.modify='1' guid='" + ItemID + L"'>";
 				Item += L"<SKUID>" + ItemID + L"</SKUID>";
-				Item += L"<GoodsNo>" + dw_goods.GetItemString(i, L"GoodsNo") + L"</GoodsNo>";
+				Item += L"<GoodsNo>" + dw_goods.GetItemXmlString(i, L"GoodsNo") + L"</GoodsNo>";
 				xstring SKUNo = GetNo();
 				dw_goods.SetItemString(i, L"SKUNo", SKUNo);
 				dw_goods.Redraw();
@@ -3641,9 +3898,9 @@
 
 				Item += L"<No>" + SKUNo + L"</No>";
 				Item += L"<SKUNo>" + SKUNo + L"</SKUNo>";
-				Item += L"<CName>" + dw_goods.GetItemString(i, L"CName") + L"</CName>";
-				Item += L"<EName>" + dw_goods.GetItemString(i, L"ItemName") + L"</EName>";
-				Item += L"<Packing>" + dw_goods.GetItemString(i, L"Packing") + L"</Packing>";
+				Item += L"<CName>" + dw_goods.GetItemXmlString(i, L"CName") + L"</CName>";
+				Item += L"<EName>" + dw_goods.GetItemXmlString(i, L"ItemName") + L"</EName>";
+				Item += L"<Packing>" + dw_goods.GetItemXmlString(i, L"Packing") + L"</Packing>";
 
 				Item += L"<CategoryID>" + categoryID + L"</CategoryID>";
 				Item += L"<FolderID>" + folderID + L"</FolderID>";
@@ -3899,6 +4156,7 @@
 		ensureRowID();
 
 		xstring content = dw_cell.GetData();
+		string val = content.c_str();
 		content = content.mid(content.find(L"<xsheet"), 9999999);
 		while (true)
 		{
@@ -4074,10 +4332,10 @@
 
 		int colSaler = getItemCol(dw_cell, startRow - 1, L"业务员");
 
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 		int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
 
 		int colPONote = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
@@ -4087,8 +4345,8 @@
 
 		int colPOPhoto = getItemCol(dw_cell, startRow - 1, L"工厂图片");
 		int colPOPrice = getItemCol(dw_cell, startRow - 1, L"采购价");
-		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)L");
-		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)L");
+		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)");
+		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)");
 		int colSKUNo = getItemCol(dw_cell, startRow - 1, L"SKUID,SKUNo");
 
 		int purchremarkcol = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
@@ -4204,6 +4462,8 @@
 			else if (col == colTyp1 || col == colTyp || col == colTyp2 || col == colTyp3)
 			{
 				xstring pitems1 = L"";
+				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;&lt;/显示列&gt;&lt;数据列&gt;"
+					+ L"&lt;/数据列&gt;&lt;/row&gt;";
 				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;成品&lt;/显示列&gt;&lt;数据列&gt;"
 					+ L"成品&lt;/数据列&gt;&lt;/row&gt;";
 				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;散货&lt;/显示列&gt;&lt;数据列&gt;"
@@ -4260,17 +4520,17 @@
 		//int colToPODate = getItemCol(dw_cell,startRow - 1,L"业务发送采购时间");
 
 
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int colQtyPerPack = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外),装箱数(外/内)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 		int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
 
 		int colPONote = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colPOPhoto = getItemCol(dw_cell, startRow - 1, L"工厂图片");
 		int colPOPrice = getItemCol(dw_cell, startRow - 1, L"采购价");
-		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)L");
-		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)L");
+		int colNW = getItemCol(dw_cell, startRow - 1, L"毛重(KG)");
+		int colGW = getItemCol(dw_cell, startRow - 1, L"净重(KG)");
 		int colSKUNo = getItemCol(dw_cell, startRow - 1, L"SKUID,SKUNo");
 
 		dwhdr.idFrom = 0;
@@ -4320,7 +4580,7 @@
 			if (dw_cell.GetItemString(ARow, colItemNo) != L"")
 			{
 				xaserverarg argx ;
-				argx.setNativePointer(argx.CreateInstance());
+				
 				argx.AddArg(L"GoodsNo", dw_cell.GetItemString(ARow, colItemNo));
 				OpenWindow(L"dev:xpage[CustomerItemNoList.vx]", argx);
 				if (argx.GetArgString(L"action") != L"ok")
@@ -4458,6 +4718,8 @@
 			else if (col == colTyp1 || col == colTyp)
 			{
 				xstring pitems1 = L"";
+				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;&lt;/显示列&gt;&lt;数据列&gt;"
+					+ L"&lt;/数据列&gt;&lt;/row&gt;";
 				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;成品&lt;/显示列&gt;&lt;数据列&gt;"
 					+ L"成品&lt;/数据列&gt;&lt;/row&gt;";
 				pitems1 += (xstring)L"&lt;row&gt;&lt;显示列&gt;散货&lt;/显示列&gt;&lt;数据列&gt;"
@@ -4492,7 +4754,7 @@
 						{
 							alert(L"价格中没指定ABC");
 						}
-						price = price0 + L"+L" + price1;
+						price = price0 + L"+" + price1;
 					}
 					dw_cell.SetItemString(ARow, colPrice, price);
 				}
@@ -4602,13 +4864,14 @@
 		int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
 		int colBuyer = getItemCol(dw_cell, startRow - 1, L"采购人员");
 
+		int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
 		int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
 		int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
-		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)L");
-		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)L");
-		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)L");
-		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)L");
-		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)L");
+		int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+		int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+		int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+		int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+		int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
 		int colPurchedDate = getItemCol(dw_cell, startRow - 1, L"采购提交业务时间");
 		int colPhoto1 = getItemCol(dw_cell, startRow - 1, L"工厂图片");
 		//int colProductInfo = getItemCol(dw_cell,startRow - 1,L"产品信息");
@@ -4623,6 +4886,7 @@
 			KXMLDOMElement ele = items.item(i);
 			xstring rowid = ele.selectSingleNode(L"RowID").text();
 			xstring BuyerPrice = ele.selectSingleNode(L"BuyerPrice").text();
+			xstring BuyerMOQ = L"";
 			xstring BuyerRemark = L"";
 			xstring FactoryImage = L"";
 			xstring GWT = L"";
@@ -4637,6 +4901,7 @@
 			xstring  EnquiryLineID = L"";
 			xstring  Buyer = L"";
 
+			if (ele.selectSingleNode(L"BuyerMOQ")) BuyerMOQ = ele.selectSingleNode(L"BuyerMOQ").text();
 			if (ele.selectSingleNode(L"BuyerRemark")) BuyerRemark = ele.selectSingleNode(L"BuyerRemark").text();
 			if (ele.selectSingleNode(L"FactoryImage"))FactoryImage = ele.selectSingleNode(L"FactoryImage").text();
 			if (ele.selectSingleNode(L"GWT")) GWT = ele.selectSingleNode(L"GWT").text();
@@ -4645,7 +4910,7 @@
 			if (ele.selectSingleNode(L"Vol")) Vol = ele.selectSingleNode(L"Vol").text();
 			if (ele.selectSingleNode(L"F40HQ")) F40HQ = ele.selectSingleNode(L"F40HQ").text();
 			if (ele.selectSingleNode(L"PurchedDate")) PurchedDate = ele.selectSingleNode(L"PurchedDate").text();
-			trace(L"\r\n******" + PurchedDate);
+			//trace(L"\r\n******" + PurchedDate);
 			if (ele.selectSingleNode(L"supplier-photo")) supplierphoto = ele.selectSingleNode(L"supplier-photo").text();
 			if (ele.selectSingleNode(L"ProductInfo")) productInfo = ele.selectSingleNode(L"ProductInfo").text();
 			if (ele.selectSingleNode(L"ProductInfo1")) productInfo1 = ele.selectSingleNode(L"ProductInfo1").text();
@@ -4660,6 +4925,7 @@
 				if (getRowID(dw_cell, row) == rowid)
 				{
 					dw_cell.SetItemString(row, colBuyerPrice, BuyerPrice);
+					dw_cell.SetItemString(row, colBuyerMOQ, BuyerMOQ);
 					dw_cell.SetItemString(row, colBuyerRemark, BuyerRemark);
 					dw_cell.SetItemString(row, colFactoryImage, FactoryImage);
 					dw_cell.SetItemString(row, colGWT, GWT);
@@ -4724,6 +4990,182 @@
 		return 1;
 	}
 
+	xstring GetTryFirstAttr(xstring str, xstring term)
+	{
+		xstring foundStr = L" " + term + L"=";
+		wchar quote = L'"';
+		int pos = str.find(foundStr);
+		if (pos < 0) return L"";
+		pos += foundStr.length();
+		while (str.at(pos) == L' ')pos++;
+		if (str.at(pos) == L'\'')quote = L'\'';
+		int epos = ++pos;
+		while (str.at(epos) && str.at(epos) != quote)epos++;
+		if (!str.at(epos))return L"";
+		return str.mid(pos, epos - pos);
+	}
+
+	int AdjustView(xcell& dw_cell)
+	{
+		int startRow = getItemHeadRow(dw_cell);
+
+		//没有找到商品行的标题
+		if (startRow < 1) return 0;
+		startRow++;
+
+		int colItemDesc = getItemCol(dw_cell, startRow - 1, L"产品信息");
+		int colPhoto = getItemCol(dw_cell, startRow - 1, L"Photo");
+
+		bool newItemDesc = false;
+		if (colItemDesc < 0)
+		{
+			dw_cell.SetRowColumn(1, colPhoto+1);
+			dw_cell.SetAnchorRowColumn(1, colPhoto+1);
+			SendCtrlCmd(dw_cell, L"xmFormatCellInsertCol");
+
+			colItemDesc = colPhoto + 1;
+			dw_cell.SetItemString(startRow - 1, colItemDesc, L"产品信息");
+			newItemDesc = true;
+		}
+
+		if (newItemDesc)
+		{
+			int colSKUID = getItemCol(dw_cell, startRow - 1, L"SKUID");
+			int colItemNo = getItemCol(dw_cell, startRow - 1, L"我司型号,ItemNo");
+			int colCustomerItemNo = getItemCol(dw_cell, startRow - 1, L"客户型号,Customer ItemNo,Customer Item No");
+			int colItemName = getItemCol(dw_cell, startRow - 1, L"Product Description,Product Name,Item Name");
+			int colItemCName = getItemCol(dw_cell, startRow - 1, L"中文品名");
+			int colItemSpec = getItemCol(dw_cell, startRow - 1, L"Specifications,规格,产品规格");
+			int colBuyerPrice = getItemCol(dw_cell, startRow - 1, L"采购价,采购价格");
+			int colBuyer = getItemCol(dw_cell, startRow - 1, L"采购人员");
+			int colQty = getItemCol(dw_cell, startRow - 1, L"Qty");
+			int colPackage = getItemCol(dw_cell, startRow - 1, L"Package");
+			int colInnerOuter = getItemCol(dw_cell, startRow - 1, L"装箱数(内/外)");
+
+			int colBuyerMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
+			int colBuyerRemark = getItemCol(dw_cell, startRow - 1, L"采购To业务备注");
+			int colFactoryImage = getItemCol(dw_cell, startRow - 1, L"工厂图片");
+			int colGWT = getItemCol(dw_cell, startRow - 1, L"毛重,毛重(KG)");
+			int colNWT = getItemCol(dw_cell, startRow - 1, L"净重,净重(KG)");
+			int colVolDesc = getItemCol(dw_cell, startRow - 1, L"体积描述,长X宽X高,长X宽X高(CM)");
+			int colVol = getItemCol(dw_cell, startRow - 1, L"体积,体积(M3)");
+			int col40HQ = getItemCol(dw_cell, startRow - 1, L"40HQ,QTY(40HQ)");
+			int colPurchedDate = getItemCol(dw_cell, startRow - 1, L"采购提交业务时间");
+			int colPhoto1 = getItemCol(dw_cell, startRow - 1, L"工厂图片");
+			int colProductInfo = getItemCol(dw_cell, startRow - 1, L"业务部产品信息");
+			int colProductInfo1 = getItemCol(dw_cell, startRow - 1, L"采购部产品信息");
+
+			int colBOMType = getItemCol(dw_cell, startRow - 1, L"类型");
+			int colBOMType1 = getItemCol(dw_cell, startRow - 1, L"类型1");
+			int colSaler = getItemCol(dw_cell, startRow - 1, L"业务员");
+			int colSaletoBuyerRemark = getItemCol(dw_cell, startRow - 1, L"业务To采购备注");
+
+			int colSupplier1 = getItemCol(dw_cell, startRow - 1, L"供应商1");
+			int colBuyPrice1 = getItemCol(dw_cell, startRow - 1, L"价格1");
+
+			dw_cell.SetColumnWidth(colSKUID, 0);
+			dw_cell.SetColumnWidth(colItemNo, 0);
+			dw_cell.SetColumnWidth(colCustomerItemNo, 0);
+			dw_cell.SetColumnWidth(colItemName, 0);
+			dw_cell.SetColumnWidth(colItemCName, 0);
+			//dw_cell.SetColumnWidth(colBuyerRemark, 0);
+			dw_cell.SetColumnWidth(colPackage, 0);
+			dw_cell.SetColumnWidth(colQty, 0);
+			dw_cell.SetColumnWidth(col40HQ, 0);
+			dw_cell.SetColumnWidth(colInnerOuter, 0);
+			dw_cell.SetColumnWidth(colSaler, 0);
+			dw_cell.SetColumnWidth(colSaletoBuyerRemark, 0);
+			dw_cell.SetColumnWidth(colProductInfo, 0);
+			dw_cell.SetColumnWidth(colSaler, 0);
+
+			dw_cell.SetColumnWidth(colBOMType, 0);
+			dw_cell.SetColumnWidth(colBOMType1, 0);
+
+			dw_cell.SetColumnWidth(colItemDesc, 160);
+
+			bool bPrice1 = false;
+			for (int row = startRow; row <= dw_cell.GetValidRow(); row++)
+			{
+				if (dw_cell.GetItemString(row, colSKUID) != L"")
+				{
+					xstring itemDesc = L"SKUID:" + dw_cell.GetItemString(row, colSKUID);
+					if (dw_cell.GetItemString(row, colItemNo) != L"")
+						itemDesc += L"\r\nItem No: " + dw_cell.GetItemString(row, colItemNo);
+					if (dw_cell.GetItemString(row, colItemNo) != L"")
+						itemDesc += L"\r\nCustomer Item No: " + dw_cell.GetItemString(row, colCustomerItemNo);
+					if (dw_cell.GetItemString(row, colItemName) != L"")
+						itemDesc +=  L"\r\nItem Name:" + dw_cell.GetItemString(row, colItemName);
+					if (dw_cell.GetItemString(row, colItemCName) != L"")
+						itemDesc += L"\r\n产品名称:" + dw_cell.GetItemString(row, colItemCName);
+
+					if (dw_cell.GetItemString(row, colQty) != L"")
+						itemDesc += L"\r\n数量:" + dw_cell.GetItemString(row, colQty);
+					if (dw_cell.GetItemString(row, colPackage) != L"")
+						itemDesc += L"\r\n包装:" + dw_cell.GetItemString(row, colPackage);
+					if (dw_cell.GetItemString(row, colInnerOuter) != L"")
+						itemDesc += L"\r\n装箱数(内/外):" + dw_cell.GetItemString(row, colInnerOuter);
+
+					if (dw_cell.GetItemString(row, colProductInfo) != L"")
+						itemDesc += L"\r\n\r\n规格:\r\n" + dw_cell.GetItemString(row, colProductInfo);
+					if (dw_cell.GetItemString(row, colSaletoBuyerRemark) != L"")
+						itemDesc += L"\r\n\r\n采购要求:\r\n" + dw_cell.GetItemString(row, colSaletoBuyerRemark);
+					dw_cell.SetItemString(row, colItemDesc, itemDesc);
+
+					if (!bPrice1)
+					{
+						if (dw_cell.GetItemString(row, colSupplier1) != L"") bPrice1 = true;
+						else if (dw_cell.GetItemString(row, colBuyPrice1) != L"") bPrice1 = true;
+					}
+				}
+			}
+			if (!bPrice1 && colSupplier1 > 0)
+			{
+				dw_cell.SetRowColumn(1, colSupplier1);
+				dw_cell.SetAnchorRowColumn(1, colSupplier1);
+				SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+				SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+				SendCtrlCmd(dw_cell, L"xmFormatCellDeleteCol");
+			}
+
+			dw_cell.SetRowColumn(1, 1);
+			dw_cell.SetAnchorRowColumn(startRow - 2, 1);
+			SendCtrlCmd(dw_cell, L"xmEditCopy");
+
+			dw_cell.SetRowColumn(1, colPhoto);
+			dw_cell.SetAnchorRowColumn(startRow - 2, colPhoto);
+			SendCtrlCmd(dw_cell, L"xmEditPaste");
+
+			dw_cell.SetRowColumn(1, 2);
+			dw_cell.SetAnchorRowColumn(startRow - 2, 2);
+			SendCtrlCmd(dw_cell, L"xmEditCopy");
+
+			dw_cell.SetRowColumn(1, colPhoto+1);
+			dw_cell.SetAnchorRowColumn(startRow - 2, colPhoto+1);
+			SendCtrlCmd(dw_cell, L"xmEditPaste");
+
+			int colSaleSendDate = getItemCol(dw_cell, startRow - 1, L"业务发送采购时间");
+			dw_cell.SetItemString(2, colBuyerPrice, L"业务员");
+			dw_cell.SetItemString(3, colBuyerPrice, L"发送日期:");
+			dw_cell.SetItemString(2, colBuyerPrice+1, dw_cell.GetItemString(startRow, colSaler));
+			dw_cell.SetItemString(3, colBuyerPrice+1, dw_cell.GetItemString(startRow, colSaleSendDate));
+			dw_cell.SetColumnWidth(colSaleSendDate, 0);
+
+			int colMOQ = getItemCol(dw_cell, startRow - 1, L"MOQ");
+			int colSupplier = getItemCol(dw_cell, startRow - 1, L"供应商");
+			int colBuyPrice = getItemCol(dw_cell, startRow - 1, L"价格");
+
+			dw_cell.SetRowColumn(startRow, colSupplier);
+			dw_cell.SetAnchorRowColumn(startRow, colSupplier);
+
+			dw_cell.SetColumnWidth(colBuyerPrice, 50);
+			dw_cell.SetColumnWidth(colMOQ, 50);
+			dw_cell.SetColumnWidth(colBuyPrice, 50);
+		}
+		
+
+		return 1;
+	}
+
 	int onload()
 	{
 		SetArg();
@@ -4755,7 +5197,11 @@
 			x.loadXML(templ);
 			*/
 			action = L"purch";
-
+			action = GetTryFirstAttr(templ, L"action");
+			if (action == L"") action = L"purch";
+			entityItemID = GetTryFirstAttr(templ, L"TemplateItemID");
+			if (entityItemID == L"")entityItemID = GetTryFirstAttr(templ, L"ItemID");
+#if 0
 			if (templ.find(L"action=\"") >= 0)
 			{
 				action = templ.mid(templ.find(L"action=\"") + 8, templ.find(L"\"", templ.find(L"action=\"") + 8) - (templ.find(L"action=\"") + 8));
@@ -4772,7 +5218,7 @@
 					entityItemID = templ.mid(templ.find(L" ItemID=\"") + 9, templ.find(L"\"", templ.find(L" ItemID=\"") + 9) - (templ.find(L" ItemID=\"") + 9));
 				}
 			}
-
+#endif
 			/*action = x.documentElement.getAttribute(L"action");
 			if(action==L"") action=L"purch";
 			entityItemID = x.documentElement.getAttribute(L"TemplateItemID");
@@ -4860,10 +5306,12 @@
 		{
 			xnode anode = GetAgentNode(L"tabheader");
 			anode.SetLayerFlow(0x00000100);
-			dw_cell.SetColumnCount(dw_cell.GetValidCol() + 6);
+			dw_cell.SetColumnCount(dw_cell.GetValidCol() + 9);
+			//dw_cell.SetFixedCols(7);
+			AdjustView(dw_cell);
 		}
 		else
-			dw_cell.SetColumnCount(dw_cell.GetValidCol());
+			dw_cell.SetColumnCount(dw_cell.GetValidCol()+3);
 
 		//OnRetrieve();
 
@@ -4901,8 +5349,8 @@
 					if (hasParty(dw_cell.GetItemString(row, colSupplier)) == false)
 					{
 						itemStr += L"<Item update.new='1' update.modify='1'>";
-						itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier) + L"</Name>";
-						itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier) + L"</ShortName>";
+						itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</Name>";
+						itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier) + L"</ShortName>";
 						itemStr += L"</Item>";
 					}
 				}
@@ -4914,8 +5362,8 @@
 					if (hasParty(dw_cell.GetItemString(row, colSupplier1)) == false)
 					{
 						itemStr += L"<Item update.new='1' update.modify='1'>";
-						itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier1) + L"</Name>";
-						itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier1) + L"</ShortName>";
+						itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</Name>";
+						itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier1) + L"</ShortName>";
 						itemStr += L"</Item>";
 					}
 				}
@@ -4927,8 +5375,8 @@
 					if (hasParty(dw_cell.GetItemString(row, colSupplier2)) == false)
 					{
 						itemStr += L"<Item update.new='1' update.modify='1'>";
-						itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier2) + L"</Name>";
-						itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier2) + L"</ShortName>";
+						itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier2) + L"</Name>";
+						itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier2) + L"</ShortName>";
 						itemStr += L"</Item>";
 					}
 				}
@@ -4940,8 +5388,8 @@
 					if (hasParty(dw_cell.GetItemString(row, colSupplier3)) == false)
 					{
 						itemStr += L"<Item update.new='1' update.modify='1'>";
-						itemStr += L"<Name>" + dw_cell.GetItemString(row, colSupplier3) + L"</Name>";
-						itemStr += L"<ShortName>" + dw_cell.GetItemString(row, colSupplier3) + L"</ShortName>";
+						itemStr += L"<Name>" + dw_cell.GetItemXmlString(row, colSupplier3) + L"</Name>";
+						itemStr += L"<ShortName>" + dw_cell.GetItemXmlString(row, colSupplier3) + L"</ShortName>";
 						itemStr += L"</Item>";
 					}
 				}
@@ -4984,7 +5432,7 @@
 
 	int LoadPurcher()
 	{
-		xml purcher ;
+		//xml purcher ;
 		xaserverarg arg ;
 		
 		arg.AddArg(L"id", L"采购员");

--
Gitblit v1.9.3