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

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

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

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

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

Multivalue Dialoglist И Заяпятые

dimat

Well-known member
31.07.2008
508
0
BIT
0
Всем привет!

При выборе значений в поле DialogList (use formula for choise: @dbcolumn("":"ReCache";@servername:"References.nsf";"viewname";3)), если значение содержит запятые, оно разделяется на несколько значений.

Как это обойти?
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Gandliar
Поясните пожалуйста, как это применить?
 
S

Serduko

Если нужно одно значение, вероятно так:
@Implode(@dbcolumn("":"ReCache";@servername:"References.nsf";"viewname";3));",");

если нет то вставляем @Implode в колонку 3 в viewname

Функция обьединяет массив в строку.
 
O

Omh

dimat
А что там в поле с мультивелью сепаратораом?
Если поле не мултивелью, попробуй пересоздай поле с нуля.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Функция обьединяет массив в строку.
Получается и в поле он вставиться как строка?

Omh
Поле MultiValue, сепаратор запятая.( если ставить другой сепаратор, то ставится другой + запятая).

Еще раз поясню свою проблему на примере:

Указанной формулой открыается диалог выбора, в нем варианты:
- Деятельность, связанная с использованием ВТ
- Строительство
- Сбор, очистка и распределение воды
- Транспорт и связь
- Образование
- Аренда торговых площадей, эксплуатация зданий и сооружений

выбираем след. варианты:
- Деятельность, связанная с использованием ВТ
- Строительство
- Сбор, очистка и распределение воды

В итоге:
doc.getitemvalue("FieldName")(0)="Деятельность"
doc.getitemvalue("FieldName")(1)="связанная с использованием ВТ"
doc.getitemvalue("FieldName")(2)="Строительство"
doc.getitemvalue("FieldName")(3)="Сбор"
doc.getitemvalue("FieldName")(4)="очистка и распределение воды"

А надо:
doc.getitemvalue("FieldName")(0)="Деятельность, связанная с использованием ВТ"
doc.getitemvalue("FieldName")(1)="Строительство"
doc.getitemvalue("FieldName")(2)="Сбор, очистка и распределение воды"
 
O

Omh

Ну так выпили запятую из списка мултивелью сепаратаров и воцарится мир во всём мире!
Я гарантирую это!

Что бы его убрать, кликни ещё раз на comma, только перед этим выбери ещё один другой.
На мой взягляд самый предпочтительный- New Line, хотя это, конечно, зависит от дизайна приложения.
 
T

TIA

Универсальное решение и для списков и одиночых значений:

a:=@dbcolumn("":"ReCache";@servername:"References.nsf";"viewname";3));
PSEUDO_COMMA:="‚";
@ReplaceSubString(a;",";PSEUDO_COMMA);

Значение PSEUDO_COMMA - это символ, выглядящий, как запятая, но таким не являющийся. Его код 130. DialogBox не будет разделять на несколько значений по такой псевдо-запятой.
Результат выбора в диалоге надо подвергнуть обратному преобразованию:
@ReplaceSubString(Selected;PSEUDO_COMMA;",");
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Что бы его убрать, кликни ещё раз на comma, только перед этим выбери ещё один другой.
На мой взягляд самый предпочтительный- New Line, хотя это, конечно, зависит от дизайна приложения.
Дык не убирается он, при сохранении формы все равно ставится comma+new line, которую выбрал вместо comma
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
TIA
У меня @char(130), выдает букву е с палкой наверху:)
 
Мы в соцсетях:

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