Как настраивать Relation?

Обсуждение Stimulsoft Reports.NET
Ответить
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Как настраивать Relation?

Сообщение Stilux »

Подскажите пожалуйста как сформировать Master-Detail отчет.
Источник отчета - датасет, состоящий из двух таблиц связанных отношением один ко многим.
Если в макете отчета, в экспортированной XML- схеме, не настраивать связь между таблицами
то выводятся все подчиненные записи, а если связь настроить, вываливается Exception (Relation
для таких-то колонок уже существует...).
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как настраивать Relation?

Сообщение Edward »

Stilux писал(а):Подскажите пожалуйста как сформировать Master-Detail отчет.
Источник отчета - датасет, состоящий из двух таблиц связанных отношением один ко многим.
Если в макете отчета, в экспортированной XML- схеме, не настраивать связь между таблицами
то выводятся все подчиненные записи,
Вам необходимо создавать файл-схему данных xsd, который будет содержать информацию о relations в Вашем XML файле, загружать его в dataset:

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

dataSet.ReadXMLSchema("myschema.xsd")
После этого загруженные в DataSet таблицы из XML файла будут содержать необходимые связи, которые затем автоматически будут зарегистрированы в отчете при помощи RegData:

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

report.RegData("dataSetName",dataSet)
Stilux писал(а): а если связь настроить, вываливается Exception (Relation
для таких-то колонок уже существует...).
Для установки relations из кода:

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

              report.RegData(dataSet);
            report.Dictionary.Synchronize();
            StiDataRelation dataRelation = new StiDataRelation("MyRelation", report.Dictionary.DataSources["Categories"], report.Dictionary.DataSources["Products"], new System.String[]{"CategoryID"}, new System.String[] {"CategoryID"});
            report.Dictionary.RegRelations();
            report.Dictionary.Relations.Add(dataRelation);


Этот код работает без Exceptions.
Уточните, пожалуйста, какие параметры Вы еще устанавливаете в Вашем случае.

Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Как настраивать Relation?

Сообщение Stilux »

Я имел в виду другое.
На форме (WindowsForm) имеется описанный выше датасет ИМЕЮЩИЙ ChildRelation!
Схема этого датасета импортирована в отчет.
Датасет регистрируется методом RegData.
После рендеринга имеем отчет, в котором для каждой основной записи выводится не дочерние записи,
а все строки дочерней таблицы, т.е. Relation игнорируется.
Не понятно куда девается Relation после экспорта в .mrt-файл.
Рабочий отчет удалось получить только так:
-в исходном датасете удаляется Relation
-в дизайнере отчета, в импортированной схеме датасета, настраивается такой-же Relation
Если оставить Relation в обоих местах, то в рантайме, получаем Exception.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как настраивать Relation?

Сообщение Edward »

Вышлите, пожалуйста, тестовое приложение на Изображение или mrt файл отчета и DataSet в формате xml + xsd.

Вы можете получить эти файлы следующим образом:

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

dataSet.WriteXml("myDataSet.xml")
dataSet.WriteXmlSchema("myDataSet.xsd")
Попробуем разобраться с Вашей проблемой!

Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Как настраивать Relation?

Сообщение Stilux »

Проблема разрешилась. Видимо был какой-то сбой при экспорте XSD-схемы,
таблицы импортировались, а связи - нет.
Повторный экспорт решил проблему.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как настраивать Relation?

Сообщение Edward »

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

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