mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 14:29:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			207 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
 | 
						|
{*****************************************}
 | 
						|
{                                         }
 | 
						|
{             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.
 | 
						|
 |