Странности с Composedocument

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

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

    San4el Гость

    Добрый вечер!
    Ай нид хелп:

    Dim ws As New notesuiworkspace
    dim uidoc As notesuidocument
    Dim dopDb As New NotesDatabase("Сервер1", "Путь")
    Call ws.SetTargetFrame( "Dop")
    set uidoc = ws.ComposeDocument( dopDb.Server, dopDb.FilePath, "Имя_Формы")

    Но документ создается по форме которая находится не в dopDb (на сервере1), а в ее реплике на другом сервере - сервер2 (это если предварительно на воркспейсе кликнуть мышкой на реплику на сервере2, а если на кликнуть на реплику на сервере1 то и док соответственно создается нормально по форме из базы на сервере1)

    В дебагере следующее:
    dopDb.Server = "Сервер1"
    dopDb.FilePath = "Путь"
    uidoc.document.ParentDataBase.Server = "Сервер2"
    uidoc.document.ParentDataBase.FilePath = "Путь"

    Как быть ? Может кто уже сталкивался?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а иконки реплик на раб.обл. в стеке или отдельно?..
    если в стеке, попробуй снять Stack replica icons чтобы отдельно были...
    мож поможет...
     
  3. San4el

    San4el Гость

    неа не помогает. Если в стеке то создается на сервере где галочка стоит, а если не в стеке, то на сервере той базы которая была последняя выделена.
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    хм... а если не устанавливать таргетфрейм?

    а откуда код вызывается?
     
  5. San4el

    San4el Гость

    Не пробовал просто надо именно во фрейм выводить суть в следуюшем:
    нажимаем в документе кнопку код которой я написал и сбоку открывается фрейм в который подгружается новый документ, в котором в свою очередь есть ембедед вьюв, в котором документы истории по главному документу ... Прошу прощения за тавтологию.
     
  6. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    San4el
    Представление с сервера 1 или сервера 2?)
     
  7. San4el

    San4el Гость

    Представление с того же сервера что и форма
     
  8. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Может сделать через notesUIWorkspace.EditDocument?
     
  9. San4el

    San4el Гость

    Тогда его надо сначала сохранить а мне это не надо.
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Зачем сохранять?

    И где база открыта? Не на сервере2 случайно?
     
  11. San4el

    San4el Гость

    В создаваемом документе есть поле Computed when composed (ID главного документа), которое считается из переменной окружения, которая в свою очередь прописывается перед созданием вспомогательного документа и по этому ID во встроеный во вспомогательный документ вид подтягиваются доки (доки истории) относящиеся к главному документу, а если использовать notesUIWorkspace.EditDocument то это поле становится пустым и соответственно в вид подтягиваются все документы истории по всем основным документам.

    'И где база открыта? Не на сервере2 случайно?' - не понял? какая именно?

    Да и еще вопрос не в тему: как запретить пережод в режим редактирования двойным щелчком левой кнопки мыши?
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Можно перед открытием прописать нужное значение. Или попробовать NotesDocument.ComputeWithForm.

    С которой работаешь. В которой пытаешься открыть документ.

    Событие Querymodechange.
     
  13. San4el

    San4el Гость

    Ща попробую...
    База открыта на Сервере1 на котором собственно и пытаюсь открыть документ, но он открывается на сервере2 ....
     
  14. San4el

    San4el Гость

    Код (Text):
    Dim sEnvironment As String
    Dim sForm As String
    Dim sFrame As String
    sEnvironment = "IntDoc_UNID"            ' имя переменной окружения, через которую передадим UNID (в форме
    'вычисляется в поле)
    sForm = "StatDisplay_SUEK_SED"      ' название формы, по которой будет создан документ для отображения
    sFrame = "Dop"              ' название фрейма, в котором отобразится документ
    ' ==================

    ' передаем UNID документа, по которому нужно показать статистику
    Dim ses As New NotesSession
    Call ses.SetEnvironmentVar( sEnvironment, g_Doc.CustomID(0) )
    Dim ws As New notesuiworkspace 
    Call ws.SetTargetFrame( sFrame )

    Dim tmpDb As NotesDatabase
    Set tmpDb = g_Doc.ParentDatabase 'g_Doc - текущий документ (NotesDocument)
    Dim s As String
    s = tmpDb.FilePath
    s = Strleftback( s, "\" )
    Dim dopDb As New NotesDatabase(tmpDb.Server , s + "\statistic.nsf") ' база лежит в той же папке на сервере что и текущая
    Dim uidoc As NotesUIDocument
    Dim dopserver As String
    Dim doppath As String
    dopserver = dopDb.Server
    doppath = dopDb.FilePath
    Set uidoc = ws.ComposeDocument( dopserver, doppath, sForm )
    В дебагере все правильно кроме: uidoc.Document.ParentDatabase.Server ="Сервер2", хотя Dopserver = "Сервер1"
    А если делать так:
    Код (Text):
    Dim sForm As String
    Dim sFrame As String
    sEnvironment = "IntDoc_UNID"            ' имя переменной окружения, через которую передадим UNID (в форме
    'вычисляется в поле)
    sForm = "StatDisplay_SUEK_SED"      ' название формы, по которой будет создан документ для отображения
    sFrame = "Dop"              ' название фрейма, в котором отобразится документ
    ' ==================

    ' передаем UNID документа, по которому нужно показать статистику
    Dim ses As New NotesSession
    Call ses.SetEnvironmentVar( sEnvironment, g_Doc.CustomID(0) )
    Dim ws As New notesuiworkspace 
    Call ws.SetTargetFrame( sFrame )

    Dim tmpDb As NotesDatabase
    Set tmpDb = g_Doc.ParentDatabase 'g_Doc - текущий документ (NotesDocument)
    Dim s As String
    s = tmpDb.FilePath
    s = Strleftback( s, "\" )
    Dim dopDb As New NotesDatabase(tmpDb.Server , s + "\statistic.nsf") ' база лежит в той же папке на сервере что и текущая
    Dim uidoc As NotesUIDocument
    Dim dopserver As String
    Dim doppath As String
    dopserver = dopDb.Server
    doppath = dopDb.FilePath
    Dim Dopdoc As NotesDocument
    Set dopdoc = dopdb.CreateDocument
    dopdoc.ParentUNID = g_Doc.CustomID(0)
    dopdoc.form = "Имя_формы"
    Call ws.EditDocument(False, dopdoc)
    то во фрейм почему-то подгружается вид, который встроен в форму...

    Ничего не понимаю =)
     
  15. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Dim dopDb As New NotesDatabase(tmpDb.Server , s + "\statistic.nsf") ' база лежит в той же папке на сервере что и текущая

    tmpDb.Server - тут все хорошо? у мну были проблемы...не определялся сервер, пропиши руками...и посмотри
     
  16. San4el

    San4el Гость

    Неа не помогает даже через NotesName сервер прописывал... Берет правильную базу (на текущем сервере), а документ создает в той на которую я последний раз кликал (или на которой галочка стоит если реплики в стеке)...
     
  17. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    открывает независимо от активной бд в стеке
     
  18. San4el

    San4el Гость

    Теперь подгружает не форму а вид, который встроен в форму, но правда вид из правильной базы
     
  19. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Похоже я был неправ и документ надо сохранять перед открытием в фрейме. Иначе у меня ошибку выдает.
     
  20. San4el

    San4el Гость

    Сохранять не обязательно если через ComposeDoument, но этот метод помоему странно работает...
     
Загрузка...
Похожие Темы - Странности Composedocument
  1. olga13
    Ответов:
    19
    Просмотров:
    3.052
  2. fedotxxl
    Ответов:
    14
    Просмотров:
    4.305
  3. DNT
    Ответов:
    2
    Просмотров:
    2.403
  4. Cleric-Lviv
    Ответов:
    11
    Просмотров:
    3.724
Статус темы:
Закрыта.

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