1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

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

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

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

    San4el Гость

    Репутация:
    0
    Добрый вечер!
    Ай нид хелп:

    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 А че я?.. О.о

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

    San4el Гость

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

    Akupaka А че я?.. О.о

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

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

    San4el Гость

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

    Kizarek86 Well-Known Member
    Lotus team

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

    San4el Гость

    Репутация:
    0
    Представление с того же сервера что и форма
     
  8. Medevic

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

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

    San4el Гость

    Репутация:
    0
    Тогда его надо сначала сохранить а мне это не надо.
     
  10. Medevic

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

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

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

    San4el Гость

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

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

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

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

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

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

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

    San4el Гость

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

    San4el Гость

    Репутация:
    0
    Код (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 Well-Known Member
    Lotus team

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

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

    San4el Гость

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

    Kee_Keekkenen Well-Known Member

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

    San4el Гость

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

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

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

    San4el Гость

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

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