Показать сообщение отдельно
Старый 05.03.2004, 18:28   #10  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Если сильно хочется запускать отчет "монопольно", то это, в принципе, решается.
Заведите, например, кодъюнит со свойством SingleInstance = TRUE.
Заведите в нем переменную типа ReportIsRunning : boolean.
Заведите функции GetReportStatus и SetReportStatus, которые возвращают значение и устанавливают значение этой переменной.
На OnPreReport напишите что-нибудь типа
IF CodeUnitName.GetReportStatus THEN
CurrReport.QUIT
ELSE
CodeUnitName.SetReportStatus(TRUE);

На OnPostReport либо
CodeUnitName.SetReportStatus(FALSE) либо CLEAR(CodeUnitName).

Правда, есть опасность, что в случае некорректного завершения работы отчета (т.е. OnPostReport не отработается) случится бяка и отчет больше никогда не запустится =)
Также можно установить подобный флажок не через кодъюнит, а используя поле какой-нибудь настроечной таблички (а можно и не настроечной...).

Но штука имхо не особо полезная. Вполне возможно наворотить делов и не из того же отчета =)

2 Mazzy: не согласен насчет
Цитата:
Цитата:
--------------------------------------------------------------------------------
Изначально опубликовано Yuriy
Спешу не согласиться с Muzzy, в Navision объекты типа Report также выполняют роль периодических заданий (например Коррекция Себестоимости).
--------------------------------------------------------------------------------


Да, есть. Поубивал бы.
Отчет - это весьма удобный инструмент для того, чтобы шарится по табличкам. Оч. удобно организованный цикл. Так что для периодических заданий он часто очень удобен. Имхо не зря таки товарищи прилепили туда свойство ProcessingOnly