Просмотр исходного кода

Merge branch '10.1.0' of http://112.74.42.187:26903/smartcost/smartcost into 10.1.0

JimiZhang 1 месяц назад
Родитель
Сommit
e253826d75
38 измененных файлов с 293 добавлено и 75 удалено
  1. 6 0
      .gitignore
  2. 28 1
      Common/ScUtils.pas
  3. 2 2
      DPRs/CSL/SmartCost.dof
  4. BIN
      DPRs/CSL/SmartCost.res
  5. 2 2
      DPRs/CSL/SmartCost_GuangDong.dof
  6. BIN
      DPRs/CSL/SmartCost_GuangDong.res
  7. 2 2
      DPRs/FixedPro/SmartCost_Bills.dof
  8. 4 1
      DPRs/FixedPro/SmartCost_Bills.dpr
  9. BIN
      DPRs/FixedPro/SmartCost_Bills.res
  10. 2 2
      DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.dof
  11. 4 1
      DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.dpr
  12. BIN
      DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.res
  13. 2 2
      DPRs/Pro/SmartCost.dof
  14. BIN
      DPRs/Pro/SmartCost.res
  15. 13 12
      DPRs/Pro/SmartCost_ChongQing.dof
  16. BIN
      DPRs/Pro/SmartCost_ChongQing.res
  17. 2 2
      DPRs/Pro/SmartCost_GuangDong.dof
  18. BIN
      DPRs/Pro/SmartCost_GuangDong.res
  19. 2 2
      DPRs/Pro/SmartCost_GuangDong_Net.dof
  20. BIN
      DPRs/Pro/SmartCost_GuangDong_Net.res
  21. 2 2
      DPRs/Pro/SmartCost_NAL.dof
  22. BIN
      DPRs/Pro/SmartCost_NAL.res
  23. 2 2
      DPRs/Pro/SmartCost_Net.dof
  24. BIN
      DPRs/Pro/SmartCost_Net.res
  25. 2 2
      DPRs/ProjectPro/SmartCost.dof
  26. BIN
      DPRs/ProjectPro/SmartCost.res
  27. 16 13
      DPRs/ProjectPro/SmartCost_ChongQing.dof
  28. BIN
      DPRs/ProjectPro/SmartCost_ChongQing.res
  29. 2 2
      DPRs/ProjectPro/SmartCost_GuangDong.dof
  30. BIN
      DPRs/ProjectPro/SmartCost_GuangDong.res
  31. 2 2
      DPRs/Trail/SmartCost.cfg
  32. 4 3
      DPRs/Trail/SmartCost.dof
  33. 6 1
      DPRs/Trail/SmartCost.dpr
  34. BIN
      DPRs/Trail/SmartCost.res
  35. 151 3
      MainModule/Model/ScXMLPort.pas
  36. 1 0
      MainUI/Forms/ScMainFrm.pas
  37. 13 13
      MainUI/ProjectManage/ScBigProjManageView.dfm
  38. 23 3
      MainUI/ProjectManage/ScBigProjManageView.pas

+ 6 - 0
.gitignore

@@ -22,3 +22,9 @@
 /Utils/MySQL_ServerManager/MySQL_ServerManager_Exe/ServerManager.exe
 *.bak
 /SQL/*.bak
+/GTAGS
+/GLIST
+/GPATH
+/GRTAGS
+/.vscode/GTEMP.pas
+/.vscode/settings.json

+ 28 - 1
Common/ScUtils.pas

@@ -5,7 +5,7 @@ interface
 uses
   Classes, SysUtils, Variants, Forms, StdCtrls, Types, Dialogs, Graphics,
   Windows, Controls, Messages, StrUtils, Math, ScMessage, ScConsts, DBClient,
-  Registry, ShlObj, ShellAPI, IniFiles, DB, TLHelp32, ADODB, WinSock, sdDB;
+  Registry, ShlObj, ShellAPI, IniFiles, DB, TLHelp32, ADODB, WinSock, sdDB, VCLUnZip;
 
 type
   TUniqueIdGenerator = class(TObject)
@@ -580,6 +580,7 @@ var
 
 function DeleteFolder(const AFolder: string; AToRecycleBin: Boolean = False): Boolean;
 function CopyFolder(const ASourceFolder, ATargetFolder: string): Boolean;
+function UnZip(const zipFile: string): string;  // 返回解压后的文件(只返回一个解压文件。如果有多个,则指定一个返回)
 
 implementation
 
@@ -6614,4 +6615,30 @@ begin
   Result := iAllLength;
 end;
 
+
+function UnZip(const zipFile: string): string;
+var
+  vUnZip: TVCLUnZip;
+  sPath: string;
+  i: Integer;
+begin
+  Result := '';
+  sPath := ExtractFilePath(zipFile);
+  vUnZip := TVCLUnZip.Create(nil);
+  try
+    vUnZip.ZipName := zipFile;
+//    vUnZip.Password := '1234578';
+    vUnZip.DestDir := sPath;
+    vUnZip.DoAll := True;
+    vUnZip.RecreateDirs := True;
+    vUnZip.RetainAttributes := True;
+    vUnZip.OverwriteMode := Always;
+    i := vUnZip.UnZip;
+    if i > 0 then
+      Result := sPath + 'main.xml';
+  finally
+    vUnZip.Free;
+  end;
+end;
+
 end.

+ 2 - 2
DPRs/CSL/SmartCost.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=1
 Release=4
-Build=495
+Build=497
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2008专业版
-FileVersion=10.1.4.495
+FileVersion=10.1.4.497
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2016。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/CSL/SmartCost.res


+ 2 - 2
DPRs/CSL/SmartCost_GuangDong.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=2
 Release=613
-Build=118
+Build=119
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=广东公路造价编审系统
-FileVersion=10.2.613.118
+FileVersion=10.2.613.119
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2014。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/CSL/SmartCost_GuangDong.res


+ 2 - 2
DPRs/FixedPro/SmartCost_Bills.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=51
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018招投标版
-FileVersion=10.3.0.51
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2019。保留所有权利。
 LegalTrademarks=SmartCost

+ 4 - 1
DPRs/FixedPro/SmartCost_Bills.dpr

@@ -275,7 +275,10 @@ uses
   ScSelectBillsLevelFrm in '..\..\MainModule\UI\ScSelectBillsLevelFrm.pas' {SelectBillsLevelForm},
   ScCheckBillsFrm in '..\..\MainModule\UI\ScCheckBillsFrm.pas' {ScCheckBillsForm},
   ScCheckNullRationFrm in '..\..\MainModule\UI\ScCheckNullRationFrm.pas' {CheckNullRationForm},
-  ScCheckNoPriceProjectGLJFrm in '..\..\MainModule\UI\ScCheckNoPriceProjectGLJFrm.pas' {CheckNoPriceProjectGLJForm};
+  ScCheckNoPriceProjectGLJFrm in '..\..\MainModule\UI\ScCheckNoPriceProjectGLJFrm.pas' {CheckNoPriceProjectGLJForm},
+  ScTenderKindSelectFrm in '..\..\MainUI\Forms\ScTenderKindSelectFrm.pas' {ScTenderKindSelectForm},
+  ScXMLToBuildProject in '..\..\MainModule\Model\ScXMLToBuildProject.pas' {ScExportPDF_ZheJiang: TDataModule},
+  ScImportZheJiangXMLFrm in '..\..\MainModule\UI\ScImportZheJiangXMLFrm.pas' {ScImportZheJiangXMLForm};
 
 {$R *.res}
 

BIN
DPRs/FixedPro/SmartCost_Bills.res


+ 2 - 2
DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=51
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018招投标版
-FileVersion=10.3.0.51
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2019。保留所有权利。
 LegalTrademarks=SmartCost

+ 4 - 1
DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.dpr

@@ -275,7 +275,10 @@ uses
   ScSelectBillsLevelFrm in '..\..\MainModule\UI\ScSelectBillsLevelFrm.pas' {SelectBillsLevelForm},
   ScCheckBillsFrm in '..\..\MainModule\UI\ScCheckBillsFrm.pas' {ScCheckBillsForm},
   ScCheckNoPriceProjectGLJFrm in '..\..\MainModule\UI\ScCheckNoPriceProjectGLJFrm.pas' {CheckNoPriceProjectGLJForm},
-  ScCheckNullRationFrm in '..\..\MainModule\UI\ScCheckNullRationFrm.pas' {CheckNullRationForm};
+  ScCheckNullRationFrm in '..\..\MainModule\UI\ScCheckNullRationFrm.pas' {CheckNullRationForm},
+  ScTenderKindSelectFrm in '..\..\MainUI\Forms\ScTenderKindSelectFrm.pas' {ScTenderKindSelectForm},
+  ScImportZheJiangXMLFrm in '..\..\MainModule\UI\ScImportZheJiangXMLFrm.pas' {ScImportZheJiangXMLForm},
+  ScXMLToBuildProject in '..\..\MainModule\Model\ScXMLToBuildProject.pas' {ScExportPDF_ZheJiang: TDataModule};
 
 {$R *.res}
 

BIN
DPRs/FixedPro/SmartCost_Bills_Fixed_Crack.res


+ 2 - 2
DPRs/Pro/SmartCost.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2025。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/Pro/SmartCost.res


+ 13 - 12
DPRs/Pro/SmartCost_ChongQing.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost
@@ -138,17 +138,18 @@ Comments=
 e:\program files (x86)\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package
 E:\SmartCost\Components\Lib\VCLZipD7_3.bpl=VCLZip Pro
 [HistoryLists\hlConditionals]
-Count=10
+Count=11
 Item0=_ScYS2007;_ScEncrypt;_ScChongQing
-Item1=_ScYS2007;_ScEncrypt;
-Item2=_ScYS2007;_ScEncrypt1;_ScOnline1;
-Item3=_ScYS2007;_ScEncrypt1;_ScOnline;
-Item4=_ScYS2007;_ScEncrypt;_ScOnline1;
-Item5=_ScYS2007;_ScOnline;
-Item6=_ScYS2007;_ScEncrypt;_ScOnline;
-Item7=_ScYS2007;_ScEncrypt
-Item8=_ScYS2007;_ScEncrypt;_ScGuangDong
-Item9=_ScYS2007;_ScEncrypt;_ScNet
+Item1=_ScYS2007;_ScEncrypt1;_ScChongQing
+Item2=_ScYS2007;_ScEncrypt;
+Item3=_ScYS2007;_ScEncrypt1;_ScOnline1;
+Item4=_ScYS2007;_ScEncrypt1;_ScOnline;
+Item5=_ScYS2007;_ScEncrypt;_ScOnline1;
+Item6=_ScYS2007;_ScOnline;
+Item7=_ScYS2007;_ScEncrypt;_ScOnline;
+Item8=_ScYS2007;_ScEncrypt
+Item9=_ScYS2007;_ScEncrypt;_ScGuangDong
+Item10=_ScYS2007;_ScEncrypt;_ScNet
 [HistoryLists\hlUnitAliases]
 Count=1
 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

BIN
DPRs/Pro/SmartCost_ChongQing.res


+ 2 - 2
DPRs/Pro/SmartCost_GuangDong.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=广东公路造价编审系统
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/Pro/SmartCost_GuangDong.res


+ 2 - 2
DPRs/Pro/SmartCost_GuangDong_Net.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=广东公路造价编审系统
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/Pro/SmartCost_GuangDong_Net.res


+ 2 - 2
DPRs/Pro/SmartCost_NAL.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2025。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/Pro/SmartCost_NAL.res


+ 2 - 2
DPRs/Pro/SmartCost_Net.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018多用户专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2025。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/Pro/SmartCost_Net.res


+ 2 - 2
DPRs/ProjectPro/SmartCost.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018项目专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/ProjectPro/SmartCost.res


+ 16 - 13
DPRs/ProjectPro/SmartCost_ChongQing.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2018项目专业版
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost
@@ -138,18 +138,21 @@ Comments=
 e:\program files (x86)\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package
 E:\SmartCost\Components\Lib\VCLZipD7_3.bpl=VCLZip Pro
 [HistoryLists\hlConditionals]
-Count=11
+Count=14
 Item0=_ScYS2007;_ScEncrypt;_ScChongQing;_ScProjectProfessional
-Item1=_ScYS2007;_ScEncrypt;_ScChongQing
-Item2=_ScYS2007;_ScEncrypt;
-Item3=_ScYS2007;_ScEncrypt1;_ScOnline1;
-Item4=_ScYS2007;_ScEncrypt1;_ScOnline;
-Item5=_ScYS2007;_ScEncrypt;_ScOnline1;
-Item6=_ScYS2007;_ScOnline;
-Item7=_ScYS2007;_ScEncrypt;_ScOnline;
-Item8=_ScYS2007;_ScEncrypt
-Item9=_ScYS2007;_ScEncrypt;_ScGuangDong
-Item10=_ScYS2007;_ScEncrypt;_ScNet
+Item1=_ScYS2007;_ScEncrypt1;_ScChongQing;_ScProjectProfessional
+Item2=_ScYS2007;_ScEncrypt1;_ScChongQing;_ScProjectProfessional;_ScNoRemotePriceDiff
+Item3=_ScYS2007;_ScEncrypt;_ScChongQing;_ScProjectProfessional;_ScNoRemotePriceDiff
+Item4=_ScYS2007;_ScEncrypt;_ScChongQing
+Item5=_ScYS2007;_ScEncrypt;
+Item6=_ScYS2007;_ScEncrypt1;_ScOnline1;
+Item7=_ScYS2007;_ScEncrypt1;_ScOnline;
+Item8=_ScYS2007;_ScEncrypt;_ScOnline1;
+Item9=_ScYS2007;_ScOnline;
+Item10=_ScYS2007;_ScEncrypt;_ScOnline;
+Item11=_ScYS2007;_ScEncrypt
+Item12=_ScYS2007;_ScEncrypt;_ScGuangDong
+Item13=_ScYS2007;_ScEncrypt;_ScNet
 [HistoryLists\hlUnitAliases]
 Count=1
 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

BIN
DPRs/ProjectPro/SmartCost_ChongQing.res


+ 2 - 2
DPRs/ProjectPro/SmartCost_GuangDong.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=81
+Build=101
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=广东公路造价编审系统
-FileVersion=10.3.0.81
+FileVersion=10.3.0.101
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost

BIN
DPRs/ProjectPro/SmartCost_GuangDong.res


+ 2 - 2
DPRs/Trail/SmartCost.cfg

@@ -33,8 +33,8 @@
 -K$00400000
 -E"E:\smartcostexe2\TrailExe10.1"
 -N"E:\DelphiTemp"
--LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
--LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
+-LE"e:\program files (x86)\borland\delphi7\Projects\Bpl"
+-LN"e:\program files (x86)\borland\delphi7\Projects\Bpl"
 -D_ScYS2007;_ScNoRemotePriceDiff
 -w-SYMBOL_DEPRECATED
 -w-SYMBOL_LIBRARY

+ 4 - 3
DPRs/Trail/SmartCost.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=10
 MinorVer=3
 Release=0
-Build=1302
+Build=96
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=SmartCost 2025高校教学版
-FileVersion=10.3.0.1302
+FileVersion=10.3.0.96
 InternalName=SmartCost
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2024。保留所有权利。
 LegalTrademarks=SmartCost
@@ -135,7 +135,8 @@ ProductName=
 ProductVersion=10
 Comments=
 [Excluded Packages]
-C:\Code\SmartCost\Components\Lib\VCLZipD7_3.bpl=VCLZip Pro
+e:\program files (x86)\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package
+E:\SmartCost\Components\Lib\VCLZipD7_3.bpl=VCLZip Pro
 [HistoryLists\hlConditionals]
 Count=10
 Item0=_ScYS2007;_ScNoRemotePriceDiff

+ 6 - 1
DPRs/Trail/SmartCost.dpr

@@ -274,7 +274,12 @@ uses
   ScUniExpression in '..\..\MainModule\Model\ScUniExpression.pas',
   ScXXItemFrm in '..\..\MainModule\UI\ScXXItemFrm.pas' {ScXXItemForm},
   ScSelectBillsLevelFrm in '..\..\MainModule\UI\ScSelectBillsLevelFrm.pas' {SelectBillsLevelForm},
-  ScCheckBillsFrm in '..\..\MainModule\UI\ScCheckBillsFrm.pas' {ScCheckBillsForm};
+  ScCheckBillsFrm in '..\..\MainModule\UI\ScCheckBillsFrm.pas' {ScCheckBillsForm},
+  ScTenderKindSelectFrm in '..\..\MainUI\Forms\ScTenderKindSelectFrm.pas' {ScTenderKindSelectForm},
+  ScXMLToBuildProject in '..\..\MainModule\Model\ScXMLToBuildProject.pas' {ScExportPDF_ZheJiang: TDataModule},
+  ScImportZheJiangXMLFrm in '..\..\MainModule\UI\ScImportZheJiangXMLFrm.pas' {ScImportZheJiangXMLForm},
+  ScCheckNullRationFrm in '..\..\MainModule\UI\ScCheckNullRationFrm.pas' {CheckNullRationForm},
+  ScCheckNoPriceProjectGLJFrm in '..\..\MainModule\UI\ScCheckNoPriceProjectGLJFrm.pas' {CheckNoPriceProjectGLJForm};
 
 {$R *.res}
 

BIN
DPRs/Trail/SmartCost.res


+ 151 - 3
MainModule/Model/ScXMLPort.pas

@@ -242,6 +242,7 @@ type
     // 全国接口导出文件,多标段的结构是打平的,如:标段1的<Rate>、<Pract>、<EprjInfo>,标段2的<Rate>、<Pract>、<EprjInfo>。
     procedure FillData3(AProject: TObject; AProjectRootNode, AFeeRateRootNode, AProjGLJRootNode: TXmlNode);
     procedure ImpFeeRate(AProject: TObject; AFeeRateRootNode: TXmlNode);
+    procedure ImpProjectGLJ(AProject: TObject; AProjGLJRootNode: TXmlNode);
 
   end;
 
@@ -441,7 +442,7 @@ uses ScProject, ProjectsDM,
   SysInfoUnit, ScProjectRationLibsUnit, ScXMLPortMap, ScTypes,
   VCLUnZip, VCLZip, EncdDecd, Controls, ShellAPI, Windows, ScExprs, PerlRegEx,
   Math, CslTimeDebug, ScRAdjusts, ScGLJ, ScXMLConsts, ScProjList, CLD_DogNoBySerialNo,
-  ScDigitManagerUnit, TypInfo, ScFeeRate;
+  ScDigitManagerUnit, TypInfo, ScFeeRate, ScProjectGLJ;
 
 
  
@@ -3453,6 +3454,8 @@ begin
 
     // 导入费率
     ImpFeeRate(AProject, AFeeRateRootNode);
+    // 导入项目工料机
+    ImpProjectGLJ(AProject, AProjGLJRootNode);
 
     with TScProject(AProject).Bills do
     begin
@@ -3472,7 +3475,7 @@ begin
       TScProject(AProject).Bills.CalculateAll;
       // 最后存储
       TScProjBaseData(TScProject(AProject).ProjData).Save;
-    end;
+    end;    
   finally
     TScProject(AProject).RealTimeCalc := OldRealTimeCalc;
   end;
@@ -3565,7 +3568,7 @@ begin
         if cdsFeeParams.Locate('ID', iID, []) then
         begin
           cdsFeeParams.Edit;
-          cdsFeeParamsParam.AsInteger := StrToInt(sValue);
+          cdsFeeParamsParam.AsFloat := StrToFloat(sValue);
           cdsFeeParamsCaption.AsString := sCaption;
           cdsFeeParams.Post;
         end;
@@ -3638,6 +3641,151 @@ begin
   end;
 end;
 
+procedure TQGXMLPort.ImpProjectGLJ(AProject: TObject; AProjGLJRootNode: TXmlNode);
+var
+  vPractNode, vGroupNode, vNode: TXmlNode;
+  I: Integer;
+  vProjectGLJ: TProjectGLJ;
+
+  function NodeV(ANode: TXmlNode; const AName: string): string;
+  begin
+    Result := ANode.AttributeValueByNameUTF8[AName];
+  end;
+
+  function EnsureGLJ(ANode: TXmlNode; ADefaultType: Integer): TScProjectGLJRecord;
+  var
+    iLibID: Integer;
+    sCode, sName, sSpec, sUnit: string;
+  begin
+    Result := nil;
+    sCode := NodeV(ANode, 'Code');
+    if sCode = '' then Exit;
+
+    sName := NodeV(ANode, 'PractName');
+    sSpec := NodeV(ANode, 'Spec');
+    sUnit := NodeV(ANode, 'Unit');
+
+    Result := vProjectGLJ.LocateGLJOnlyByCode(sCode);
+    if Result = nil then
+    begin
+      iLibID := -1;
+      Result := vProjectGLJ.AddGLJFromLibRec(iLibID, CombineGLJKeys(sCode, sName, sSpec, sUnit), True);
+    end;
+
+    if Result = nil then
+    begin
+      Result := vProjectGLJ.NewRecord;
+      try
+        Result.Code.AsString := sCode;
+        Result.Name.AsString := sName;
+        Result.Specs.AsString := sSpec;
+        Result.Units.AsString := sUnit;
+        Result.Main.AsBoolean := False;
+        Result.New.AsBoolean := False;
+        Result.Amount.AsCurrency := 0;
+        Result.PeriodQtyCoe.AsFloat := 1;
+        Result.Types.AsInteger := ADefaultType;
+        Result.CalculateType.AsInteger := 0;
+        Result.SortParam.AsInteger := 0;
+        if ADefaultType = GLJ_Concrete then
+          Result.TypeSort.AsInteger := 20
+        else
+          Result.TypeSort.AsInteger := ADefaultType;
+      finally
+        Result.EndUpdate;
+      end;
+    end;
+  end;
+
+  procedure ImpOne(ANode: TXmlNode; ADefaultType: Integer);
+  var
+    vRec: TScProjectGLJRecord;
+    sBudget, sNorm, sNum, sIsAdd: string;
+  begin
+    vRec := EnsureGLJ(ANode, ADefaultType);
+    if vRec = nil then Exit;
+
+    sBudget := NodeV(ANode, 'BudgetPrice');
+    sNorm := NodeV(ANode, 'NormPrice');
+    sNum := NodeV(ANode, 'Num');
+    sIsAdd := NodeV(ANode, 'IsAdd');
+
+    vRec.BeginUpdate;
+    try
+      vRec.Code.AsString := NodeV(ANode, 'Code');
+      vRec.Name.AsString := NodeV(ANode, 'PractName');
+      vRec.Specs.AsString := NodeV(ANode, 'Spec');
+      vRec.Units.AsString := NodeV(ANode, 'Unit');
+
+      if sBudget <> '' then
+        vRec.BudgetPrice.AsCurrency := StrToFloatDef(sBudget, vRec.BudgetPrice.AsCurrency);
+      if sNorm <> '' then
+        vRec.BasePrice.AsCurrency := StrToFloatDef(sNorm, vRec.BasePrice.AsCurrency);
+      if sNum <> '' then
+        vRec.Amount.AsCurrency := StrToFloatDef(sNum, vRec.Amount.AsCurrency);
+      if sIsAdd <> '' then
+        vRec.New.AsBoolean := SameText(sIsAdd, '1') or SameText(sIsAdd, 'true');
+
+      if vRec.Types.AsInteger = 0 then
+        vRec.Types.AsInteger := ADefaultType;
+      if vRec.TypeSort.AsInteger = 0 then
+      begin
+        if vRec.Types.AsInteger = GLJ_Concrete then
+          vRec.TypeSort.AsInteger := 20
+        else
+          vRec.TypeSort.AsInteger := vRec.Types.AsInteger;
+      end;
+    finally
+      vRec.EndUpdate;
+    end;
+
+    vProjectGLJ.SyncGLJRationPrice(vRec, True);
+    vProjectGLJ.SyncGLJPrice(vRec, True, False, True);
+  end;
+
+begin
+  if not Assigned(AProjGLJRootNode) then Exit;
+  vProjectGLJ := TScProject(AProject).ProjectGLJ;
+
+  vPractNode := AProjGLJRootNode;
+  if not SameText(Utf8ToAnsi(vPractNode.Name), 'Pract') then
+    vPractNode := AProjGLJRootNode.FindNodeUTF8('Pract');
+  if vPractNode = nil then Exit;
+
+  vGroupNode := vPractNode.FindNodeUTF8('Mps');
+  if vGroupNode <> nil then
+  begin
+    for I := 0 to vGroupNode.ElementCount - 1 do
+    begin
+      vNode := vGroupNode.Elements[I];
+      if SameText(Utf8ToAnsi(vNode.Name), 'Mp') then
+        ImpOne(vNode, GLJ_Labour);
+    end;
+  end;
+
+  vGroupNode := vPractNode.FindNodeUTF8('Materials');
+  if vGroupNode <> nil then
+  begin
+    for I := 0 to vGroupNode.ElementCount - 1 do
+    begin
+      vNode := vGroupNode.Elements[I];
+      if SameText(Utf8ToAnsi(vNode.Name), 'Material') then
+        ImpOne(vNode, GLJ_Material);
+    end;
+  end;
+
+  vGroupNode := vPractNode.FindNodeUTF8('Mechs');
+  if vGroupNode <> nil then
+  begin
+    for I := 0 to vGroupNode.ElementCount - 1 do
+    begin
+      vNode := vGroupNode.Elements[I];
+      if SameText(Utf8ToAnsi(vNode.Name), 'Mech') then
+        ImpOne(vNode, GLJ_Machine);
+    end;
+  end;
+end;
+
 {TZTBXMLPort}
 
 procedure TZTBXMLPort.AddNodes;

+ 1 - 0
MainUI/Forms/ScMainFrm.pas

@@ -8393,6 +8393,7 @@ procedure TScMainForm.actnImpXML_QGUpdate(Sender: TObject);
 begin
   // AAAAAAAAAAAAAAA
   TAction(Sender).Visible := (BigProjManageView <> nil) and BigProjManageView.CurSelNodeIsBP;
+//  TAction(Sender).Visible := False;
 end;
 
 initialization

+ 13 - 13
MainUI/ProjectManage/ScBigProjManageView.dfm

@@ -47,24 +47,24 @@ object ScfrmBigProjManage: TScfrmBigProjManage
         Style = tbsDropDown
       end
       object tbOpenTender: TToolButton
-        Left = 40
+        Left = 42
         Top = 0
         Action = actnOpen
       end
       object tbImport: TToolButton
-        Left = 63
+        Left = 65
         Top = 0
         Action = actnImport
       end
       object tbExport: TToolButton
-        Left = 86
+        Left = 88
         Top = 0
         Action = actnExport
         DropdownMenu = ppmExportProject
         Style = tbsDropDown
       end
       object tbStaticBills: TToolButton
-        Left = 126
+        Left = 130
         Top = 0
         Hint = #22266#21270#28165#21333
         Caption = #22266#21270#28165#21333
@@ -72,12 +72,12 @@ object ScfrmBigProjManage: TScfrmBigProjManage
         ImageIndex = 20
       end
       object tbRenameBP: TToolButton
-        Left = 149
+        Left = 153
         Top = 0
         Action = actnEditBPName
       end
       object tobtn1: TToolButton
-        Left = 172
+        Left = 176
         Top = 0
         Width = 8
         Caption = 'tobtn1'
@@ -85,19 +85,19 @@ object ScfrmBigProjManage: TScfrmBigProjManage
         Style = tbsSeparator
       end
       object tbDelBP: TToolButton
-        Left = 180
+        Left = 184
         Top = 0
         Action = actnDelBP
       end
       object tobtn2: TToolButton
-        Left = 203
+        Left = 207
         Top = 0
         Width = 8
         ImageIndex = 19
         Style = tbsSeparator
       end
       object pnlShowLevel: TPanel
-        Left = 211
+        Left = 215
         Top = 0
         Width = 135
         Height = 22
@@ -126,7 +126,7 @@ object ScfrmBigProjManage: TScfrmBigProjManage
         end
       end
       object btn1: TToolButton
-        Left = 346
+        Left = 350
         Top = 0
         Width = 8
         Caption = 'btn1'
@@ -134,7 +134,7 @@ object ScfrmBigProjManage: TScfrmBigProjManage
         Style = tbsSeparator
       end
       object pnlFindPB: TPanel
-        Left = 354
+        Left = 358
         Top = 0
         Width = 195
         Height = 22
@@ -294,7 +294,7 @@ object ScfrmBigProjManage: TScfrmBigProjManage
             Width = 145
             Height = 20
             ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861
-            ItemHeight = 12
+            ItemHeight = 0
             TabOrder = 2
             Visible = False
           end
@@ -304,7 +304,7 @@ object ScfrmBigProjManage: TScfrmBigProjManage
             Width = 145
             Height = 20
             ImeName = #20013#25991' - QQ'#25340#38899#36755#20837#27861
-            ItemHeight = 12
+            ItemHeight = 0
             TabOrder = 3
             Visible = False
           end

+ 23 - 3
MainUI/ProjectManage/ScBigProjManageView.pas

@@ -3402,9 +3402,8 @@ var
   strFile: string;
 begin
   ODlg := TOpenDialog.Create(nil);
+  {
   try
-//    ODlg.InitialDir := ExtractFilePath(Application.ExeName) + 'UserData\';
-//    ODlg.Filter := '数据交换规范文件(*.YGLT、*.YGLZ)|*.YGLT;*.YGLZ';
     ODlg.Filter := '全国造价数据标准文件(*.XML)|*.XML';
     if ODlg.Execute then
       strFile := ODlg.FileName
@@ -3412,10 +3411,31 @@ begin
       Exit;
   finally
     ODlg.Free;
+  end;   }
+
+  try
+    ODlg.Filter := '全国造价数据标准文件(*.jygs;*.gkgs;*.sjgs;*.sgys;*.qdys;*.gcjs;*.sjys)|*.jygs;*.gkgs;*.sjgs;*.sgys;*.qdys;*.gcjs;*.sjys';
+    if ODlg.Execute then
+      strFile := ODlg.FileName
+    else
+      Exit;
+  finally
+    ODlg.Free;
   end;
 
   if strFile <> '' then
-    ScXMLToBuildProject.ImportXML_QuanGuo(strFile, '');
+  begin
+    // 解压
+    strFile := UnZip(strFile);
+    if strFile <> '' then
+    begin
+      try
+        ScXMLToBuildProject.ImportXML_QuanGuo(strFile, '');
+      finally
+        DeleteFile(strFile);
+      end;
+    end;
+  end;
 end;
 
 procedure TScfrmBigProjManage.zgBuildProjectsPaste(Sender: TObject;