博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机房收费系统中的Grid++Report报表设计器的应用
阅读量:6701 次
发布时间:2019-06-25

本文共 4574 字,大约阅读时间需要 15 分钟。

    在进行账单查询功能的时候我应用了Grid++Report报表设计器,下面我就为大家介绍一下,还望大家多多指点。

    首先,在Grid++Report报表设计器中进行报表界面的设置。在属性编辑窗口中这里对报表头、标题行、内容行进行设置,具体的操作不在赘述,我设计的报表界面如下所示。

    其次,在机房收费系统项目中的UI层中添加应用,在COM中选择Grid++Report Designer 5.6Type Library和Grid++Report Engine Plugin 5.6Type Library。

    再次,在代码编辑器中加入Grid++Report类型库名字空间引用,即为Imports grproLib。

    最后在代码编辑器中进行编辑,来应用报表设计器进行账单查询:

'加入Grid++Report类型库名字空间引用Imports grproLib''' ''' 查询账单''' ''' 
Public Class frmQueryItemsBill '定义Grid++Report报表主对象 Private Report As New GridppReport Dim NameField As grproLib.IGRField '上次消费余额 Dim PriorperiodCashField As IGRField '本期充值金额 Dim CurrentCreditField As IGRField '本期消费金额 Dim CurrentConsumptionField As IGRField '本期退卡金额 Dim CurrentAmountrefundedField As IGRField '本期总金额 Dim CurrentCashField As IGRField '结账时间 Dim DateField As IGRField ''' ''' 加载账单 ''' ''' ''' '''
Private Sub frmQueryItemsBill_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '载入报表模板数据 Report.LoadFromFile(GetReportTemplatePath() + "Bill.grf") '连接报表事件 AddHandler Report.Initialize, AddressOf ReportInitialize AddHandler Report.FetchRecord, AddressOf ReportFetchRecord '设定查询显示器关联的报表 AxGRDisplayViewer1.Report = Report DateTimePicker1.Value = New DateTime(Year(Now), Month(Now), 1) DateTimePicker2.Value = New DateTime(Year(Now), Month(Now), 1) PriorperiodCashField = Report.FieldByName("PriorperiodCash") CurrentCreditField = Report.FieldByName("CurrentCredit") CurrentConsumptionField = Report.FieldByName("CurrentConsumption") CurrentAmountrefundedField = Report.FieldByName("CurrentAmountrefunded") CurrentCashField = Report.FieldByName("CurrentCash") DateField = Report.FieldByName("Date") AxGRDisplayViewer1.Start() End Sub ''' ''' 刷新 ''' ''' ''' '''
Private Sub btnFreshen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFreshen.Click If CStr(DateTimePicker1.Value) > CStr(DateTimePicker2.Value) Then MsgBox("对不起起始时间应该小于结束时间") Exit Sub End If AxGRDisplayViewer1.Stop() AxGRDisplayViewer1.Start() End Sub ''' ''' 打印预览 ''' ''' ''' '''
Private Sub btnPreview_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPreview.Click Report.PrintPreview(True) End Sub ''' ''' 打印 ''' ''' ''' '''
Private Sub btnPrinter_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrinter.Click Report.Print(True) End Sub ''' ''' 报表初始化 ''' '''
Private Sub ReportInitialize() Report.ControlByName("SubTitle").AsStaticBox.Text = _ "从" + CStr(DateTimePicker1.Value) + "至" + CStr(DateTimePicker2.Value) End Sub Public Function GetReportTemplatePath() As String Dim FileName As String = Application.StartupPath.ToLower() Dim Index As Integer = FileName.LastIndexOf("bin") FileName = FileName.Substring(0, Index) GetReportTemplatePath = FileName End Function ''' ''' 添加报表记录 ''' '''
Private Sub ReportFetchRecord() '定义开始结账实体 Dim entityBeginAccount As New Entity.AccountInfoEntity '定义结束结账实体 Dim entityEndAccount As New Entity.AccountInfoEntity '定义B层结账 Dim bllAccount As New BLL.AccountBLL '定义数据表 Dim dt As DataTable '定义返回的数据行 Dim intRows As Integer entityBeginAccount.BookDate = DateTimePicker1.Value entityEndAccount.BookDate = DateTimePicker2.Value dt = bllAccount.InquiryAccount(entityBeginAccount, entityEndAccount) '添加账单记录 intRows = dt.Rows.Count For intRows = 0 To (intRows - 1) Report.DetailGrid.Recordset.Append() PriorperiodCashField.AsInteger = dt.Rows(intRows).Item("PriorAmount") CurrentCreditField.AsInteger = dt.Rows(intRows).Item("RechargeAmount") CurrentConsumptionField.AsInteger = dt.Rows(intRows).Item("ConsumeAmount") CurrentAmountrefundedField.AsInteger = dt.Rows(intRows).Item("RemoveCardAmount") CurrentCashField.AsInteger = dt.Rows(intRows).Item("TotalAmount") DateField.AsString = dt.Rows(intRows).Item("BookDate") Report.DetailGrid.Recordset.Post() Next End Sub

因为B层和D层的代码不涉及Grid++report的应用我就不为大家展示。账单查询界面如下图所示:

    这是我用的添加查询记录的方法。开始我本来是想将DataTable中的数据以单元格的形式循环遍历到到Grid++report中,但是未能实现,望有高手多多指教。

你可能感兴趣的文章
自己实现MVVM(Vue源码解析)
查看>>
从有到优:百度前端接入技术的升级之路
查看>>
JVM很重吗?
查看>>
Intellij IDEA Jrebel Plugin 激活服务
查看>>
用Mockplus教你使用属性面板的设置交互状态
查看>>
让旧手机运行 Android O? 看看 Android Go 是如何做到的
查看>>
Zabbix SNMP监控安装、配置与服务器实例(学习笔记六)
查看>>
学习讲述
查看>>
GoLang并发控制(下)
查看>>
Java编写(模仿51CTO 给图片加上水印)--原创
查看>>
flask cookies 对象
查看>>
OpenStack服务启动故障排除经验
查看>>
实战开发经验: 软件中的错误收集策略
查看>>
.NET简谈事务、分布式事务处理
查看>>
再次成功解决苹果XSAN 7TB双RAID5+软RAID0的数据恢复
查看>>
《hadoop进阶》基于hadoop和hive的微博热词跟踪系统
查看>>
Flex与.NET互操作(十六):FluorineFx + Flex视频聊天室案例开发
查看>>
phpMyAdmin的安装及排错
查看>>
Oculus和虚拟现实的无限可能
查看>>
Silverlight自定义数据绑定控件应该如何处理IEditableObject和IEditableCollectionView对象...
查看>>