powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Простой вопрос по fastreport
19 сообщений из 19, страница 1 из 1
Простой вопрос по fastreport
    #39575903
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В программе множество отчетов frxReport
в каждом frxReport ADOQuery подключен к базе через ADODatabase
При запуске программа сильно тормозит, пока подключит все ADODatabase. Нутром чую что это не правильно.
Как избавиться в каждом frxReport от ADODatabase?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575911
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybestКак избавиться в каждом frxReport от ADODatabase?
Удалить и передавать тот компонент, который используется приложением.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575912
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybest,

Оставить только один frxReport на TDataModule
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575914
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще должны быть все Query подключены через один общий Database
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575920
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krapotkinвообще должны быть все Query подключены через один общий Database
А как? Компонент frxReport позволяет подключить только frxDBDataset...

krapotkinУдалить и передавать тот компонент, который используется приложением.
это не понял. Можно подробнее?

krapotkinОставить только один frxReport на TDataModule
Компонентов frxReport по числу отчетов. Отчеты принципиально разные. Или я не понял ответа?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575923
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybest,

Вы же, надеюсь, на каждый запрос не делаете новое соединение?
Так и здесь: frxReport использует frxDBDataset, который получает данные от ADOQuery, к примеру. А все ADOQuery подключены к общему ADODatabase.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575933
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
goldmi45Вы же, надеюсь, на каждый запрос не делаете новое соединение?
Получается что сейчас именно так.

goldmi45Так и здесь: frxReport использует frxDBDataset, который получает данные от ADOQuery, к примеру. А все ADOQuery подключены к общему ADODatabase.
Это означает что мне необходимо вывести ADOQuery из frxReport? Т.е. в каждый frxReport через frxDBDataset передаю уже готовые данные от ADOQuery?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575934
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybestПри запуске программа сильно тормозит, пока подключит все ADODatabase.
При запуске все отчеты подготавливаются?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575938
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет. открываю по мере надобности по одному
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575939
sg729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jonybestКомпонентов frxReport по числу отчетов.
Это излишне. Обычно достаточно одного frxReport на весь проект, можно сделать примерно так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
// открытие датасетов (запросов)
// ....

frxReport1.Clear;
frxReport1.LoadFromFile('MyReport001.fr3');
frxReport1.PrepareReport(True);
frxReport1.ShowPreparedReport;

// и т.д. для других отчетов.


Каждому *.fr3 можно прицепить свой frxDBDataset, а можно обойтись одним, если задавать его свойства DataSet и FieldAliases в рантайме.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575957
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybestНет. открываю по мере надобности по одному
Тогда дело не в отчетах.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575960
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sg729jonybestКомпонентов frxReport по числу отчетов.
Это излишне. Обычно достаточно одного frxReport на весь проект, можно сделать примерно так:


Спасибо! Так и переделаю.
Чтобы развеять иллюзии - Я правильно понял, что ADOQuery внутри frxReport ни как не подключить к внешней ADOConnection, только внутри frxReport к ADOConnection или внешней frxDBDataset?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575977
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybestЯ правильно понял, что ADOQuery внутри frxReport ни как не подключить к внешней ADOConnection, только внутри frxReport к ADOConnection или внешней frxDBDataset?
Можно, но это не ускорит старт приложения.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575987
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanjonybestЯ правильно понял, что ADOQuery внутри frxReport ни как не подключить к внешней ADOConnection, только внутри frxReport к ADOConnection или внешней frxDBDataset?
Можно, но это не ускорит старт приложения.

Можно чуть подробнее для общего развития?
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575993
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybestwadmanпропущено...

Можно, но это не ускорит старт приложения.

Можно чуть подробнее для общего развития?
Перебрать все компоненты у отчета (Components) и у нужных выставить соединение перед формированием.
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39575994
Фотография aleksandr-pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jonybest,

у себя решал следующим образом написал еще один компонент на основе тех что уже были (пример во вложении с FibPlus)
который подключается к уже созданной DateBase, путем простого изменения
constructor Create(AOwner: TComponent); override;
вот пример frxFIBASUVRKComponents.pas

кстати работает все же шустрее за счет того что не надо каждый раз создавать коннект к базе
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39576007
jonybest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все понял. Спасибо!
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39576074
sg729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jonybestМожно чуть подробнее для общего развития?
Попробуйте почитать "FastReport Руководство программиста" главу "1.12 Создание формы отчета с помощью кода". Описанным там способом можно в рантайме создать отчет с чистого листа, и, если не ошибаюсь, в том числе сделать привязку к нужным датасетам. Конечно, это немножко больше ручной работы, но зато интересно -)
...
Рейтинг: 0 / 0
Простой вопрос по fastreport
    #39576084
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учтите, что если программа будет многопользовательской, то отчёты не стоит хранить в файлах, так получится что у каждого пользователя свой набор файлов отчёта. Нужно что-то в отчёте поменять - у всех пользователях обновление.
Лучше всего хранить отчёты в БД
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Простой вопрос по fastreport
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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