Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Fastreport 2.5 и многопоточность / 14 сообщений из 14, страница 1 из 1
04.06.2008, 14:59
    #35354257
мороз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Вопрос немного не сюда, но поддержка FastReport опять молчит (((

заранее спасибо за ответ.

Задача : Необходимо готовить отчет в отдельном потоке (используя класс TThread)

в поиске по форуму (FastReport) нашел информацию об использовании след. кода (для версии 4) :
Report.EngineOptions.ReportThread := Self ; (self - текущий поток)
Report.EngineOptions.EnableThreadSafe := True;


НО в своей версии 2,5 такого найти не могу.

Есть ли возможность пользоваться подготовкой FASTREPORT 2,5 в потоках, и КАК ?????

потому как стандартное использование класса TThread не помогает :

procedure TThreadReportFastRep.Execute;
begin
inherited;

.......
FfrReport.PrepareReport;
.......

end;

- FfrReport создается в потоке
- при запуске без потока все работает отлично
- при использовании TThread и запуске нескольких отчетов (один запускается нормально)
fastReport коматозит по разному
постоянная ошибка, что компонент (источник данных (Query)) уже создан
...
Рейтинг: 0 / 0
04.06.2008, 15:16
    #35354301
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Уж сколько раз было сказано народу не использовать встроенные БД-объекты.
Вы хотите "готовить" отчетов в несколько птоков одновременно? А ресурсы, ими
используемые (те же компоненты), потоко-независимы, общие не используются?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
04.06.2008, 15:52
    #35354406
мороз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
вы сказали:
Уж сколько раз было сказано народу не использовать встроенные БД-объекты.

? имеются ввиду БД-объекты встроенные в компонент отчета?

используется компонент (FastReport), со встроенным компонентом запроса,
у запроса свойства DatabaseName, и SessionName
для каждого потока уникальны

текст запроса формируется динамически, передается в компонент


1 отчет в фоне отрабатывается нормально, больше 1 , глюки
...
Рейтинг: 0 / 0
04.06.2008, 17:06
    #35354677
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
мороз> имеются ввиду БД-объекты встроенные в компонент отчета?

Да.

мороз> для каждого потока уникальны

Это как?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
04.06.2008, 17:23
    #35354743
мороз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Гаджимурадов Рустам
мороз> имеются ввиду БД-объекты встроенные в компонент отчета?

Да.

мороз> для каждого потока уникальны

Это как?


Posted via ActualForum NNTP Server 1.4

вcтроенный запрос - BDE
чтобы выполнять его в потоке для него каждый раз создаются (в потоке)
компоненты DataBase и Session с уникальным именем

встроенный в компонент отчета запрос используется потому, что
при создании в Runtime источника данных (не встроенного) ,
будь то ADOQuery или Query(BDE) fastreport не работает

типа
qReport := TADOQuery.Create(self);//если убрать эту строку и создать компонент в дизайнере все работает

frReport := TfrReport.Create(self);
frDataSet := TfrDBDataSet.Create(Self);

qReport.SQL.Text := .....


frReport.LoadFromFile....

qReport.Close;
qReport.Open;


frDataSet.DataSet := qReport;
frReport.Dataset := frDataSet;


frReport.PrepareReport;
frReport.ShowPreparedReport;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
23.07.2021, 10:56
    #40085659
Colt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
мороз
Вопрос немного не сюда, но поддержка FastReport опять молчит (((

заранее спасибо за ответ.

Задача : Необходимо готовить отчет в отдельном потоке (используя класс TThread)

в поиске по форуму (FastReport) нашел информацию об использовании след. кода (для версии 4) :
Report.EngineOptions.ReportThread := Self ; (self - текущий поток)
Report.EngineOptions.EnableThreadSafe := True;


НО в своей версии 2,5 такого найти не могу.

Есть ли возможность пользоваться подготовкой FASTREPORT 2,5 в потоках, и КАК ?????

потому как стандартное использование класса TThread не помогает :

procedure TThreadReportFastRep.Execute;
begin
inherited;

.......
FfrReport.PrepareReport;
.......

end;

- FfrReport создается в потоке
- при запуске без потока все работает отлично
- при использовании TThread и запуске нескольких отчетов (один запускается нормально)
fastReport коматозит по разному
постоянная ошибка, что компонент (источник данных (Query)) уже создан


Прошу прощения за некропостинг, но столкнулся с такой же проблемой.
Правильно ли я понимаю, что ответ так и не нашелся?
...
Рейтинг: 0 / 0
23.07.2021, 15:01
    #40085719
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Colt
Прошу прощения за некропостинг, но столкнулся с такой же проблемой.
Правильно ли я понимаю, что ответ так и не нашелся?

Они даже в четверке эту проблему не решили. Письма в их адрес были благополучно проигнорированы, а далее я перестал этим пользоваться. Может в пятерке и выше пофиксили.
Там детская болезнь вида Application.ProcessMessages.
...
Рейтинг: 0 / 0
23.07.2021, 15:33
    #40085730
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Colt,
Адаптации двойки для работы с потоками не производилось. ЕЕ поддержка закончилась раньше, чем появилась необходимость.
Насколько сложно адаптировать, сказать не могу, не застал двойку, кода ее не видел.
Возможно это просто убрать ProcessMessages, но скорее всего еще будет и ряд глобальных объектов ...

wadman,
В 4ке было уже убрано.

Но нормальная синхронизация для работы с RichView, chart и тд. появилась только в 5-6(точно не помню).
...
Рейтинг: 0 / 0
23.07.2021, 16:34
    #40085747
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
_Den_Z_
В 4ке было уже убрано.

У нас была официальная 4-я версия и обновления.
Пятерка уже вышла, а не все processMessages были заглушены в четверке.
14604664
...
Рейтинг: 0 / 0
23.07.2021, 19:27
    #40085806
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
wadman,

Пробежал по исходникам 4ки в гите, вроде все processMessages заглушены.
Это последние билды от 2014-2015.
Вероятно, вы наткнулись на них раньше, чем они были исправлены.
...
Рейтинг: 0 / 0
26.07.2021, 10:11
    #40086137
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
_Den_Z_,

собственно 2 обновления после своих правок я еще скачивал и проверял, а далее уже игнорировал.
Может в итоге и было исправлено. Спорить не буду.
...
Рейтинг: 0 / 0
26.07.2021, 10:36
    #40086149
Colt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Спасибо за подробные ответы.
По итогу: я правильно понял, что этот косяк исправлен в последних релизах 4 версии, а версию 2.5 уже никто и никогда править не собирается, и надо жить с тем, что есть?
...
Рейтинг: 0 / 0
26.07.2021, 15:35
    #40086255
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Colt,

Все верно. Они и четверку больше не поддерживают.
...
Рейтинг: 0 / 0
27.07.2021, 03:07
    #40086369
_Den_Z_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fastreport 2.5 и многопоточность
Colt,
Да. После выхода новой версии старая обычно поддерживается в примерно 6 мес, а критические фиксы примерно год.
Бывает высылаем хотфиксы и на старые версии(5ка, 4ка). К FR2.X таких фиксов нет.

В случае с старой двойкой, проще всего обернуть отчетник в отдельный exe и сделать микросервис, при порождении отдельных процессов проблем скорее всего быть не должно(но на 100% сказать не могу).
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Fastreport 2.5 и многопоточность / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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