从其它平台迁移而来
老坑
*.frf
是FastReport 2.x
的报表模板,现维护的老项目中有使用到该报表。
问题描述
报表通过数据集DS
和报表变量V1
、V2
、V3
等获取数据,并在模板中进行展示。
-
单独展示数据集中的某个字段:
[DS."D1"]
-
展示数据集中的某两个字段的运算结果:
[[DS."D1"]+[DS."D2"]]
-
单独展示某个变量:
[V1]
-
展示数据集中的某个字段与变量的运算结果:
[[DS."D1"]+[V2]]
以上都是没有问题的,但当需要展示两个变量的运算结果时就不行了,[V1]+[V2]
实际展示的是两个变量的字符串连接,因为报表变量本来就是字符串。查看模板其它写法,发现有使用尖括号<>
的,尝试后也不行,[V1]+<V2>
实际展示的只有V2
的值。
由于报表变量本身就是字符串,想着通过数据类型转换来解决,但非常遗憾,报表没有提供把字符串转为数值的函数。
实在不行就只能考虑在代码中计算完之后再赋值给报表变量了,但这样就牺牲了报表的灵活性了,乃是没有办法的最后的办法了。
最后灵光一现,既然数据集字段与变量可以运算,那加个0
是不是也可以运算?一试果然可行!
结果
- 展示某两个变量的运算结果:
[0+[V1]+[V2]-[V3]]
问题解决了,不过总感觉是个偏方,不晓得正统的解决方案是什么。
不过话说回来,FastReport 2.x
已经很古老了,除了老项目维护基本不可能会用到,因为现在连FastReport 3+
用得都很少了,毕竟现在已经是什么乱七八糟的牛鬼蛇神都有的元宇宙
时代了,能解决问题就好。