Как в шаблоне с источником в виде XML использовать отношения

Обсуждение Stimulsoft Reports.NET
Ответить
centnot
Сообщения: 16
Зарегистрирован: 30 май 2014, 15:12

Как в шаблоне с источником в виде XML использовать отношения

Сообщение centnot »

Вопрос:
Как использовать отношения при работе с XML?
Как система просчитывает автоматически сгенерированные ключи?

Ситуация:
1. Есть шаблон ("positive_template_ur.mrt") у него указаны XSD ("positive_response_ur.xsd") и XML ("positive_response_ur.xml").
2. По XSD сгенерированы источники данных. Дизайнер автоматически определил вложенность элементов и для дочерних сущностей создал внешние ключи.
3. При построении отчета дизайнер считает только часть ключей.

Например:
Есть в xml ("positive_response_ur.xml", строка 150) элемент СвСтатус_РО с вложенным в него элементом СвРегОрг. При этом когда мы выводим в DataBand1 все записи СвРегОрг, то все значения внешнего ключа СвСтатус_РО_Id (автоматически созданный системой) равны 0. При этом по идее хотя бы у одной записи СвРегОрг поле СвСтатус_РО_Id должно отличаться от нуля.
Вложения
positive_response_ur.xsd
xsd схема
(178.44 КБ) 341 скачивание
positive_response_ur.xml
xml с данными
(33.81 КБ) 381 скачивание
positive_template_ur.mrt
файл шаблона
(118.59 КБ) 349 скачиваний
Aleksey
Сообщения: 3006
Зарегистрирован: 22 апр 2010, 06:57

Re: Как в шаблоне с источником в виде XML использовать отнош

Сообщение Aleksey »

Здравствуйте,

Мы работаем с XML данными с помощью стандартных .NET методов. В .Net есть некоторые проблемы при работе с вложенными данными. И здесь мы уже не сможем ничего исправить.
Поэтому, мы рекомендуем использовать плоскую структуру с отдельным указанием отношений. Как пример, вы можете посмотреть наши Demo.xml, Demo.xsd.

Спасибо.
centnot
Сообщения: 16
Зарегистрирован: 30 май 2014, 15:12

Re: Как в шаблоне с источником в виде XML использовать отнош

Сообщение centnot »

Добрый день, Алексей.

Правильно ли я понял, что надо создавать отношения уже в самом дизайнере и пользоваться ими? Тогда как получить всех потомков родительской сущности если отношение создается в дочерней, и из родительской сущности доступа к дочерней нет?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Re: Как в шаблоне с источником в виде XML использовать отнош

Сообщение Jan »

Здравствуйте,
centnot писал(а):Правильно ли я понял, что надо создавать отношения уже в самом дизайнере и пользоваться ими?
Не совсем. Вы можете использовать готовую XSD схему. Также можно создавать связи уже в дизайнере. В целом логика работы с XML данными проста - создается ADO.Net DataSet. Если есть схема она читается туда стандартным методом. Если есть данные, они читаются. После этого генератор отчетов проверяет, если еще связи, которые описаны в словаре и которых нет в DataSet. Если таковые есть, то они создаются.
centnot писал(а):Тогда как получить всех потомков родительской сущности если отношение создается в дочерней, и из родительской сущности доступа к дочерней нет?
Связи содаются между родительской и дочерней сущностью, но отображается в дочерней, как ссылка на родительскую. Фактически Вы можете обратиться только от дочерней к родительской записи. Такое ограничение связано со структурой построения отчета. Иерархия данных строется в виде master-detail-subdetail, т.е. от родитеского источника данных к дочернему.

Если необходим обратный порядок, то можно возпользовать бизнес-объектами. DataSet можно зарегестрировать в отчете как бизнес объект:

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

var report = new StiReport();
report.RegBusinessObject(dataSet);
report.Design();
Спасибо.
Ответить