раздуплите плз:)))

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

  1. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    вобщем вопрос такой:

    есть главний док пробую добавить к нему респонз
    на кверисейв респонза
    если делать через @command([compose]; "form")
    то дебагер показивает что все гуд тоесть, берет что документ новий и dv = 0 + создает новий итем
    но если делать через скрипт(добавлять доку)
    Код (Text):
    Sub Click(Source As Button)
    Dim ses As New NotesSession
    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Dim uidoc As NotesUIDocument
    Dim resdoc As NotesDocument
    Dim db As NotesDatabase
    Dim Task As Variant

    Set db = ses.CurrentDatabase
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    Set resdoc = db.CreateDocument
    resdoc.Form = "wf+document"
    Call resdoc.MakeResponse(doc)
    Task = doc.GetItemValue("wfTaskName")(0)
    If Task = "" Then
    Task = "Створення"
    End If
    Call resdoc.ReplaceItemValue("wf$stagename", Task)
    Call ws.EditDocument(True, resdoc, True)
    End Sub
    то на квери сейв
    док уже не новий и dv = Cint(doc.GetItemValue("DocVer")(0)) и дальше по коду.....

    почему если создавать документ через скрипт, система не принимает документ как новий.....или я гдето неправильно написал строчку кода.....???
     
  2. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    ну так все правильно. делайте и скриптом компоуз вместо Set resdoc = db.CreateDocument
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    либо проверять скриптом IsNewNote, если документ еще не сохраняли. так тоже жить можно )

    Добавлено: т.е. если не скомпозили:
    If Source.IsNewDoc Then
    elseIf Source.Document.IsNewNote Then ' вроде так работает, т.е. бекендовый уже есть и определен (не Nothing)
     
  4. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    OKEN

    угу так работает:) спасибки....

    но скажите пожалуйста почему оно так работает, тоесть если делать через скрип и проверять If Source.IsNewDoc Then, тогда етот документ не новий.....чтото я не понимаю........
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Потому что документ создан не через Compose, он создан уже в бекенде (и даже заполнены некоторые поля), а потом док только открывается через уи. Еще проверку IsNewNote можно использовать для профайла.
    Я не помню, описано ли это нормально в справке - посмотрите, но так работает. :) пусть кто-то умный скажет больше или объяснит лучше...
     
  6. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    OKEN
    и на том спасибки....

    так а теперь к умникам: обясните:))) ето обращение адресовано: Akupaka, ToxaRat, Morpheus, Tia, Omh, сори если кого неправильно написал и не дописал:))))))
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну коли уж обратились лично, то напишу, что UiDoc.IsNewDoc возвращает true, только если док создан через ws.ComposeDocument или через формульный @Command([Compose/ComposeWithRefrence]; "Form").
    В противном случае он возвращает false.

    Надо принять как данность.

    Мне нравиться проверка на doc.NoteID
    Если там нолик, значит документ ещё не был сохранён, как бы он не был создан.

    Можно ещё суровей: из view, где отображаются все документ базы и где первый столбец @text(@DocumentUniqueID) на QuerySave попробовать найти документ по UNID текущего открытого документа.
    Если во view документа нет, то он ещё не был сохранён.
    Видал и такую проверку.
    Не скажу, что сильно плохая, но медленная.
     
Загрузка...
Похожие Темы - раздуплите плз )))
  1. серый111
    Ответов:
    1
    Просмотров:
    1.074
  2. KalinaK
    Ответов:
    1
    Просмотров:
    1.698

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