我正在尝试比较包含最多2位数字段的两个字段。 一个公式字段是{string},另一个要比较的是{number}字段。 但是当字符串字段显示例如“08”并且数字字段显示“8”时我遇到问题然后它将显示1存在差异但实际上没有差异。如果字符串字段显示14和数字字段显示14可以完美地工作,但实际上没有差异时,1-9之间的任何东西都会显示出差异 这是我到目前为止所尝试的。
If {number.field} = 0
Then StringVar AdjustValue:= " "
Else StringVar AdjustValue:= totext ({number.field},0,"")
;
if {@stringfield} = StringVar AdjustValue then 0 else 1
提前感谢您的帮助。
答案 0 :(得分:2)
相反,将字符串转换为数字,这样您就不必担心前导零。
if tonumber({@stringfield})={number.field} then 0 else 1
只是快速注意一下:您正在重新声明AdjustValue变量三次。在同一公式中的初始变量声明之后,无需通过“StringVar”引用它。
编辑:由于您遇到顶级公式的问题,您还可以尝试将AdjustValue变量填充到两个空格:
stringvar AdjustValue;
If {number.field} = 0
Then AdjustValue:= " "
Else AdjustValue:= totext ({number.field},"00") //add padding
;
if {@stringfield} = StringVar AdjustValue then 0 else 1
答案 1 :(得分:0)
使用将返回布尔值的公式字段保持简单:
// {@compare}
ToNumber({@string})={number.field}
在您需要的地方引用{@compare}
。