前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >水晶报表文本在web中无法两端对齐

水晶报表文本在web中无法两端对齐

作者头像
用户1075292
发布2018-01-23 10:25:29
2.3K0
发布2018-01-23 10:25:29
举报
文章被收录于专栏:听雨堂听雨堂

        在Web上利用水晶报表显示一段文本,用的是动态加载rpt的方法,结果出来的文本效果如下:

        右边很不齐,于是回到水晶报表10程序中调rpt,很快,把文本的对齐方式设为两端对齐就好了,效果非常的棒,跟word一样。再保存,重编译,显示,结果有所变化,但变化不大,还是不齐。

        接着,试着直接导入rpt,结果发现居然不能设置两端对齐,——根本就没有两端对齐,在vs .net环境里面,即使强制把两端对齐按钮添上工具栏,也是灰的。

        于是,我便打算在动态加载时,即在将ReportDocument对象赋给报表对象前,对该文本字段用程序方式控制对齐方式。结果发现:还真不是一般的难,瞎试没结果,手上的章立民的《用实例学Crystal Report》仍然没用。很难得到字段的引用,最后终于搞定,我对cr的对象结构也有了一点点的进一步了解:

        水晶报表在.Net中,主要的命名空间,一个是CrystalDecisions.CrystalReports.Engine,一个是CrystalDecisions.Shared。

        ReportDocument的主要成员,一个是Tables集合,就是这个报表相关的表的集合,顺着它可以找到字段,以及每个字段被引用的次数。这个对我来说没有用,我只想控制已经加入到报表中的字段。

        ReportDocument的另一个成员DataDefinition看起来很像,不过它的成员什么都有,就是没有Field对象,也不行。

        最后,还是在命名空间CrystalDecisions.CrystalReports.Engine中乱看,看到FieldObject,顺藤摸瓜,才算找到,原来是这样的:报表由很多的ReportObject组成,而FieldObject派生自它,要获得ReportObject,需要用ReportDocument.ReportDefinition.ReportObjects[FieldName]来获得引用,再强制转换成FieldObject即可。

        不过问题在于,FieldName并非形如“t1.a1”这样的表达方式,而是“a11”,可以是为了应付多次引用吧。下面是调试时看到的一些东西。

        终于可以控制字段了,试试

代码语言:javascript
复制
ReportDocument rd=new ReportDocument(); 
                rd.Load (this.Server.MapPath("\\rpt")+"\\公文.rpt"); 
                rd.SetDataSource(XmlPage.GetDataSet( Session["Gw_GwXml"].ToString(),"FlowData")); 
                FieldObject field=(FieldObject)rd.ReportDefinition.ReportObjects["a51"]; 
                field.ObjectFormat.HorizontalAlignment=CrystalDecisions.Shared.Alignment.LeftAlign  ; 
                Session["Gw_rd"]=rd; 
                cr1.ReportSource=rd;

        结果发现,设置左对齐,右对齐都好的,但两端对齐Justify却跟原来一样。才觉悟过来:问题并不出在报表上,而是在于网页的显示方式的限制,在两端对齐的方式下,查看显示的网页,可以看到:

        原来它也只是利用CSS来进行两端对齐的。这种对齐方式,不能得到很完美的效果,——至少不可能达到想word或者报表系统本身这样的本地应用程序达到的效果。网上找了找,有些相应的解决办法,如

http://blog.netbei.com/1/722/archives/2005/2178.shtml提到加一个text-justify=distribute;的方法,不过也就那样吧。

        罗罗嗦嗦,实在是这个东西费了我半天功夫,直接过去未免可惜,是为记。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-11-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档