PB数据窗口中DDDW下拉关联实现

来源:互联网 发布:淘宝外卖 系统繁忙 编辑:程序博客网 时间:2024/05/17 06:30

在数据窗口中录入数据,点击dddw城市,在县城dddw中显示对应城市的县城,选中县城dddw时,乡镇dddw中列出对应的乡镇名称,实现代码如下:
在数据窗口的ItemFocusChanged事件中,代码如下:

Integer rtncode_county,rtncode_xiangzhen

String ls_nowFld,ls_cd_city,ls_cd_county,ls_sql_county,ls_sql_xiangzhen

DataWindowChild fld_child_county,fld_child_xiangzhen

rtncode_county = dw_1.GetChild(“j_7”,fld_child_county) //获得j_7(县城)字段下拉数据窗口的句柄
rtncode_xiangzhen = dw_1.GetChild(“j_8”,fld_child_xiangzhen) //获得j_8(乡镇)字段下拉窗口句柄
If rtncode_county = -1 Then MessageBox(“错误!”, “不是下拉数据窗口!”)
If rtncode_xiangzhen = -1 Then MessageBox(“错误!”, “不是下拉数据窗口!”)

fld_child_county.SetTransObject(SQLCA) //设置事务对象
fld_child_xiangzhen.SetTransObject(SQLCA) //设置事务对象

ls_sql_county = Lower(fld_child_county.GetSQLSelect())// 获得DDDW的SQL语句
ls_sql_xiangzhen = Lower(fld_child_xiangzhen.GetSQLSelect())// 获得DDDW的SQL语句

//* 去除Sql 语句中的Where条件子句, 如原Sql 语句中须有Where条件子句,此处则需进行较

//file://复杂的处理,应视具体情况而定。

if Pos(ls_sql_county, ” where “)>0 then ls_sql_county = Left(ls_sql_county,Pos(ls_sql_county, ” where “))
if Pos(ls_sql_xiangzhen, ” where “)>0 then ls_sql_xiangzhen = Left(ls_sql_xiangzhen,Pos(ls_sql_xiangzhen, ” where “))
//file://重新设置Sql 语句中的Where条件子句

ls_cd_city=dw_1.Object.j_6[GetRow()] //file://取得当前cd_city选定值
ls_cd_county = dw_1.object.j_7[GetRow()] //file://取得当前cd_county选定值

ls_sql_county = ls_sql_county + ” Where cd_city = ‘” +Trim(ls_cd_city)+”’”
ls_sql_xiangzhen = ls_sql_xiangzhen + ” Where cd_county = ‘” +Trim(ls_cd_county)+”’”

//重新设置Sql 语句

fld_child_county.SetSQLSelect(ls_sql_county)
fld_child_xiangzhen.SetSQLSelect(ls_sql_xiangzhen)
fld_child_county.Retrieve()//取得满足条件的数据
fld_child_xiangzhen.Retrieve()//取得满足条件的数据

0 0
原创粉丝点击