Crystal Reports:计算年末年初里程计差值时公式报错求助
Crystal Reports里程计差值公式报错解决
错误原因
你写的差值公式Numbervar:=LastDate-FirstDate存在两个核心问题:
Numbervar后未指定变量名,语法完全无效;- 未声明要引用的
FirstDate和LastDate为共享变量,当前公式无法访问其他公式中定义的变量值。
分步解决
1. 修改赋值公式(存储年初/年末里程值)
在原有赋值公式中给变量添加Shared关键字,确保变量能在多个公式间共享:
Shared Numbervar FirstDate; Shared Numbervar LastDate; if {@MyDate} = {@Day First} then FirstDate := {vehaudfl.aud_trans_lfmeter} Else if {@MyDate} = {@Day Last} then LastDate := {vehaudfl.aud_trans_lfmeter}
2. 修正差值公式
重新编写差值公式,先声明共享变量,再直接返回计算结果:
Shared Numbervar FirstDate; Shared Numbervar LastDate; LastDate - FirstDate
额外注意事项
- 确保赋值公式的执行顺序早于差值公式:比如将赋值公式放在报表页眉,差值公式放在报表页脚,保证变量先被赋值再参与计算。
- 验证
@Day First和@Day Last公式是否正确返回每年的年初、年末日期,确保@MyDate能匹配到对应记录,避免变量值为空(默认0)导致差值不准确。
内容的提问来源于stack exchange,提问作者Joel Blais
相关产品推荐
相关产品推荐

