找回密码
 立即注册

QQ登录

只需一步,快速开始

天心天思技术部
金牌服务用户   /  发表于:2016-9-12 17:57  /   查看:3729  /  回复:8
本帖最后由 Lenka.Guo 于 2016-9-13 10:07 编辑

使用activereport9版本做出来的sectionreport与pagereport会出现导出PDF显示不出来栏位值, 但是导出word文档就不会出现这类问题,我想问一下这个是你们系统本身就存在的问题
还是由于可能是我这边的导出代码段出错,若是代码的问题麻烦你们能提供一个比较全的区域报表和页面报表导出word,excel,PDF 这些文档的DEMO!


8 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-9-13 10:07:01
沙发
您好,
如果您的报表中 TextBox 呈现的中文, 而字体设置为英文的话,导出PDF 会造成渲染问题,所以需要设置TextBox的字体为中文字体。
您的栏位值无法显示,能否提供一个详细的截图?
回复 使用道具 举报
天心天思技术部
金牌服务用户   /  发表于:2016-9-13 10:20:43
板凳
Lenka.Guo 发表于 2016-9-13 10:07
您好,
如果您的报表中 TextBox 呈现的中文, 而字体设置为英文的话,导出PDF 会造成渲染问题,所以需要设 ...

因为TextBox控件拉出来后就自动设置默认字体Arial,当使用这个字体导出PDF就会出现当前控件内没有显示值,有没有办法更改TextBox控件在拖拉出来的时候选用的默认字体为别的字体呢?
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-9-13 13:32:36
地板
本帖最后由 Lenka.Guo 于 2016-9-13 14:20 编辑
天心天思技术部 发表于 2016-9-13 10:20
因为TextBox控件拉出来后就自动设置默认字体Arial,当使用这个字体导出PDF就会出现当前控件内没有显示值, ...

因为了解您之前使用场景是在报表设计器中设计报表,通过与产品经理沟通,无法修改TextBox的默认字体属性。
有以下方法共享给您:
1.设计时,在属性中设置默认字体;(可能不太满足您的要求)
2.重新实现导出PDF功能,在导出PDF 之前将报表控件的Font属性强制设置为“中文字体”,
3.验证是否当添加TextBox控件时,直接触发将Font属性默认修改为 中文字体的方法。可以实现以下代码: if (e.Type == LayoutChangeType.ControlAdd)
            {

            }
具体还正在验证


回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-9-13 15:28:17
5#
您好,通过测试,可以通过实现Designer的LayoutChanging事件来修改默认值:



代码:
  1.   private void reportDesigner_LayoutChanging(object sender, LayoutChangingArgs e)
  2.         {
  3.             if (e.Type == LayoutChangeType.ControlAdd
  4.                 && e.NewValue.GetType() == typeof(GrapeCity.ActiveReports.SectionReportModel.TextBox))
  5.             {
  6.                 GrapeCity.ActiveReports.SectionReportModel.TextBox textBox = (GrapeCity.ActiveReports.SectionReportModel.TextBox)e.NewValue;
  7.                 textBox.Font = new System.Drawing.Font("宋体", 20, System.Drawing.FontStyle.Bold);
  8.             }
  9.         }
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
天心天思技术部
金牌服务用户   /  发表于:2016-9-13 15:53:45
6#
Lenka.Guo 发表于 2016-9-13 15:28
您好,通过测试,可以通过实现Designer的LayoutChanging事件来修改默认值:

我将SectionReportModel替换成PageReportModel会有报错,
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-9-13 17:24:12
7#
你把哪里换成PageReportModel了?代码有变化的话发出来,报的什么错也请发出来。我们需要知道现场。
回复 使用道具 举报
天心天思技术部
金牌服务用户   /  发表于:2016-9-13 17:46:15
8#
gw0506 发表于 2016-9-13 17:24
你把哪里换成PageReportModel了?代码有变化的话发出来,报的什么错也请发出来。我们需要知道现场。

根据上面的代码段提供的代码是用于sectionreport类型的报表,但是我这边同时也要修改pagereport中拖拉出来的TextBox控件的默认字体,
if (e.Type == LayoutChangeType.ControlAdd
                && e.NewValue.GetType() == typeof(GrapeCity.ActiveReports.SectionReportModel.TextBox))
            {
                GrapeCity.ActiveReports.SectionReportModel.TextBox textBox = (GrapeCity.ActiveReports.SectionReportModel.TextBox)e.NewValue;
                textBox.Font = new System.Drawing.Font("宋体", 20, System.Drawing.FontStyle.Bold);
            }

我将这代码中的SectionReportModel统一替换变成PageReportModel后在textBox.Font就提示没有该function
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-9-13 18:59:45
9#
天心天思技术部 发表于 2016-9-13 17:46
根据上面的代码段提供的代码是用于sectionreport类型的报表,但是我这边同时也要修改pagereport中拖拉出来 ...

PageReportModel中的TextBox的字体设置在Style里,你可以查一下文档。
http://arhelp.grapecity.com/webh ... .Style_members.html
Style里面有几个Font相关设置。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部