Сбор статистики из разных БД

отредактировано 08:27 Раздел: FastReport .NET
Есть 10 серверов с одной и тойже СУБД(FireBird) и БД однотипной структуры. Необходимо в дизайнере составить отчет, который бы проходил по списку ip адресов, подключался к ним, выполнял запрос (сбор статиски по пользователям) и полученные результаты выводил в отчет. В идеале должна получиться некая сводная таблица: строки - список пользователей, столбцы - сервера и кол-во входов на них пользователей. Запрос написан, работает. В FR проблема в том, что сейчас у меня 10 раз выводится первый сервер или 10 раз последний, в зависимости от того в какой момент пропишу
...
Report.GetDataSource("Table").Init();
....
как я понимаю инициализацию возможно провести только один раз, даже если в цикле переподключаться
while (i<list.cout)
{...
Report.Dictionary.Connection[0].ConnectionString="new connect string";
Report.Dictionary.Connection[0].GetConnection();
Report.GetDataSource("Table").Init();
... }
Возможно ли 10 раз провести инициализацию одного datasource'a?? Сейчас написана процедура переподключения к серверам и инициализации DS на событие BeforePrint объекта DataBand. Версия FR 1.6.5.

Комментарии

  • отредактировано 08:27
    Здравствуйте,

    Попробуйте у источника данных установить св-во ForceLoadData = true (можно сделать в дизайнере).
  • отредактировано 08:27
    AlexTZ написал: »
    Здравствуйте,

    Попробуйте у источника данных установить св-во ForceLoadData = true (можно сделать в дизайнере).

    Благодарю Алекс за ответ, но это не помогло- также получаю 10 одинаковых результатов с последнего по списку сервера... Все же, можно ли в принципе динамически менять источник данных во время построения отчета и какие действия, кроме вышеописанных для это могут потребоваться? СУБД Firebird, FR.NEt 1.7.4
  • отредактировано 08:27
    Делаю так и все работает. Источник данных - xml, два почти одинаковых файла. У источника установлено св-во ForceLoadData = true.
        private void ReportTitle1_BeforePrint(object sender, EventArgs e)
        {
          // значение из Бд настроенной по умолчанию
          string value1 = ((String)Report.GetColumnValue("book.title"));
          // переключаем БД
          Report.Dictionary.Connections[0].ConnectionString = @"XmlFile=C:\test.xml";
          Report.GetDataSource("book").Init();
          // значение из новой БД
          string value2 = ((String)Report.GetColumnValue("book.title"));
          MessageBox.Show(value1 + ";" + value2);
        }
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.