31 / 31 / 15
Регистрация: 22.10.2015
Сообщений: 100
1

Загрузка данных в отчет Crystal Report из XML файла

16.02.2016, 11:54. Показов 2568. Ответов 4
Метки нет (Все метки)

Добрый день!

Помогите, пожалуйста, разобраться почему происходит исключение или подскажите как правильно загружать данные из XML файла в отчет CrystalReports.

Вот история моей проблемы:

Имею xml документ с следующей структурой:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<StaffTable>
  <staff>
    <LastName>Иванов</LastName>
    <FirstName>Иван</FirstName>
    <MiddleName>Иванович</MiddleName>
  </staff>
  <staff>
    <LastName>Петров</LastName>
    <FirstName>Петр</FirstName>
    <MiddleName>Петрович</MiddleName>
  </staff>
</StaffTable>
Создаю проект Отчетов. В нем создаю отчет Crystal report основываясь на этой статье http://kbss.ru/blog/lang_c_sharp/8.html
И переношу файл отчетов в свой основной проект.


В нем в коде пытаюсь загрузить в отчет документ.
C#
1
2
3
4
5
6
ReportDocument doc = new ReportDocument();
doc.Load(@".\Staff.rpt");
DataSet ds = new DataSet();            
ds.ReadXml(@".\staff.xml");                    
doc.SetDataSource(ds); //Вот здесь происходит исключение
ReportViewer1.ViewerCore.ReportSource = doc;
Но при выполнении метода doc.SetDataSource(ds) возникает исключение.

Необработанное исключение типа "CrystalDecisions.CrystalRepor ts.Engine.DataSourceException" в CrystalDecisions.ReportAppServ er.DataSetConversion.dll
{"Сбой при загрузке информации из базы данных.\rОшибка в файле Staff 5116_5556_{13FE79C1-9841-436D-8E0A-0F601663D4F5}.rpt:\nСбой при загрузке информации из базы данных."}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2016, 11:54
Ответы с готовыми решениями:

Отчет на Crystal Report v13.0.5
Подскажите как избавиться от следующей ошибки (боюсь что пишет что не совместимо с x64...

Добавление полей в отчет Crystal Report из кода программы
Добрый день. Скажите, можно ли добавлять текстовые поля (text object) и поля с русунком (Image) в...

Как связывать отчет Crystal Report с абсолютным путем к БД, из которой он получает значения
Как не связывать отчет Crystal Report с абсолютным путем к БД, из которой он получает значения? Ибо...

crystal report
как динамически выводить картинку? В crystal report XI developer edition можно указать ссылку на...

4
1447 / 1119 / 345
Регистрация: 11.04.2011
Сообщений: 2,615
17.02.2016, 08:47 2
Nooz, попробуйте пихать в Crystal Report ни DataSet, а DataTable:
C#
1
doc.SetDataSource(ds.Tables["StaffTable"]);
Добавлено через 5 минут
Но, скорее всего, у вас Crystal Report ождидает в этом месте иной набор данных ...
0
31 / 31 / 15
Регистрация: 22.10.2015
Сообщений: 100
17.02.2016, 08:58  [ТС] 3
Вот узнать бы почему он ожидает другой набор. И какой именно.

Ведь я создавал отчет на основе именно этого файла. отчет сам определил структуру и я размещал на нем поля которые отчет сам нашел в файле. А вот когда в основном проекте кодом загружаешь отчет - проблема.

А про DataTable... проверю, отпишусь. Но кажется я так пробовал уже
0
1447 / 1119 / 345
Регистрация: 11.04.2011
Сообщений: 2,615
17.02.2016, 09:29 4
Nooz, Возможно, в отчете вы этот набор данных запихали в Subreport. Если это так, то в коде набор данных нужно также в Subreport пихать. Попробуйте через дебаггер посмотреть содержимое исключения. Возможно есть InnerException, которые будет содержать более детальную инфомацию об ошибке.
0
31 / 31 / 15
Регистрация: 22.10.2015
Сообщений: 100
17.02.2016, 12:32  [ТС] 5
"свойство" doc.Subreports.Count имеет значение равное 0 - значит сабрепортов как я понимаю нет.


Если написать вот так то возникает ошибка nullReference из-за того, что dataSource видит StaffTable как имя датасоурса а не таблицы (как я понимаю)
C#
1
doc.SetDataSource(ds.Tables["StaffTable"]);

Вот такой код возвращает ту же ошибку, что у меня была изначально
C#
1
doc.SetDataSource(ds.Tables["Staff"])

И такой тоже
C#
1
doc.SetDataSource(ds.Tables["abrakadabra"])
Добавлено через 14 минут
Цитата Сообщение от kodv Посмотреть сообщение
Возможно есть InnerException, которые будет содержать более детальную инфомацию об ошибке.
InnerException содержит мою ошибку и увидеть что-то более понятное не удается.

Добавлено через 12 минут
Цитата Сообщение от Nooz Посмотреть сообщение
И такой тоже
doc.SetDataSource(ds.Tables["abrakadabra"])
Поправка.. Так происходит nullReference
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2016, 12:32
Помогаю со студенческими работами здесь

Crystal Report в VS2010
Купила диск Visual Studio 2010 Ultimate. Вроде установила, приложение заработало и база...

DataSet и crystal report
Всем добрый день! Возникла следующая проблема. Вывожу данные с dataset в crystal report...

Отчеты Crystal Report!?
Как связать dataset c документом отчета. Руководствуюсь MSDN фигня какая-то получается. :help:

Crystal Report и DataSet
Здравствуйте. Мне нужно распечатать одну из таблиц DataSet с помощью Crystal Report. Как мне это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru