Помогите, если еще формула
-
12-10-2019 - |
Вопрос
Я хочу запустить, если еще на базе командного поля в каждой строке,
Например
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);
(Устанавливает десятичные места на ноль)
Не связан с StackOverflow