0

我正在尝试比较两个最多包含 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

在此先感谢您的帮助。

4

2 回答 2

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
于 2012-08-24T15:30:36.943 回答
0

使用将返回布尔值的公式字段保持简单:

// {@compare}
ToNumber({@string})={number.field}

参考{@compare}你需要的地方。

于 2012-08-24T16:54:37.037 回答