Unid Родителя В Новом Документе

Тема в разделе "Lotus - Программирование", создана пользователем Anatoly, 15 окт 2011.

  1. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Есть необходимость в действии получить UNID родителя.
    Пока документ новый - $REF еше нет, @InheritedDocumentUniqueID в формуле экшн возвращает UNID текущего документа.
    Вариантов 2
    1) В начале экшн сохранять документ и юзать $REF - не нравиться, не факт, что юзер не передумает вводить данный документ
    2) Вычисляемое поле=@Text(@InheritedDocumentUniqueID) (пока так и сделал - Computed for display) и обращаться к нему.

    Но есть ли вариант прямее? Как в еше несохраненном доке получить UNID родителя?
     
  2. FixeR

    FixeR Гость

    Как создается документ?
    Что мешает нужный юнид записать в поле ещё ДО открытия формы?
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">не обратил...</div></div><div class="sp-body"><div class="sp-content">
    А свойство наследовать поля включено на форме?

    Не обратил внимания сразу... Вероятно, что эта функция не работает корректно в действиях.
    Вариант работы со значением поля вполне достойный. Причем значение надо вычислять в поле ComputedWhenComposed, а в других полях использовать его значение, т.к. эта функция работает корректно лишь при создании документа. Если поле сделать CFD, то оно будет некорректно расчитано для сохраненного документа.
     
  4. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    @InheritedDocumentUniqueID возращает UNID "документа-родителя". При использовании в коде кнопки на форме, им, похоже, считается родитель кнопки - открытый через форму документ.
    Поле сделал CFD, потому как нет в нем никакого смысла после сохранения дока.

    У меня только 1 вопрос: и поле, и кнопка - объекты на форме. Так почему родителем кнопки на форме считается открытый док, а для поля на форме возвращается родитель открытого дока?
     
  5. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Вы наверное у формы забыли установить свойство: Тип создаваемого документа - Responce, скорее всего по умолчанию стоит тип Document.
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Anatoly
    Если кнопка создания "ответа" на формулах, то

    Код (LotusScript):
    tm := @DocumentUniqueID
    @Command([Compose];"Response");
    @UpdateFormulaContext;
    FIELD ParUNID := tm;
    phantom76 - ага, тоже так думаю
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    phantom76
    Morpheus
    срамота :) читайте справку!
    Я уже выше в спойлере писал цитату об нужном свойстве:
    От типа не зависит.
    В действиях не работает ((
     
  8. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Я ответы создаю только скриптом. На формулах были несколько случаев, когда документ забывал становиться ответным. Так что ну эти формулы.
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Medevic ,
    а... как бы ниче писать на формуле и не надо - тут уже тип документа в полном ходу.
     
  10. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    :)
    Так, еще раз:
    - документ наследник (тип Responce, не забыл)
    - пока не сохранил, к полю $REF обращаться нет смысла
    - @InheritedDocumentUniqueID в фомулах полей нового(!) документа возвращает UNID родителя - все чОтко.
    В действиях тоже работает, но возвращает UNID родителя кнопки - текущего документа.

    Без расчетного поля DocID=@InheritedDocumentUniqueID, в новом доке никак не обойтись...
     
  11. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Создавай документ скриптом. Поле $REF доступно сразу.

    Добавлено:
    Как же не надо? А документ создать?
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    И шо, cmd/Compose не срабатывает? О.о
     
  13. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Говорю же, были случаи, когда документ забывал становиться ответным. Несмотря на установленный тип формы.
     
Загрузка...

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