我想转换例如1000到1000(货币)。我怎么能在Jasper中做到这一点?
答案 0 :(得分:3)
EnglishNumberToWords.convert( $F{field_name} )
您必须根据实施细节更改field_name
和convert
方法的数据类型。
答案 1 :(得分:1)
Dave回应的另一种选择:
1)如果您的RDBMS支持它(例如HSQLDB),您可以创建一个用户定义的,用户调用的函数,该函数获取字段的数据模型表示并将其转换为表示层表示。例如,数据库在内部将时间戳存储为Modified Julian Day数字(双精度数)。可以使用数据库(SQL / JRT)编写和存储Java函数,以将UTC双精度转换为本地化的时间/日期字符串。
2)编写SQL查询以生成包含报表中所需数据的表。区别在于您在源列上使用用户调用的SQL / JRT函数将其转换为结果表中的表示层表示。
3)使用您的SQL查询(一旦它运行)作为CREATE VIEW(DDL)语句的基础。
4)使用新定义的View作为iReport数据源构建报告。
优点: 无需定制iReports。您创建的视图可以作为任何报告工具的基础,而不仅仅是iReports。
缺点: 这会在您的数据库和JRE之间创建依赖关系,并且(很可能)是您的RDBMS。为了访问用户调用的函数,您需要将函数存储在数据库中,并且需要能够访问JRE才能创建View。有一个SQL / JRT标准,因此您的迁移目标RDBMS可能能够支持它,但肯定无法保证。