• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы wowa
  • Дата начала
W

wowa

Есть документ
в нем поле№1 - значение занесет агент
и поле№2 - равен значению поля№1

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

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

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

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

morpheus

перед закрытием докумета обовите его! uidoc.Refresh

а где запускаеться агент?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Если поле2 стоит после поля1, то без ф9 должно обновляться. Вроде бы.
Иначе ручками.

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

wowa

uidoc.Refresh
в доке я сделать не могу, так как у меня нет прав редактирования документа

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

Sandr

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

wowa

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

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

Sandr

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

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

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

И я не пойму, почему константа? :)
 
A

Akupaka

Вы же уже сами себе ответили! :)
ТАм вроде надо ComputeWithForm method

Но этот способ довольно грузный, если в форме очень "много дизайна" :) а полей обновить только парочку нужно, в таком случае лучше "ручками" прописать эти поля...
Но с другой стороны нужно не забывать актуализировать код обновления, в случае смены формулы на форме :)

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

Omh

Сугубое имхо, но сложилось уже за n лет программирования на лотусе:
1. ComputeWithForm - зло
2. Куча компутедных полей на форме, вычисялемых одно от другого, на мой взгляд, тоже гогно.
Никогда не знаешь, откуда тебе потом придётся пересчитать документ, поэтому в 99% случаев выношу код пересчёта в библиотеку, ну и юзаю его на QS событии.
Зато потом не возникают вопросы "как это запихнуть" и не надо использовать этот гм... evaluate.
 
S

Sandr

Для: Omh

Ну, ситуации разные бывают... :blink:
 
G

Guest

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

Sandr

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

А что, если Вам нужно создат на бекэнде документ по какой-то форме? А птом с ним работать на том же бекэнде, не давая польщователям работать с ним на уи? Предлагаете заполнят каждое поле?
 
A

Akupaka

А че вы спорите-то? если есть возможность его не использовать, то не используем, а если нет, то придется... хоть и геморная это штука...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!