ВОпрос по интерфейсу

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 17 фев 2010.

  1. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Всем доброго дня!

    Есть у меня достаточно часто возникающая задачка лотус под web.
    Хочется узнать кто как реализовывает подобные вещи.

    Всё очень просто - Пользователю хочется чтобы в одном поле можно было и выбирать из списка какое нибудь значение,
    и забить любое значение фри формата руками (типа как в поле Dialog list с галочкой Allow values not in list в толстом Лотусовом клиенте).
    Мне кажется у меня подобные вещи как то колхозно реализованы...(
    (я для таких действий создаю 4 поля - Editable, Dialog list и Computed for display, и поле с крыжиком - фри формат или констант)

    Кто как это реализовывает под Web?
     
  2. K-Fire

    K-Fire Гость

    Можно использовать следующий вариант:
    - Обычное текстовое поле
    - кнопка рядом с полем, на которой навешен JS-код. По кнопке открывается некий "диалог" который возвращает выбранное значение и затем это значение помещается в поле.

    Если выбор нужно производить из жестко заданного списка, то можно найти JS-библиотечки, которые рисуют красивый диалог.
    Если выбор из справочника из БД, то можно за полдня-день написать отдельный свой диалог.
     
  3. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    А есть какой нибудь пример на реализацию подобного?

    Просто не совсем понимаю как можно в отдельном диалоге на JS (который будет вызываться по нажатию кнопки рядом с полем) отображать для
    выбора значения из полей лотусовых документов...

    Или подскажите с чего можно подступиться к реализации...
     
  4. K-Fire

    K-Fire Гость

    Примеров под рукой нету.

    Как это обычно делается.
    Создаете новую форму в нотесе, на вебквериопен вешаете агент, который возьмет некую вьюшку с данными, и отобразит ее в виде таблицы из 1го столбца в этой форме.
    Далее добавляете JS-код в таблице, чтобы при нажатии на строку бралось выбранное значение (или некий ID) и передавалось в вызываемое окно.
    Эта передачу лучше всего делать через Callback-функцию, т.е. при вызове по кнопке диалога ему передается название функции, которую потом вызываем с параметром "выбранное значение". А уже в той функции заполняем текстовое поле.

    Т.е. на кнопке выбора значений примерно такой код:
    window.open("mydialog?OpenForm&param1=zzzzz&param2=zzzzzz&Callback=MyCallbackFunction")

    А в коде при нажатии на выбранную строку в диалоге:

    var selectedValue = getElementById(<тут id тега td>).innerHTML;
    var yourCallbackFunction = window.opener.MyCallbackFunction(selectedValue) <--- вот эту строчка яваскрипта должна быть вычисляемая, т.е. подставить имя callback функции из переданного параметра. Возможно это как-то можно проще, без вычисления делать, но я уже не помню.
     
  5. Кирилл Шваб

    Кирилл Шваб Well-Known Member

    Регистрация:
    30 июн 2006
    Сообщения:
    144
    Симпатии:
    4
    Еще можно сделать без дополнительного диалога.

    На странице размещаешь 2 поля:

    1. одно с списком имеющихся значений (т.е. <select>)
    2. второе для ввода нового значения (т.е. <input type="text">)

    По умолчанию 2-е поле скрываешь, а к 1-му добавляешь в начало/конец что-то вроде " - Другое - ", и если сотрудник выбирает его, то javascript'ом показываешь второе поле и даешь его заполнить.

    При отправке данных соответственно проверяешь не выбрано ли "другое" значение, и если оно выбрано - то в итоговое поле подставляешь значение из дополнительного поля.
     
  6. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
Загрузка...
Похожие Темы - ВОпрос по интерфейсу
  1. ApplePen
    Ответов:
    0
    Просмотров:
    60
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    92
  3. kartaman
    Ответов:
    0
    Просмотров:
    127
  4. Peter
    Ответов:
    4
    Просмотров:
    521
  5. di0d_
    Ответов:
    1
    Просмотров:
    437

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