Пересчёт формул в документе.

  • Автор темы Ferz
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

Ferz

Гость
#1
Нужно пересчитать вычисляемое поле
Код:
@IfError(@Unique(@DbLookup("";"";"($Визирование)";@Text(@DocumentUniqueID);"Reader"));Author);
в документе не открывая его.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#2
Код:
value := @IfError(@Unique(@DbLookup("";"";"($Визирование)";@Text(@DocumentUniqueID);"Reader"));Author);
@SetField("field"; value)
или на скриптах:
Код:
Evaluate(value := @IfError(@Unique(@DbLookup("";"";"($Визирование)";@Text(@DocumentUniqueID);"Reader"));Author); @SetField("field"; value)}, doc)
Или NotesDocument.ComputeWithForm.
Или не понял вопрос.
 
F

Ferz

Гость
#3
Для: Medevic
ComputeWithForm не помогает
можно и устанавлить значение, формулу только не хочется ее еще раз писать
Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
On Error Goto Cancel
Dim result As Variant
Dim doc As NotesDocument
Dim Sesion As New NotesSession
Dim succes As Variant
Dim db As NotesDatabase
Set db = Sesion.CurrentDatabase
Set doc= Source.Document
'получаем самого верхнего родителя
While Trim(Cstr(doc.ParentDocumentUNID))<>""
Set doc=db.GetDocumentByUNID(doc.ParentDocumentUNID)	
Wend
Source.Document.ParentUNID=Cstr(doc.UniversalID)
..
..
[b]	success = doc.ComputeWithForm( False, False )
Call doc.Save(True,True)[/b]
Exit Sub
Cancel:
Msgbox Error$
Continue=False
Exit Sub		
End Sub
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#4
Я бы ComputeWithForm не использовал. Только в крайнем случае.
Пересчитать нельзя. Можно только прописать значение. И это лучше.
 
F

Ferz

Гость
#5
Для: Medevic
Прошу прошения за быстрые выводы использование
ComputeWithForm дало результаты просто запускал в Querysave и соответсвено документ формируюший значение для вычисляемого поля еще не сохранился.
перекинол в postSAve все ок- ComputeWithForm обновил вычиляемые поля
 
Статус
Закрыто для дальнейших ответов.