Как вытащить данные из отчета

Обсуждение Stimulsoft Reports.NET
Ответить
Ильдар
Сообщения: 9
Зарегистрирован: 13 июл 2006, 18:41
Откуда: Kazan

Как вытащить данные из отчета

Сообщение Ильдар »

У меня в папке с моим отчетным комплексом лежат скомпилированные отчеты. Хочу сделать так, чтобы при запуске программа проверяла количество файлов и если оно изменилось - то создавала бы новый список отчетов, причем название отчета и его расположение в дереве (TreeView в моей проге) вытаскивала бы из файла отчета. Можно ли такое сделать?
ask
Сообщения: 50
Зарегистрирован: 21 ноя 2007, 11:02
Откуда: Kazan

Как вытащить данные из отчета

Сообщение ask »

Такую иерархию проще в базе данных представить. Одна таблица, в которой поля: уникальный ключ, название отчета, блоб отчета, ссылка на родителя. А в вашей проге релизуйте метод рекурсивного считывания дерева отчетов из базы. И все.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как вытащить данные из отчета

Сообщение Edward »

Возможно, Вам также будет полезен код, который проверяет наличие dll отчета по названию mrt файла отчета, прямо во время запуска отчета на выполнение.

Если соответствующая dll отсутствует, то она будет создана заново.

Код: Выделить всё

StiReport stiReport = null;
xmlData.Position = 0;
DataSet dataset = new DataSet();
dataset.ReadXml(xmlData);

string compiledReportFile = "report.dll";
if (!File.Exists(compiledReportFile))
{
  stiReport = new StiReport();
  stiReport.Load(sessionInfo.SummaryReportPath);
  stiReport.Dictionary.DataStore.Clear();
  stiReport.Dictionary.Databases.Clear();
  stiReport.RegData("Visit", dataset);
  stiReport.Dictionary.Synchronize();
  stiReport.Compile(compiledReportFile);
  stiReport.CompiledReport.Rendering += new EventHandler(OnRendering);
}
else
{
    stiReport = StiReport.GetReportFromAssembly(compiledReportFile, true);
    stiReport.RegData("Visit", dataset);
    stiReport.Rendering += new EventHandler(OnRendering);
}
  stiReport.PrinterSettings.ShowDialog = false;
  stiReport.Render(false);
  stiReport.Print(GetPrinterSettings(sessionInfo));
  xmlData.Close();
  stiReport.Dispose();
Сам файл отчета имеет xml - структуру, поэтому название отчета можно получить прямо из файла шаблона, или после его загрузки из dll в соответствующем свойстве в экземпляре класса отчета.

Спасибо.
Ильдар
Сообщения: 9
Зарегистрирован: 13 июл 2006, 18:41
Откуда: Kazan

Как вытащить данные из отчета

Сообщение Ильдар »

Спасибо
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как вытащить данные из отчета

Сообщение Edward »

Дайте знать, если понадобится помощь.

Спасибо.
Ответить