zoukankan      html  css  js  c++  java
  • grid++报表使用时注意事项

    #开始使用:Grid++Report 可以在 Visual C#.Net 与 Visual Basic.Net 下的 WinForm 项目中使用。在项目中使用 Grid++Report 之前,首先必须对 Grid++Report 的引用。

    在 Visual Studio.Net(2003/2005/2008/2010)中引用 Grid++Report 的过程:

    首先打开或新建 Visual Studio.Net 项目。

    ★在‘工具箱’面板中加入 Grid++Report 对应构件:
    1、在‘工具箱’面板中右击鼠标按钮打开弹出式关联菜单,执行菜单项‘添加/移除项...’,打开‘自定义工具箱’窗口。(注:VS.Net2005及以后版本的菜单项名称为‘选择项...’,窗口名为‘选择工具箱’。)
    2、在‘自定义工具箱’窗口中选择‘COM’选项卡,从列表中选取对‘Grid++Report DisplayViewer 5.6’与‘Grid++Report PrintViewer 5.6’两项。 
    3、执行‘确定’按钮关闭‘自定义工具箱’窗口,在‘工具箱’面板中会加入两个控件项:‘Grid++Report DisplayViewer 5.6’与‘Grid++Report PrintViewer 5.6’,此时我们可以象使用其它控件一样使用这两个控件。 
    4、如果在项目中需要为用户提供运行时设计报表的功能,需要使用类似的过程加入对‘Grid++Report Designer 5.6’的引用。

    ★在项目中加入 Grid++Report 类型库的引用:
    1、打开 ‘解决方案资源管理器’窗口,展开项目节点。 
    2、在‘引用’节点上右击鼠标按钮打开弹出式关联菜单,执行菜单项‘添加引用...’,打开‘添加引用’窗口。 
    3、在‘添加引用’窗口中选择‘COM’选项卡,在列表中双击‘Grid++Report Engine5.0 Type Library’项。 
    4、执行‘确定’按钮关闭‘添加引用’窗口,完成添加过程。 
    5、如果在项目中需要为用户提供运行时设计报表的功能,需要使用类似的过程加入对‘Grid++Report Designer5.0 Type Library’的引用。 
    注:如果在设计 Form 上要加入查询显示控件或打印显示控件,上面对类型库的引用步骤可以不做,因为在控件被加入到 Form 中的时候,项目会自动加入对类型库的引用。

    ★关于C#与VB.NET开发兼容64位WinForm程序说明:
    设置WinForm 项目的目标平台为“x86”可以保证用 Grid++ 开发的软件在64位Windows下正常运行。设置说明:
    1、C#: 项目->属性->生成->目标平台->x86
    2、VB.NET: 项目->属性->编译->高级编译选项...->目标CPU->x86
    3、也可以在项目的配置管理器中将“Any CPU”平台去掉,增加“x86”平台。操作菜单:生成->配置管理器->活动解决方案平台,下拉选择“新建...”项可以在打开的对话框中增加“x86”平台,下拉选择“编辑...”项可以在打开的对话框中移除“Any CPU”平台。 
    4、如果是在Windows7 64位或其它64位系统下开发,也一定要按以上要求设置项目的目标平台。
    5、在 VS2005/2008/2010 中都通过测试,在Windows server 2008与Windows7 的 64 位系统下都可以正常发布。例子 11.CustomDesign 升级到VS2005/2008/2010 并把目标平台改为“x86”,制作出来的安装程序就可以在各种Windows系统下安装运行。

    ★发布你的项目,用VS.NET制作安装程序:
    1、先创建安装项目:在解决方案资源管理器的根节点上点右键,在弹出的菜单里执行“添加->新建项目...”,创建一个“安装项目”。
    2、加入项目发布文件:在解决方案资源管理器的新创建的安装项目节点上点右键,在弹出的菜单里执行“添加->项目输出...”,在打开的窗口里选择“主输出”,这样可以把程序的发布文件自动加入到安装项目中。
    3、设置Grid++Report的DLL文件为COM自注册:分别设置“gregn50.dll”与“grdes50.dll”的“Register”属性为“vsdrfCOMSelfReg”。

    ★关于C#与VB.NET中数据多次重复填入的问题:
    原因: 挂接报表事件的代码被多次执行,因此同一事件函数被多次挂接上;在事件一次触发过程中,这个事件函数会被多次调用。如 FetchRecord 事件就会多次填入报表数据,从而造成报表数据重复。
    解决方式1:移动挂接报表事件的代码的位置,让这些代码只执行一次。一般是在 From 的启动函数或事件中。如下C#与VB.NET代码:
    public Form1()
    {
     ...

     //连接报表事件
     Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize);
     Report.FetchRecord = new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);
     Report.GroupBegin += new _IGridppReportEvents_GroupBeginEventHandler(ReportGroupBegin);
     Report.ProcessRecord += new _IGridppReportEvents_ProcessRecordEventHandler(ReportProcessRecord);
     Report.SectionFormat += new _IGridppReportEvents_SectionFormatEventHandler(ReportSectionFormat);

     ...
    }
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     ...

            '连接报表事件
            AddHandler Report.Initialize, AddressOf ReportInitialize
            AddHandler Report.FetchRecord, AddressOf ReportFetchRecord
            AddHandler Report.ProcessRecord, AddressOf ReportProcessRecord
            AddHandler Report.GroupBegin, AddressOf ReportGroupBegin
            AddHandler Report.SectionFormat, AddressOf ReportSectionFormat
     
     ...
    End Sub
    解决方式2:在挂接事件前,先移除原来的挂接事件。如下C#与VB.NET代码:
     Report.FetchRecord -= new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);
     Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);

            RemoveHandler Report.FetchRecord, AddressOf ReportFetchRecord
            AddHandler Report.FetchRecord, AddressOf ReportFetchRecord

  • 相关阅读:
    玩转Android之手摸手教你DIY一个抢红包神器!
    NetWork——关于TCP协议的三次握手和四次挥手
    请保持心情快乐,请保持情绪稳定
    第八节:Task的各类Task<TResult>返回值以及通用线程的异常处理方案。
    第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
    第六节:深入研究Task实例方法ContinueWith的参数TaskContinuationOptions
    第五节:Task构造函数之TaskCreationOptions枚举处理父子线程之间的关系。
    第四节:Task的启动的四种方式以及Task、TaskFactory的线程等待和线程延续的解决方案
    第三节:ThreadPool的线程开启、线程等待、线程池的设置、定时功能
    第二节:深入剖析Thread的五大方法、数据槽、内存栅栏。
  • 原文地址:https://www.cnblogs.com/wohexiaocai/p/9439689.html
Copyright © 2011-2022 走看看