- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PB7.0通用选字段查询窗口的设计
本文介绍一个在PB7.0下实现的通用查询窗口,可实现对任意表的查询,输出字段、排序字段、查询条件都可以随意指定。功能丰富,使用方便、灵活,可挂接到任何PB应用软件中,从而大大提高软件的开发效率。
本文是《PB7.0通用全字段查询技术》(计算机世界周报2000年第3期)的姊妹篇。两篇文章介绍的技术方案不同,做出查询窗口的风格、形式和用法也不同,可同时使用,丰富系统功能。
在PB7.0中,数据库中表的内容通常用数据窗口对象显示输出,而数据窗口对象一般都要事先建立。能不能在程序运行过程中根据用户指定的字段,动态建立数据窗口对象,进一步,再通过用户指定的条件对记录进行过滤,达到查询的目的?回答是肯定的。我们设计了一个窗口,不仅实现了上述功能,而且可以挂接到任何PB应用软件当中,对任意表进行查询、排序和打印,很有实用价值,愿与读者分享。下面介绍实现方法和具体步骤。
一、准备
1.首先建立一个应用程序对象serch,并对其open事件编写如下代码: SQLCA.DBMS=ProfileString(PB.INI,Database,DBMS,) SQLCA.DbParm=ProfileString(PB.INI,Database,DbParm,) CONNECT USING SQLCA; If sqlca.sqlcode 0 Then MessageBox (数据库连接失败, sqlca.sqlerrtext) Halt //终止应用程序 End If open(w_serch) //打开通用选字段查询窗口
2.建立任意一个数据库(例如,Adaptive Server Anywhere 6.0数据库test.db),配置ODBC、Profile,建立需要的若干个表。如:nhxx(农户信息表)、tjzl(生产信息表)等。可以使用任何已有的数据库和表。
二、窗口设计
通用查询是在窗口中实现的,技术核心都在窗口的控件当中。
首先,建立一个窗口对象w_serch。其中包含一个数据窗口控件dw_1,一个下拉列表ddlb_1,三个命令按钮cb_3、cb_4、cb_5,一个单行编辑框sle_2和一个标签tab_1。
标签tab_1的第一个标签页tabpage_1上放置一个列表框lb_1、一个单行编辑框sle_1和两个命令按钮cb_1、cb_2。
窗口和第一个标签页tabpage_1如图1所示。 (图1) 为进行窗口各控件之间的数据传递,声明以下四个实例变量: string s_tn //表名变量 string s_seq=A //排序方式变量(默认升序) string s_cn,s_ct,s_cp //字段名、字段类型、比较符变量 string t_c[50,3] //存放表中各字段名、字段类型和字段标题
窗口中下拉列表框ddlb_1的作用是选择不同的表。在它的item属性中设置两项:农户信息和生产信息,作为表名提示信息。当选择某一项时,通过代码将对应的表名送实例变量s_tn。通过修改和添加item项以及相应代码,即可选择不同的表,从而实现对任意表的查询。这里设置的农户信息、生产信息是两个例子。
当下拉列表框ddlb_1的选项改变时,产生selectionchanged事件,通过下面程序代码,将选定的表名送变量s_tn,该表的各个字段名、字段类型、字段标题送数组t_c,各字段标题添加到三个标签页上的列表框lb_1、lb_2、lb_3中。其中,数组t_c的第一个下标表示字段序号,第二个下标值1、2、3分别表示字段名、字段类型和字段标题。这里用到了系统表pbcatcol,它的字段pbc_tnam、pbc_cnam、pbc_jtfy和pbc_hdr值分别存储表名、字段名、字段类型和字段标题。
integer i //循环变量(数组下标) CHOOSE CASE ddlb_1.text //根据表名提示信息,确定相应的表名 CASE 农户信息 s_tn=nhxx CASE 生产信息 s_tn=tjzl END CHOOSE DECLARE tab_col CURSOR FOR //定义游标 SELECT pbcatcol.pbc_tnam, //表名 pbcatcol.pbc_cnam, //字段名 pbcatcol.pbc_jtfy, //字段类型 pbcatcol.pbc_hdr //字段标题
文档评论(0)