SelectDetailGLsFrm.pas 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. unit SelectDetailGLsFrm;
  2. interface
  3. uses
  4. ProjectGLDm, sdDB,
  5. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  6. Dialogs, ExtCtrls, StdCtrls, sdGridDBA, ZJGrid;
  7. type
  8. TSelectDetailGLsForm = class(TForm)
  9. pnlData: TPanel;
  10. btnOk: TButton;
  11. btnCancel: TButton;
  12. leSearch: TLabeledEdit;
  13. imgSearch: TImage;
  14. zgGL: TZJGrid;
  15. saGL: TsdGridDBA;
  16. procedure zgGLGetCellText(Sender: TObject; const ACoord: TPoint;
  17. var Value: String; DisplayText: Boolean);
  18. procedure zgGLSetCellText(Sender: TObject; const ACoord: TPoint;
  19. var Value: String; DisplayText: Boolean);
  20. procedure btnOkClick(Sender: TObject);
  21. private
  22. FResults: TList;
  23. public
  24. constructor Create(AProjectGLData: TProjectGLData);
  25. destructor Destroy; override;
  26. property Results: TList read FResults;
  27. end;
  28. function SelectDetailGLs(AProjectGLData: TProjectGLData; AGLs: TList): Boolean;
  29. implementation
  30. uses
  31. UtilMethods;
  32. {$R *.dfm}
  33. function SelectDetailGLs(AProjectGLData: TProjectGLData; AGLs: TList): Boolean;
  34. var
  35. SelectForm: TSelectDetailGLsForm;
  36. begin
  37. SelectForm := TSelectDetailGLsForm.Create(AProjectGLData);
  38. try
  39. Result := SelectForm.ShowModal = mrOk;
  40. if Result then
  41. AGLs.Assign(SelectForm.Results);
  42. finally
  43. SelectForm.Free;
  44. end;
  45. end;
  46. { TAddDetailGLsForm }
  47. constructor TSelectDetailGLsForm.Create(AProjectGLData: TProjectGLData);
  48. begin
  49. inherited Create(nil);
  50. saGL.DataView := AProjectGLData.sdvProjectGL;
  51. FResults := TList.Create;
  52. end;
  53. destructor TSelectDetailGLsForm.Destroy;
  54. begin
  55. FResults.Free;
  56. inherited;
  57. end;
  58. procedure TSelectDetailGLsForm.zgGLGetCellText(Sender: TObject;
  59. const ACoord: TPoint; var Value: String; DisplayText: Boolean);
  60. var
  61. Rec: TsdDataRecord;
  62. begin
  63. if (ACoord.X = 1) and (ACoord.Y > 0) then
  64. begin
  65. Rec := saGL.DataView.Records[ACoord.Y -1];
  66. if Assigned(Rec) and (FResults.IndexOf(Rec) >= 0) then
  67. Value := 'True'
  68. else
  69. Value := 'False';
  70. end;
  71. end;
  72. procedure TSelectDetailGLsForm.zgGLSetCellText(Sender: TObject;
  73. const ACoord: TPoint; var Value: String; DisplayText: Boolean);
  74. var
  75. Rec: TsdDataRecord;
  76. begin
  77. if (ACoord.X = 1) and (ACoord.Y > 0) then
  78. begin
  79. Rec := saGL.DataView.Records[ACoord.Y -1];
  80. if Value = 'True' then
  81. FResults.Add(Rec)
  82. else if Value = 'False' then
  83. FResults.Remove(Rec);
  84. end;
  85. end;
  86. procedure TSelectDetailGLsForm.btnOkClick(Sender: TObject);
  87. begin
  88. if FResults.Count > 0 then
  89. ModalResult := mrOk
  90. else
  91. TipMessage('ûÓÐÑ¡ÔñÈκι¤ÁÏ¡£');
  92. end;
  93. end.