@formula прошу проверить))

alexas1

Well-Known Member
Lotus team
10.04.2014
704
242
#21
в разных доках разный набор полей.
list1 := field1:field2:field3;
...............
listn := fieldX:fieldY: .... fieldZ;
listField := @if(form = "form1";list1; ......);
n := @elements(listField);
@if(@elements(@trim(listfields)) < n ; image ; "")
----------------
про синхронность - дополняем, складываем, через разделитель, чекаем чонить трансформом
-----------
зы
listField тоже луче получить через список form1:form2: ... formN, штоб совсем уж было однотипно (через ismember, например)
 
Последнее редактирование:

romych2004

Well-Known Member
Lotus team
01.04.2013
109
19
#22
это не будет работать, если в поле пробелы, что тоже пустота
@If(@Trim(field1):@Trim(field2):@Trim(field3) = ""; 150; 0)

ну и раз уж такие нюансы..
в твоем решении если в поле массив и один из элементов пустой элемент - будет воскл. знак
 

alexas1

Well-Known Member
Lotus team
10.04.2014
704
242
#23
@If(@Trim(field1):@Trim(field2):@Trim(field3) = ""; 150; 0)

ну и раз уж такие нюансы..
в твоем решении если в поле массив и один из элементов пустой элемент - будет воскл. знак
))))) не, так тебя не спасёт,
а я внутренности поля и просплитить имплодером могу и будет шоколад ;)
 

NetWood

Well-Known Member
Lotus team
17.04.2008
371
16
#26
Эта формула писалась для отсекания ембеднутых объектов от аттачей в доке и для поиска необходимых аттачей с расширением
Код:
att:=@AttachmentNames;
attprop:=".";
REM {отсекаем вложенные со связью объекты, так как они = аттачмент без расширения};
tratt:=@Trim(@Transform(att;"x";@If(@Contains(x;attprop);x;@Nothing)));
ea:=@If(@Elements(tratt)>0;" Attachments ("+@Text(@Elements(tratt))+")";@Nothing);

REM {объекты без расширения};
embatt:=@Trim(@Transform(att;"x";@If(!@Contains(x;attprop);x;@Nothing)));
emb:=@If(@Elements(embatt)>0;" Embedded Object ("+@Text(@Elements(embatt))+")";@Nothing);

ea+emb
PeNgViN213 попробуйте
Код:
fld:=Field1:Field2:Field3:Field4:Field5; "имена контролируемых полей";
fldprop:=" ":".":"%"; "что НЕ хотите в них найти";
trfld:=@Trim(@Transform(fld;"x";@If(@Contains(x;fldprop);x;@Nothing)));
target:=@If(@Elements(trfld)>0;" Неправильно заполненные поля ("+@Text(@Elements(trfld))+")";@Nothing);

target
 
Последнее редактирование:

PeNgViN213

Well-Known Member
01.07.2017
46
0
#27
поле не заполняли: @IsAvailable(field)
поле пустое - выше писали, но я бы еще и @Trim сделал
проверка синхронности списков - это отдельная тема, список надо еще "дополнять" и "фильтровать", все сильно зависит от контекста, перемножение списков как пример (кусок из кода)
Код:
snum:=@Explode("0 1 2 3 4 5 6 7 8  9";" ");
res:=@If(@IsError(v);@ThisName;v);
n:=@Elements(res);
num:=@Subset(@TextToNumber(snum *+ snum);n);
Пожалуйста, не могли вы мне объяснить как работает @elements, я читаю хелп, никак не вьеду
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#29
это не будет работать, если в поле пробелы, что тоже пустота
Это 1-е;
И второе - сработает если ВСЕ поля не заполнены. А по постановке - хоть одно..

---- Добавлено позже ----

считает кол-во элементов в массиве
+++
Оговорочка: для списка (массива) из единственного пустого эл-та возвращает "0". Обычно это и требуется
 
Последнее редактирование: