Lintps Posted December 21, 2022 Share Posted December 21, 2022 Добрый день! Генерирую отчеты через FastReport. Данные подтягиваются из FDQuery. У каждой группы пользователей своя база данных, к которой они подключаются. Всё работает, но иногда одни пользователи получают отчет с данными из БД других пользователей. Как такое может быть и что я сделал неправильно? Отчет генерируется на отдельной форме, на ней размещены все нужные FDQuery, frxDBDataset и frxReport. Единственное, что передается из другой формы - это SQL запрос для выборки данных. Не может же этот SQL запрос браться из такой же формы другой сессии? Ниже прикладываю настройки, с которыми генерируется отчет. Прошу помочь. Заранее благодарен. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted December 21, 2022 Share Posted December 21, 2022 Добрый день! Какую сборку uniGUI Вы используете? Откуда делаются коннекты к базам данных? Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 1 minute ago, Sherzod said: Добрый день! Какую сборку uniGUI Вы используете? Откуда делаются коннекты к базам данных? Сборка 1.90.0.1564 FDConnection размещен в UniMainModule, FDQuery - на форме, там же где и компоненты FastReport Quote Link to comment Share on other sites More sharing options...
Sherzod Posted December 21, 2022 Share Posted December 21, 2022 28 minutes ago, Lintps said: Единственное, что передается из другой формы - это SQL запрос для выборки данных. Можете уточнить более детально? Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 3 minutes ago, Sherzod said: Можете уточнить более детально? Из формы frmCalc я делаю вызов frmCalcReport2 Потом в FrmCalcReport2 я копирую SQL запрос из компонента формы frmCalc Quote Link to comment Share on other sites More sharing options...
Volk65 Posted December 21, 2022 Share Posted December 21, 2022 Попробуйте поставить точку останова, там где красным подчеркнуто. И запустите в двух закладках браузера разных пользователей. Посмотрите откуда что берётся. А в остальном вроде всё правильно. Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 25 minutes ago, Volk65 said: Попробуйте поставить точку останова, там где красным подчеркнуто. И запустите в двух закладках браузера разных пользователей. Посмотрите откуда что берётся. А в остальном вроде всё правильно. Спасибо. Проверил. Если у одного пользователя вывести отчет, то у второго будут подцепляться данные первого, пока первый не закроет отчет. И наоборот работает также. Получается на всех пользователей в один момент времени может выводиться только один отчет? Может ошибка где-то в настройках UniMainModule или UniServerModule? Может frxDBDataSet как-то неправильно работают при нескольких сессиях? Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 Перенес все нужные FDQuery, frxDBDataSet, frxReport в UniMainModule - не помогло Quote Link to comment Share on other sites More sharing options...
Sherzod Posted December 21, 2022 Share Posted December 21, 2022 http://unigui.com/doc/online_help/data_modules.htm Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 1 hour ago, Sherzod said: http://unigui.com/doc/online_help/data_modules.htm Я изучил. Подскажите пожалуйста, что я должен изменить в логике построения приложения? Сейчас у меня ни одного обычного DataModule нет, только UniMainModule, UniServerModule и несколько UniForm Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 В примере из Demos все компоненты FastReport также, как у меня лежат на форме Quote Link to comment Share on other sites More sharing options...
Sherzod Posted December 21, 2022 Share Posted December 21, 2022 5 hours ago, Lintps said: Попробуйте также: Report.EngineOptions.ReportThread := Thread; Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 21, 2022 Author Share Posted December 21, 2022 10 minutes ago, Sherzod said: Попробуйте также: Report.EngineOptions.ReportThread := Thread; Подскажите откуда взять этот Thread, пишет, что незадекларирован такой идентификатор. Quote Link to comment Share on other sites More sharing options...
Lintps Posted December 24, 2022 Author Share Posted December 24, 2022 Разобрался. При динамической загрузке шаблонов отчетов (LoadFromStream) важно именно перед загрузкой сделать FrxReport.EnabledDataSets.Add(frxDBDataset1) и настройки EngineOptions. Тогда всё работает как надо!) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.