/Source/FR_VAR.PAS

http://github.com/FastReports/FreeReport · Pascal · 174 lines · 135 code · 27 blank · 12 comment · 14 complexity · 84d8da598da86d4ef2d7750aca91e6b0 MD5 · raw file

  1. {*****************************************}
  2. { }
  3. { FastReport v2.3 }
  4. { Variables form }
  5. { }
  6. { Copyright (c) 1998-99 by Tzyganenko A. }
  7. { }
  8. {*****************************************}
  9. unit FR_Var;
  10. interface
  11. {$I FR.inc}
  12. uses
  13. SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  14. Forms, Dialogs, StdCtrls, FR_Const;
  15. type
  16. TfrVarForm = class(TForm)
  17. ValList: TListBox;
  18. ValCombo: TComboBox;
  19. Label1: TLabel;
  20. procedure ValListKeyDown(Sender: TObject; var Key: Word;
  21. Shift: TShiftState);
  22. procedure ValComboClick(Sender: TObject);
  23. procedure FormActivate(Sender: TObject);
  24. procedure FormCreate(Sender: TObject);
  25. procedure ValListMouseDown(Sender: TObject; Button: TMouseButton;
  26. Shift: TShiftState; X, Y: Integer);
  27. procedure FormDeactivate(Sender: TObject);
  28. procedure FormKeyDown(Sender: TObject; var Key: Word;
  29. Shift: TShiftState);
  30. private
  31. { Private declarations }
  32. function CurVal: String;
  33. function CurDataSet: String;
  34. procedure GetVariables;
  35. procedure GetSpecValues;
  36. procedure GetFRVariables;
  37. procedure FillValCombo;
  38. public
  39. { Public declarations }
  40. SelectedItem: String;
  41. end;
  42. var
  43. frVarForm: TfrVarForm;
  44. implementation
  45. {$R *.DFM}
  46. uses FR_Class;
  47. var
  48. LastCategory: String;
  49. function TfrVarForm.CurVal: String;
  50. begin
  51. Result := '';
  52. if ValList.ItemIndex <> -1 then
  53. Result := ValList.Items[ValList.ItemIndex];
  54. end;
  55. function TfrVarForm.CurDataSet: String;
  56. begin
  57. Result := '';
  58. if ValCombo.ItemIndex <> -1 then
  59. Result := ValCombo.Items[ValCombo.ItemIndex];
  60. end;
  61. procedure TfrVarForm.FillValCombo;
  62. var
  63. s: TStringList;
  64. begin
  65. s := TStringList.Create;
  66. CurReport.GetCategoryList(s);
  67. s.Add(LoadStr(SSpecVal));
  68. s.Add(LoadStr(SFRVariables));
  69. ValCombo.Items.Assign(s);
  70. s.Free;
  71. end;
  72. procedure TfrVarForm.ValComboClick(Sender: TObject);
  73. begin
  74. if CurDataSet = LoadStr(SFRVariables) then
  75. GetFRVariables
  76. else if CurDataSet = LoadStr(SSpecVal) then
  77. GetSpecValues else
  78. GetVariables;
  79. end;
  80. procedure TfrVarForm.GetVariables;
  81. begin
  82. CurReport.GetVarList(ValCombo.ItemIndex, ValList.Items);
  83. end;
  84. procedure TfrVarForm.GetSpecValues;
  85. var
  86. i: Integer;
  87. begin
  88. with ValList.Items do
  89. begin
  90. Clear;
  91. for i := 0 to frSpecCount-1 do
  92. if i <> 1 then
  93. Add(frSpecArr[i]);
  94. end;
  95. end;
  96. procedure TfrVarForm.GetFRVariables;
  97. var
  98. i: Integer;
  99. begin
  100. with ValList.Items do
  101. begin
  102. Clear;
  103. for i := 0 to frVariables.Count - 1 do
  104. Add(frVariables.Name[i]);
  105. end;
  106. end;
  107. procedure TfrVarForm.ValListKeyDown(Sender: TObject; var Key: Word;
  108. Shift: TShiftState);
  109. begin
  110. if Key = vk_Return then ModalResult := mrOk;
  111. end;
  112. procedure TfrVarForm.ValListMouseDown(Sender: TObject;
  113. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  114. begin
  115. ModalResult := mrOk;
  116. end;
  117. procedure TfrVarForm.FormKeyDown(Sender: TObject; var Key: Word;
  118. Shift: TShiftState);
  119. begin
  120. if Key = vk_Escape then
  121. ModalResult := mrCancel;
  122. end;
  123. procedure TfrVarForm.FormCreate(Sender: TObject);
  124. begin
  125. Caption := LoadStr(frRes + 440);
  126. Label1.Caption := LoadStr(frRes + 441);
  127. end;
  128. procedure TfrVarForm.FormActivate(Sender: TObject);
  129. begin
  130. FillValCombo;
  131. if ValCombo.Items.IndexOf(LastCategory) <> -1 then
  132. ValCombo.ItemIndex := ValCombo.Items.IndexOf(LastCategory) else
  133. ValCombo.ItemIndex := 0;
  134. ValComboClick(nil);
  135. end;
  136. procedure TfrVarForm.FormDeactivate(Sender: TObject);
  137. begin
  138. if ModalResult = mrOk then
  139. if CurDataSet <> LoadStr(SSpecVal) then
  140. SelectedItem := CurVal
  141. else
  142. if ValList.ItemIndex > 0 then
  143. SelectedItem := frSpecFuncs[ValList.ItemIndex + 1] else
  144. SelectedItem := frSpecFuncs[0];
  145. LastCategory := ValCombo.Items[ValCombo.ItemIndex];
  146. end;
  147. end.