数据窗口中的下拉窗口

来源:互联网 发布:泰安知金复读怎么样 编辑:程序博客网 时间:2024/05/16 09:10

(一) 如何建立下拉数窗  
    下面以一例子说明。  
    譬如我想在数窗dw_subj中输入课程编号subj_id时能显示编号与名称就需先建立一子窗dw_subjchild,里面包含两列(subj_id与subj_name)。然后,右击dw_subj中的subj_id,选择"properties.../edit/style/ dropdowndw",在其弹出框中的"datawindow"中选择dw_subjchild数窗;在"display   column"选择要显示的列subj_id;在"data   window"选实际存储的列subj_id(此处为同一列)。最后,再设置其显示宽度及显示列数以能看到全部。结果见图一(g1.jpg)。  
  (二) 如何在下拉数窗中进行检索  
    仍举例说明。假若现要输入院系及专业进行查询,那么在输入院系名称后,希望专业一列的下拉数窗能根据院系名称进行检索以减少显示项数。通常,我们的第一反应就是在子数窗中设计检索参数。但,且慢!此法只会弹出系统检索框要求用户输入检索值而不能在程序中传递参数给它。怎办?这就得用到子数窗(datawindowchild)了。请看下面的代码:  
    string   ls_sql,ls_name  
    datawindowchild   child   file://定义一个子数据窗口变量  
    file://dw_1为父数窗,dept_special为具有下拉数窗编辑方式的列  
    dw_1.getchild("dept_special",child)//生成一个对子数窗对象的引用  
    child.settransobject(sqlca)//将子数窗对象与事物对象相关连  
    ls_name=dw_1.getitemstring(1,2)//获取用户输入的院系名称  
    file://对dw_1child根据dept_name进行检索的sql语句,由于此处不能在数窗中设置检索file://参数,只能用sql语句  
    ls_sql="select   dept_special,dept_name   from   tbl_dept   where   &  
    dept_name='"+ls_name+"'"  
    child.setsqlselect(ls_sql)  
    child.retrieve()//子数窗应用sql语句进行检索  
    至此,对子数窗进行检索就完成了,结果见图二(g2.jpg)。  
  (三) 如何避免重复值  
    在子数窗应用中还常遇见如下问题:检索出来的数项有重复。如何去掉重复值?这比较简单,只需在上述代码中sql语句里的select后加上distint参数即可。