| 
					
				 | 
			
			
				@@ -4,10 +4,11 @@ interface 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 uses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ProjectData, ReportManager, ReportConnection, ReportPrepare, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PrintComTypeDefUnit, ADODB, DB, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  PrintComTypeDefUnit, ADODB, DB, SignReports, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Dialogs, sdIDTree, sdDB, ComCtrls, ExtCtrls, VirtualTrees, PrintCom, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PrintComXML, MScrollBox, StdCtrls, Buttons, PNGButton; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  PrintComXML, MScrollBox, StdCtrls, Buttons, PNGButton, ieview, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  imageenview; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   crNext = -25; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -27,6 +28,7 @@ type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     btnNext: TButton; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     lblPages: TLabel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     pbGenerate: TPNGButton; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ImageEnView1: TImageEnView; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure FormShow(Sender: TObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure tvReportsClick(Sender: TObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure PreviewComXMLContentDisplay(var contentFontRec: TFontRec; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,6 +51,10 @@ type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure btnNextClick(Sender: TObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure pbGenerateClick(Sender: TObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   private 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FWebProjectID: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FWebTenderID: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FSignPhase: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FProjectData: TProjectData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 数据库管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FReportCon: TReportConnection; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -58,10 +64,17 @@ type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FPreviewList: TList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FCurPage: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FTempPath: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FPostedSignReports: TSignReports; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure OnViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure OnViewMouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function SafeReportName(var AName: string): Boolean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure ExportReports(const AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    procedure ExportPdfReports(const AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     procedure LoadReportTemplates; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -94,7 +107,8 @@ implementation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 uses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   UtilMethods, TemplateManagerHelper, Globals, AuditSelectFrm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ScFileArchiver, ZhAPI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ScFileArchiver, ZhAPI, PHPWebDm, imageenio, ReportPdfHelper, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mProgressFrm, RenameSignReportFrm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 {$R *.dfm} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -116,11 +130,13 @@ end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 destructor TSignOnlineReportsForm.Destroy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ClearObjects(FPreviewList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  FPreviewList.Free;                  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FPreviewList.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FReportCon.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FReportDataPrepare.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if Assigned(FProjectData) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FProjectData.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if DirectoryExists(FTempPath) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DeleteFileOrFolder(FTempPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   inherited; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -140,6 +156,10 @@ procedure TSignOnlineReportsForm.Init(AProjNode: TsdIDTreeNode; ASignPhase: Inte 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FWebProjectID := GetTopParent(AProjNode).Rec.ValueByName('WebID').AsInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FWebTenderID := AProjNode.Rec.ValueByName('WebID').AsInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FSignPhase := ASignPhase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FProjectData := TProjectData.Create; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FProjectData.OpenForSignOnline(GetMyProjectsFilePath + AProjNode.Rec.ValueByName('FileName').AsString, ASignPhase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FReportDataPrepare := TReportPrepare.Create(FProjectData); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -149,6 +169,11 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Caption := Format('生成签署报表  %s-第 %d 期', [getName(AProjNode), ASignPhase]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   LoadReportTemplates; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FTempPath := GetAppTempPath + IntToStr(AProjNode.ID) + '\'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  CreateDirectoryInDeep(FTempPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FPostedSignReports.LoadAllSignReports(PhPWeb.MeasureURL + 'sign/list', IntToStr(FWebTenderID), IntToStr(FSignPhase)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 procedure TSignOnlineReportsForm.LoadReportTemplates; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -183,11 +208,18 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if Assigned(tvReports.Selected) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     vTemplate := TTemplateNode(tvReports.Selected.Data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pbGenerate.Visible := Assigned(vTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cbFillZero.Visible := Assigned(vTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pnlPageControl.Visible := Assigned(vTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FPostedSignReports.LoadAllSignReports(PhPWeb.MeasureURL + 'sign/list', IntToStr(FWebTenderID), IntToStr(FSignPhase)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    lblAlreadyUpload.Visible := Assigned(vTemplate) and Assigned(FPostedSignReports.FindSignReport(FSignPhase, vTemplate.TemplateName)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ReportTemplateManager.Current := vTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if Assigned(vTemplate) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ReportTemplateManager.Current := vTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       LoadTemplateAndDisplay(vTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tvReports.SetFocus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -505,14 +537,10 @@ procedure TSignOnlineReportsForm.InitPageSettings(APrintCom: TPrintComXML); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // 设置页面大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   APrintCom.setPageSize(ReportConfig.PageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // 统一纸张大小 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  APrintCom.PrintPageSizeIdx := DMPAPER_A4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if ReportConfig.PageSize = 'A3' then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     APrintCom.PrintPageSizeIdx := DMPAPER_A3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   else if ReportConfig.PageSize = 'A4' then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     APrintCom.PrintPageSizeIdx := DMPAPER_A4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // 设置边距 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   APrintCom.setEdge(0, '', ReportConfig.LeftEdge/10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   APrintCom.setEdge(1, '', ReportConfig.RightEdge/10); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -936,6 +964,8 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   LoadCursor(crPrevious, GetAppFilePath + 'PreviousPage.cur'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   LoadCursor(crNext, GetAppFilePath + 'NextPage.cur'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FPostedSignReports := TSignReports.Create; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 procedure TSignOnlineReportsForm.msbReportsPreviewMouseWheelDown( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1012,17 +1042,51 @@ end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 procedure TSignOnlineReportsForm.SetCurPage(const Value: Integer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   FCurPage := Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PreviewPage(TImage(FPreviewList.Items[0]), FCurPage);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  PreviewPage(TImage(FPreviewList.Items[0]), FCurPage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   lblPages.Caption := Format('%d/%d', [FCurPage, PreviewComXML.TotalPages]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 procedure TSignOnlineReportsForm.pbGenerateClick(Sender: TObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  sFileName: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sReportName, sZipFile, sPdfFile, sErrorMessage: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  vInFields, vInValues: array [0..4] of string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  vUpFileFields, vUpFileNames: array [0..1] of string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if SaveFile(sFileName, '.zip') then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sReportName := ReportTemplateManager.Current.TemplateName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if SafeReportName(sReportName) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ExportReports(sFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CreateProgress('上传中,请等待...'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInFields[0] := 'project'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInValues[0] := IntToStr(FWebProjectID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInFields[1] := 'tender'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInValues[1] := IntToStr(FWebTenderID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInFields[2] := 'phaseno'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInValues[2] := IntToStr(FSignPhase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInFields[3] := 'name'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInValues[3] := sReportName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInFields[4] := 'ownuid'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vInValues[4] := IntToStr(PHPWeb.UserID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vUpFileFields[0] := 'upfile'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vUpFileNames[0] := GetTempFileName(FTempPath, '.zip'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ExportReports(vUpFileNames[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vUpFileFields[1] := 'upspdf'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vUpFileNames[1] := GetTempFileName(FTempPath, '.pdf'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PdfHelper.ExportAllPages(PreviewComXML, vUpFileNames[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if PHPWeb.UploadFiles('sign/create', vInFields, vInValues, vUpFileFields, vUpFileNames, sErrorMessage) then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      FPostedSignReports.AddSignReport(FSignPhase, ReportTemplateManager.Current.TemplateName, 234); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      lblAlreadyUpload.Visible := True; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      CloseProgress; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      TipMessage('上传完成。'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      CloseProgress; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      WarningMessage(Format('%s, 上传数据失败,请重试。', [sErrorMessage])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1056,4 +1120,56 @@ begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+procedure TSignOnlineReportsForm.ExportPdfReports(const AFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  procedure ExportReportPage(APage: Integer; const APageFileName: string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    imgEn: TImageEnView; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    imgEn := TImageEnView.Create(nil); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.Visible := False; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.Parent := Self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.IO.CreatePDFFile(APageFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.Bitmap.Height := PreviewComXML.PrintHeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.Bitmap.Width := PreviewComXML.PrintWidth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      PreviewComXML.PrintPreviewCanvas(APage, 0, imgEn.Bitmap.Canvas, False); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.IO.SaveToPDF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgEn.Free; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ATempFolder: String; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  i: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ATempFolder := GenerateTempFolder(GetTempFilePath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  for i := 1 to PreviewComXML.TotalPages do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ExportReportPage(i, Format('%s\%d.pdf', [ATempFolder, i])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ZipFolder(ATempFolder, AFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function TSignOnlineReportsForm.SafeReportName(var AName: string): Boolean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sOrgName: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  iCount: Integer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  bHasQuest: Boolean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Result := False; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sOrgName := AName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  iCount := 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  FPostedSignReports.LoadAllSignReports(PhPWeb.MeasureURL + 'sign/list', IntToStr(FWebTenderID), IntToStr(FSignPhase)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  while Assigned(FPostedSignReports.FindSignReport(FSignPhase, AName)) do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  begin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Inc(iCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    AName := Format('%s(%d)', [sOrgName, iCount]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Result := SameText(sOrgName, AName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if not Result then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Result := QuestRenameSignReport(AName, FSignPhase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+end; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 end. 
			 |