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

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

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

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

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

  • Автор темы 777DEN777
  • Дата начала
7

777DEN777

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

Хотелось так же услышать мнение: верно использовать данный метод для указания параметров при формировании отчета?
 
O

Omh

Ну цеж бойан
Поле "SaveOptions" со значением "0" и ничего спрашиватся не будет.
 
N

nvyush

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

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


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

На форме нарисовать :)
 
N

nvyush


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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
777DEN777
а чем для ввода параметров вас диалогбокс не устроил?
 
7

777DEN777

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

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

...работает

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

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

можно подробней?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
честно говоря не в курсе...

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

777DEN777

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

Не пойму как его открыть, в хелпе нашел пример
Код:
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"
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
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
 
L

Lina

В продолжение темы... почему у меня, при том, что в 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 по другим полям, по-другому их я не добуду, КАК?
 
H

hosm

Может, добавить параметр документа в вызов UIWrkSpc.DialogBox?
или где-то рефреш (RefreshParentNote) из диалога не вызывается?
 
H

hosm

если кастомизированная кнопка ОК - обязательно.

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

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