基于字符串和数字的条件颜色格式

conditional color formatting based on string and number

我正在尝试修复报告中任何 {nresult} > {flaglevel} =crred 的逻辑。这有效,除非我们最初没有考虑 {flaglevel} 默认为 0 的事实,除非输入特定数字。所以即使 {flaglevel} 只是默认值,所有 {nresult} 都是红色的。

{nresult} 是一个数字,{flaglevel} 是一个字符串。当前代码是

If {PRM_SxData.nResult} > tonumber({PRM_SxData.FlagLevel}) 
then crRed 
Else crBlack

我试图为 {flaglevel} 制作一个单独的公式,但我必须在 else 后面加上一个数字,所以它不起作用。

if tonumber ({PRM_SxData.FlagLevel}) > 0
then tonumber({PRM_SxData.FlagLevel})
else " "

基本上我需要的是这样的:

If {PRM_SxData.nResult} > tonumber({PRM_SxData.FlagLevel}) //where flaglevel >0 
then crRed 
Else crBlack

我对用户输入有点悲观,我认为 R.McMillan 提出了一个很好的问题,所以我会选择这样的东西:

If (not isnull({PRM_SxData.FlagLevel))
AND {PRM_SxData.FlagLevel} <> ""
AND {PRM_SxData.nResult} > tonumber({PRM_SxData.FlagLevel})
then crRed 
Else crBlack

请试试这个,让我们知道发生了什么。

如果它不起作用,在某处打印{PRM_SxData.FlagLevel}来检查它的值。