powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / frxReport в потоке
2 сообщений из 2, страница 1 из 1
frxReport в потоке
    #35946470
FOX75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Ситуация такая, основной поток создает нить, в которой осуществляется генерация больших по объему отчетов (более 20 000 страниц) в frxReport.
Закладываю возможность остановки генерации (нити).
В компоненте Tthread создается системный объект StopEvent:=CreateEvent(nil, True, False, nil);
В момент инициирования остановки нити вызывается SetEvent(StopEvent), а в нити в компоненте MasterDataSet, с которого загружаются данные, в событии MasterODSAfterScroll проверяется состояние WaitForSingleObject(FStopEvent, 0) = WAIT_OBJECT_0, если True, то вызываю frxReport1.Engine.StopReport, для остановки формирования отчета. В основном потоке после вызыва SetEvent(StopEvent) ожидаю завершения нити WaitForSingleObject(FHandle, 10000), таймаут задал, чтоб грубо завершить нить TerminateThread при статусе WAIT_TIMEOUT. Но вот после вызова WaitForSingleObject(FHandle, 10000) намертво вешается нить, есть идеи как бороться с этим.
...
Рейтинг: 0 / 0
frxReport в потоке
    #36024434
FastReport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень специфический вопрос. Только тут support at fast-report.com помочь смогут. И только если работающий не работающий пример пришлёте.

FOX75Добрый день!
Ситуация такая, основной поток создает нить, в которой осуществляется генерация больших по объему отчетов (более 20 000 страниц) в frxReport.
Закладываю возможность остановки генерации (нити).
В компоненте Tthread создается системный объект StopEvent:=CreateEvent(nil, True, False, nil);
В момент инициирования остановки нити вызывается SetEvent(StopEvent), а в нити в компоненте MasterDataSet, с которого загружаются данные, в событии MasterODSAfterScroll проверяется состояние WaitForSingleObject(FStopEvent, 0) = WAIT_OBJECT_0, если True, то вызываю frxReport1.Engine.StopReport, для остановки формирования отчета. В основном потоке после вызыва SetEvent(StopEvent) ожидаю завершения нити WaitForSingleObject(FHandle, 10000), таймаут задал, чтоб грубо завершить нить TerminateThread при статусе WAIT_TIMEOUT. Но вот после вызова WaitForSingleObject(FHandle, 10000) намертво вешается нить, есть идеи как бороться с этим.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / frxReport в потоке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]