报表reportviewer控件使用时,单行文本过长的解决办法

最近在做winform的报表,客户需要把纸质模板可以在系统中打印。一开始设计,认为vs自带控件reportviewer可以解决,但在测试过程中发现:若单行文本过长,报表自动分页,弊端是分页后,第一页文本框底部边框和第二页文本框顶端边框无法显示,由于客户是政府机关,要求严格,只好解决这个问题。在解决过程中也是想各种办法,第一种,判断是否分页,分页后,该文本框是否存在本页,若存在,则在相应分页底部和顶端划线,可是搜索属性框,并没有这些属性值,放弃。第二种,主体加边框,与矩阵重合,矩阵边框不要,使用主体边框,用这种巧妙方式来解决分页带来的问题,它的弊端是,若分页的第二页不满一张,文本框底部边框和主体底部边框会间隔一片空白,不是很美观,所以放弃。既然自带控件想不到好的解决思路,不如换一种方式。现在流行操作office,已达到我们的目的。我首选了excel模板,把模板做到excel中,根据excel的单元格位置,给单元格或者区域赋值。由于模板复杂,会有合并单元格的情况,excel对于单元格有自带对于行高可以自增长,但对于合并的单元格无效,需要自己写宏,另外,每行的行高默认设置为0到409,对于不确定文本长度不好控制,需要计算文本长度,除以每行字数,在计算最高行高可以容下几行,得出文本需要的行高,最后在向区域内插入行,报表多的情况下,工作任务量增大,于是,觉得换成word来解决。word的优点是,当分页时,word会自动补充边框,那么在调用word的打印预览功能,跟真实报表一样,客户对那种报表没有要求,只要打印正常就可以,终于找到合适的解决方式。网上有很多向word内写入数据的方法,使用模板,插入标签,赋值即可。那么,它并不是很完美,在打印预览时,会打开文档,关闭打印预览,模板文档无法同时关闭,模板已经写入数据,如果不同时关闭,用户一旦错误的保存了数据,那模板改变,之后的数据完全不对,怎么解决?思路肯定是同时关闭。怎么判断打印预览已经关闭,网上搜索一下,认为应当使用三方控件,可以直接调用word的各种方法,本人不太喜欢过多使用第三方,部署时各种dll需要准备好。最终找到一种方式,try,catch,finally完美解决,在finally里写循环,一旦打印预览打开,循环执行空方法,关闭后跳出循环,跳出循环在关闭文档,关闭进程,不会提示,进程正在使用。这样就可以解决,有好的方法可以推荐,交流下哦??

时间: 2024-10-05 21:53:20

报表reportviewer控件使用时,单行文本过长的解决办法的相关文章

RichEditControl控件的ContentChanged事件执行两次的解决办法

将近没事,在学习Devexpress.用到了RichEditControl控件,当在加载一个件时,发现ContentChanged事件被触发了两次. 想了半个小时也没想原来来.于是去官网下载官方文档查看,恍然大悟.原谅如下: Note that methods such as DevExpress.XtraRichEdit.API.Native.SubDocument.InsertText and DevExpress.XtraRichEdit.API.Native.SubDocument.In

部署报表和 ReportViewer 控件 rdlc

原文:部署报表和 ReportViewer 控件 rdlc 部署报表和 ReportViewer 控件 您可以将报表和 ReportViewer 控件作为应用程序的一部分自由发布.根据控件类型以及报表是配置为本地处理还是远程处理,部署要求会有很大不同.在同一个应用程序中,既可以部署本地处理的报表,也可以部署远程处理的报表. 重新发布 ReportViewer 控件 可重新发布的 ReportViewer 控件是一个名为 ReportViewer.exe 的自解压缩文件,其中包括一个 .msi 文

Stimulsoft Reports.Wpf是针对WPF开发的报表工具控件

Stimulsoft Reports.Wpf是针对WPF开发的报表工具控件.无需上网,所有的WPF功能都能用上!丰富的界面更换功能.查看功能.打印以及导出报表功能——所有的这一切就是它都能轻松实现. 创建Stimulsoft Reports.Wpf是基于Stimulsoft团队多年开发以及使用的报表引擎来创建报表.只需简单的几行代码即可执行报表复杂的操作,报表引擎提供了创建报表的许多功能.大量的组件开发包,独特的一套属性和参数,精心构思的报表体系.很多选项都是绝对独特且仅出现该产品中.Stimu

动态绑定ReportViewer控件之经验总结

以上两篇文章已经很丰富了,但是照做一遍不行,检查了N遍还是不行,就是找不出问题原因,总是提示“尚未为数据源“DataSet1_DataTable1”提供数据源实例.”这主要是说在为ReportViewer控件选择数据源的时候,还没有选择数据源实例,如图所示 ,因此要选择一个数据源,例如ObjectDataSource1,这个一般是在你选择的时候自动生成的,但即使选择了数据源也还是会出错,比如“处理报表时出错.未能找到在 ObjectDataSource“ObjectDataSource2”的 T

跨平台的报表生成器控件Stimulsoft Reports.Fx for Flex

Stimulsoft Reports.Fx for Flex是一个跨平台的报表生成器控件,用于丰富的互联网应用程序中.在创建这个报表工具的时候,我们使用了一种在互联网商业程序开发中的一个高级技术 - Adobe Flex.我们试图给软件开发者和用户最灵活的工具来创建和使用报表.这个工具不仅可以提高您的工作效率,还可以在您的web 程序中增添许多pluses. 具体功能: 解决问题 在我们的产品发布之前,互联网程序的报表贝各种问题限制.在显示报表时,缺乏活力,简易性和交互性.与服务器之间交换信息.

快速强大的报表引擎控件Stimulsoft Reports.Fx for PHP

Stimulsoft Reports.Fx for PHP控件是为在互联网上使用客户端-服务器技术来创建报表而设计的报表工具控件.在这个产品中,我们结合了两种技术.PHP 脚本在服务器端工作.这个技术控制报表生成.Adobe Flash 技术在客户端工作.这个技术提供一个普通的机制,可以在几乎任何客户端生成报表.正是由于这点,Stimulsoft Reports.Fx 非常易于使用:同时产品提供了一个现代化的,具有成本效益的方式在网站上提供报表,并使用内置的PHP 技术.快速强大的报表引擎,丰富

改变对话框和控件的背景及文本颜色

WM_CTLCOLOR,响应函数:CWnd::OnCtlColor afx_msg HBRUSH OnCtlColor( CDC* pDC,  //当前要绘制的控件的设备上下文的指针 CWnd* pWnd,  //当前要绘制的控件的指针 UINT nCtlColor  //要绘制的控件的类型 ); 1.改变整个对话框及其上子控件的背景色 为程序的"设置"对话框CSettingDlg添加WM_CTLCOLOR命令消息及其消息响应函数: 在对话框类CSettingDlg类中添加私有成员变量

强大的报表引擎控件Stimulsoft Reports.Ultimate

Stimulsoft Reports.Ultimate 报表控件是一个综合全面的解决方案,被用于呈现.NET Framework 平台上的报表.该产品包括一套完整的可以在WinForms,ASP.NET 和 WPF 环境下创建报表的工具集.可以在设计时和运行时运行,其中包括一个独特的web报表设计器.Viewers 用来显示报表.此外,其强大的报表输出系统,能支持多种不同的报表格式.简单但功能强大的报表引擎.Stimulsoft Reports.Ultimate的一条基本使用原则是,用户可以用常

PrimeFace JSF中使用ajax控件无法实时更新文本框inputTextarea内容

PrimeFace+JSF实际工作需要点击一个树将关联的文本添加到inputTextarea文本框,inputTextarea允许用户随意更改,ajax绑定树的select事件,但点击时,后台Bean对象无法实时获取前台文本框改变的实际内容. 原因估计ajax控件无法将前台文本框数据关联到后台. 解决方案: 添加一个按钮和文本框鼠标事件,事件JS调用按钮click事件,由按钮将文件夹数据同步到后台. 前台代码: <script> function callButton(){ document.