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

  • Автор темы Guest
  • Дата начала
G

Guest

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

Sandr

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

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

Omh

Lotus team
04.07.2007
2 210
1
#3
Для: Sandr
Если композишь документ формулой или ws.compose(), то на QO объекта документа не будет, так?

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

Guest

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

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

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

Omh

Lotus team
04.07.2007
2 210
1
#5
На мой взгляд, наследование формой полей из выбранного документа, это олдскул.
Код не централизован, раскидан по полям, не гибко.

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

Sandr

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

Хотя

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
<!--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)
 

Omh

Lotus team
04.07.2007
2 210
1
#8
Для: Sandr
uidoc позволяет работать только с текстом (FieldSetText), что не очень хорошо, а в некоторых случаях неприемлимо.
Я вообще не люблю ui-объекты.

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#9
Хотя можно и просто Compose. Если не ответный документ создаешь.
Надо только галку влепить "Formulas inherit values from selected document".
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#13
<!--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]
Ты просто не умеешь это готовить. :)
 

Omh

Lotus team
04.07.2007
2 210
1
#14
Для: Medevic
Не, просто я натерпелся от кода в базах написанного программерами ранее.
У меня ко всем этим default values + inherit тра-ля-ля в данный момент небольшая аллерия :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#15
Поддерживаю Omh, но иногда без стандартного наслед. не обойтись... кроме того, если вызывать EditDocument(), то дебагер не будет дебажить скрипт на этом открытом доке...
 
G

Guest

#16
На мой взгляд, наследование формой полей из выбранного документа, это олдскул.
Код не централизован, раскидан по полям, не гибко.

Код вида
Код:
Dim NewDoc As New NotesDocument(db)
'Заполняем
Call ws.EditDocument(True, NewDoc)
спасёт гиганта мысли.
Простите новичка, я Вас правильно понял:

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. полю присвоить значение?
 

Omh

Lotus team
04.07.2007
2 210
1
#17
Код:
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
Бомби на "ты".
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#18
не правильно

нужно:

Код:
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
 

Omh

Lotus team
04.07.2007
2 210
1
#19
Для: Akupaka
Но-но-но! :rolleyes:
Не факт, что Elephant/ICTP:Work/Docs/performing.nsf - это current database

Ах, подлец, переправи ужо :D
 
G

Guest

#20
Код:
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
Бомби на "ты".
Sorry, work space определять не надо?
Типа Dim ws As New NotesUIWorkspace