我想在每行的命令字段的基部上运行一个if,

例如

 If {CommandField=0} Update counter by 1 return counter

 else if {CommandField=1} return 'Reporting'

我尝试了,但是有错误

     stringVar layerType; 
shared numberVar layNo;

     if({Command.ISREPORT}=0) then
           layNo:=layNo+1;layerType:=layNo;layerType

     else if ({Command.ISREPORT}=1) then
      layerType:='Reporting'; layerType

结果应该像

ISREPORT   LayerNo
   0         1
   0         2 
   0         3
   0         4
   1       'Reporter' 
有帮助吗?

解决方案

不确定我理解,但是这是正确的:

stringVar layerType; 
shared numberVar layNo;

     if({Command.ISREPORT}=0) then
     (     layNo:=layNo+1;
           layerType:=ToText(layNo);
           layerType;
     )
     else 
     (  if ({Command.ISREPORT}=1) then
           layerType:='Reporting'; 
           layerType
     )

...可以简化以下:

shared numberVar layNo;

     if({Command.ISREPORT}=0) then
     (     
           layNo:=layNo+1;
           ToText(layNo);
     )
     else 
     (if ({Command.ISREPORT}=1) then
           'Reporting';)

..修复IsReport的价值只能为0或1,然后我们可以进一步简化:

shared numberVar layNo;

     if({Command.ISREPORT}=0) then
     (     
           layNo:=layNo+1;
           ToText(layNo);
     )
     else
     (
       layNo:=0;
       'Reporting';
     )

更新 - 我更改了最后一个示例,以重置“报告”的计数器。

编辑:更改totext(.. ToText(layNo,0); (将十进制位置设置为零)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top