ソースを参照

浙江电子标:计日工编号字段名不统一问题。

chenshilong 1 ヶ月 前
コミット
ba871fabde
1 ファイル変更12 行追加6 行削除
  1. 12 6
      MainModule/Model/ScXMLPort.pas

+ 12 - 6
MainModule/Model/ScXMLPort.pas

@@ -1426,9 +1426,9 @@ begin
 end;
 
 
-procedure TXMLPort.RcsvImpDayWorks(AProject: TObject;
-  AParentItem: TScBillsItem; ANode: TXmlNode);
-  function AddDayWrokMX(AProject: TObject; AParentItem: TScBillsItem; ANode: TXmlNode): TScBillsItem;
+procedure TXMLPort.RcsvImpDayWorks(AProject: TObject; AParentItem: TScBillsItem; ANode: TXmlNode);
+
+  function AddDayWrokMX(AProject: TObject; AParentItem: TScBillsItem; ANode: TXmlNode; ACodeFiledName: string): TScBillsItem;
   var ID: Integer;
     sDataType: string;
   begin
@@ -1450,7 +1450,7 @@ procedure TXMLPort.RcsvImpDayWorks(AProject: TObject;
     with Result.Rec do
     begin
       BeginUpdate;
-      Code.AsString := ANode.AttributeValueByNameUTF8['序号'];
+      Code.AsString := ANode.AttributeValueByNameUTF8[ACodeFiledName];
       Name.AsString := ANode.AttributeValueByNameUTF8['名称'];
       TotalPrice.AsString := ANode.AttributeValueByNameUTF8['合价'];
       Quantity.AsString := ANode.AttributeValueByNameUTF8['暂定数量'];
@@ -1462,13 +1462,19 @@ procedure TXMLPort.RcsvImpDayWorks(AProject: TObject;
 
 var i: Integer;
   vItem: TScBillsItem;
+  sName, sCodeFiledName: string;
 begin
   if not Assigned(ANode) then Exit;
 
-  if (Utf8ToAnsi(ANode.Name) <> '计日工信息标题') and (Utf8ToAnsi(ANode.Name) <> '计日工信息明细') then Exit;
+  sName := Utf8ToAnsi(ANode.Name);
+  if (sName <> '计日工信息标题') and (sName <> '计日工信息明细') then Exit;
   if (ANode.AttributeValueByNameUTF8['数据类型'] <> '0') then   // 计日工这条重复。且招标文件这里的计日工第一层是平级,无树结构。
   begin
-    vItem := AddDayWrokMX(AProject, AParentItem, ANode);
+    if sName = '计日工信息标题' then
+      sCodeFiledName := '序号'
+    else
+      sCodeFiledName := '编号';
+    vItem := AddDayWrokMX(AProject, AParentItem, ANode, sCodeFiledName);
   end;
 
   if Assigned(ANode.Elements[0]) then