前端之家收集整理的这篇文章主要介绍了
机房之报表(日、周结账单),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
机房收费系统将要接近尾声啦,心里是灰常的激动的!在这期间遇到了许多
从未遇到过的问题,今天就来说说报表咯!!!
恩…………说什么好呢?好吧,说说报表与vb的交互吧!
我这几天看了好多博客,关于这个方面的真是一大堆的哈,本来不想写了,
但是想想还是自己写一下,会留下很深的印象的,于是就有了下边的少些文字和图
片还有一大堆文代码:
我看他们的博客大多数都是先写的如何制作报表,我看有点儿麻烦,也就没
有自己制作,用的发下来的材料里边的现成的(怪我懒咯)。但用现成的也不容易
啊,无论如何怎么都不行,于是我就从网上搜了一下,原来如此!
就拿日结账来说吧:
1、首先打开报表文件然后点击下图中红框中的(sql)字样小按钮:
2、进来后是这样的,然后点击(创建数据库连接串)小按钮:
3、然后点击如下:
4、点击后自动跳转到链接选项卡,然后:
图中(1)点击选择本机号(也可以是别人的机号)或者直接输入符号点(.);
图中(2)如果图中(1)选择的是本机号或者输入点(.),(2)选择哪个
都无所谓,选择“使用 Windows NT 集成安全设置”则直接选择图中(3);如
果选择“使用指定的用户名称和密码”则需输入你电脑的数据库的用户名和密码到
下边的“用户名称”和“密码”然后到如中(3);若图中(1)选择的是别人的机
图中(3)就可以直接选择自己机房收费系统中所需要的数据库了。
5、然后点击“测试连接”按钮,弹出提示框“测试连接成功”即可。
这样初步配置报表文件算告一段落了,接下来就是进入VB敲写代码了
(这里画控件就不细说了,看图):
日结账单:
代码:
1、先定义:
Option Explicit
Dim WithEvents Report As grproLibCtl.GridppReport
2、然后在form_load中添加代码:
Private Sub Form_Load()
Dim Txtsql As String
Dim msgtext As String
Txtsql = "select * from CheckDay_Info where date='" & Format(Date,"yyyy-mm-dd") & "'"
Set Report = New grproLibCtl.GridppReport
Report.LoadFromFile (App.Path & "\机房收费系统所需素材\日结账.grf")
Report.DetailGrid.Recordset.ConnectionString = connectstring()
Report.DetailGrid.Recordset.Querysql = Txtsql
Report.ParameterByName("guanliyuan ").AsString = UserName
Report.ParameterByName("guanliyuan").Value = UserName
GRDisplayViewer1.Report = Report
GRDisplayViewer1.Start
End Sub
3、打印中:
Report.[Print] (True) '打印,报表对象的print方法名与VB中的内部定义方法有冲突,所以使用中括号
4、打印预览中:
Report.PrintPreview (True)
5、日结账单刷新:
GRDisplayViewer1.Refresh 'GRDisplayViewer1.刷新
Msg@R_301_460@ "账单刷新成功!",vbOKOnly + vbExclamation,"警告" '弹出消息框 "账单刷新成功!",只有 确定 按钮(缺省)(值=0) + vbExclamation,"警告"
日结账单就这样的完成了,然后是周结账单:
代码:
与日结账单的代码基本上一样,只是多了个获取始终日期。
'获取始终时间
Report.ParameterByName("startdate").Value=Format$(DTPicker1.Value,"yyyy-mm-dd")
Report.ParameterByName("enddate").Value = Format$(DTPicker2.Value,"yyyy-mm-dd")
刷新账单的代码”
Dim Txtsql As String
Dim msgtext As String
Dim mrc1 As ADODB.Recordset
Dim mrc2 As ADODB.Recordset
If endtime.Value < starttime.Value Then
Msg@R_301_460@ "终止时间不能小于起始时间!","警告"
Exit Sub
End If
Txtsql = "select * from CheckDay_Info where date between'" & Format$(starttime.Value,"yyyy-mm-dd") & "'" & "and'" & Format$(endtime.Value,"yyyy-mm-dd") & "'"
Set mrc1 = Executesql(Txtsql,msgtext)
Txtsql = "select * from checkWeek_Info "
Set mrc2 = Executesql(Txtsql,msgtext)
Do While Not mrc2.EOF
mrc2.delete
mrc2.MoveNext
Loop
Do While Not mrc1.EOF
With mrc2
.AddNew
.Fields(0) = mrc1.Fields(0)
.Fields(1) = mrc1.Fields(1)
.Fields(2) = mrc1.Fields(2)
.Fields(3) = mrc1.Fields(3)
.Fields(4) = mrc1.Fields(4)
.Fields(5) = mrc1.Fields(5)
.Update
mrc1.MoveNext
End With
Loop
GRDisplayViewer1.Refresh
Msg@R_301_460@ "账单刷新成功!","警告"
End Sub
这样,日周结账单就完成了,嘿嘿!!!
原文链接:https://www.f2er.com/vb/257322.html