DealBillsFme.pas 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. unit DealBillsFme;
  2. interface
  3. uses
  4. DealBillsDm,
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6. Dialogs, StdCtrls, JimLabels, ZJGrid, ExtCtrls, sdGridDBA, dxBar,
  7. ActnList;
  8. type
  9. TDealBillsFrame = class(TFrame)
  10. saDealBills: TsdGridDBA;
  11. pnlDealBills: TPanel;
  12. zgDealBills: TZJGrid;
  13. dxpmDealBills: TdxBarPopupMenu;
  14. alDealBills: TActionList;
  15. actnChangeDealBillsMode: TAction;
  16. pnlTop: TPanel;
  17. labTitle: TJimGradLabel;
  18. procedure dxpmDealBillsPopup(Sender: TObject);
  19. procedure zgDealBillsMouseDown(Sender: TObject; Button: TMouseButton;
  20. Shift: TShiftState; X, Y: Integer);
  21. procedure actnChangeDealBillsModeExecute(Sender: TObject);
  22. private
  23. FDealBillsData: TDealBillsData;
  24. FIsEditMode:Boolean;
  25. FLockedData: Boolean;
  26. procedure AddCurrentBills;
  27. procedure SetLockedData(const Value: Boolean);
  28. procedure SetIsEditMode(const Value: Boolean);
  29. public
  30. constructor Create(AParent: TFrame; ADealBillsData: TDealBillsData);
  31. property LockedData: Boolean read FLockedData write SetLockedData;
  32. property IsEditMode: Boolean read FIsEditMode write SetIsEditMode;
  33. end;
  34. implementation
  35. uses
  36. MainFrm, UtilMethods, ProjectData, BillsCompileDm;
  37. {$R *.dfm}
  38. { TDealBillsFrame }
  39. constructor TDealBillsFrame.Create(AParent: TFrame;
  40. ADealBillsData: TDealBillsData);
  41. begin
  42. inherited Create(AParent);
  43. FDealBillsData := ADealBillsData;
  44. saDealBills.DataView := FDealBillsData.sdvDealBills;
  45. IsEditMode := False;
  46. LockedData := True;
  47. end;
  48. procedure TDealBillsFrame.SetLockedData(const Value: Boolean);
  49. begin
  50. FLockedData := Value;
  51. saDealBills.Columns.ColumnByName('B_Code').ReadOnly := FLockedData;
  52. saDealBills.Columns.ColumnByName('Name').ReadOnly := FLockedData;
  53. saDealBills.Columns.ColumnByName('Units').ReadOnly := FLockedData;
  54. saDealBills.Columns.ColumnByName('Price').ReadOnly := FLockedData;
  55. saDealBills.Columns.ColumnByName('Quantity').ReadOnly := FLockedData;
  56. saDealBills.Columns.ColumnByName('TotalPrice').ReadOnly := FLockedData;
  57. end;
  58. procedure TDealBillsFrame.dxpmDealBillsPopup(Sender: TObject);
  59. begin
  60. SetDxBtnAction(actnChangeDealBillsMode, MainForm.dxbtnChangeDealBillsMode);
  61. end;
  62. procedure TDealBillsFrame.SetIsEditMode(const Value: Boolean);
  63. begin
  64. FIsEditMode := Value;
  65. LockedData := not FIsEditMode;
  66. if FIsEditMode then
  67. begin
  68. labTitle.Caption := ' 푯獨헌데 -- 긍서친駕(崗샌데禱목錦맣헌데斤口)';
  69. actnChangeDealBillsMode.Caption := '학뻣逞敦뗍친駕';
  70. actnChangeDealBillsMode.Hint := '敦뗍친駕苟옵崗샌警속헌데逞0뵀憩瑯';
  71. end
  72. else
  73. begin
  74. labTitle.Caption := ' 푯獨헌데 -- 敦뗍친駕(崗샌옵警속朞櫓헌데逞0뵀憩瑯)';
  75. actnChangeDealBillsMode.Caption := '학뻣逞긍서친駕';
  76. actnChangeDealBillsMode.Hint := '긍서친駕苟옵崗샌錦맣헌데斤口';
  77. end;
  78. end;
  79. procedure TDealBillsFrame.zgDealBillsMouseDown(Sender: TObject;
  80. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  81. begin
  82. if Button = mbRight then
  83. dxpmDealBills.PopupFromCursorPos
  84. else if not FIsEditMode and (Button = mbLeft) and (ssDouble in Shift) then
  85. AddCurrentBills;
  86. end;
  87. procedure TDealBillsFrame.AddCurrentBills;
  88. begin
  89. if Assigned(saDealBills.DataView.Current) then
  90. with TProjectData(FDealBillsData.ProjectData).BillsCompileData do
  91. AddBillsFromDealBills(saDealBills.DataView.Current);
  92. end;
  93. procedure TDealBillsFrame.actnChangeDealBillsModeExecute(Sender: TObject);
  94. begin
  95. if IsEditMode or TProjectData(FDealBillsData.ProjectData).CheckPassword then
  96. IsEditMode := not IsEditMode;
  97. end;
  98. end.