Обновление документа

wowa

Well-Known Member
01.02.2007
845
0
#1
Есть документ
в нем поле№1 - значение занесет агент
и поле№2 - равен значению поля№1

Нажал на кнопку

Начинает работать агент
........
заносит значение в поле№1
Call docCurrent.Save( True, True )

.........
в итоге документ закрылся
Я открываю документ, а поле№2 не обновлено. Если перейти в редактирование и нажать F9, то обновляется
Как мне сделать , чтобы при открытии документа , он был уже обновлен????.
Т.е. мне нужно что-то сделать в агенте.

в PostOpen это не пойдет, так как у пользователя нет права редактировать !
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#4
Если поле2 стоит после поля1, то без ф9 должно обновляться. Вроде бы.
Иначе ручками.

Документ в режиме чтения?
Тогда в агенте меняй поле2.
 

wowa

Well-Known Member
01.02.2007
845
0
#5
uidoc.Refresh
в доке я сделать не могу, так как у меня нет прав редактирования документа

агент
Call agntDBActions.RunOnServer( stNoteID )
 
S

Sandr

Гость
#6
К чему все это? Меняйте поле 2 тем же агентом....
 

wowa

Well-Known Member
01.02.2007
845
0
#7
КАк мне тогда в агент это закинуть?
Const dbKey$ = {@DbLookup(""; "123456678:12345678"; "view"; значение_переменной_в_коде?????; 1)}
vListNameDoc = Evaluate(dbKey$)

как указать это Key???
 
S

Sandr

Гость
#8
Ну Вы даете..
Во первых, Вы моэете использовать getAllDocumentsByKey

Но даже если использовать такой изврат как ДБлукап в эвалуэйте, то так

Код:
dbKey$ = {@DbLookup(""; "123456678:12345678"; "view";} & переменная_в_коде!!!!! & {; 1)}
vListNameDoc = Evaluate(dbKey$)
И я не пойму, почему константа? :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#9
Вы же уже сами себе ответили! :)
ТАм вроде надо ComputeWithForm method
Но этот способ довольно грузный, если в форме очень "много дизайна" :) а полей обновить только парочку нужно, в таком случае лучше "ручками" прописать эти поля...
Но с другой стороны нужно не забывать актуализировать код обновления, в случае смены формулы на форме :)

зы: производительность всегда важнее ;)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#11
Сугубое имхо, но сложилось уже за n лет программирования на лотусе:
1. ComputeWithForm - зло
2. Куча компутедных полей на форме, вычисялемых одно от другого, на мой взгляд, тоже гогно.
Никогда не знаешь, откуда тебе потом придётся пересчитать документ, поэтому в 99% случаев выношу код пересчёта в библиотеку, ну и юзаю его на QS событии.
Зато потом не возникают вопросы "как это запихнуть" и не надо использовать этот гм... evaluate.
 

Гость
#13
Какая бы ситуация не была, использовать ComputeWithForm очень нежелательно. Кривая это вещь. При увеличении кол-ва полей на форме вероятность того, что "оно" (ComputeWithForm) криво отработает, сильно растет
 
S

Sandr

Гость
#14
Какая бы ситуация не была, использовать ComputeWithForm очень нежелательно. Кривая это вещь. При увеличении кол-ва полей на форме вероятность того, что "оно" (ComputeWithForm) криво отработает, сильно растет
А что, если Вам нужно создат на бекэнде документ по какой-то форме? А птом с ним работать на том же бекэнде, не давая польщователям работать с ним на уи? Предлагаете заполнят каждое поле?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#15
А че вы спорите-то? если есть возможность его не использовать, то не используем, а если нет, то придется... хоть и геморная это штука...