stgResultFrm.pas 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. unit stgResultFrm;
  2. interface
  3. uses
  4. stgGatherDm, sdIDTree, UtilMethods, stgExcelExport, stgResultExportDm,
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6. Dialogs, JimTabs, JimPages, sdGridDBA, sdGridTreeDBA, ZJGrid, ExtCtrls,
  7. StdCtrls, dxBar, ActnList;
  8. type
  9. TstgResultForm = class(TForm)
  10. jpsResult: TJimPages;
  11. jpsResultErrorDetail: TJimPage;
  12. jpsResultBillsDetail: TJimPage;
  13. jtsGatherData: TJimTabSet;
  14. pnlGatherTree: TPanel;
  15. zgGatherTree: TZJGrid;
  16. saGatherTree: TsdGridTreeDBA;
  17. pnlDetail: TPanel;
  18. zgBillsDetail: TZJGrid;
  19. Splitter1: TSplitter;
  20. sdBillsDetail: TsdGridDBA;
  21. pnlError: TPanel;
  22. pnlErrorInfo: TPanel;
  23. zgErrorInfo: TZJGrid;
  24. sdErrorInfo: TsdGridDBA;
  25. pnlResult: TPanel;
  26. lblResult: TLabel;
  27. Splitter2: TSplitter;
  28. pnlErrorDetail: TPanel;
  29. zgErrorDetail: TZJGrid;
  30. sdErrorDetail: TsdGridDBA;
  31. dxpmError: TdxBarPopupMenu;
  32. dxpmGatherTree: TdxBarPopupMenu;
  33. alStgResult: TActionList;
  34. actnExportAllError: TAction;
  35. actnExportTenderError: TAction;
  36. actnExportStgResultExcel: TAction;
  37. actnExportStgResult: TAction;
  38. procedure jtsGatherDataChange(Sender: TObject; NewTab: Integer;
  39. var AllowChange: Boolean);
  40. procedure zgGatherTreeCellGetColor(Sender: TObject; ACoord: TPoint;
  41. var AColor: TColor);
  42. procedure zgErrorInfoMouseDown(Sender: TObject; Button: TMouseButton;
  43. Shift: TShiftState; X, Y: Integer);
  44. procedure zgGatherTreeMouseDown(Sender: TObject; Button: TMouseButton;
  45. Shift: TShiftState; X, Y: Integer);
  46. procedure dxpmErrorPopup(Sender: TObject);
  47. procedure actnExportAllErrorExecute(Sender: TObject);
  48. procedure actnExportTenderErrorExecute(Sender: TObject);
  49. procedure dxpmGatherTreePopup(Sender: TObject);
  50. procedure actnExportStgResultExcelExecute(Sender: TObject);
  51. procedure actnExportStgResultExecute(Sender: TObject);
  52. private
  53. FGatherData: TstgGatherData;
  54. FExcelExportor: TstgErrorExcelExport;
  55. function GetExcelExportor: TstgErrorExcelExport;
  56. public
  57. destructor Destroy; override;
  58. procedure SetGatherData(AGatherData: TstgGatherData);
  59. property ExcelExportor: TstgErrorExcelExport read GetExcelExportor;
  60. end;
  61. implementation
  62. uses
  63. MainFrm;
  64. {$R *.dfm}
  65. procedure TstgResultForm.jtsGatherDataChange(Sender: TObject;
  66. NewTab: Integer; var AllowChange: Boolean);
  67. begin
  68. jpsResult.ActivePageIndex := NewTab;
  69. end;
  70. procedure TstgResultForm.SetGatherData(AGatherData: TstgGatherData);
  71. begin
  72. FGatherData := AGatherData;
  73. saGatherTree.DataView := AGatherData.sdvGatherTree;
  74. sdBillsDetail.DataView := AGatherData.sdvBillsDetail;
  75. sdErrorInfo.DataView := AGatherData.sdvSubTenders;
  76. sdErrorDetail.DataView := AGatherData.sdvErrorDetail;
  77. end;
  78. procedure TstgResultForm.zgGatherTreeCellGetColor(Sender: TObject;
  79. ACoord: TPoint; var AColor: TColor);
  80. var
  81. vNode: TsdIDTreeNode;
  82. begin
  83. vNode := saGatherTree.IDTree.Items[ACoord.Y - zgGatherTree.FixedRowCount];
  84. if Assigned(vNode) and vNode.Rec.ValueByName('IsSubTender').AsBoolean then
  85. AColor := $00D5D5D5;
  86. end;
  87. procedure TstgResultForm.zgErrorInfoMouseDown(Sender: TObject;
  88. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  89. begin
  90. if Button = mbRight then
  91. dxpmError.PopupFromCursorPos;
  92. end;
  93. procedure TstgResultForm.zgGatherTreeMouseDown(Sender: TObject;
  94. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  95. begin
  96. if Button = mbRight then
  97. dxpmGatherTree.PopupFromCursorPos;
  98. end;
  99. procedure TstgResultForm.dxpmErrorPopup(Sender: TObject);
  100. begin
  101. SetDxBtnAction(actnExportAllError, MainForm.dxbtnExportAllError);
  102. SetDxBtnAction(actnExportTenderError, MainForm.dxbtnExportTenderError);
  103. end;
  104. procedure TstgResultForm.actnExportAllErrorExecute(Sender: TObject);
  105. var
  106. sFileName: string;
  107. begin
  108. if SaveExcelFile(sFileName) then
  109. ExcelExportor.ExportAll(sFileName);
  110. end;
  111. procedure TstgResultForm.actnExportTenderErrorExecute(Sender: TObject);
  112. var
  113. sFileName: string;
  114. begin
  115. if SaveExcelFile(sFileName) then
  116. ExcelExportor.ExportSubTender(sdErrorInfo.DataView.Current, sFileName);
  117. end;
  118. function TstgResultForm.GetExcelExportor: TstgErrorExcelExport;
  119. begin
  120. if Assigned(FGatherData) then
  121. begin
  122. if not Assigned(FExcelExportor) then
  123. FExcelExportor := TstgErrorExcelExport.Create(FGatherData);
  124. Result := FExcelExportor;
  125. end
  126. else
  127. ErrorMessage('当前无汇总数据,无法导出');
  128. end;
  129. destructor TstgResultForm.Destroy;
  130. begin
  131. if Assigned(FExcelExportor) then
  132. FExcelExportor.Free;
  133. inherited;
  134. end;
  135. procedure TstgResultForm.dxpmGatherTreePopup(Sender: TObject);
  136. begin
  137. SetDxBtnAction(actnExportStgResult, MainForm.dxbtnExportStgResult);
  138. SetDxBtnAction(actnExportStgResultExcel, MainForm.dxbtnExportStgResultExcel);
  139. end;
  140. procedure TstgResultForm.actnExportStgResultExcelExecute(Sender: TObject);
  141. var
  142. vExportor: TstgGatherExcelExport;
  143. sFileName: string;
  144. begin
  145. vExportor := TstgGatherExcelExport.Create(FGatherData);
  146. try
  147. if SaveExcelFile(sFileName) then
  148. vExportor.ExportGather(sFileName);
  149. finally
  150. vExportor.Free;
  151. end;
  152. end;
  153. procedure TstgResultForm.actnExportStgResultExecute(Sender: TObject);
  154. var
  155. sFileName: string;
  156. vExportor: TstgResultExportData;
  157. begin
  158. if SaveFile(sFileName, '.sgf') then
  159. begin
  160. vExportor := TstgResultExportData.Create(nil);
  161. try
  162. vExportor.ExportGatherDataTo(FGatherData, sFileName);
  163. finally
  164. vExportor.Free;
  165. end;
  166. end;
  167. end;
  168. end.