我们要用一个软件做报表的模板、然后在VB里面添加部件、代码调用模板,详细步骤如下。

一、下载安装



首先做报表要下载安装Grid++Report 4.5 报表设计器

点击下载(内含破解补丁)

二、制作模板



1、打开软件——插入——页眉、明细网格、页脚、如图

2。制作页眉



静态框:好像Label,能写入文字并显示

综合文字框:可以写入函数、变量等、跟文字结合并显示、在这里我们用作显示日期

上图右下角[#date3#][#time#]制作是自定义了date3跟time这两个变量、并且在VB代码中付给他俩当前的日期与时间、做法如下。

(1)新建参数



这里叫做参数、其实也是数据的容器、我还是习惯叫变量、都差不多

在软件的右边如图、参数集合---插入---参数

(2)更改属性



这个就是相当于给参数或者说变量命名、定义格式、定义数据类型

名称:VB付给这个参数值的时候要写

格式:日期是yyyy/mm/dd时间的是hh:mm:ss如图

我一共定义了4个参数、

date1和date2是显示周报表查询从日期1到日期2的日期如图

date3和time是显示当前日期和时间

具体效果如图

(3)放到页眉上



参数定义好、下面就放上去了、首先在页眉新建一个综合文字框

然后双击文字框、弹出窗口点击、插入域-----引用类型选参数----然后选择参数

效果如图

3、制作表格



(1)连接数据库(从左到右依次点击)



——查询的SQL语句写自己的表

记得点下测试、一般没问题、有问题的话看下SQL语句是否写错



(2)生成字段和列



先点击1、然后点击2、便可以自动执行刚刚的SQL语句获得表里的字段和行

页眉就不说了、直接用静态框就可以了

1.添加Grid++Report 的控件、如图

2.选择名字为GRDisplayViewer的控件、放到From上(蓝色第一个)

3.其他控件也放上去、名字如下图(跟我名字一样才能用.名字不一样要改代码)

4.开始时间和结束时间用的是时间控件DTPicter时间控件,部件载入名上图有(本人忘了是哪个了……)

5.引用(菜单--工程--引用)引用Grid++Re…………如图

6.代码(复制进去应该就行了、有详细备注、实在不懂的可以点我

[vb] view plaincopyprint?
1.Dim WithEvents Report As grproLibCtl.GridppReport '实例化报表</SPAN>
2.'报表刷新
3.Private Sub cmdCheckDay_Click()
4. Dim txtsql As String
5. '判定终止日期不能小于起始日期
6. If StartDateView.Value > EndDateView.Value Then '条件限制
7. MsgBox "终止日期不能小于起始日期!", ,"温馨提示"
8. Exit Sub
9. End If
10.
11. Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源连接数据库直接调用写好的模块内容
12. If txtBalance.Text = "" Then '判断上期text里是否为空
13. '查询日期1到日期2的记录
14. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
15. StartDateView.Value & "' and '" & EndDateView.Value & "'"
16. Else
17. '如果上期余额的text里不为空则查询日期1到日期2中、上期余额是文本中的记录
18. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
19. StartDateView.Value & "' and '" _
20. & EndDateView.Value & "' And Balance = '" & txtBalance.Text & "'"
21. End If
22.
23. '显示报表中的内容
24. Report.DetailGrid.Recordset.QuerySQL = txtsql
25. grdWeekliyBill.Refresh
26.
27. '报表模板上的4个日期或时间赋值
28. Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
29. Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
30. Report.ParameterByName("Date3").Value = Date
31. Report.ParameterByName("time").Value = Time
32.
33.End Sub
34.'预览
35.Private Sub cmdpreview_Click()
36. Report.PrintPreview (True)
37.End Sub
38.
39.'打印
40.Private Sub cmdput_Click()
41. Report.[Print] (True)
42.End Sub
43.
44.'载入窗体
45.Private Sub Form_Load()
46. '创建报表对象
47. Set Report = New grproLibCtl.GridppReport
48. '载入报表模版文件
49. Report.LoadFromFile (App.Path & "\周报表.grf")
50. '设置数据连接串
51. Report.DetailGrid.Recordset.ConnectionString = ConnectString
52.
53. '查询语句
54. txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & StartDateView.Value & "' and '" & EndDateView.Value & "'"
55. Report.DetailGrid.Recordset.QuerySQL = txtsql '执行
56. '显示报表中的内容
57. grdWeekliyBill.Report = Report
58. grdWeekliyBill.Start
59.
60. '报表模板上的4个日期或时间赋值
61. Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
62. Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
63. Report.ParameterByName("Date3").Value = Date
64. Report.ParameterByName("time").Value = Time
65.
66.End Sub
Dim WithEvents Report As grproLibCtl.GridppReport '实例化报表</SPAN>
'报表刷新
Private Sub cmdCheckDay_Click()
Dim txtsql As String
'判定终止日期不能小于起始日期
If StartDateView.Value > EndDateView.Value Then '条件限制
MsgBox "终止日期不能小于起始日期!", ,"温馨提示"
Exit Sub
End If Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源连接数据库直接调用写好的模块内容
If txtBalance.Text = "" Then '判断上期text里是否为空
'查询日期1到日期2的记录
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
StartDateView.Value & "' and '" & EndDateView.Value & "'"
Else
'如果上期余额的text里不为空则查询日期1到日期2中、上期余额是文本中的记录
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & _
StartDateView.Value & "' and '" _
& EndDateView.Value & "' And Balance = '" & txtBalance.Text & "'"
End If '显示报表中的内容
Report.DetailGrid.Recordset.QuerySQL = txtsql
grdWeekliyBill.Refresh '报表模板上的4个日期或时间赋值
Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date3").Value = Date
Report.ParameterByName("time").Value = Time End Sub
'预览
Private Sub cmdpreview_Click()
Report.PrintPreview (True)
End Sub '打印
Private Sub cmdput_Click()
Report.[Print] (True)
End Sub '载入窗体
Private Sub Form_Load()
'创建报表对象
Set Report = New grproLibCtl.GridppReport
'载入报表模版文件
Report.LoadFromFile (App.Path & "\周报表.grf")
'设置数据连接串
Report.DetailGrid.Recordset.ConnectionString = ConnectString '查询语句
txtsql = "select * from ReportForms_Info where cast(convert(varchar,date) as datetime) between '" & StartDateView.Value & "' and '" & EndDateView.Value & "'"
Report.DetailGrid.Recordset.QuerySQL = txtsql '执行
'显示报表中的内容
grdWeekliyBill.Report = Report
grdWeekliyBill.Start '报表模板上的4个日期或时间赋值
Report.ParameterByName("Date1").Value = Format$(StartDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date2").Value = Format$(EndDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("Date3").Value = Date
Report.ParameterByName("time").Value = Time End Sub

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. 鼠标 mouseover和mouseout事件
  2. Notes of 大数据智能
  3. 绿色ip扫描工具
  4. POJ 3352-Road Construction (图论-双边联通分支算法)
  5. 设计师必备!免费下载 PSD 素材的32个网站
  6. HAML学习
  7. Android开源库--Universal Image Loader通用图片加载器
  8. wdcp使用记录--持续更新
  9. C实战:项目构建Make,Automake,CMake
  10. 全面超越Appium,使用Airtest超快速开发App爬虫
  11. c/c++求解图的关键路径 critical path
  12. Linux 环境变量梳理
  13. 【前端酷站】分享一个纯 Javascript 的图表库与立体像素风制作~
  14. January 21st, 2018 Week 3rd Sunday
  15. sed/awk advance
  16. ubuntu下安装配置ADB
  17. jieba分词(2)
  18. UVa 10570 外星人聚会
  19. python logging模块按天滚动简单程序
  20. Hadoop生态圈-Hive快速入门篇之HQL的基础语法

热门文章

  1. TOYS(计算几何基础+点与直线的位置关系)
  2. oracle scott用户不存在
  3. idea如何搭建springmvc4
  4. el-date-picker 日期格式化 yyyy-MM-dd
  5. poj 1797
  6. H264协议(转)
  7. Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。
  8. mysql分组取前N记录
  9. javascript 线程问题小记
  10. LightOJ - 1234