在查询窗口的Open事件中加入如下脚本:
integer i
thelogic=""
i_dwToActOn = Message.PowerObjectParm
//取得当前数据窗口的列的数据
ColCount = Integer(i_dwToActOn.Object.DataWindow.Column.Count)
for i=1 to ColCount
//取得并保存列的简单注释、名称和数据类型
colinfo[i].colname=i_dwToActOn.Describe("#" + string(i) + ".Name")
colinfo[i].coltag=i_dwToActOn.Describe("#" + string(i) + ".Tag")
colinfo[i].coltype=left(i_dwToActOn.Describe("#" + string(i) + ".ColType"),4)
//在列选择下拉列表中添加项
ddlb_1.additem(i_dwToActOn.Describe("#" + string(i) + ".Tag"))
next
//初始化,把and设为默认得逻辑关系
rb_1.checked=true
ddlb_1.selectitem(1)
在查询窗口的添加按钮的Clicked事件中加入如下脚本:
string thecol,val
integer i
//取得用户选择的列和用户输入的具体查询条件
thecol=ddlb_1.text
val=sle_1.text
//从数组中查找用户选择的列在数组中的位置
For i=1 To ColCount
If thecol=colinfo[i].coltag Then exit
Next
//根据列的数据类型,拼写不同的查询字符串
Choose Case colinfo[i].coltype
Case "char"
//拼写查询字符串
Expression = Expression + thelogic + colinfo[i].colname &
+ ddlb_2.text + "'" + val + "'"
Case "deci", "long", "numb", "real"
//判断用户输入是否为数值
If IsNumber(sle_1.text) Then
Expression = Expression + thelogic + colinfo[i].colname &
+ ddlb_2.text + val
Else
MessageBox("错误","请输入数值作为查询条件")
sle_1.text=""
sle_1.SetFocus()
Return
End If
Case "date"
//格式化用户的输入为具体的日期格式
val = String(Date(val), "yyyy-mm-dd")
Expression = Expression + thelogic + colinfo[i].colname &
+ ddlb_2.text +val
End Choose
//根据用户的选择设置逻辑关系
If rb_1.checked Then
thelogic=" and "
Else
thelogic=" or "
End If
//在多行编辑框中显示查询字符串
mle_1.text=Expression
在查询窗口的查询按钮的Clicked事件中加入如下脚本:
//设置过滤条件
i_dwtoacton.SetFilter(mle_1.text)
i_dwtoacton.Filter()
i_dwtoacton.SetFocus()
Close(Parent)
在查询窗口的取消按钮的Clicked事件中加入如下脚本:
Close(Parent)
3.12查找窗口
查找窗口(如图14所示)用来查找数据窗口中满足查找条件的记录,通过从参数传递过来的数据窗口,从而可以使多个窗口共用此窗口。该窗口包含的主要对象有:4个静态文本用来显示提示信息;一个下拉列表框(ddlb_1),用来输入查找列;一个单行编辑框(sle_findword),用来输入查找的具体条件;两个单选按钮(rb_prior、rb_back),用来选择查找的方向;一个分组框(gb_1),用来把两个单选按钮框起来;两个按钮, “查找”按钮实施查找功能,“取消”按钮关闭查找窗口。
图14 查找窗口
www.751com.cn long row=0 //保存当前查找的起始行
在查找窗口的Open事件中加入如下脚本:
integer i
i_dwToActOn = Message.PowerObjectParm
ColCount = Integer(i_dwToActOn.Object.DataWindow.Column.Count)
for i=1 to ColCount
colinfo[i].colname=i_dwToActOn.Describe("#" + string(i) + ".Name")
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>