水晶报表首次启动慢解决方案及表内框线微调设计方法

简介:     VS加水晶报表一些问题让人真的很头疼,这里记录两个问题与大家共勉。 一、水晶报表首次启动慢,启动过一次后正常的问题。     这个问题确实存在,同时我相信地球人使用水晶报表的人都会遇到这个问题。

    VS加水晶报表一些问题让人真的很头疼,这里记录两个问题与大家共勉。

一、水晶报表首次启动慢,启动过一次后正常的问题。

    这个问题确实存在,同时我相信地球人使用水晶报表的人都会遇到这个问题。引起这个问题的原因很多,Report.SetDataSource()是一个原因之一。目前有两个较好的两个步骤进行启动的优化。

Step one、不搜索打印机

image

图1

    (来自博客http://stackoverflow.com/questions/16662725/crystal-report-takes-long-time-to-load-every-time-in-vs2010

    按照这个方法,我们在设计器去把【打印机】项去掉。

image

图2

image

图3

    在将图3的【取消格式设置页面大小和打印机纸张大小关联】项后,明显加载的速度提升了1-2秒。

    如果不勾上面项,则是报表在搜索打印机的时间耗时了。进行上面一步,只是加速了一部分,还没达到更快的效果。

 

Step two、辅助线程中进行首次报表生成动作

    因为报表确实存在首次生成时速度较快,后面的生成较快的现象。故可以在应用程序启动(或者其他空闲时间)的时候开启一个子线程来进行一次报表的初始化,后面真正要调用的时候就变成第二次调用了,这个就可以较好的解决上述问题了。

操作步骤如下:

(1)在某个地方开启线程初始化报表


  1. Thread trdReport = new Thread(new ThreadStart(this.InitCrystalReport));
  2. trdReport.Priority = ThreadPriority.BelowNormal;
  3. trdReport.Start();


(2)在线程处理函数中实现一次报表生成实例(不用show)

    上面的InitCrystalReport()函数的作用是去crystalReportViewer所在的窗体(这里是ReportPrint)中初始化一次,当然不用show出来。


  1. public void InitCrystalReport()
  2. {
  3.     ReportPrint rPrint = new ReportPrint();
  4.     rPrint.JustTest();
  5. }


    ReportPrint的JustTest()方法是去加载具体的报表模板生成一次。


  1. public void JustTest()
  2. {
  3.     MyReport myReport= new MyReport ();
  4.     ReportDocument document = (ReportDocument)myReport;
  5.     this.crystalReportViewer1.ReportSource = document;
  6. }


    综上,便在后台神秘进行了一次报表生成工作,而这次生成的速度无论多慢帮应用程序来讲都没有一次影响,从而达到提升启动性能的效果。

 

二、报表设计的线条、框微调问题

image

图4

    上图4中的线程和方框如何让它们准确的左右一致呢?用鼠标调和键盘上下左右键调节是作用不大的,各位可以亲自试试。

    真正的窍门在这里:

image

图5 方框的Position

    要想两者左右对齐,只需要将两者的Left,Right设置相同就Ok了。非常吻合!

    Bottom及Top为同样道理。

相关文章
|
3月前
|
监控 Serverless 开发工具
函数计算产品使用问题之要确保服务能在后台持续运行,而不依赖于WebUI是否打开,该怎么操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
Web App开发 Java Serverless
Serverless 应用引擎操作报错合集之阿里函数计算中,使用自定义运行时部署程序时,发现Chrome层已经建立但运行程序仍然缺失如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
Web App开发 缓存 JSON
可以用到项目的优化网站加载速度方案
可以用到项目的优化网站加载速度方案
70 0
|
11月前
|
Android开发 iOS开发
AppsFlyer 研究(九)OneLink模板配置步骤
AppsFlyer 研究(九)OneLink模板配置步骤
239 0
|
12月前
|
vr&ar 开发工具 图形学
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢
Unity引擎更新收费模式:从收入分成转向游戏安装量,将会有哪些影响呢
|
测试技术
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(下)
285 0
|
测试技术 数据安全/隐私保护
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等(上)
Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等
845 0
|
数据库
【自然框架.视频】基础设置(一)如何下载自然框架
  大家好,好久没有发博客了,这段时间是为了能够做出来更好的视频,做一些准备。目前还在锻炼中,以前一直很内向,话都说不利索,要做视频都很怵头。不过呢,要不断的提高自己,弥补自己的不足。现在还年轻,要多多努力!     打算做一套全新的视频,好好的把自然框架给详细的介绍一遍。
580 0