代码改变世界

基于FastReportStduio 4.6.1.0版本编写的一个打印模块

2010-06-12 16:15  佳明  阅读(1466)  评论(2编辑  收藏  举报

 该模块主要调用主要分两块

 一、模板管理

 

两个接口方法

 

代码
#Region "Public Sub New(ByVal userID As String, ByVal moduleID As String, ByVal isAdministrator As Boolean) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码(必填)</param>
    
''' <param name="moduleID">模块代码(可选,不为空时只能取到到该模块模板)</param>
    
''' <param name="isAdministrator">是否为管理员(必填,管理源可加载全部)</param> 
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal moduleID As StringByVal isAdministrator As Boolean)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块号代码
        Me.ModuleID = moduleID
        
' 是否为管理员
        Me.IsAdministrator = isAdministrator
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal moduleID As String, ByVal isAdministrator As Boolean) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码(必填)</param>
    
''' <param name="moduleID">模块代码(可选,不为空时只能取到到该模块模板)</param>
    
''' <param name="permissionIDs" >用户权限代码组(为空时为当前用户,不为空时按用户权限组来获取)</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal moduleID As StringByVal permissionIDs As String())
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 在 InitializeComponent() 调用之后添加任何初始化。
        ' 用户代码
        Me.UserID = userID
        
' 模块号代码
        Me.ModuleID = moduleID
        
' 用户权限代码组
        Me.PermissionIDs = permissionIDs
    
End Sub
#End Region

 

 

报表模板管理界面     

 
报表模板添加界面
编号、名称、路径、模块号,下载路径为必填项

 

 
报表模板编辑界面
 

 二、打印模式选择

      1、参数 0 直接打印      

           直接打印时自动根据用户代码判断是否存在用户自定义默认模板  ,是的话直接调出模板直接打印。

           当用户自定义模板不存在系统将会自动调用系统模板直接打印。

           这里还涉及到系统模板不存在的话有没考虑到是否跟据管理员或用户组的权限去查找其他人的自定义模板(在这我个人观点觉得没必要,为啥呢?1、一般情况默认模板是系统初始化都自带的 2、当系统模板真不存在时,他根据用户权限组可以找到多个他人定义的模板那你说我选哪个好呢,在给他设置,那还不折腾死人啊。还有即时可以也是让他跳出选择打印。)

      2、参数 1 打印预览

           其实判断路基跟直接打印一样

      3、参数 2 选择模板打印

          选择模板打印界面

 

                                      选择模板打印时首先要考虑到是否管理员,是管理员应该获取某模块代码的所有模板

                                      不是管理员时就要考虑是否按权限组, 是权限组按权限组获取某模块代码的所有模板

                                       即不是管理员也没权限组,那只能获取自己定义的模板了 (这些模板都包括系统模板在内)      

      4、在本地客户端不存在将会自动重指定服务器上去下载。

      5、六个接口函数

 

代码

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal myDataSet As DataSet, ByVal isAdministrator As Boolean, ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="myDataSet">数据集</param>
    
''' <param name="isAdministrator">是否管理员</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal myDataSet As DataSet, ByVal isAdministrator As BooleanByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' 单据数据表
        Me.DSPrint = myDataSet
        
' 是否管理员
        Me.IsAdministrator = isAdministrator
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal myDataSet As DataSet, ByVal permissionIDs As String(), ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="myDataSet">数据集</param>
    
''' <param name="permissionIDs">用户权限代码组</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal myDataSet As DataSet, ByVal permissionIDs As String(), ByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' 单据数据集
        Me.DSPrint = myDataSet
        
' 用户权限代码组
        Me.PermissionIDs = permissionIDs
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal paramSqlQuery As String, ByVal isAdministrator As Boolean, ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="paramSqlQuery">SQL语句</param>
    
''' <param name="isAdministrator" >是否为管理员</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal paramSqlQuery As StringByVal isAdministrator As BooleanByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' SQL语句
        Me.SQL = paramSqlQuery
        
' 是否为管理员
        Me.IsAdministrator = isAdministrator
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal paramSqlQuery As String, ByVal permissionIDs As String(), ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="paramSqlQuery">SQL语句</param>
    
''' <param name="permissionIDs" >用户权限代码组</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal paramSqlQuery As StringByVal permissionIDs As String(), ByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' SQL语句
        Me.SQL = paramSqlQuery
        
' 用户权限代码组
        Me.PermissionIDs = permissionIDs
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal myDataTable As DataTable, ByVal isAdministrator As Boolean, ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="myDataTable">数据表</param>
    
''' <param name="isAdministrator" >是否管理员</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal myDataTable As DataTable, ByVal isAdministrator As BooleanByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' 数据表
        Me.DTPrint = myDataTable
        
' 是否管理员
        Me.IsAdministrator = isAdministrator
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region

#Region "Public Sub New(ByVal userID As String, ByVal paraModuleID As String, ByVal myDataTable As DataTable, ByVal permissionIDs As String(), ByVal printMode As Integer) 构造函数"
    
''' <summary>
    
''' 构造函数
    
''' </summary>
    
''' <param name="userID">用户代码</param>
    
''' <param name="paraModuleID">模块代码</param>
    
''' <param name="myDataTable">数据表</param>
    
''' <param name="permissionIDs" >用户权限代码组</param>
    
''' <param name="printMode" >打印模式(0 直接打印 ,1 打印预览 ,2 选择模板打印 )</param>
    
''' <remarks></remarks>
    Public Sub New(ByVal userID As StringByVal paraModuleID As StringByVal myDataTable As DataTable, ByVal permissionIDs As String(), ByVal printMode As Integer)
        
' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        
' 用户代码
        Me.UserID = userID
        
' 模块代码
        Me.ModuleID = paraModuleID
        
' 数据表
        Me.DTPrint = myDataTable
        
' 用户权限代码组
        Me.PermissionIDs = permissionIDs
        
' 打印模式
        Me.PrintMode = printMode
    
End Sub
#End Region