📄 u_params_edit.pas
字号:
unit u_params_edit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,sybsproc,sybase_parameters, Buttons;
type
Tf_paramsedit = class(TForm)
GroupBox1 :TGroupBox;
l_parameter_name: TListBox;
Label1: TLabel;
btn_add: TButton;
btn_delete: TButton;
btn_clear: TButton;
c_parameter_type: TComboBox;
c_data_type: TComboBox;
e_value: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
btn_ok: TButton;
check_null: TCheckBox;
btn_update: TButton;
Label5: TLabel;
c_appfieldname: TComboBox;
btn_up: TBitBtn;
btn_down: TBitBtn;
procedure btn_addClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn_clearClick(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure l_parameter_nameClick(Sender: TObject);
procedure btn_updateClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure btn_upClick(Sender: TObject);
procedure btn_downClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
ParamList :TSybParams;
sproc :tsybsproc;
procedure setsproc(value:tsybsproc);
end;
var
f_paramsedit :Tf_paramsedit;
old_index :integer;
implementation
uses u_params_add,
sybase_components,
sybedit,
sybcombobox,
syblistbox;
{$R *.DFM}
procedure Tf_paramsedit.setsproc(value:tsybsproc);
var i :integer;
begin
sproc:=value;
for i:=0 to sproc.params.count-1 do
begin
{ l_parameter_name.items.add(sproc.params.items[i].name);}
l_parameter_name.items.add(paramlist.items[i].name);
end;
if sproc.params.count > 0 then
l_parameter_name.itemindex:=0;
l_parameter_nameClick(Self);
end;
procedure Tf_paramsedit.btn_addClick(Sender: TObject);
var f_paramsadd :Tf_paramsadd;
fieldtype :TSybFieldType;
parm :tsybparam;
begin
{ btn_updateClick(Self);}
f_paramsadd:=Tf_paramsadd.create(nil);
f_paramsadd.showmodal;
if f_paramsadd.modalresult = mrok then
begin
c_data_type.itemindex:=f_paramsadd.c_data_type.itemindex;
case f_paramsadd.c_data_type.itemindex of
0 :begin
fieldtype:=ftdatetime;
end;
1 :begin
fieldtype:=ftfloat;
end;
2 :begin
fieldtype:=ftinteger;
end;
3 :begin
fieldtype:=ftchar;
end;
4 :begin
fieldtype:=ftbit;
end;
5 :begin
fieldtype:=fttext;
end;
else
begin
fieldtype:=ftUnknown;
end;
end;
{ sproc.params.createparam(fieldtype,f_paramsadd.e_parameter_name.text,ptUnknown);}
paramlist.createparam(fieldtype,f_paramsadd.e_parameter_name.text,ptUnknown);
l_parameter_name.items.add(f_paramsadd.e_parameter_name.text);
l_parameter_name.itemindex:=l_parameter_name.items.count-1;
l_parameter_nameClick(Self);
end;
f_paramsadd.free;
end;
procedure Tf_paramsedit.FormCreate(Sender: TObject);
begin
sproc:=tsybsproc.create(nil);
ParamList:=TSybParams.create;
end;
procedure Tf_paramsedit.btn_clearClick(Sender: TObject);
begin
{ sproc.params.clear;}
paramlist.clear;
l_parameter_name.clear;
c_parameter_type.itemindex:=0;
c_data_type.itemindex:=0;
c_appfieldname.text:='';
e_value.text:='';
check_null.checked:=false;
end;
procedure Tf_paramsedit.btn_okClick(Sender: TObject);
begin
{ btn_updateClick(Self);}
close;
end;
procedure Tf_paramsedit.btn_deleteClick(Sender: TObject);
begin
if l_parameter_name.itemindex>=0 then
begin
{ sproc.params.removeparam(sproc.params.parambyname(l_parameter_name.items[l_parameter_name.itemindex]));}
paramlist.removeparam(paramlist.parambyname(l_parameter_name.items[l_parameter_name.itemindex]));
l_parameter_name.items.delete(l_parameter_name.itemindex);
l_parameter_name.itemindex:=l_parameter_name.items.count-1;
l_parameter_nameClick(Self);
end;
end;
procedure Tf_paramsedit.l_parameter_nameClick(Sender: TObject);
var indx :integer;
parm :tsybparam;
begin
if l_parameter_name.items.count = 0 then
exit;
indx:=l_parameter_name.itemindex;
parm:=paramlist.parambyname(l_parameter_name.items[indx]);
case parm.paramtype of
ptInput :begin
c_parameter_type.itemindex:=0;
end;
ptInputOutput:begin
c_parameter_type.itemindex:=1;
end;
ptOutput :begin
c_parameter_type.itemindex:=2;
end;
{ ptResult :begin
c_parameter_type.itemindex:=3;
end}
else
begin
c_parameter_type.itemindex:=4;
end;
end;
case parm.datatype of
ftDateTime :begin
c_data_type.itemindex:=0;
end;
ftFloat :begin
c_data_type.itemindex:=1;
end;
ftInteger :begin
c_data_type.itemindex:=2;
end;
ftChar :begin
c_data_type.itemindex:=3;
end;
ftBit :begin
c_data_type.itemindex:=4;
end;
ftText :begin
c_data_type.itemindex:=5;
end
else
begin
c_data_type.itemindex:=6;
end;
end;
e_value.text:=parm.value;
c_appfieldname.text:=parm.appfieldname;
check_null.checked:=parm.isnull;
end;
procedure Tf_paramsedit.btn_updateClick(Sender: TObject);
var parm :tsybparam;
j :integer;
begin
if l_parameter_name.itemindex>=0 then
begin
{ parm:=sproc.params.parambyname(l_parameter_name.items[l_parameter_name.itemindex]);}
parm:=paramlist.parambyname(l_parameter_name.items[l_parameter_name.itemindex]);
if length(e_value.text)>0 then
parm.value:=e_value.text;
case c_data_type.itemindex of
0 :begin
parm.datatype:=ftdatetime;
end;
1 :begin
parm.datatype:=ftfloat;
end;
2 :begin
parm.datatype:=ftinteger;
end;
3 :begin
parm.datatype:=ftchar;
end;
4 :begin
parm.datatype:=ftbit;
end;
5 :begin
parm.datatype:=fttext;
end;
else
begin
parm.datatype:=ftUnknown;
end;
end;
case c_parameter_type.itemindex of
0 :begin
parm.paramtype:=ptInput;
end;
1 :begin
parm.paramtype:=ptInputOutPut;
end;
2 :begin
parm.paramtype:=ptOutPut;
end;
{ 3 :begin
parm.paramtype:=ptResult;
end}
else
begin
parm.paramtype:=ptUnKnown;
end
end;
parm.isnull:=check_null.checked;
parm.appfieldname:=c_appfieldname.text;
{ sproc.params.items[l_parameter_name.itemindex].assign(parm);}
paramlist.items[l_parameter_name.itemindex].assign(parm);
end;
end;
procedure Tf_paramsedit.btn_cancelClick(Sender: TObject);
begin
close;
end;
procedure Tf_paramsedit.FormActivate(Sender: TObject);
var i :integer;
begin
c_appfieldname.clear;
if fieldslist <> nil then
for i:=0 to fieldslist.count-1 do
begin
c_appfieldname.items.add(tsybedit(fieldslist.items[i]).name);
end;
if comboboxlist <> nil then
for i:=0 to comboboxlist.count-1 do
begin
c_appfieldname.items.add(tsybcombobox(comboboxlist.items[i]).name);
end;
if listboxlist <> nil then
for i:=0 to listboxlist.count-1 do
begin
c_appfieldname.items.add(tsyblistbox(listboxlist.items[i]).name);
end;
l_parameter_nameClick(Self);
end;
procedure Tf_paramsedit.btn_upClick(Sender: TObject);
var old_indx,new_indx :integer;
begin
if l_parameter_name.itemindex <0 then
exit;
old_indx:=l_parameter_name.itemindex;
if old_indx = 0 then exit;
new_indx:=old_indx-1;
l_parameter_name.items.exchange(old_indx,new_indx);
{ sproc.params.exchangeparams(old_indx,new_indx);}
paramlist.exchangeparams(old_indx,new_indx);
l_parameter_name.itemindex:=new_indx;
end;
procedure Tf_paramsedit.btn_downClick(Sender: TObject);
var old_indx,new_indx :integer;
begin
if l_parameter_name.itemindex < 0 then
exit;
old_indx:=l_parameter_name.itemindex;
if old_indx = l_parameter_name.items.count-1 then exit;
new_indx:=old_indx+1;
l_parameter_name.items.exchange(old_indx,new_indx);
{ sproc.params.exchangeparams(old_indx,new_indx);}
paramlist.exchangeparams(old_indx,new_indx);
l_parameter_name.itemindex:=new_indx;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -