Отображение значения поля Checkbox

Тема в разделе "Lotus - Программирование", создана пользователем Yukas, 31 авг 2009.

Статус темы:
Закрыта.
  1. Yukas

    Yukas Гость

    Всем добрый день!

    Простите за уж совсем простой вопрос... :)
    Есть поле типа checkbox. Значения в нем, к примеру, такие:
    арбуз|1
    дыня|2
    тыква|3
    кабачок|4
    Так вот при открытии формы на чтение это поле скрываю, а в <computed value> хочу отобразить это поле, но отображаются алиасы этого поля, а как мне вычислить текстовое значение на собаках?

    Спасибо.
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ручками.
    Автоматом из элиаса литерарное значение не получить.

    -----------------------
    Как варианты:
    Можно, например делать рядом computed поле, которе будет вычислять значение по формуле.
    Можно вычислять на уровне колонки view.

    Можно сделать целую систему:
    1. наверху (текстовое) поле (пусть будет Selections) вида
    Код (Text):
    "Lit1|Alias1"
    "Lit2|Alias2"
    "Lit3|Alias3"
    2. Видимое поле (checkbox) со значениями поля из Selections (тут будут алиасы)
    3. Спрятаное поле, которое вычисляет литературные значения из 2-х вышеприведённых полей.

    Достоинство такой системы в том, что вся выборка только в одном месте.
    Но мне такая вещь кажется немного громоздкой.
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    заведи эти значения в базу как какие-нить системные документики а потом выбирай через @DbColumn
     
  4. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Установите галку "Allow keyword synonims", тогда в режиме чтения будут отображаться текстовые значения. Но если варианты вычисляемые, то вычисляться они будут при каждом открытии документа.
     
  5. Yukas

    Yukas Гость

    Так галка "Allow keyword synonims" стоит... А отобразить хочется именно рядом через computed tex
    Была какая-то простая формула... но сейчас уже не помню, вот и ступор.
     
  6. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Хитрец. Изначально так вопрос не стоял. Тогда используйте вариант Omh.
     
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Создаем профильный документ, напр. SysProfile. В нём текстовое многозначное поле, напр. List1. В поле перечислены значения арбуз|1 и т.д. Создаём вычисляемое поле $List1 (для видов) с формулой:
    FindList := @Implode(@Word(@GetField("List1"); "|"; 2); "\":\"");
    ReplaceList := @Implode(@Word(@GetField("List1"); "|"; 1); "\":\"");
    "@Replace(" + "List1" + "; \"" + FindList + "\";\"" + ReplaceList + "\");";

    В форме документа для выбора значений в нужном поле указываем в качестве источника формулу @GetProfileField("SysProfile"; "List1"). (Как получить из списка нужные значения/алиасы не расписываю - на свой вкус).
    В видах для нужного столбца на первой вкладке включаем галку User definable и указываем имя профиля SysProfile, на последней вкладке в качестве программируемого имени указываем $List1, формула столбца - @UserName.
    Достоинства - можно настраивать списки не меняя дизайна.
    Недостатки - спросить у гуру.
     
  8. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    ох огороды городите!
    проще всего @DbColumn в выбор значений для checkbox
    И DbLookup для <computed value>
    Особенно удобно если параметры вдруг будут добавляться.

    а если количество значений checkbox ограничено и не большое - то для <computed value> пользуй обычный @if
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Согласен, но научите, плз, как в видах отображать АРБУЗ вместо 1, не используя профильные документы и не кодируя жестко в формуле столбца. Вопрос так не стоял, но обычно встает, когда дело доходит до отображения доков в видах.
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Какие @DbColumn и @DbLookup? Причем здесь они? Есть значения, есть синонимы. Задача в том, чтобы определить значение, зная синоним.
    Всё делается через одно дополнительное поле, как Omh написал.
     
  11. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    У меня реализовано таким образом.
    + всего этого - не надо лазить в код. вся настройка проходит из интерфейса пользователя
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Правильно, но ИМХО, значение в это поле лучше подставлять из профильного дока, чтоб дизайн не ломать при обновлении списка.
     
  13. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    конечно придется повозиться с алгоритмами... сделать их гибкими и "готовыми" к новым параметрам.
    При большом желании для каждого параметра можно предусмотреть использование @-формулы или lotus-скрипта.
    В общем все зависит от того что пишут и какая задача

    Medevic
    Прошу прощения, а где хранить синонимы их значения?
     
  14. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Хранить в CFD-поле.
     
  15. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Это хорошо для данных типа
    Мужской|1
    Женский|2

    Если же список значений может меняться/настраиваться, то лучше хранить данные либо в настроечных документах, либо в профильных, в зависимости от задачи. Я предпочитаю профильные.
     
  16. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А если не может меняться/настраиваться, то зачем нам профильные документы? :)
    Из условия не понятно могут ли меняться данные. Да и задача в другом.
     
  17. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А по теме задачи есть подсказка в одном из моих предыдущих постов (правда для столбца вида).
    Пусть есть CheckBox.
    Размещаем на форме скрытое поле со списком значений $List1 (CFD или из профиля - на вкус). У CheckBox'a источник - формула $List1.
    Для вычисляемого текста пишем формулу:
    FindList := @Word($List1; "|"; 2);
    ReplaceList := @Word($List1; "|"; 1);
    @Replace(CheckBox; FindList; ReplaceList);
     
  18. Yukas

    Yukas Гость

    Ух ты.... сколько способов.
    Скорее всего подходит вариант Omh, т.к. значений в поле не очень много и они не добавляются.
    Всем огромное спасибо, за помощь!
     
Загрузка...
Статус темы:
Закрыта.

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