Предоставляет модальный дилоговый блок, когда AllowModalMessages установлен в True (.T.
), в противном случае вызывает DoStatus.
oReportListener.DoMessage(cMessage[,nParams[,cTitle]) |
Параметры
- cMessage
-
Указывает сообщение, отображаемое объектом ReportListener для обеспечения работы механизма обратной связи с пользователем.
- nParams
-
Численное значение, определяющее аттрибуты диалогового блока, идентичные значениям аттрибутов, используемых в функции MESSAGEBOX().
- cTitle
-
Определяет заголовок окна диалогового блока. Подобдно аналогичному параметру в функции MESSAGEBOX(), значением по умочанию является выражение "Microsoft Visual FoxPro", если вы не укажете текст заголовка.
Возвращаемое значение
Нет.
Примечания
Применяется к объекту: ReportListener.
Базовый класс объекта ReportListener использует диалоговый блок MESSAGEBOX для предоставления модальной обратной связи. Его второй и третий параметр идентичны параметрам, используемым в функции MESSAGEBOX(). Для получения более подробной информации смотрите описание функции MESSAGEBOX().
Если вы перепишите этот метод или что-то добавите в него, вы должны соблюдать те же самые соглашения по параметрам, точно так же, как и дополнительные требования интерфейса устанавливаемые базовым классов: примите во внимание значения свойствя AllowModalMessages и QuietMode при оценке - какой тип обратной связи должен отобразить этот метод. Для более подробной информации смотрите описания функции MESSAGEBOX() и свойства QuietMode.
В отличие от функции MESSAGEBOX(), базовый класс ReportListener не имеет четвертого аргумента, указывающего численное значение для Timeout, и не имеет механизма, отвечающего за возвращаемое значение. В классе, производном от ReportListener, однако, вы можете кооптировать включение этой функционильности и вы можете выбрать, как вы желаете обработать ответ пользователя.
Например, фундаментальный класс ReportListener User Feedback использует измененную версию этого метода, позволяющего пользователю прекратить испольнение отчета на полпути.
Пример
The following code shows the way ReportListener User Feedback Class invokes DoMessage to allow users to cancel a report. This class leverages the version of DoMessage implemented by ReportListener Base Foundation Class, its parent. The enhanced method provides a suitable return value, so the User Feedback Class can respond to the user's choice. ReportListener Base Foundation Class's implementation of the DoMessage method is also shown below.
![]() |
---|
Notice that ReportListener Base Foundation Class provides a consistent numeric value for the second parameter when it invokes MESSAGEBOX. If you use the baseclass ReportListener's DoMessage method, and if you do not need to specify dialog box attributes but wish to provide a custom dialog box caption, you should provide a value of |
![]() | |
---|---|
* UpdateListener class * (ReportListener User Feedback Foundation Class) PROCEDURE CancelReport IF THIS.IsRunning AND ; (THIS.QuietMode OR ; (NOT THIS.AllowModalMessages) OR ; THIS.DoMessage(; OUTPUTCLASS_REPORT_CANCELQUERY_LOC, ; MB_ICONQUESTION+MB_YESNO) = IDYES ) DODEFAULT() IF SYS(2024) = "Y" THIS.ThermForm = NULL THIS.DoMessage(OUTPUTCLASS_REPORT_INCOMPLETE_LOC, ; MB_ICONEXCLAMATION) ENDIF ELSE NODEFAULT ENDIF ENDPROC * _ReportListener class * (ReportListener Base Foundation Class) PROCEDURE DoMessage(cMessage,iParams,cTitle) NODEFAULT IF THIS.QuietMode OR ; (THIS.IsRunning AND THIS.CommandClauses.NoDialog) * для подражания поведению базового класса, сделайте обе проверки, * в случае если вызов метода DoMessage() случился до того, * как базовый класс установил QuietMode .T. в ответ на * установку NoDialog в начале испольнения отчета, * или после того, как базовый класс переустановил QuietMode в .F. * в конце исполнения отчета. RETURN 0 ELSE IF THIS.AllowModalMessages IF VARTYPE(cTitle) = "C" RETURN ; MESSAGEBOX(TRANS(cMessage), ; VAL(TRANS(iParams)),cTitle) ELSE RETURN ; MESSAGEBOX(TRANS(cMessage), ; VAL(TRANS(iParams)),THIS.AppName) ENDIF ELSE THIS.DoStatus(cMessage) RETURN 0 ENDIF ENDIF ENDPROC |