Multivalue Dialoglist И Заяпятые

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 3 апр 2012.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Всем привет!

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

    Как это обойти?
     
  2. Gandliar

    Gandliar Well-Known Member

    Регистрация:
    16 фев 2004
    Сообщения:
    222
    Симпатии:
    0
    @Implode(...
     
  3. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Gandliar
    Поясните пожалуйста, как это применить?
     
  4. Serduko

    Serduko Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    174
    Симпатии:
    0
    Если нужно одно значение, вероятно так:
    @Implode(@dbcolumn("":"ReCache";@servername:"References.nsf";"viewname";3));",");

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

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    dimat
    А что там в поле с мультивелью сепаратораом?
    Если поле не мултивелью, попробуй пересоздай поле с нуля.
     
  6. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    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)="Сбор, очистка и распределение воды"
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну так выпили запятую из списка мултивелью сепаратаров и воцарится мир во всём мире!
    Я гарантирую это!

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

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Универсальное решение и для списков и одиночых значений:

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

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

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Дык не убирается он, при сохранении формы все равно ставится comma+new line, которую выбрал вместо comma
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Отображаемый разделитель тоже поменяй.
     
  11. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Поменял, сработало. Теперь все нормально.
    Всем спасибо за ответы.
     
  12. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    TIA
    У меня @char(130), выдает букву е с палкой наверху:)
     
  13. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    dimat
    0130
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    dimat
    [Alt] + 0130 на нумпаде
     
  15. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Не знал о таком, спасибо, буду знать!
     
Загрузка...
Похожие Темы - Multivalue Dialoglist Заяпятые
  1. Zeka
    Ответов:
    4
    Просмотров:
    2.687
  2. xKlonx
    Ответов:
    8
    Просмотров:
    3.778
  3. deeeman
    Ответов:
    2
    Просмотров:
    2.267
  4. Cleric-Lviv
    Ответов:
    4
    Просмотров:
    2.806
  5. NickProstoNick
    Ответов:
    5
    Просмотров:
    2.895

Поделиться этой страницей