如何用PB实现查询功能?
我设计了一个窗口有两个DATAWINDOW分别绑定了d_a收入和d_b支出两个数据窗口。开始的时候将他们的可视性设为FALSE有两个单选按钮收入和支出,实现对两个数据窗口...
我设计了一个窗口有两个DATAWINDOW分别绑定了d_a收入和d_b支出两个数据窗口。开始的时候将他们的可视性设为FALSE
有两个单选按钮 收入和支出,实现对两个数据窗口的选择,并将可视性改为TRUE。然后 根据后变 金额和日期的输入 进行记录查询。
我尝试编写了语句但能运行,可是它只实现了对两个数据窗口的显示,显示的是全部数据。金额和日期的输入没有起作用。编码如下:
integer a
date b
a=integer(sle_1.text)
b=date(sle_2.text)
dw_1.visible=false
dw_2.visible=false
if sle_1.text=''and sle_2.text='' then
messagebox("提示","请输入要查找的内容")
return
end if
if rb_1.checked=false and rb_2.checked=false then
messagebox("提示","请选择要查找的选项")
return
end if
if rb_1.checked=true then
dw_1.visible=true
dw_1.setfocus() //给焦点
dw_1.settransobject(sqlca) //连接上你的数据库
dw_1.retrieve()
dw_1.setfilter("jine like'%'+sle_1.text+'%'")
dw_1.setfilter("riqi like'%'+sle_2.text+'%'")//问题应该就出在这。
dw_1.filter()
end if
if …后边是rb_2的代码和1的差不多。每次实现都会弹出一个对话框说expression is not valid .我不知道该怎么做。那个查询语句我也觉得不对,应该是精确的查询。请高手指点。我愿倾我所有,感激不尽。 展开
有两个单选按钮 收入和支出,实现对两个数据窗口的选择,并将可视性改为TRUE。然后 根据后变 金额和日期的输入 进行记录查询。
我尝试编写了语句但能运行,可是它只实现了对两个数据窗口的显示,显示的是全部数据。金额和日期的输入没有起作用。编码如下:
integer a
date b
a=integer(sle_1.text)
b=date(sle_2.text)
dw_1.visible=false
dw_2.visible=false
if sle_1.text=''and sle_2.text='' then
messagebox("提示","请输入要查找的内容")
return
end if
if rb_1.checked=false and rb_2.checked=false then
messagebox("提示","请选择要查找的选项")
return
end if
if rb_1.checked=true then
dw_1.visible=true
dw_1.setfocus() //给焦点
dw_1.settransobject(sqlca) //连接上你的数据库
dw_1.retrieve()
dw_1.setfilter("jine like'%'+sle_1.text+'%'")
dw_1.setfilter("riqi like'%'+sle_2.text+'%'")//问题应该就出在这。
dw_1.filter()
end if
if …后边是rb_2的代码和1的差不多。每次实现都会弹出一个对话框说expression is not valid .我不知道该怎么做。那个查询语句我也觉得不对,应该是精确的查询。请高手指点。我愿倾我所有,感激不尽。 展开
2个回答
展开全部
这个很简单哦~
显示查询结果是体现在窗口下面的DW(数据窗口)中的,那么你需要组合好条件,然后利用数据窗口控件的
setSQLSelect(条件字符串)的方法重新设置DW查询SQL,然后再对DW操作retrieve()
即可实现!例如:
string
name
,
gender
name
=
sle_name.text
gender
=
ddlb_gender.text
string
ls_selectCmd
ls_sqlcmd
=
"select
name
,
gender
....
from
employee
"
+
&
"where
(name='"
+
name
+
"')
and
(gender='"
+
gender
+
"')"
dw_1.setTransobject(sqlca)
dw_1.setSQLSelect(ls_selectCmd)
if
dw_1.retrieve()
<
1
then
messagebox("提示"
,
"未找到任何条件的人员信息")
end
if
祝你好运!
显示查询结果是体现在窗口下面的DW(数据窗口)中的,那么你需要组合好条件,然后利用数据窗口控件的
setSQLSelect(条件字符串)的方法重新设置DW查询SQL,然后再对DW操作retrieve()
即可实现!例如:
string
name
,
gender
name
=
sle_name.text
gender
=
ddlb_gender.text
string
ls_selectCmd
ls_sqlcmd
=
"select
name
,
gender
....
from
employee
"
+
&
"where
(name='"
+
name
+
"')
and
(gender='"
+
gender
+
"')"
dw_1.setTransobject(sqlca)
dw_1.setSQLSelect(ls_selectCmd)
if
dw_1.retrieve()
<
1
then
messagebox("提示"
,
"未找到任何条件的人员信息")
end
if
祝你好运!
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
dw_1.setfilter("jine like'%'+sle_1.text+'%'")
dw_1.setfilter("riqi like'%'+sle_2.text+'%'")//问题应该就出在这。
以上两句都是针对字符串型的字段进行过滤的,可是看你的“金额”和“日期”,应该是数字型和日期型的字段,那么这样肯定会出“expression is not valid”错误(表达式无效),改成这样试试:
dw_1.setfilter("jine="+sle_1.text)
dw_1.setfilter("riqi=datetime('"+sle_2.text+"')")
试一下
dw_1.setfilter("riqi like'%'+sle_2.text+'%'")//问题应该就出在这。
以上两句都是针对字符串型的字段进行过滤的,可是看你的“金额”和“日期”,应该是数字型和日期型的字段,那么这样肯定会出“expression is not valid”错误(表达式无效),改成这样试试:
dw_1.setfilter("jine="+sle_1.text)
dw_1.setfilter("riqi=datetime('"+sle_2.text+"')")
试一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询