BatchReplaceBillsFrm.pas 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. unit BatchReplaceBillsFrm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ExtCtrls, ConstMethodUnit, ZJGrid, DataBase;
  6. type
  7. TBatchReplaceBillsForm = class(TForm)
  8. pnlBills: TPanel;
  9. lblBills: TLabel;
  10. zgBills: TZJGrid;
  11. pnlBillsSpr: TPanel;
  12. pnlOther: TPanel;
  13. btnOk: TButton;
  14. btnCancel: TButton;
  15. procedure btnOkClick(Sender: TObject);
  16. private
  17. FBillsData: TDMDataBase;
  18. FOrgB_Code: string;
  19. FOrgName: string;
  20. FOrgUnits: string;
  21. public
  22. procedure InitGridHead;
  23. procedure Init(ABillsData: TDMDataBase);
  24. procedure Execute;
  25. end;
  26. procedure BatchReplaceBillsData(ABillsData: TDMDataBase);
  27. implementation
  28. uses DB;
  29. {$R *.dfm}
  30. procedure BatchReplaceBillsData(ABillsData: TDMDataBase);
  31. var
  32. BatchReplaceBillsForm: TBatchReplaceBillsForm;
  33. begin
  34. BatchReplaceBillsForm := TBatchReplaceBillsForm.Create(nil);
  35. try
  36. BatchReplaceBillsForm.Init(ABillsData);
  37. if BatchReplaceBillsForm.ShowModal = mrOk then
  38. BatchReplaceBillsForm.Execute;
  39. finally
  40. BatchReplaceBillsForm.Free;
  41. end;
  42. end;
  43. { TBatchReplaceBillsForm }
  44. procedure TBatchReplaceBillsForm.btnOkClick(Sender: TObject);
  45. begin
  46. if zgBills.Cells[1, 1].Text = '' then
  47. MessageError(Handle, '헝渴흙헌데긍뵀!')
  48. else
  49. ModalResult := mrOK;
  50. end;
  51. procedure TBatchReplaceBillsForm.Execute;
  52. begin
  53. with FBillsData do
  54. begin
  55. cdsBills.First;
  56. while not cdsBills.Eof do
  57. begin
  58. if SameText(Trim(cdsBillsB_Code.AsString), FOrgB_Code) and
  59. SameText(Trim(cdsBillsName.AsString), FOrgName) and
  60. SameText(Trim(cdsBillsUnits.AsString), FOrgUnits) then
  61. begin
  62. cdsBills.Edit;
  63. cdsBillsB_Code.AsString := zgBills.Cells[1, 1].Text;
  64. cdsBillsName.AsString := zgBills.Cells[2, 1].Text;
  65. cdsBillsUnits.AsString := zgBills.Cells[3, 1].Text;
  66. if StrToFloatDef(zgBills.Cells[4, 1].Text, 0) <> 0 then
  67. cdsBillsUnitPrice.AsFloat := StrToFloatDef(zgBills.Cells[4, 1].Text, 0);
  68. cdsBills.Post;
  69. end;
  70. cdsBills.Next;
  71. end;
  72. end;
  73. end;
  74. procedure TBatchReplaceBillsForm.Init(ABillsData: TDMDataBase);
  75. begin
  76. FBillsData := ABillsData;
  77. InitGridHead;
  78. with FBillsData do
  79. begin
  80. FOrgB_Code := Trim(cdsBillsB_Code.AsString);
  81. FOrgName := Trim(cdsBillsName.AsString);
  82. FOrgUnits := Trim(cdsBillsUnits.AsString);
  83. zgBills.Cells[1, 1].Text := cdsBillsB_Code.AsString;
  84. zgBills.Cells[1, 1].TextAlign := gaCenterLeft;
  85. zgBills.Cells[2, 1].Text := cdsBillsName.AsString;
  86. zgBills.Cells[2, 1].TextAlign := gaCenterLeft;
  87. zgBills.Cells[3, 1].Text := cdsBillsUnits.AsString;
  88. zgBills.Cells[3, 1].TextAlign := gaCenterLeft;
  89. zgBills.Cells[4, 1].Text := cdsBillsUnitPrice.AsString;
  90. zgBills.Cells[4, 1].TextAlign := gaCenterRight;
  91. end;
  92. end;
  93. procedure TBatchReplaceBillsForm.InitGridHead;
  94. begin
  95. zgBills.Cells[1, 0].Text := '헌데긍뵀';
  96. zgBills.ColWidths[1] := 80;
  97. zgBills.Cells[2, 0].Text := '츰냔';
  98. zgBills.ColWidths[2] := 120;
  99. zgBills.Cells[3, 0].Text := '데貫';
  100. zgBills.ColWidths[3] := 50;
  101. zgBills.Cells[4, 0].Text := '데송';
  102. zgBills.ColWidths[4] := 60;
  103. end;
  104. end.