我正在尝试修正报告中任何{nresult}> {flaglevel} = crred的逻辑。除了我们最初没有考虑{flaglevel}默认为0的事实,除非输入了特定的数字,否则此方法有效。因此即使{flaglevel}仅是默认值,所有{nresult}均为红色。
{nresult}是一个数字,{flaglevel}是一个字符串。当前代码是
If {PRM_SxData.nResult} > tonumber({PRM_SxData.FlagLevel})
then crRed
Else crBlack
我尝试为{flaglevel}制作一个单独的公式,除了我必须在后面加上一个数字,否则它不起作用。
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
答案 0 :(得分:0)
我对用户输入有点悲观,我认为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}以检查其值。