Открыть документ по другой форме...

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

  1. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    Собственно сабж.

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

    Документ отрывается по линку.
     
  2. interrupt

    interrupt Гость

    А в чем тут трудность?
    Если документ открывается по линку , то вроде других способов нет.
    На QueryOpen стандартной формы делаешь
    EditDocument по нужной форме
    Continue = false и Exit sub.
     
  3. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Еще - через формулу формы вьюхи. Собственно, таким способом можно в линке "задать" форму
     
  4. interrupt

    interrupt Гость

    Constantin A Chervonenko , а при чем тут формула формы вьюхи?
    Я так понял он документ открывает не из вида, а по линку (ссылка на документ например из письма)
     
  5. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    вот собственное исследование привело к использованию - @Command( [ViewSwitchForm]; "NewForm" ) в пост опен формы
     
  6. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Если УНИМАТЕЛЬНО посмотреть свойства линка, то там можно различить 3 компоненты:
    ссылка на базу (ReplicaID)
    ссылка на вьюху - UNID
    ссылка на документ (опять-же UNID)
    (Что интересно, сервера там может и не быть)

    Вот и объясните обчеству, на кой там вьюха?
     
  7. interrupt

    interrupt Гость

    Constantin A Chervonenko , не знал, спасибо!
    Но все равно такой вариант прокатит, когда линк формируется вручную (Copy document as link) или программно через
    .AppendDocLink(), но часто линки делают в виде гиперссылок типа таких:
    Код (Text):
    urlNotes$ = "notes://" + Server_Notes_Name.common + "/" + doc.ParentDatabase.replicaid + "/0/" + doc.Universalid
    здесь открытие происходит без участия вида, и указание в представлении формулы формы не приведет к результату. Документ откроется через форму, указанную в поле form.

    Теперь понятно, что используются некоторые свойства представления, но не знаю какие еще кроме формулы формы, придется вам помочь объяснить :)
    В хелпе написано "If the doclink does not target a view, this property is 32 zeros."
    но я проверил, если дефолтного вида нет, а документ больше ни в каком виде не открывается, то линк вообще не создается, вылетает ошибка:
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    IMHO - никакие (кроме).
    В вашем "ручном" примерчике UNID вьюхи тоже присутствует (в виде ../0/..)
     
  9. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    EditDocument можно делать не в событиях открытия документа, а в том месте, где нужно открытие.
    Но перед этим:
    Код (Text):
    ND.ReplaceItemValue("Form", "OtherForm").SaveToDisk = False
    хорошо, но:
    во-1 документ уже открыт по старой форме, а это время;
    во-2 - дёргания при закрытии и открытии другой формы;
    в-3 - меньшая гибкость - форумулу труднее написать бывает, чтобы иногда открывал в другой форме, а иногда нет; если же всегда открывать по другой форме, то... спрашивается, зачем? Может тогда просто перепрописать в доке поле Form и сохранить док..

    EditDocument и ручное прописывание Form мне кажется лучшим вариантом.
    P.S. Если пользователю нужно показать лишь часть данных документа, то иногда подходит просто выдавать док в диалоге по нужной форме.
     
Загрузка...

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