祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 5540|回复: 0

[其它] PB中隐藏下拉数据窗的检索参数

[复制链接]

[其它] PB中隐藏下拉数据窗的检索参数

[复制链接]
newease

主题

0

回帖

1万

积分

论坛元老

积分
19020
贡献
在线时间
小时
2009-8-12 09:35:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
PowerBuilder是目前流行的数据库前端开发工具之一,特别是它的数据窗口,可以很方便地对数据库进行操作,并且数据窗口对象又以其灵活多样的显示风格深得广大开发者的喜爱。有时候,数据窗口对象中的某些列的取值必须满足一定的条件且来自另一个数据源,这样,我们就要使用下拉数据窗口风格的数据窗口对象,并且在下拉数据窗口中设置检索参数,该下拉数据窗口仅显示满足条件的数据。不幸的是,如果我们直接使用该带参数的下拉数据窗口,在使用Insertrow()、Retrieve()函数操纵数据窗口时,系统会自动检索下拉数据窗口,出现"Specify Retrieval"对话框,怎样才能避免该对话框出现呢?
    为了避免出现"Specify Retrieval" 对话框的出现,我们在操纵主数据窗口之前必须先操纵下拉数据窗口。为了让读者更清楚具体操作过程,我们以一个具体实现为例加以说明。本例子的数据来自于两个表:bj和student。具体步骤如下:
一. 创建窗口w_test。窗口上的控件有:命令按钮:cb_1(插入)、cb_2(关闭),数据窗口控件dw_1,静态文本st_1(年度),单行编辑框sle_1。
二. 创建基于表student的数据窗口对象d_student、基于表bj的数据窗口对象d_bj。其中设置d_bj中的列"nd(年度)"设置检索参数,参数名为nd(string),当检索子数据窗时,下拉数据窗显示满足nd=:nd的数据;而d_student的列class(班级)为下拉数据窗风格,子数据窗为d_bj;这样,当单击 "插入"时,数据窗的"班级"列只显示满足条件"nd=sle_1.text"的班级名称。
三. 在窗口"w_test"中声明事例变量(Instance Variables)atawindowChild child
四. 在窗口open事件中写入以下脚本程序:
sle_1.text=string(today(),"yyyy")
dw_1.settransobject(sqlca)
五. 在命令按钮cb_1(插入)的"clicked"事件中写入以下脚本程序:
dw_1.getchild("class",child)
child.settransobject(sqlca)
child.retrieve(sle_1.text)
dw_1.settransobject(sqlca)
dw_1.insertrow(0)
所有步骤完成后,运行该窗口。此时,光标停于单行编辑框sle_1内,在该编辑框内输入年度号(如:1998),然后单击命令按钮cb_1(插入),移动光标到新添加行的"班级"列,单击,出现下拉数据窗口(如图二),该子窗口出现的数据就为满足nd="1998"的班级名称。
从上面的实例操作可知,为了在子数据窗口中仅显示满足条件的数据,就必须为子数据窗口设置检索参数。单为了在操纵主数据窗口时出现"Specify Retrival"窗口,只需在操纵主数据窗口之前先对子数据窗口操纵,这样就可以达到我们的要求。
共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-5-4 16:20 , Processed in 0.213378 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表