怎么样通过PB源码查询日期范围内的数据?

怎么样通过PB源码查询日期范围内的数据?

以下内容是PowerBuilder源码:根据开始时间和结束时间,查询历史信息。

第一步:建立数据库

第二步:建立ODBC数据源

第三步:连接PB

(以上三步可以参照:许恕的文章《PowerBuilder初试》)

第四步:设置界面

1、 新建一个窗体Window,Title为“查询历史记录”:

new——Workspace——Window

2、 新建一个数据窗口

New——DataWindow——Grid——QuickSelect

图1

怎么样通过PB源码查询日期范围内的数据?

图2

怎么样通过PB源码查询日期范围内的数据?

3、选择需要显示信息的表中的字段名称:(如下图蓝色标记所示)

图3

怎么样通过PB源码查询日期范围内的数据?

图4

怎么样通过PB源码查询日期范围内的数据?

图5

怎么样通过PB源码查询日期范围内的数据?

 

保存DataWindow为d_query.

4、把“数据窗口d_query”直接拖到Window窗体中。

图6

怎么样通过PB源码查询日期范围内的数据?

5、 把“数据窗口d_query”直接拖到Window窗体中。

图7

怎么样通过PB源码查询日期范围内的数据?

6、 找到我们所需要的控件,并在窗体中摆好位置。

图8

怎么样通过PB源码查询日期范围内的数据?

Create StateText Control:创建静态文本

Create EditMask Control:控件限制输入范围:

(设置日期显示格式时,Mask:yyyy-mm-dd,MaskDataType:datamask!)

图9

怎么样通过PB源码查询日期范围内的数据?


图10

怎么样通过PB源码查询日期范围内的数据?

第五步:编写代码

声明:实例变量

图12

怎么样通过PB源码查询日期范围内的数据?

(1)DeclareInstance Variables——Declare ——Instance Variables

 

//声明实例变量
string is_sql

(2)窗体加载事件:w_query——open()事件中

 

//数据窗口dw设置连接事务sqlca
dw_query.settransobject(sqlca)
//让数据窗口控件从库中提取数据
//dw_query.retrieve()
//得到原始语法,为检索做准备
is_sql = dw_query.getsqlselect()

(3)查询cb_query——Clicked()事件:

string ls_start,ls_end ,ls_select
string ls_left ,ls_right

//得到开始和结束时间
ls_start = em_start.text
ls_end  = em_end.text
ls_select = ''
// 开始时间
if not isnull(ls_start) and ls_start <> "" and lower(ls_start) <> 'none' then
ls_select = ls_select + " convert(char(10),抵店时间,120) >= '" + ls_start + "'"
end if
// 结束时间
if not isnull(ls_end) and ls_end <> "" and lower(ls_end) <> 'none' then
if ls_select = "" then
ls_select = " convert(char(10),抵店时间,120) <= '" + ls_end + "'"
else
ls_select = ls_select + " AND convert(char(10),抵店时间,120) <= '" + ls_end + "' "
end if
end if

////拼SQL语句
ls_select = is_sql + ' where ' + ls_select
if ls_select <> '' then
//赋值SQL语句
dw_query.setsqlselect(ls_select)
end if
dw_query.retrieve() //检索数据

 

8、成功查询‘抵店时间’在2000-00-00至2006-00-00内的历史记录。

怎么样通过PB源码查询日期范围内的数据?

 

总结:做项目时,首先要明确一个目标“你想要实现什么功能?”,然后去找要实现此功能需要的控件是什么?在VB中,我们可以使用‘日期控件‘对日期进行选择,而PB中我们选择了EditMask控件,通过控制时间格式,来达到相同的效果。

就像大张伟在《倍儿爽》歌中唱的那样“天空飘来五个字儿,那都不是事,是事儿也就烦一会儿,一会儿就完事儿”O(∩_∩)O~