机房收费系统的报表窗体之前完全不懂如何去敲,因为涉及到了新的控件,总会有些抵触,不过通过问同学和百度对报表就有了一个大致的了解,也就没什么了。报表就是用表格、图表等格式来动态显示数据。
首先,要下载一个报表设计器,来打开编辑报表
然后可以插入表头、表尾、网格、静态框、字段框、参数等,之后点击SQL设置数据库连接串,测试连接成功后完成报表与数据库的连接。
再然后就是完成VB与报表的交互,完成报表与VB的连接。在部件中添加,然后在窗体加载中写入程序:
Private Sub Form_Load()
Set Report = New grproLibCtl.GridppReport '实例化报表report
Report.LoadFromFile (App.Path & "\weekcheck.grf") '载入报表文件
Report.DetailGrid.Recordset.ConnectionString = ConnectString '数据源连接数据库直接调用写好的模块内容
GRDisplayViewer1.Report = Report '查看报表
GRDisplayViewer1.Start '显示报表
Report.ParameterByName("Begindate").Value = Format(BeginDateView.Value, "yyyy-mm-dd") '报表参数赋值
Report.ParameterByName("EndDate").Value = Format(EndDateView.Value, "yyyy-mm-dd")
Report.ParameterByName("XX").Value = UserName '显示管理员
End Sub
报表刷新:
Dim txtSQL As String
Dim MsgText As String
If BeginDateView.Value > EndDateView.Value Then '条件限制
MsgBox "终止日期不能小于起始日期", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
txtSQL = "select * from checkweek_info where date between '" & Format$(BeginDateView.Value, "yyyy-mm-dd") & "' and '" & Format$(EndDateView.Value, "yyyy-mm-dd") & "'" '调出结账时赋给数据表的值
Report.DetailGrid.Recordset.QuerySQL = txtSQL
GRDisplayViewer1.Refresh '刷新
Report.ParameterByName("Begindate").Value = BeginDateView.Value '将选定的时间段显示出来
Report.ParameterByName("EndDate").Value = EndDateView.Value
打印:
Report.[Print] (True)
打印预览:
Report.PrintPreview (True)
这是周结账单的内容,日结账单与其类似,一些细节没有写出,不过自己总结一遍,印象便愈深一刻