Adempiere 打印报表 打印格式 遇到问题解决!

昨天 调试 Adempiere  3.6的  打印 报表,遇到了一些问题总结一下。

AD支持 jasper报表和 自定义打印格式两种。昨天都有用到 ,分别遇到了不同的问题。


1、 jasper 打印时候  参数传递问题 

使用 jasper报表 的时候 分别用到了 date类型和  String类型的 参数。在ireport调试好了之后发现 在 AD里面 无法传递参数。

解决办法如下:

在 ireport中 将日期 参数类型  设置为    名字  dateinfo1  和  dateinfo2      string 类型,  在sql的 where 使用between 和  to_date()函数 转换 。!!

        DateInvoiced
between
nvl(to_date($P{date_Info1},'yyyy-MM-dd'),to_date('2016-1-1','yyyy-MM-dd'))
and
nvl(to_date($P{date_Info2},'yyyy-MM-dd'),to_date('2020-1-1','yyyy-MM-dd'))          


重点来了   在 AD中 设置  报表参数 名字date   数据列 date  ,并且 勾选  “范围”选框!!!

请注意 参数名字和 数据列名字       ,不要问我为什么。。。。。。。。


字符串类型就比较简单了 ,参数名称 和ad报表设置参数 数据列名对应就行了!!


注意!!!!! 以上数据列名  都不是数据库中的列名,而是  ireport中的  参数!!!!!!



其实  不写任何where  ,在 AD的参数中 指定  DATEINVOICED列  就可以 直接 做范围查询,但是这样很难 将条件作为参数 打印到标题或者 页眉上~~


 中文 在 ireport 中文本框的  pdf encoding 需要设置为 UniGB-UCS2-H (Chinese Simplified)  否则 显示不出来!!!!


2、B\S模式打印格式中文显示问题。。。

问题现象   在C\S定义好的   打印单据  在  b\s模式下 中文 显示不出来。。。。。。

一直以为是  字体问题 导致的  ,在 各种字体上 尝试一晚上无解!!!!  忽然发现AD 自带的 默认 表单 是正常显示 的。

经过测试发现 问题并不是出现在  字体上!!!!!

问题出现在 打印格式项 设置的最大宽度和最大高度  设置上!!!AD文档中说 设置0 为不限制大小,在CS端确实如此 !

但是在 BS下  就不行了!真的当最大宽度和最大高度  为0了!!!!!! 设置合适的 大小后  正常显示!!!!!!!

另外 ,一些 格式项 上设置了  “抑制空值”后   ,没有值的时候 该项会不显示!



btw  顺便记录一个 与打印无关问题


当一些字段在 窗口、页签与字段  设置了    显示已加密  的时候 ,该字段 无法出现在  上下文ctx中!

莫名地sales order line 上的 M_Product_ID被设置了 “显示已加密”   ,结果导致无法选择“实例属性集”,以及相关的callout 无法正常执行!!!













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值