Создание нового документа с инициализацией его полей

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

  1. Гость

    Позволяет ли команда @Command( [Compose]; передать значение, которое будет использоваться в новом документе как значение поля?
     
  2. Sandr

    Sandr Гость

    Для: Денис Кириченко
    нет... Но если значение поля берется из выделенного документа, то поставте в свойсте формы, по кторой композится документ галочку на 2-й закладке "наследовать данные из выделенного документа" и работайте с ними...

    ЗЫ: А вообще - QueryOpen - сила...
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Sandr
    Если композишь документ формулой или ws.compose(), то на QO объекта документа не будет, так?

    Для: Денис Кириченко
    Кмк, если надо сделать док с значениями полей, лучше на бекграунде скриптом создать и открыть.
     
  4. Гость

    Я надыбал команду @Command([ComposeWithReference]; @MailDbName; "Reply"; 1 + 2 + 4 + 8), но только не пойму как именно она наследует поля.

    > "наследовать данные из выделенного документа"
    Я могу оперировать именами полей родительской формы? И еще, можно ли создать Представление ребенка в родительской форме, с поднятым флагом (в свойствах внедренного представления) Показать единую категорию.
     
  5. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    На мой взгляд, наследование формой полей из выбранного документа, это олдскул.
    Код не централизован, раскидан по полям, не гибко.

    Код вида
    Код (Text):
    Dim NewDoc As New NotesDocument(db)
    'Заполняем
    Call ws.EditDocument(True, NewDoc)
    спасёт гиганта мысли.
     
  6. Sandr

    Sandr Гость

    Для: Omh
    но uidoc то есть (Source)? :)

    Хотя

    Код (Text):
    Dim NewDoc As New NotesDocument(db)
    'Заполняем
    Call ws.EditDocument(True, NewDoc)
    Это правильней...
     
  7. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Денис Кириченко+7:02:2008, 12:26 -->
    <span class="vbquote">(Денис Кириченко @ 7:02:2008, 12:26 )</span><!--QuoteEBegin-->@Command([ComposeWithReference]; @MailDbName; "Reply"; 1 + 2 + 4 + 8)
    [snapback]97014" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    @Command([ComposeWithReference]; ""; "Reply"; 2)
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Sandr
    uidoc позволяет работать только с текстом (FieldSetText), что не очень хорошо, а в некоторых случаях неприемлимо.
    Я вообще не люблю ui-объекты.

    Только надо помнить, что при создании дока скриптом Uidoc.IsNewDoc = False.
     
  9. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Хотя можно и просто Compose. Если не ответный документ создаешь.
    Надо только галку влепить "Formulas inherit values from selected document".
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    "Formulas inherit values from selected document" - зло :)
     
  11. Sandr

    Sandr Гость

    может и зло, но его можно и причесать.. :)
     
  12. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Можно :)
     
  13. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Omh+7:02:2008, 12:35 -->
    <span class="vbquote">(Omh @ 7:02:2008, 12:35 )</span><!--QuoteEBegin-->"Formulas inherit values from selected document" - зло
    [snapback]97025" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ты просто не умеешь это готовить. :)
     
  14. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Medevic
    Не, просто я натерпелся от кода в базах написанного программерами ранее.
    У меня ко всем этим default values + inherit тра-ля-ля в данный момент небольшая аллерия :)
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Поддерживаю Omh, но иногда без стандартного наслед. не обойтись... кроме того, если вызывать EditDocument(), то дебагер не будет дебажить скрипт на этом открытом доке...
     
  16. Гость

    Простите новичка, я Вас правильно понял:

    Sub Click(Source As Button)
    Dim uidoc As NotesUIDocument
    Dim NewDoc As NotesDocument
    Dim ws As New NotesUIWorkspace

    Set uidoc = ws.ComposeDocument("Elephant/ICTP","Work/Docs/performing.nsf", "NewAction")
    Set NewDoc = uidoc.Document

    Call ws.EditDocument(True, NewDoc)
    NewDoc.

    End Sub

    Проблемка как в NewDoc. полю присвоить значение?
     
  17. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    Sub Click(Source As Button)
    Dim Db as New Notesdatabase("Elephant/ICTP","Work/Docs/performing.nsf")

    if Db.IsOpen then
    Dim NewDoc As NotesDocument
    Set NewDoc = Db.CreateDocument
    Call NewDoc.ReplaceItemValue("Form", "NewAction")
    'другие поля
    Call ws.EditDocument(True, NewDoc)
    End if

    End Sub
    Бомби на "ты".
     
  18. Akupaka

    Akupaka А че я?.. О.о

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

    нужно:

    Код (Text):
    Sub Click(Source As Button)
    Dim uidoc As NotesUIDocument
    Dim NewDoc As NotesDocument
    Dim ws As New NotesUIWorkspace

    dim s as New NotesSession

    'Set uidoc = ws.ComposeDocument("Elephant/ICTP","Work/Docs/performing.nsf", "NewAction")
    'Set NewDoc = uidoc.Document

    set NewDoc = s.CurrentDatabase.CreateDocument ' тут вариант текущей БД, вариант Omh'а вернее бут :)
    call NewDoc.ReplaceItemValue("SomeItem", "SomeValue")

    call NewDoc.ReplaceItemValue("SomeItem", someAnotherDoc.GetItemValue("AnotherItem"))


    Call ws.EditDocument(True, NewDoc)
    NewDoc.

    End Sub
     
  19. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Akupaka
    Но-но-но! :rolleyes:
    Не факт, что Elephant/ICTP:Work/Docs/performing.nsf - это current database

    Ах, подлец, переправи ужо :D
     
  20. Гость

    Sorry, work space определять не надо?
    Типа Dim ws As New NotesUIWorkspace
     
Загрузка...

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