您现在的位置:软界网技术中心数据库SQLServer > 技术显示
PB中抑制下拉数据窗口切换时弹出检索参数
2000-3-19 0:00:00   网友评论       阅读次数 点此评论
   P>作为目前比较流行的数据库前端开发工具,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上实现,完全可行。

文章阅读排行
周排行
月排行
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml    
 
      来源: 作者:
 
【评论查看】