⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_params_edit.pas

📁 sybase大全
💻 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 + -