home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kolekce / d6 / FRCLX.ZIP / SOURCE / IBX / FR_IBXQueryParam.pas < prev    next >
Pascal/Delphi Source File  |  2001-07-06  |  4KB  |  184 lines

  1.  
  2. {******************************************}
  3. {                                          }
  4. {   FastReport CLX v2.4 - IBX components   }
  5. {           Query params editor            }
  6. {                                          }
  7. {        Copyright (c) 2000 by EMS         }
  8. { Copyright (c) 1998-2001 by Tzyganenko A. }
  9. {                                          }
  10. {******************************************}
  11.  
  12. unit FR_IBXQueryParam;
  13.  
  14. interface
  15.  
  16. {$I FR.inc}
  17.  
  18. uses
  19.   Types, SysUtils, Classes, QGraphics, QControls, QForms, QDialogs,
  20.   QStdCtrls, FR_Ctrls, QExtCtrls, DB, IBQuery, FR_IBXQuery;
  21.  
  22. type
  23.   TfrIBXParamsForm = class(TForm)
  24.     GroupBox1: TGroupBox;
  25.     Label2: TLabel;
  26.     ParamsLB: TListBox;
  27.     TypeCB: TComboBox;
  28.     ValueRB: TRadioButton;
  29.     AssignRB: TRadioButton;
  30.     Label1: TLabel;
  31.     ValueE: TfrComboEdit;
  32.     Button1: TButton;
  33.     Button2: TButton;
  34.     procedure FormShow(Sender: TObject);
  35.     procedure FormHide(Sender: TObject);
  36.     procedure ParamsLBClick(Sender: TObject);
  37.     procedure ValueEExit(Sender: TObject);
  38.     procedure TypeCBChange(Sender: TObject);
  39.     procedure ValueRBClick(Sender: TObject);
  40.     procedure AssignRBClick(Sender: TObject);
  41.     procedure FormCreate(Sender: TObject);
  42.     procedure VarSBClick(Sender: TObject);
  43.   private
  44.     { Private declarations }
  45.     FBusy: Boolean;
  46.     function CurParam: Integer;
  47.     procedure Localize;
  48.   public
  49.     { Public declarations }
  50.     Query: TIBQuery;
  51.     QueryComp: TfrIBXQuery;
  52.   end;
  53.  
  54. implementation
  55.  
  56. uses FR_Const, FR_Class, FR_DBUtils, FR_Utils;
  57.  
  58. {$R *.xfm}
  59.  
  60.  
  61. function TfrIBXParamsForm.CurParam: Integer;
  62. var
  63.   i: Integer;
  64.   s: String;
  65. begin
  66.   Result := 0;
  67.   s := ParamsLB.Items[ParamsLB.ItemIndex];
  68.   for i := 0 to Query.Params.Count - 1 do
  69.     if Query.Params[i].Name = s then
  70.     begin
  71.       Result := i;
  72.       break;
  73.     end;
  74. end;
  75.  
  76. procedure TfrIBXParamsForm.FormShow(Sender: TObject);
  77. var
  78.   i: Integer;
  79. begin
  80.   with Query.Params do
  81.   for i := 0 to Count - 1 do
  82.     if ParamsLB.Items.IndexOf(Items[i].Name) = -1 then
  83.       ParamsLB.Items.Add(Items[i].Name);
  84.   with TypeCB.Items do
  85.   begin
  86.     Clear;
  87.     Add(SParamType1);
  88.     Add(SParamType2);
  89.     Add(SParamType3);
  90.     Add(SParamType4);
  91.     Add(SParamType5);
  92.     Add(SParamType6);
  93.     Add(SParamType7);
  94.     Add(SParamType8);
  95.     Add(SParamType9);
  96.     Add(SParamType10);
  97.     Add(SParamType11);
  98.   end;
  99.   ParamsLB.ItemIndex := 0;
  100.   ParamsLBClick(nil);
  101. end;
  102.  
  103. procedure TfrIBXParamsForm.FormHide(Sender: TObject);
  104. begin
  105.   if ValueE.Enabled then ValueEExit(nil);
  106. end;
  107.  
  108. procedure TfrIBXParamsForm.ParamsLBClick(Sender: TObject);
  109. var
  110.   i: Integer;
  111. begin
  112.   TypeCB.ItemIndex := -1;
  113.   for i := 0 to 10 do
  114.     if Query.Params[CurParam].DataType = ParamTypes[i] then
  115.     begin
  116.       TypeCB.ItemIndex := i;
  117.       break;
  118.     end;
  119.   FBusy := True;
  120.   ValueE.Text := '';
  121.   ValueE.Enabled := False;
  122.   if QueryComp.ParamKind[CurParam] = pkValue then
  123.   begin
  124.     ValueE.Text := QueryComp.ParamText[CurParam];
  125.     ValueE.Enabled := True;
  126.     ValueRB.Checked := True;
  127.   end
  128.   else
  129.     AssignRB.Checked := True;
  130.   FBusy := False;
  131. end;
  132.  
  133. procedure TfrIBXParamsForm.ValueEExit(Sender: TObject);
  134. begin
  135.   QueryComp.ParamText[CurParam] := ValueE.Text;
  136. end;
  137.  
  138. procedure TfrIBXParamsForm.TypeCBChange(Sender: TObject);
  139. begin
  140.   Query.Params[CurParam].DataType := ParamTypes[TypeCB.ItemIndex];
  141.   if ValueE.Enabled then
  142.     ValueEExit(nil);
  143. end;
  144.  
  145. procedure TfrIBXParamsForm.ValueRBClick(Sender: TObject);
  146. begin
  147.   if FBusy then Exit;
  148.   ValueE.Enabled := True;
  149.   QueryComp.ParamKind[CurParam] := pkValue;
  150. end;
  151.  
  152. procedure TfrIBXParamsForm.AssignRBClick(Sender: TObject);
  153. begin
  154.   if FBusy then Exit;
  155.   ValueE.Text := '';
  156.   ValueE.Enabled := False;
  157.   QueryComp.ParamKind[CurParam] := pkAssignFromMaster;
  158. end;
  159.  
  160. procedure TfrIBXParamsForm.Localize;
  161. begin
  162.   GroupBox1.Caption := S56110;
  163.   Label2.Caption := S56111;
  164.   Label1.Caption := S56112;
  165.   ValueRB.Caption := S56113;
  166.   AssignRB.Caption := S56115;
  167.   ValueE.ButtonHint := S53575;
  168.   Button1.Caption := (SOk);
  169.   Button2.Caption := (SCancel);
  170. end;
  171.  
  172. procedure TfrIBXParamsForm.FormCreate(Sender: TObject);
  173. begin
  174.   Localize;
  175. end;
  176.  
  177. procedure TfrIBXParamsForm.VarSBClick(Sender: TObject);
  178. begin
  179.   ValueE.Text := frDesigner.InsertExpression;
  180. end;
  181.  
  182. end.
  183.  
  184.