1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
|
{*****************************************}
{ }
{ FastReport v2.3 }
{ Variables form }
{ }
{ Copyright (c) 1998-99 by Tzyganenko A. }
{ }
{*****************************************}
unit LR_Var;
interface
{$I LR_Vers.inc}
uses
Classes, SysUtils, LResources,
Forms, Controls, Graphics, Dialogs,
StdCtrls,
LCLType,LCLIntf,
LR_Const;
type
TfrVarForm = class(TForm)
ValList: TListBox;
ValCombo: TComboBox;
Label1: TLabel;
procedure ValListDblClick(Sender: TObject);
procedure ValListKeyDown(Sender: TObject; var Key: Word;
{%H-}Shift: TShiftState);
procedure ValComboClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
{%H-}Shift: TShiftState);
private
{ Private declarations }
function CurVal: String;
function CurDataSet: String;
procedure GetVariables;
procedure GetSpecValues;
procedure GetFRVariables;
procedure FillValCombo;
public
{ Public declarations }
SelectedItem: String;
end;
var
frVarForm: TfrVarForm;
implementation
{$R *.lfm}
uses LR_Class;
var
LastCategory: String;
function TfrVarForm.CurVal: String;
begin
Result := '';
if ValList.ItemIndex <> -1 then
Result := ValList.Items[ValList.ItemIndex];
end;
function TfrVarForm.CurDataSet: String;
begin
Result := '';
if ValCombo.ItemIndex <> -1 then
Result := ValCombo.Items[ValCombo.ItemIndex];
end;
procedure TfrVarForm.FillValCombo;
var
s: TStringList;
begin
s := TStringList.Create;
CurReport.GetCategoryList(s);
s.Add(sSpecVal);
s.Add(sFRVariables);
ValCombo.Items.Assign(s);
s.Free;
end;
procedure TfrVarForm.ValComboClick(Sender: TObject);
begin
if CurDataSet = sFRVariables then
GetFRVariables
else
if CurDataSet = sSpecVal then
GetSpecValues
else
GetVariables;
end;
procedure TfrVarForm.GetVariables;
begin
CurReport.GetVarList(ValCombo.ItemIndex, ValList.Items);
end;
procedure TfrVarForm.GetSpecValues;
var
i: Integer;
begin
with ValList.Items do
begin
Clear;
for i := 0 to frSpecCount-1 do
if i <> 1 then
Add(frSpecArr[i]);
end;
end;
procedure TfrVarForm.GetFRVariables;
var
i: Integer;
begin
with ValList.Items do
begin
Clear;
for i := 0 to frVariables.Count - 1 do
Add(frVariables.Name[i]);
end;
end;
procedure TfrVarForm.ValListKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Return then
begin
if CurDataSet <> sSpecVal then
SelectedItem := CurVal
else
if ValList.items.Count>0 then
begin
if ValList.ItemIndex > 0 then
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
else
SelectedItem := frSpecFuncs[0];
end;
ModalResult := mrOk;
end;
end;
procedure TfrVarForm.ValListDblClick(Sender: TObject);
begin
if CurDataSet <> sSpecVal then
SelectedItem := CurVal
else
if ValList.items.Count>0 then
begin
if ValList.ItemIndex > 0 then
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
else
SelectedItem := frSpecFuncs[0];
end;
ModalResult:=mrOk;
end;
procedure TfrVarForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Escape then
ModalResult := mrCancel;
end;
procedure TfrVarForm.FormCreate(Sender: TObject);
begin
Caption := sVarFormCapt;
Label1.Caption := sVarFormCat;
end;
procedure TfrVarForm.FormActivate(Sender: TObject);
begin
FillValCombo;
if ValCombo.Items.IndexOf(LastCategory) <> -1 then
ValCombo.ItemIndex := ValCombo.Items.IndexOf(LastCategory)
else
ValCombo.ItemIndex := 0;
ValComboClick(nil);
end;
procedure TfrVarForm.FormDeactivate(Sender: TObject);
begin
if ModalResult = mrOk then
if CurDataSet <> sSpecVal then
SelectedItem := CurVal
else
if ValList.ItemIndex > 0 then
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
else
SelectedItem := frSpecFuncs[0];
LastCategory := ValCombo.Items[ValCombo.ItemIndex];
end;
end.
|