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