Makeresponse

  • Автор темы LIGHT
  • Дата начала
L

LIGHT

Гость
#1
Приветствую!

Ситуевина:

Есть много баз данных, с одним дизайном, и есть одна база которая являеется административной.

В Административной базе создаются документы по форме "Document", создаются при клике по кнопке из любой другой базы открытого документа. Т.е. часть полей копируются в новый документ, документ сохраняется.

Все бы не чего, но потребовалось создавать не просто документы но еще и в некоторых случаях респонсы. Разрулил это довольно просто, юзеру который давит кнопку выдается запрос что делалть, если респонс, выдают пиклист выбора документа родителя. И все бы ни чего, документ создается, только не респонсом :) при этом нужно создать докмент по тойже форме что и родитель "Document"

Код (суть)
Код:
Set doc = collection.GetFirstDocument
Set NewDoc = dbNewDoc.CreateDocument
Call NewDoc.MakeResponse( doc )
NewDoc.Form = "Document"
....
Call ws.EditDocument(True,NewDoc)
Помогите победить.
 
D

D!m@n

Гость
#2
Две одинаковых формы, только у одной в свойствах Type - Document, у другой - Response - не подойдет?
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#3
Set NewDoc = dbNewDoc.CreateDocument - Документы должны быть в одной БД... создавайте его от NotesDatabase.CreateDocument
и не забудте сохранить
 
L

LIGHT

Гость
#4
<!--QuoteBegin-Morpheus+9:01:2008, 17:13 -->
<span class="vbquote">(Morpheus @ 9:01:2008, 17:13 )</span><!--QuoteEBegin-->Set NewDoc = dbNewDoc.CreateDocument - Документы должны быть в одной БД... создавайте его от NotesDatabase.CreateDocument
и не забудте сохранить
[snapback]92723" rel="nofollow" target="_blank[/snapback]​
[/quote]
Документы в одной базе в смысле.

Родитель и создаваемый к нему ребенок разумеется в одной, но ребенок создается по документу из другой базы.
NotesDatabase.CreateDocument - так и есть
Dim dbNewDoc as NotesDatabase
dbNewDoc.CreateDocument
+ MakeResponse создает обычный документ.


Получилось!!!
 
L

LIGHT

Гость
#6
Да просто 2 поста форум слепил в один.
Получилось создать респонс, сохранить скриптов надо было, а я ручками сохранял.
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#7
Смотри, если респонс сделан на той же форме что и документ (у формы Type = Document), то после пересохранения респонса через UI он отвалится и перестанет быть респонсом.

А, ну как я понял ты сохранял через UI сначала и получал именно то, о чём я говорил выше...
 
S

Sandr

Гость
#9
Учтите, что NotesDatabase.CreateDocument сразу создает документ в базе, тоесть если пользователь потом передумает - документ останется... это неправильно... прийдется чистить потом агентом по расписанию...

Используйте композ, а при сохранении документа делайте его респонсом к кому надо...


Смотри, если респонс сделан на той же форме что и документ (у формы Type = Document), то после пересохранения респонса через UI он отвалится и перестанет быть респонсом.
нифга... гониво... ща проверю...
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#12
Sandr, ты хочешь сказать, что при пересохранении реcпонса c формой у которой Type = Document через UI из него не пропадает поле $REF?
 
S

Sandr

Гость
#13
Sandr, ты хочешь сказать, что при пересохранении реcпонса c формой у которой Type = Document через UI из него не пропадает поле $REF?
нет, ты что, я же исправился :)

ЗЫ: Кинулся проверять везде, где я это юзал... скока глюков моджет быть из-за этого...
 
M

Mihal

Гость
#14
$RefOptions всех спасёт!

Set doc = collection.GetFirstDocument
Set NewDoc = dbNewDoc.CreateDocument
Call NewDoc.MakeResponse( doc )
NewDoc.Form = "Document"
NewDoc.~$RefOptions="1"
....
Call ws.EditDocument(True,NewDoc)
И будет вам счастие. $RefOptions="1" позволяет пустить побоку настройки форму в плане Document, Response и всё такое.

Для: Sandr
Заведи привычку использовать $RefOptions если хочешь вечного счастия :).
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#15
Для: Mihal
Гениально!

В принципе, отпадает надобность делать формы с каким-либо типом кроме Document.
Кстати, именно необходимость указывать тип в форме бесила меня в использовании респонсов.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#16
<!--QuoteBegin-Sandr+9:01:2008, 18:40 -->
<span class="vbquote">(Sandr @ 9:01:2008, 18:40 )</span><!--QuoteEBegin-->Учтите, что NotesDatabase.CreateDocument сразу создает документ в базе, тоесть если пользователь потом передумает - документ останется... это неправильно... прийдется чистить потом агентом по расписанию...
[snapback]92732" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это не так. Даже хелп говорит:
Creates a document in a database and returns a NotesDocument object that represents the new document. You must call Save if you want the new document to be saved to disk.