VC++ Datagrid应用实例详解系列(2) – 筛选查询

来源:互联网 发布:js获取name的值 编辑:程序博客网 时间:2024/05/16 05:21

 

本文源码下载:

http://d.download.csdn.net/down/3143819/zxhx

导读:本文是VC++ Datagrid应用实例详解系列的第二讲-筛选查询。

 

本文的feature:

1)       在系列(1)的基础上添加了Date Time Picker组件,并利用该组件+按钮实现DataGrid数据查询;

2)       简单介绍了Date Time Picker的用法;

3)       简单介绍了在按钮组件的OnClick事件中接收其他组件变量及更新变量的基本流程。

前文(1)补遗:

1)       数据源绑定的设置方法:在Data Control组件中设置好数据源后,右键DataGrid组件,选择”Properties”,点击属性页右上角的三角箭头,拉到“All”标签页,找到Data Source属性,在下拉列表框中选择“IDC ADODC1”,如下图:

datagrid数据源绑定

 

2)       有关vc6.0的补丁:使用上述控件最好是打上vc6.0 sp6补丁后再执行。

 

正文:

在对话框窗体上添加Date Time Picker组件,并添加两个按钮,对按钮的Caption进行设置,分别为查询全部显示

Date Time Picker控件点击右键,设置控件的成员变量,类型选择CDateTimeCtrl,变量名为m_DtCtrl,基本用法与DataGrid差不多,也是设置成员变量。

DBGridDemoDlg.cpp文件中添加代码:

1)  对话框初始化函数中新增一列,并添加日期列的代码,按前文(1)介绍的方法进行即可,在此不再赘述。

2)  对查询按钮添加OnClick事件如下:

 

 

针对以上代码,在此特别介绍一下UpdateData()函数的用法:

UpdateData(TRUE):获得控件当前的数据

UpdateData(FALSE):更新控件中的数据

如:一个edit控件设置变量为m_textstrText为控件中的一个变量,定义为:

CString strText;

UpdateData(TRUE)

strText = m_text;

表示:只有在调用了UpdateData(TRUE)后,才能获得控件的当前输入值(若没输入则为默认值),否则strText还是上次赋予的值(若没有则显示其默认值)。

若在m_text中输入一个值,再UpdateData(FALSE),则表示:

控件m_text接收输入的值,如果没有UpdateData(FALSE),则该控件依然显示原先的值。

另外再简单说明一下上面Format()函数的参数的含义:

 vTime.Format("%Y-%m-%d");

其中:第一个参数”Y”表示4位的年(如:2011),如果为”y”则只取后两位(如:11),第二个参数”m”表示2位的月(如:03),此处大小写显示的结果相同,第三个参数”d”必须为小写,表示2为的日,改为大写则不显示。

另外,需要注意一下CTimeCString之间的转换,参考上面的代码即可。

 

按上面的设计,查询完毕后,无法显示所有数据,所以在此增加了显示全部数据的按钮,代码如下:

  

 

如果希望看到所有数据,可以点击该按钮。

运行效果如下:

运行效果

 

本系列(3)待续。