Связь документов

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

  1. Гость

    Добрый вечер! Подскажите, пожалуйста, как организовать такую базу. Имеется форма "Блюдо" с полем списком выбора типа блюда "Первое", "Второе", "Салат" и с полем для ввода названия конкретного блюда. Имеется также форма "Заказ" с редактируемым полем "Заказчик" и с тремя полями-списками (значения в каждом из них ищутся по лукапу по ключу "Первое", "Второе"или "Салат" соответственно из документов по первой форме). Необходимо, чтобы при изменении названия конкретного блюда в документе по первой форме, менялось название заказанного блюда в документе по второй форме. Что-то мне подсказывает, что надо использовать @DocumentUniqueID и искать значения ID документов по первой форме. Но как именно организовать изменение наименований блюд во второй-непонятно?
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Как вариант во втором документе значения списков заполнять в виде:
    "Суп харчо|unid1"
    "Борщ украинский|unid2"
    ...
    и взвести галку "Allow keyword synonyms"
    Тогда в качестве значения поля будут сохраняться юниды, а отображаться названия блюд. Правда в таком варианте нельзя будет показать названия блюд в представлениях, если только не сохранять их в отдельных полях.
     
  3. Klido

    Klido Гость

    а правильно ли это? я заказал одно, а мне в заказ сделали другое? тем более историческая ретроспектива - что заказывал. то и должно быть написано...

    а так - наверное, самый прямой способ - хранить в заказе unid-ы из справочника, а при обновлении справочника, например, агентом, проходить по заказам и менять реальные названия...
     
  4. Гость

    В документе по форме заказ необходимо лукапом искать название конкретного блюда из документа по форме блюдо. Но если ставлю аллиас после лукапа(@DbLookUp(...)|unid) в Choises полz типа DialogList, то при создании документа выводит: Incorrect data type for operator or @function:number expected. Не подскажете кратенько, как пользоваться юнидами? И что такое справочник?)
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Должно быть просто @DbLookUp(...), а значения вида "Блюдо|unid" должны быть уже в столбце представления. UNID — это специальный тип данных, так что если Вы не храните его копию в документе в текстовом поле, то в формуле столбца нужно писать ...|@Text(@DocumentUniqueID)
     
  6. Гость

    Так и не получилось решить эту задачу. Агентом еще не пользовался, но что-то подсказывает, что без него не обойтись) Ведь нужно чтобы в ранее созданных документах по форме заказ менялось название заказанного блюда. То есть в вид "Блюдо" z lj,fdkz.
     
  7. Гость

    То есть в виде "Блюдо" я создаю колонку номер 3 со значением поля "Unid", содержащего @Text(@DocumentUniqueID). Но как использовать полученные идентификаторы для изменения значения полей Салат Первое Второе в документах вида Заказ при изменении соответствующих значений в документах по форме блюдо?
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Димитрий1
    Если создать в представлении "Блюдо" столбец с формулой Блюдо|@Text(@DocumentUniqueID), т.е. чтобы значения столбца выглядели как
    "Суп харчо|аааааааааааааааааааа"
    "Борщ украинский|bbbbbbbbbbbbbbbbb"
    и т.д. и лукапить именно этот столбец, то в поле со списком будет выбираться название блюда, а сохраняться — юнид. Т.о. стоит изменить название блюда, автоматически оно изменится и в документе "заказ", поскольку в нём хранится юнид, а название берётся из базы по юниду (если нет кэширования). Минус такого подхода, что нельзя отобразить название блюда из документа "заказ" в представлении и разработка должна вестись с нуля. Если же заказы уже забиты в базу, то можно в форме редактирования блюда при изменении его названия запускать агент, который отбирает коллекцию заказов с изменившимся названием блюда и сохранаяет новое значение. Для отбора документов использовать представление по форме "Заказ" с первым сортированным столбцом с названием блюда, документы получать по view.GetAllDocumentsByKey.
     
Загрузка...
Похожие Темы - Связь документов
  1. serox
    Ответов:
    3
    Просмотров:
    1.710
  2. morkov
    Ответов:
    1
    Просмотров:
    1.571
  3. shadow288
    Ответов:
    3
    Просмотров:
    1.869
  4. nayke
    Ответов:
    60
    Просмотров:
    9.789
  5. Chron
    Ответов:
    14
    Просмотров:
    5.273

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