一个通过回车键调另一个数据窗口相关数据到主窗口的函数

来源:互联网 发布:网络视频直播软件下载 编辑:程序博客网 时间:2024/05/17 08:18
uf_dwx_keyenter(dw_2,dw_3,'item','item_id','item_id','item_item_id')

/****************************************************

作用:通过向辅数据窗口dw_y的字段colunameout2取值,并赋值给主数据窗口dw_x的字段colunamein1。 其赋值条件是数据表table_name中检索不出该字段colu_name的值。

备注:此参数colunamein1与colunameout2相对应,如果不对应,则检索和提取以及赋值的字段不一致,还需另外加字段。

参数: dw_x:主数据窗口,需赋值的数据窗

        dw_y:辅数据窗口,需提取值的数据窗

        table_name:数据表,检索录入字段值是否正确所对应的表,以确定是否要向辅助窗口dw_y中取值和跳转字段

         colu_name:数据表中对应要赋值的字段,是判断的条件字段

        colunamein1:主数据窗口中要赋值的字段

        colunameout2:辅数据窗口中要取值的字段返回值:目的是对应key值,使跳转中断一次。

****************************************************/

string colunameout int countx    

colunameout=trim(dw_x.getitemstring(dw_x.getrow(),colunamein1)) //检索输入的数据值是否存在于数据表中(判断录入值是否正确)

String sqlstatament

sqlstatament ="select " + "count(*)" +" from " + table_name + " where " + colu_name + "='" + colunameout + "'"

DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA;

PREPARE SQLSA FROM :sqlstatament;

OPEN DYNAMIC my_cursor;

FETCH my_cursor INTO :countx;

CLOSE my_cursor;

 if countx <1 then //如果没有从数据库检索出数据

    if dw_y.rowcount()>=1 then //如果DW_y有数据检索出,则赋值

        dw_x.setitem(dw_x.getrow(),colunamein1,dw_y.getitemstring(1,colunameout2))

       dw_x.setcolumn(colunamein1)

      return 1

   else //如果无数据值,则返回空值

      dw_x.setitem(dw_x.getrow(),colunamein1,'')

      return 1

   end if

end if



 

在自定义事件uo_keyselect 中

其Event ID为pbm_dwnkey()

if dw_2.getcolumnname()='item_id' then
 if key=keyenter! then   return(uf_dwx_keyenter(dw_2,dw_3,'item','item_id','item_id','item_item_id'))   //回车键后调用函数uf_dwx_keyenter()赋值
 if key=keydownarrow! or key=keyuparrow! then 
  dw_3.setfocus()
  dw_3.setrow(1)
  uf_dwx_keyupdownarrow(dw_2,dw_3,'item_id','item_item_id')  //按上下箭头调函数uf_dwx_keyupdownarrow()赋值
 end if
 
end if

原创粉丝点击