Страница 1 из 1
Как настраивать Relation?
Добавлено: 18 апр 2007, 09:34
Stilux
Подскажите пожалуйста как сформировать Master-Detail отчет.
Источник отчета - датасет, состоящий из двух таблиц связанных отношением один ко многим.
Если в макете отчета, в экспортированной XML- схеме, не настраивать связь между таблицами
то выводятся все подчиненные записи, а если связь настроить, вываливается Exception (Relation
для таких-то колонок уже существует...).
Как настраивать Relation?
Добавлено: 18 апр 2007, 13:38
Edward
Stilux писал(а):Подскажите пожалуйста как сформировать Master-Detail отчет.
Источник отчета - датасет, состоящий из двух таблиц связанных отношением один ко многим.
Если в макете отчета, в экспортированной XML- схеме, не настраивать связь между таблицами
то выводятся все подчиненные записи,
Вам необходимо создавать файл-схему данных xsd, который будет содержать информацию о relations в Вашем XML файле, загружать его в dataset:
После этого загруженные в DataSet таблицы из XML файла будут содержать необходимые связи, которые затем автоматически будут зарегистрированы в отчете при помощи
RegData:
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.
Уточните, пожалуйста, какие параметры Вы еще устанавливаете в Вашем случае.
Спасибо.
Как настраивать Relation?
Добавлено: 18 апр 2007, 14:22
Stilux
Я имел в виду другое.
На форме (WindowsForm) имеется описанный выше датасет ИМЕЮЩИЙ ChildRelation!
Схема этого датасета импортирована в отчет.
Датасет регистрируется методом RegData.
После рендеринга имеем отчет, в котором для каждой основной записи выводится не дочерние записи,
а все строки дочерней таблицы, т.е. Relation игнорируется.
Не понятно куда девается Relation после экспорта в .mrt-файл.
Рабочий отчет удалось получить только так:
-в исходном датасете удаляется Relation
-в дизайнере отчета, в импортированной схеме датасета, настраивается такой-же Relation
Если оставить Relation в обоих местах, то в рантайме, получаем Exception.
Как настраивать Relation?
Добавлено: 18 апр 2007, 14:30
Edward
Вышлите, пожалуйста, тестовое приложение на
или mrt файл отчета и DataSet в формате xml + xsd.
Вы можете получить эти файлы следующим образом:
Код: Выделить всё
dataSet.WriteXml("myDataSet.xml")
dataSet.WriteXmlSchema("myDataSet.xsd")
Попробуем разобраться с Вашей проблемой!
Спасибо.
Как настраивать Relation?
Добавлено: 20 апр 2007, 07:14
Stilux
Проблема разрешилась. Видимо был какой-то сбой при экспорте XSD-схемы,
таблицы импортировались, а связи - нет.
Повторный экспорт решил проблему.
Как настраивать Relation?
Добавлено: 20 апр 2007, 10:30
Edward
Дайте знать, если понадобится помощь.
Спасибо.