Вопрос:
Как использовать отношения при работе с 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 должно отличаться от нуля.
Как в шаблоне с источником в виде XML использовать отношения
Как в шаблоне с источником в виде XML использовать отношения
- Вложения
-
- positive_response_ur.xsd
- xsd схема
- (178.44 КБ) 341 скачивание
-
- positive_response_ur.xml
- xml с данными
- (33.81 КБ) 381 скачивание
-
- positive_template_ur.mrt
- файл шаблона
- (118.59 КБ) 349 скачиваний
Re: Как в шаблоне с источником в виде XML использовать отнош
Здравствуйте,
Мы работаем с XML данными с помощью стандартных .NET методов. В .Net есть некоторые проблемы при работе с вложенными данными. И здесь мы уже не сможем ничего исправить.
Поэтому, мы рекомендуем использовать плоскую структуру с отдельным указанием отношений. Как пример, вы можете посмотреть наши Demo.xml, Demo.xsd.
Спасибо.
Мы работаем с XML данными с помощью стандартных .NET методов. В .Net есть некоторые проблемы при работе с вложенными данными. И здесь мы уже не сможем ничего исправить.
Поэтому, мы рекомендуем использовать плоскую структуру с отдельным указанием отношений. Как пример, вы можете посмотреть наши Demo.xml, Demo.xsd.
Спасибо.
Re: Как в шаблоне с источником в виде XML использовать отнош
Добрый день, Алексей.
Правильно ли я понял, что надо создавать отношения уже в самом дизайнере и пользоваться ими? Тогда как получить всех потомков родительской сущности если отношение создается в дочерней, и из родительской сущности доступа к дочерней нет?
Правильно ли я понял, что надо создавать отношения уже в самом дизайнере и пользоваться ими? Тогда как получить всех потомков родительской сущности если отношение создается в дочерней, и из родительской сущности доступа к дочерней нет?
Re: Как в шаблоне с источником в виде XML использовать отнош
Здравствуйте,
Если необходим обратный порядок, то можно возпользовать бизнес-объектами. DataSet можно зарегестрировать в отчете как бизнес объект:
Спасибо.
Не совсем. Вы можете использовать готовую XSD схему. Также можно создавать связи уже в дизайнере. В целом логика работы с XML данными проста - создается ADO.Net DataSet. Если есть схема она читается туда стандартным методом. Если есть данные, они читаются. После этого генератор отчетов проверяет, если еще связи, которые описаны в словаре и которых нет в DataSet. Если таковые есть, то они создаются.centnot писал(а):Правильно ли я понял, что надо создавать отношения уже в самом дизайнере и пользоваться ими?
Связи содаются между родительской и дочерней сущностью, но отображается в дочерней, как ссылка на родительскую. Фактически Вы можете обратиться только от дочерней к родительской записи. Такое ограничение связано со структурой построения отчета. Иерархия данных строется в виде master-detail-subdetail, т.е. от родитеского источника данных к дочернему.centnot писал(а):Тогда как получить всех потомков родительской сущности если отношение создается в дочерней, и из родительской сущности доступа к дочерней нет?
Если необходим обратный порядок, то можно возпользовать бизнес-объектами. DataSet можно зарегестрировать в отчете как бизнес объект:
Код: Выделить всё
var report = new StiReport();
report.RegBusinessObject(dataSet);
report.Design();