tpPartTenderSetFme.pas 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. unit tpPartTenderSetFme;
  2. interface
  3. uses
  4. tpPartTenderSet, tpPartTenderFme,
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6. Dialogs, sdGridDBA, StdCtrls, JimLabels, ZJGrid, ExtCtrls, ActnList,
  7. dxBar;
  8. type
  9. TtpPartTenderSetFrame = class(TFrame)
  10. pnlPartTenders: TPanel;
  11. zgPartTendersInfo: TZJGrid;
  12. labGatherTenders: TJimGradLabel;
  13. pnlCurPartTender: TPanel;
  14. sprTenderData: TSplitter;
  15. dxpmPartTenders: TdxBarPopupMenu;
  16. alPartTenders: TActionList;
  17. actnExportTpExcel: TAction;
  18. procedure zgPartTendersInfoCurrentChanged(Sender: TObject; Col,
  19. Row: Integer);
  20. procedure dxpmPartTendersPopup(Sender: TObject);
  21. procedure actnExportTpExcelExecute(Sender: TObject);
  22. procedure zgPartTendersInfoMouseDown(Sender: TObject;
  23. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  24. procedure actnExportTpExcelUpdate(Sender: TObject);
  25. private
  26. FPartTenderSetData: TtpPartTenderSet;
  27. FCurPartTenderFrame: TtpPartTenderFrame;
  28. procedure AssignTenderInfo;
  29. procedure ExportPegGclExcel;
  30. procedure ExportGclPegExcel;
  31. public
  32. constructor Create(APartTenderSetData: TtpPartTenderSet);
  33. destructor Destroy; override;
  34. procedure RefreshData;
  35. end;
  36. implementation
  37. uses
  38. UtilMethods, tpPartTender, MainFrm, ExportExcel;
  39. {$R *.dfm}
  40. { TtpPartTenderSetFrame }
  41. procedure TtpPartTenderSetFrame.AssignTenderInfo;
  42. var
  43. i: Integer;
  44. vPartTender: TtpPartTender;
  45. begin
  46. zgPartTendersInfo.RowCount := FPartTenderSetData.TenderCount + 1;
  47. for i := 0 to FPartTenderSetData.TenderCount - 1 do
  48. begin
  49. vPartTender := FPartTenderSetData.PartTender[i];
  50. zgPartTendersInfo.Cells[1, i+1].Text := vPartTender.BeginPeg + '~' + vPartTender.EndPeg;
  51. zgPartTendersInfo.Cells[1, i+1].Align := gaCenterLeft;
  52. end;
  53. end;
  54. constructor TtpPartTenderSetFrame.Create(
  55. APartTenderSetData: TtpPartTenderSet);
  56. begin
  57. inherited Create(nil);
  58. zgPartTendersInfo.Cells[1, 0].Text := '깃뙈';
  59. FPartTenderSetData := APartTenderSetData;
  60. FPartTenderSetData.SetFrame := Self;
  61. FCurPartTenderFrame := TtpPartTenderFrame.Create;
  62. AlignControl(FCurPartTenderFrame, pnlCurPartTender, alClient);
  63. end;
  64. destructor TtpPartTenderSetFrame.Destroy;
  65. begin
  66. FCurPartTenderFrame.Free;
  67. inherited;
  68. end;
  69. procedure TtpPartTenderSetFrame.RefreshData;
  70. begin
  71. AssignTenderInfo;
  72. FCurPartTenderFrame.PartTenderData := FPartTenderSetData.PartTender[0];
  73. end;
  74. procedure TtpPartTenderSetFrame.zgPartTendersInfoCurrentChanged(
  75. Sender: TObject; Col, Row: Integer);
  76. var
  77. iTender: Integer;
  78. begin
  79. iTender := zgPartTendersInfo.CurRow - 1;
  80. FCurPartTenderFrame.PartTenderData := FPartTenderSetData.PartTender[iTender];
  81. end;
  82. procedure TtpPartTenderSetFrame.dxpmPartTendersPopup(Sender: TObject);
  83. begin
  84. SetDxBtnAction(actnExportTpExcel, MainForm.dxbtnExportTpExcel);
  85. end;
  86. procedure TtpPartTenderSetFrame.actnExportTpExcelExecute(Sender: TObject);
  87. begin
  88. if (FCurPartTenderFrame.tobtnInPegs.Down) then
  89. ExportPegGclExcel
  90. else if (FCurPartTenderFrame.tobtnInGcls.Down) then
  91. ExportGclPegExcel;
  92. end;
  93. procedure TtpPartTenderSetFrame.ExportGclPegExcel;
  94. var
  95. sFileName: string;
  96. Exportor: TMasterExcelExportor;
  97. begin
  98. if SaveExcelFile(sFileName) then
  99. begin
  100. Exportor := TMasterExcelExportor.Create;
  101. try
  102. Exportor.DefineCol(@ciTpGclPeg_Gcl, Length(ciTpGclPeg_Gcl), @ciTpGclPeg_Peg);
  103. with FCurPartTenderFrame.PartTenderData.InGclGatherData do
  104. begin
  105. Exportor.DefineMasterDataSet(sddGclGather, 'ID');
  106. Exportor.DefineRelaDataSet(sddGclRela, 'GclID');
  107. end;
  108. Exportor.ExportToFile(sFileName);
  109. finally
  110. Exportor.Free;
  111. end;
  112. end;
  113. end;
  114. procedure TtpPartTenderSetFrame.ExportPegGclExcel;
  115. var
  116. sFileName: string;
  117. Exportor: TMasterExcelExportor;
  118. begin
  119. if SaveExcelFile(sFileName) then
  120. begin
  121. Exportor := TMasterExcelExportor.Create;
  122. try
  123. Exportor.DefineCol(@ciTpPegGcl, Length(ciTpPegGcl));
  124. with FCurPartTenderFrame.PartTenderData.InPegData do
  125. begin
  126. Exportor.DefineMasterDataSet(sddPeg, 'ID');
  127. Exportor.DefineRelaDataSet(sddGclBills, 'PegID');
  128. end;
  129. Exportor.ExportToFile(sFileName);
  130. finally
  131. Exportor.Free;
  132. end;
  133. end;
  134. end;
  135. procedure TtpPartTenderSetFrame.zgPartTendersInfoMouseDown(Sender: TObject;
  136. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  137. begin
  138. if (Button = mbRight) and (FPartTenderSetData.TenderCount > 0) and
  139. (FCurPartTenderFrame.tobtnInPegs.Down or FCurPartTenderFrame.tobtnInGcls.Down) then
  140. dxpmPartTenders.PopupFromCursorPos;
  141. end;
  142. procedure TtpPartTenderSetFrame.actnExportTpExcelUpdate(Sender: TObject);
  143. begin
  144. if (FCurPartTenderFrame.tobtnInPegs.Down) then
  145. TAction(Sender).Caption := '돔놔Excel(렀鍋코褸뵀)'
  146. else if (FCurPartTenderFrame.tobtnInGcls.Down) then
  147. TAction(Sender).Caption := '돔놔Excel(렀鍋코헌데)';
  148. end;
  149. end.