PB中抑制下拉数据窗口切换时弹出的检索参数在线教程

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:38:49

---- 作为目前比较流行的数据库前端开发工具,PowerBuilder显著的一个特点就是其数据窗口(DataWindow)技术。为了更灵活地使用数据窗口,PB还提供了下拉数据窗口(DropDownDataWindow,以下简称dddw)。灵活使用dddw可使程序录入、查询的界面更加友好,大大减小编程的难度。


---- 有时候,数据窗口中的某一列的dddw需要根据条件的变化来回变换,即随条件的变化显示不同dddw的内容,且原dddw与变换后的dddw都带有检索参数,采用《计算机世界》99年3月22日刊登的《PB中隐藏下拉数据窗口的检索参数》一文中介绍的方法也不能抑制检索参数窗口的弹出。查阅Sybase网上技术文档(Document号为44434),谈到两个dddw的切换时说:抑制检索参数窗口的方法(见Document号为44307,即上文采用的方法)不适用于两个dddw替换的情况,除非两个dddw的定义非常相近,不需要重新检索。如果两个dddw的定义不同,dw引擎决定需要重新检索时没有办法抑制检索参数窗口的弹出。


---- 在应用中有时确实需要两个dddw相互切换,显示不同的内容以方便用户的使用,如下图中所示的字段“同类设备编码”,查询状态时dddw显示具有该编码的设备的技术参数,其检索参数为其自身值;当用户按修改按钮后,此字段的dddw显示所有设备编码及各编码代表设备的名称、规格和型号,此时的dddw以“分类代码”为检索参数,两个dddw定义完全不同,分别检索不同的表。


在“修改”按钮中切换dddw的脚本如下:dw_1.object.equipment_account_equip_id.dddw.name = "d_dddw_equip_id"dw_1.object.equipment_account_equip_id.dddw.percentwidth = 450//设定显示宽度dw_1.object.equipment_account_equip_id.dddw.vscrollbar = "yes"//设定纵向滚动条dw_1.getchild ("equipment_account_equip_id",idw_child)//改变参数后必须重新getchild使改变后的属性生效idw_child.settransobject (sqlca)idw_child.retrieve(cl_id)//按分类代码检索

---- 真的如上所述没有办法抑制检索参数了吗?其实有一个非常简单、适用于所有dddw的方法:


---- 在DataWindow painter中打开此dddw,从菜单条选择 Rows→Data后单击Add按钮,在第一列任意输入一些字符,单击OK,再存盘退出;另一dddw也依此操作。这样看似及其复杂的问题轻而易举地解决了,如果一个数据窗口中用到多个dddw,可以省去许多类似下面的语句,使程序编制起来更快捷,程序可读性更好。


dw_1.getchild ("equip_item_equip_id",idw_child1) idw_child1.settransobject (sqlca) if idw_child1.rowcount() = 0 then idw_child1.insertrow(0) end if

---- 以上方法在P200兼容机、Windows95平台上、PowerBuilder5.0上实现,完全可行。


Tags:

作者:佚名
分享到: 微信 更多