Else
sle_4.text=sle_4.text+s_cn+s_cp+"'"+sle_5.text+"'"
End If
End If
在形成条件表达式字符串时,要根据字段类型是数值类还是字符类决定是否用引号定界符。字段类型24对应于binary、integer、numeric型,25对应于char、varchar、date型。如果比较符为"in",表示"包含"关系,条件表达式字符串中要使用pos函数。
单选按钮rb_3、rb_4用来在sel_4中添加逻辑运算符,clicked代码分别为
sle_4.text=sle_4.text+" AND " (添加逻辑运算符)和
sle_4.text=sle_4.text+" OR " (添加逻辑运算符)
命令按钮cb_9的作用是清除单行编辑框sle_4的内容。clicked代码为
sle_4.text=""
窗口中"查询"按钮cb_3的作用是根据选定的表名和第一个标签页上单行编辑框sle_1的内容形成SQL句法,动态建立数据窗口对象,然后利用第二个标签页上单行编辑框sle_3和第三个标签页上单行编辑框sle_4的内容进行排序和过滤,达到查询的目的。代码如下:
string s_sql,s_err,s_syn,s_sty
s_sql="SELECT "+tab_1.tabpage_1.sle_1.text+" FROM "+s_tn
s_sty="Style(Type=Grid Horizontal_Spread = 80)"
s_syn=SQLCA.SyntaxFromSQL(s_sql,s_sty,s_err) //形成SQL句法
dw_1.Create(s_syn) //建立数据窗口对象
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve() //输出结果
dw_1.SetFilter(tab_1.tabpage_3.sle_4.text)
dw_1.Filter( ) //进行过滤
dw_1.SetSort(tab_1.tabpage_2.sle_3.text) //进行排序
dw_1.Sort()
sle_2.text=string(dw_1.RowCount()) //显示记录数
窗口中"打印"按钮cb_5的clicked事件代码为dw_1.print()。
窗口中"退出"按钮cb_4的clicked事件代码为close(parent)。
三、使用
前面设计的查询窗口可作为一个通用模块挂接到任意一个PB应用软件当中,挂接时只要修改窗口中下拉列表框ddlb_1的item属性和selectionchanged代码,然后打开该窗口即可。
窗口打开后,通常要做的第一件事,是单击窗口中"表"右边的下拉列表,选择需要的表。表被选中后,相应的字段标题便显示在三个标签页的列表框中。接下来可选择输出字段、排序字段,指定条件进行查询。
1、选择输出字段
单击"字段选择"标签页,在列表框中选择需要的字段。选择方法与windows资源管理器选择文件的方法相同。即,按住Ctrl键,再单击,分别选择,按住Shift键再单击,或拖动,连续选择。单击"选中"按钮,选择生效。单击"清除"按钮,取消选择。
2、设置查询条件
单击"检索条件"标签页,在列表框单击某一字段,单击"比较符"下拉列表框,选择一个比较符(关系运算符),在"内容"下边的单行编辑框中输入要查询的部分或全部信息,单击"选中"按钮,部分条件表达式填入下面的单行编辑框。
如果继续指定条件,可单击单选按钮"并且"或"或者",对应的逻辑运算符填入单行编辑框,然后再用前面的方法指定部分条件。
单击"清除"按钮,清除单行编辑框中的条件表达式,输出全部记录。
指定的查询条件在单行编辑框中,可左右滚动查看,也可直接修改。
3、设置排序字段
单击"排序设置"标签页,单击排序方式的"升序"或"降序"单选框,在列表框单击某一字段或多个字段,查询结果可按指定字段和方式排序。
单击"清除"按钮,清除排序字段,按自然顺序输出。
4、开始查询
单击窗口"查询"按钮,查询结果显示在数据窗口控件中。
5、打印
单击窗口"打印"按钮,可打印数据窗口控件中的查询结果。
四、结束语
上面介绍的是一个功能强大的通用查询窗口,可挂接到任何PB应用软件中,如果与"通用全字段查询窗口"连用,效果会更好。






