随笔 - 142  文章 - 2  评论 - 4  阅读 - 57303

系统中报表的使用

 

报表这块,由于比较生疏,都是自己从网上下载控件,然后看下载后的小例子,现学现卖的。

 下面是应用中的一个小模块:

Dim WithEvents Report As grproLibCtl.GridppReport ’‘声明report具有报表控件的事件

Private Sub cmdPrint_Click()  '打印报表
'因为报表对象的 Print 方法名与 VB 内部定义有冲突,所以要用中括号括起来   

 Report.[Print] (True)
End Sub

Private Sub cmdPrintPreview_Click()  '打印预览
    Report.PrintPreview (True)
End Sub

Private Sub Form_Load()

    Set Report = New grproLibCtl.GridppReport    '实例化一个报表
    '载入报表模板文件
    Report.LoadFromFile (App.Path & "\Checkweek.grf")

  ‘设置数据连接串

    Report.DetailGrid.Recordset.ConnectionString = "Provider=SQLOLEDB;Data Source=192.168.24.58;Initial CataLog=charge_my;UID=sa;PWD=123456"
   
    GRDisplayViewer1.Report = Report '查看报表
    GRDisplayViewer1.Start '显示报表
   
End Sub

'初始化,将DTPicker取得的时间转化成报表事件中字符串

'DTPicker是显示日期的控件

Private Sub Report_Initialize()
    Report.ParameterByName("BeginDate").AsString = Format(DTPicker1.Value, "yyyy-mm-dd")
    Report.ParameterByName("EndDate").AsString = Format(DTPicker2.Value, "yyyy-mm-dd")
End Sub

 

如果不用DTPicker控件的话,方法也可以

 

Dim withEvents Report As grproLibCtl.GridppReport   ‘声明report具有报表控件的事件

Dim starttime As Date

Dim endtime As Date

Private Sub cmdpreview_Click()

  Report.PrintPreview (True)   ‘报表预览

End Sub

Private Sub cmdprint_Click()

Report.[Print] (True)           ‘打印报表

End Sub

Private Sub cmdrefresh_Click()

Dataview.Stop                              ‘刷新报表

Set Report = New grproLibCtl.GridppReport      ‘实例化一个报表

Report.LoadFromFile (App.Path & "\Checkweek.grf")‘加载报表文件

Report.DetailGrid.Recordset.connectionstring = "filedsn=andy.dsn;UID=sa;pwd=123456"

‘建立连接,也可以在创建报表的时候

Report.DetailGrid.Recordset.QuerySQL = "select * from daily_account where daily_time between '" & starttime & "' and '" & endtime & "'"  ‘报表查看的内容

Dataview.Report = Report      ‘查看报表

Dataview.Start                ‘开始显示

End Sub

以上两种方法,其实相似的很,主要以掌握其实用为目的。

对于“dim withevents xx as adodb.recordset<br />”的理解:

其实这个声明,也没有什么难的。WithEvents 关键字,指定变量xx将用于处理对象的事件。可以通过提供类名来指定对象类型,该类是创建这个xx对象的类。<br />说明 xx 是一个用来响应由 ActiveX 对象触发的事件的对象变量。只有在类模块中才是合法的。使用 WithEvents,可以声明任意个所需的单变量,但不能使用 WithEvents 创建数组。New 和 WithEvents 不能一起使用。

posted on   刘正权的博客  阅读(351)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2011年8月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示