• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

P

PeNgViN213

Добрый день коллеги, очень прошу вас проверить правильно ли я написал формула, для следующего задания:
Cделать колонку с иконкой восклицательного красного знака.
Данный знак должен отображаться только для тех документов, у которых не заполнены одно или более полей из списка.

Код:
@If(@Contains(badkind;" ");0;150 & @Contains(badtype;" ");0;150 & @Contains(badprod;" ");0;150 & @Contains(badmodel;" ");0;150 & @Contains(snerr;" ");0;150)
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
listfields := Field1:Field2:Field3:Field4:Field5; "имена контролируемых полей";
n :=5"; "кол-во полей";
image := "восклзнак.png"; "или у тебя 150, вроде";
@if(@elements(@trim(listfields)) < n ; image ; "")
вроде так
 
P

PeNgViN213

listfields := Field1:Field2:Field3:Field4:Field5; "имена контролируемых полей";
n :=5"; "кол-во полей";
image := "восклзнак.png"; "или у тебя 150, вроде";
@if(@elements(@trim(listfields)) < n ; image ; "")
вроде так
По-моему везде показывает, даже где заполнено, надо же где пусто
 
Последнее редактирование модератором:

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
По-моему везде показывает, даже где заполнено, надо же где пусто
не может быть, правда тут n :=5" лишняя ковычка (ты же исправил?)
... или в полях есть чота не то, кроме "не заполнено", пробелы, например
-----
хотя нет, и с пробелами тут все ОК.
в общем, должно работать сто пудов. ищи, где сам облажался
 
P

PeNgViN213

не может быть, правда тут n :=5" лишняя ковычка (ты же исправил?)
... или в полях есть чота не то, кроме "не заполнено", пробелы, например
-----
хотя нет, и с пробелами тут все ОК.
в общем, должно работать сто пудов. ищи, где сам облажался
в полях должно быть пусто, тогда должен появляться знак
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
??? кавычки с пробелами штоля ???
если 1 или больше "просто пробелов" - даст пустой элемент массива, трим его уберёт нафик))))
должно работать;)
кста, сам себе не поверил, проверил - работает))))
 
P

PeNgViN213

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

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Тут видимо подойдет, что то вроде
@if(
form="form1" & @elements(@trim(field1:field2))<2; 150;
form="form2" & @elements(@trim(field2:field3:field4))<3; 150;
"");

так как судя по всему в разных доках разный набор полей.

или

@if(
form="form1" & (@trim(field1)="" | @trim(field2)=""); 150;
form="form2" & (@trim(field3)="" | @trim(field4)="" | @trim(field5)=""); 150;
"");
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
ну а какие еще операциями можно проверить на пустоту?
поле не заполняли: @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);
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!