界面上要选择“公司名称”,公司名称对应的“工资类别”(每个公司的工资类别个数不一样),录入“会计年”,“会计期间”。
要依据上述选择及录入作为参数传递给存储过程。
问:
1、用什么语句来实现把左框DBListBox1选中的值添加到右框DBListBox2中去
2、能否把右框选中的多个工资类别(个数有变化)作为一个参数传递给存储过程。
  
 如:Alter Procedure sp_gzhzmx @gsbm varchar(20),@gzlbbm varchar(20),@kjn char(4),@kjqj char(2) As.....
在前台把“公司名称”、“工资类别”转换成gsbm和gzlbbm是不是好些,其中“工资类别”用IN语句?

解决方案 »

  1.   

    第一问:listbox1.CopySelection(listbox2);
      

  2.   

    对了,我在第一问的代吗listbox1.CopySelection(listbox2);
    写在ListBox1DblClick(Sender: TObject);中
      

  3.   

    var
    i:integer;
    begin
    for i:=0 to listbox2.Items.Count-1 do
    begin
    showmessage(listbox2.Items.Strings[i]);
    end;
    end;
      

  4.   

    对xiaoqiang123(xiaoqiang) 和其他兄台:
    难点在于给存储过程传“工资类别”参数的时候,(在数据库中唯一键是它的编码gzlbbm,)那个循环应写在哪?怎样写?
    大概构思:
    ........
    Query1.SQL.Add('select gsbm from bd_corp'
                  +' where gsmc='
                  +Quoted(DBCombox1.text)
                  +')';
    ........
    Query2.SQL.Add('select gzlbbm from wa_waclass'
                  +' where gzlb in'
                  ........//工资类别的循环在这写吗?应怎样写?
                  +Listbox2.Items.Strings[i]
                  ........
                  +')';在后台数据库的存储过程sp_gzhzmx中,
    Alter Procedure sp_gzhzmx @gsbm varchar(20),@gzlbbm varchar(20),@kjn char(4),@kjqj char(2) As.....
    其中...gzlbbm in @gzlbbm,则应该为gzlbbm in('1111111','222222')此种格式。这种格式应在前台比较好处理吧,具体应怎样写?  多谢多谢!写出写对,立即结贴!!!
      

  5.   

    Query2.SQL.Add('select gzlbbm from wa_waclass'
                  +' where gzlb in'
                  ........//工资类别的循环在这写吗?应怎样写?
                  +Listbox2.Items.Strings[i]
                  ........
                  +')';
    =================================================
    当然不是这样了:)
    Query2.SQL.Add('select gzlbbm from wa_waclass'
                  +' where gzlb in ('for i:=0 to listbox2.Items.Count-1 do
    begin
    s:=s+''''+Listbox2.Items.Strings[i]+'''';//s要初始化''
    if i=listbox2.items.count-1 then
    break
    else
    s:=s+',';
    end;
    Query2.SQL.Add(s);Query2.SQL.Add(')');....你自己调试吧,我没试过的,不成功就是引号出了问题,可以用一个showmessage看看整个最后的sql语句是怎么样的就知道哪有问题了:)