Browse Source

BUG #1593 标段中清单编号带x的,数据库不识别

MaiXinRong 6 years ago
parent
commit
9610151e8a
1 changed files with 24 additions and 1 deletions
  1. 24 1
      Units/UtilMethods.pas

+ 24 - 1
Units/UtilMethods.pas

@@ -799,6 +799,29 @@ begin
 end;
 end;
 
 
 function B_CodeToIndexCode(const AB_Code: string): string;
 function B_CodeToIndexCode(const AB_Code: string): string;
+
+  procedure Filter(const AStr: string; var ANum, AError: Integer);
+  var
+    i: Integer;
+    sPart: string;
+  begin
+    sPart := '';
+    AError := 0;
+    for i := 1 to Length(AStr) do
+    begin
+      if AStr[i] in ['0'..'9'] then
+      begin
+        sPart := sPart + AStr[i];
+      end
+      else
+      begin
+        AError := i;
+        Break;
+      end;
+    end;
+    ANum := StrToIntDef(sPart, 0);
+  end;
+
 var
 var
   sgs: TStrings;
   sgs: TStrings;
   i, iNum, iError: Integer;
   i, iNum, iError: Integer;
@@ -811,7 +834,7 @@ begin
     sgs.DelimitedText := AB_Code;
     sgs.DelimitedText := AB_Code;
     for i := 0 to sgs.Count - 1 do
     for i := 0 to sgs.Count - 1 do
     begin
     begin
-      Val(sgs[i], iNum, iError);
+      Filter(sgs[i], iNum, iError);
       if iError = 0 then
       if iError = 0 then
         sError := ''
         sError := ''
       else
       else