Jump to content

Глюк с FastReport


Lintps

Recommended Posts

Добрый день!

Генерирую отчеты через FastReport. Данные подтягиваются из FDQuery.
У каждой группы пользователей своя база данных, к которой они подключаются.
Всё работает, но иногда одни пользователи получают отчет с данными из БД других пользователей.
Как такое может быть и что я сделал неправильно?

Отчет генерируется на отдельной форме, на ней размещены все нужные FDQuery, frxDBDataset и frxReport.
Единственное, что передается из другой формы - это SQL запрос для выборки данных. Не может же этот SQL запрос браться из такой же формы другой сессии?

Ниже прикладываю настройки, с которыми генерируется отчет.

Прошу помочь. Заранее благодарен.

image.png.d285e95245ae3c9118449666f2570c2a.png

Link to comment
Share on other sites

1 minute ago, Sherzod said:

Добрый день!

Какую сборку uniGUI Вы используете? 

Откуда делаются коннекты к базам данных?

Сборка 1.90.0.1564

FDConnection размещен в UniMainModule, FDQuery - на форме, там же где и компоненты FastReport

Link to comment
Share on other sites

3 minutes ago, Sherzod said:

Можете уточнить более детально? 

Из формы frmCalc я делаю вызов frmCalcReport2

image.png.26fd5155baa04a46be4a4cea191f48ed.png

Потом в FrmCalcReport2 я копирую SQL запрос из компонента формы frmCalc

image.png.eb82ce6e61f3605be7aadbfe3fc50691.png

Link to comment
Share on other sites

Попробуйте поставить точку останова, там где красным подчеркнуто. И запустите в двух закладках браузера разных пользователей. Посмотрите откуда что берётся.

А в остальном вроде всё правильно.

Link to comment
Share on other sites

25 minutes ago, Volk65 said:

Попробуйте поставить точку останова, там где красным подчеркнуто. И запустите в двух закладках браузера разных пользователей. Посмотрите откуда что берётся.

А в остальном вроде всё правильно.

Спасибо.
Проверил.
Если у одного пользователя вывести отчет, то у второго будут подцепляться данные первого, пока первый не закроет отчет. И наоборот работает также.
Получается на всех пользователей в один момент времени может выводиться только один отчет?
Может ошибка где-то в настройках UniMainModule или UniServerModule?
Может frxDBDataSet как-то неправильно работают при нескольких сессиях?

Link to comment
Share on other sites

1 hour ago, Sherzod said:

Я изучил. Подскажите пожалуйста, что я должен изменить в логике построения приложения?
Сейчас у меня ни одного обычного DataModule нет, только UniMainModule, UniServerModule и несколько UniForm

Link to comment
Share on other sites

10 minutes ago, Sherzod said:

Попробуйте также:

Report.EngineOptions.ReportThread := Thread;

 

Подскажите откуда взять этот Thread, пишет, что незадекларирован такой идентификатор.

image.png.396441218aa302c14d26d2119150fb13.png

Link to comment
Share on other sites

Разобрался.

При динамической загрузке шаблонов отчетов (LoadFromStream) важно именно перед загрузкой сделать FrxReport.EnabledDataSets.Add(frxDBDataset1) и настройки EngineOptions. Тогда всё работает как надо!)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...