用于比较字符串字段和数字字段的水晶公式

时间:2012-08-24 14:23:11

标签: crystal-reports report formula

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

提前感谢您的帮助。

2 个答案:

答案 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}

相关问题