0

我有一个 SQL 列正在计算显然是一个整数的日期差异。在我看来,我需要发生的事情非常简单;但是我找不到使它起作用的语法。

目标是获取所有 NULL 值并使它们说“缺失”,同时将列中的其余数据保持为整数。

我这样做是为了使 NULLS = 0 (tonumber() 并不是真正需要的,我只是还没有改变它):

if isnull({Command.DAYS_OUT}) = true then 0 else tonumber({Command.DAYS_OUT})

但我真正想说的是if isnull({Command.DAYS_OUT}) = true then "Missing" else {Command.DAYS_OUT}。不幸的是,Crystal 吐出了那个愚蠢的“这里需要一个字符串”。好吧,我不想要一个字符串!

我不能在 ELSE 语句中使用 totext()。我需要使用 Highlight Expert 来表示,如果缺失则为红色,如果 < 0 则为红色/粗体,并且介于 1 和 30 之间为黄色/粗体。当我使用 totext() 时,它无法弄清楚数字是什么...... :(

请帮忙...!

4

1 回答 1

0

您不能有一个输出多种数据类型的公式。相反,您可以让您的公式输出一个字符串,就像您已经提到的那样:

if isnull({Command.DAYS_OUT}) then "Missing" else totext({Command.DAYS_OUT})

然后,要按照您想要的方式设置字体颜色格式,您可以使用原始整数值:

if isnull({Command.DAYS_OUT}) or {Command.DAYS_OUT} < 0 then crRed
else if {Command.DAYS_OUT} in 1 to 30 then crYellow
else crBlack

然后对字体类型执行相同的操作:

if isnull({Command.DAYS_OUT}) then crRegular
else if {Command.DAYS_OUT} < 0 or {Command.DAYS_OUT} in 1 to 30 then crBold
else crRegular
于 2013-07-04T03:12:37.123 回答