ОБСУЖДЕНИЕ

Закрыть форму без запроса на сохранение

17 ответов 10,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Есть форма которая служит для ввода параметров по котором формируется отчет, например пользователь указывает период.
Соответственно, если поля отредактированы при закрытии формы выходит сообщении о сохранении документа ("Do you want to save this new document?"), как игнорировать это сообщение и закрыть форму без изменений.

Хотелось так же услышать мнение: верно использовать данный метод для указания параметров при формировании отчета?
 
Ну цеж бойан
Поле "SaveOptions" со значением "0" и ничего спрашиватся не будет.
 
Есть форма которая служит для ввода параметров по котором формируется отчет, например пользователь указывает период.
Соответственно, если поля отредактированы при закрытии формы выходит сообщении о сохранении документа ("Do you want to save this new document?"), как игнорировать это сообщение и закрыть форму без изменений.

Из хелпа: поле SaveOptions; "0" - запрос на сохранение не выдаётся, документ не сохраняется (даже принудительно), "1" - документ сохраняется без запроса.
От ВЕЛИКИХ ГУРУ - если SaveOptions не "0" и не "1", а, например, "00" - запрос на сохранение не выдаётся, документ можно сохранить.
Лучше SaveOptions делать CFD.


а где его прописать, в каком событии формы?

На форме нарисовать :)
 
777DEN777
Тупо сделай CFD поле
 

В самом верху собственно формы добавляем пустую строку, на неё добавляем поле, именуем SaveOptions, тип - техт, computed for display (CFD), на предпоследней вкладке свойств ставим флажки скрытия во всех клиентах, чтоб глаза не мозолило.
 
777DEN777
а чем для ввода параметров вас диалогбокс не устроил?
 
В самом верху собственно формы добавляем пустую строку, на неё добавляем поле, именуем SaveOptions, тип - техт, computed for display (CFD), на предпоследней вкладке свойств ставим флажки скрытия во всех клиентах, чтоб глаза не мозолило.

спасибо, буду знать ;)

...работает

а чем для ввода параметров вас диалогбокс не устроил?

честно говоря не в курсе... ;)

можно подробней?
 
честно говоря не в курсе...

можно подробней?
удобсво диалогбокса как раз в том что это окно над окном, и его размеры как и его все кнопки - настраиваемы
 
удобсво диалогбокса как раз в том что это окно над окном, и его размеры как и его все кнопки - настраиваемы

Не пойму как его открыть, в хелпе нашел пример
Код:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Call workspace.DialogBox _
( "policy", True, True, True, True, _
False, False, "Policy" )
End Sub
выходит ошибка "DialogBox cannot be used in this context; a document must be selected"
 
777DEN777
используете форму "policy" которая у вас судя по всему лишь для респонсов

Код:
Syntax
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )

3.	This script brings up a dialog box with the category and subject of the first document in the "By Category" view.
Sub Click(Source As Button)
Dim db As NotesDatabase
Dim s As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim view As NotesView
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set view = db.GetView( "By Category" )
Set doc = view.GetFirstDocument
Call workspace.DialogBox _
("Dialog Box", True, True, False, False, False, _
False, "Dialog Box", doc)
Call doc.save (True, False)
End Sub
 
В продолжение темы... почему у меня, при том, что в Dialogbox-форме поля те же, что и в доке, по которому она вызвана, непосредственно ПОСЛЕ диалога значения в доке не меняются? (А после переоткрытия новые, как ни в чем не бывало)...
Код:
	Dim wfdocGlobal As NotesDocument
Dim col As NotesDocumentCollection
Set col = db.unprocessedDocuments
Set wfdocGlobal = col.GetFirstDocument
If UIWrkSpc.DialogBox("DateTimeForAction", True, True, False, False,False, False,"Определите дату, время и участников встречи с кандидатом") Then
If (Cstr(WFDocGlobal.MeetDate(0))="" Or Cstr(WFDocGlobal.MeetTimeB(0))="" Or Cstr(WFDocGlobal.MeetParticipants(0))="") Then
(вот сюда ВСЕГДА заходит, хотя все поля потом оказываются вполне заполненными...) ((( 
WFID_ErrorName = {Не заполнено одно из полей (дата, время, участники). Переход не будет выполнен}
WFID_ErrorCode = 1
Exit Sub

End If
End If
Что я делаю не так??? Суть на самом деле в проверке заполненности полей после диалога, при этом диалог ОБЯЗАТЕЛЬНО должен быть по доку, потому что в одном из полей - MV по другим полям, по-другому их я не добуду, КАК?
 
Может, добавить параметр документа в вызов UIWrkSpc.DialogBox?
или где-то рефреш (RefreshParentNote) из диалога не вызывается?
 
Может, добавить параметр документа в вызов UIWrkSpc.DialogBox?
или где-то рефреш (RefreshParentNote) из диалога не вызывается?
Это где-то в событии формы прописывать? (RefreshParentNote) Обязательно?
 
если кастомизированная кнопка ОК - обязательно.

Добавлено: у вас вроде стандартная, должно само обновлять... попробуйте WFDocGlobal добавить в диалогбокс.
 

Похожие темы

F
Ответы
3
Просмотры
4 тыс.
H
G
Ответы
10
Просмотры
16 тыс.
G

Статистика тем

Создано
777DEN777,
Последний ответ от
hosm,
Ответы
17
Просмотры
10 456