SelectOnlineSignPhaseFrm.pas 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. unit SelectOnlineSignPhaseFrm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, JimCombos, StdCtrls, ExtCtrls, sdDB, PNGButton;
  6. type
  7. TSelectOnlineSignPhaseForm = class(TForm)
  8. pnlPhase: TPanel;
  9. jcbPhase: TJimComboBox;
  10. lblHint: TLabel;
  11. pbOk: TPNGButton;
  12. procedure pbOkClick(Sender: TObject);
  13. private
  14. function GetPhaseIndex: Integer;
  15. { Private declarations }
  16. public
  17. procedure Init(AProjectRec: TsdDataRecord);
  18. property PhaseIndex: Integer read GetPhaseIndex;
  19. end;
  20. function SelectOnlineSignPhase(var APhase: Integer; AProjectRec: TsdDataRecord): Boolean;
  21. implementation
  22. {$R *.dfm}
  23. function SelectOnlineSignPhase(var APhase: Integer; AProjectRec: TsdDataRecord): Boolean;
  24. var
  25. vSelectFrm: TSelectOnlineSignPhaseForm;
  26. begin
  27. Result := False;
  28. vSelectFrm := TSelectOnlineSignPhaseForm.Create(nil);
  29. try
  30. vSelectFrm.Init(AProjectRec);
  31. Result := vSelectFrm.ShowModal = mrOk;
  32. if Result then
  33. APhase := vSelectFrm.PhaseIndex;
  34. finally
  35. vSelectFrm.Free;
  36. end;
  37. end;
  38. { TSelectOnlineSignPhaseForm }
  39. function TSelectOnlineSignPhaseForm.GetPhaseIndex: Integer;
  40. begin
  41. Result := jcbPhase.ItemIndex + 1;
  42. end;
  43. procedure TSelectOnlineSignPhaseForm.Init(AProjectRec: TsdDataRecord);
  44. var
  45. iPhase: Integer;
  46. iPhaseCount: Integer;
  47. begin
  48. iPhaseCount := AProjectRec.ValueByName('PhaseCount').AsInteger;
  49. if AProjectRec.ValueByName('AuditStatus').AsInteger <> -1 then
  50. iPhaseCount := iPhaseCount - 1;
  51. for iPhase := 1 to iPhaseCount do
  52. jcbPhase.Items.Add(Format(' µÚ %d ÆÚÊý¾Ý', [iPhase]));
  53. jcbPhase.ItemIndex := jcbPhase.Items.Count - 1;
  54. end;
  55. procedure TSelectOnlineSignPhaseForm.pbOkClick(Sender: TObject);
  56. begin
  57. if jcbPhase.ItemIndex > 0 then
  58. ModalResult := mrOk;
  59. end;
  60. end.