网站首页 工具软件 操作系统 办公软件 网页制作 PHP教程 script脚本专栏 photoshop教程 其他精品教程
我发布的文章 - 教程搜索 - 交流论坛 - 帮助中心 - 网站首页 网络工具 - 常用工具 - 媒体工具 - 系统工具 - 实用工具 NT/2003 - Win Xp - Win2000 - DOS/Win9x - IE/注册表 - Linux - 苹 果 Office - Word - Excel - PowerPoint - 输入法 - 邮件处理 Flash - Dreamweaver - Fireworks - FrontPage - HTMLCSS 基础文章 - PHP函数 - PHP技巧 - 数据库相关 - 高级应用 - PHP安装 - 转载精华 - 常见问题 综 合 类 - 状 态 栏 - 游 戏 类 - 页面背景 - 页面特效 - 页面导航 - 文本操作 - 文本特效 - 图形特效 - 鼠标特效 - 时间日期 - 密 码 类 文字特效 - 按钮与图标 - 色彩运用 - 滤镜魔法 - 综合实例 XML教程 - DELPHI基础教程 - VB教程
首页 -> 其他精品教程 -> VB教程

TOP

用VB.Net编写通用报表组件 (2)
文章内容
相关信息
用户评论
文章内容


3、定义公共类CReport,该类为供应用软件调用。定义类CReport的私有变量frmSetup,该变量将启动一个供用户操作的界面。定义类CReport的属性DataGrid,该属性供用户传送一待打印的数据网格名,定义类CReport的属性DataTable,该属性供用户传送一待打印的数据表格名。定义类CReport的公有方法Run,该方法启动该组件。分别编写它们的功能。代码如下:

    Public Class CReport
        Dim frmSetup As New frmPrintSetup()

        Public Property DataGrid() As DataGrid
            Get
                ' DataTable = mDataTable
            End Get
            Set(ByVal Value As DataGrid)
                frmSetup.DataTable = Value.DataSource
                frmSetup.MainTitle = Value.CaptionText
            End Set
        End Property

        Public Property DataTable() As DataTable
            Get
                ' DataTable = mDataTable
            End Get
            Set(ByVal Value As DataTable)
                frmSetup.DataTable = Value
            End Set
        End Property

        Public Sub Run()
            frmSetup.ShowDialog()
            frmSetup = Nothing
        End Sub
End Class
   


4、定义公共类CPublicExcel,该类主要定义Excel的程序对象,启动Excel并打印及保存报表。代码如下:

    '这个类是不改变的 (公共性)
    Public Class CPublicExcel
        Public xlApp As New Excel.Application() 'excel程序对象
        'Public gblnSaveReport As Boolean    '  该Report是否输出成为XLS文件
        'Public gstrPath As String           '  该Report输出成为XLS的文件名

        Private ExcelWasNotRunning As Boolean '原来的excel程序的状态
        Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
	lpClassName As String, ByVal lpWindowName As String) As Long
        Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal
	hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) 
As Long

 '识别excel是否运行
        Private Function DetectExcel() As Boolean
            Const WM_USER = 1024
            Dim hWnd As Long
            hWnd = FindWindow("XLMAIN", 0)
            If hWnd <> 0 Then   ' hWnd <> 0 means Excel is 
running.
                SendMessage(hWnd, WM_USER + 18, 0, 0)
                DetectExcel = True
            Else
                DetectExcel = False
            End If
        End Function

      '打开excel
        Public Sub OpenExcelSheet()
            ExcelWasNotRunning = Not DetectExcel()
            If ExcelWasNotRunning Then
                xlApp = GetObject("", "Excel.Application")
            Else
                xlApp = GetObject(, "Excel.Application")
            End If
            xlApp.Workbooks.Add()  '(ExcelSheetName)
        End Sub
'打印预览报表
        Public Sub PrintPreview()
            xlApp.Caption = "报表"
            xlApp.DisplayAlerts = False
            xlApp.Visible = True
            xlApp.ActiveWorkbook.PrintPreview()
            xlApp.Visible = False
        End Sub
'打印报表
        Public Sub Print()
            xlApp.DisplayAlerts = False
            xlApp.Visible = False
            xlApp.ActiveWorkbook.PrintOut()
        End Sub
'保存报表
        Public Sub SaveAs(ByVal FileName As String)
            Dim file As System.IO.File
            Try
                'If file.Exists(FileName) = True Then
                ' file.Delete(FileName)
                'End If
                xlApp.ActiveWorkbook.SaveAs(FileName)
            Catch ex As Exception 'When y = 0   ' Catch the error.

                MsgBox(ex.ToString)   ' Show friendly error message.
                '    Beep()   ' Beep after error processing.
            End Try
        End Sub
    End Class
    
   




相关信息
用VB.Net编写通用报表组件 (2)
发布者:mmcbbs
浏览量:327
发布日期:2005-04-10 10:27:59
所属专题:
用户评论
称  呼:
内  容:

广告位

广告招租,欢迎抢订

热门信息

·什么是ODBC
·初识WTL(上)
·理解ActiveX控件的一些背景..
·VB.NET 的新特点:变..
·探讨VB.Net中的数据绑定
·用VB.NET打造NameSpace
·VB.NET中的面向对象编程特征
·用VB和MTS开发多层数据库应..

推荐信息