Как создать несвязанный подраздел в другом несвязанном отчете
-
18-09-2019 - |
Вопрос
У меня есть несвязанный Xtrareport, который имеет контроль подрепорта, который содержит другой отчет. Я называю «несвязанным» от отчета, в котором есть определение полей, использующих схему, но на самом деле не связанный с каким -либо набором данных, я создаю DataTable с использованием уровня доступа к данным, а затем передаю этот объект в свойство DataSource отчета.
Итак, у меня есть следующий код:
// (...) Get the data from the db and fill a DataTable
if (table.Rows.Count > 0)
{
report.DataSource = table;
// (...) Get the data from the db and fill a DataTable for the subreport
report.SubPurchaseOrder.Report.DataSource = tableSubReport;
report.ShowPreviewDialog();
}
else
{
MessageBox.Show("No data to show.");
}
Но то, что я использую этот подход, очень странно напечатано (посмотрите на прикрепленный PDF, Извините, это на испанском, но я думаю, что вы поняли идею).
Я прочитал документацию DeVexPress, и, возможно, я неправильно понял подход, поэтому мой вопрос в том, как создать отчет, в котором есть один или несколько субрепортов, но я должен предоставить данные, чтобы заполнить их, используя какой -то внешний процесс, внешний Отчеты, такие как уровень доступа к данным?
Пожалуйста, дайте мне знать, если вопрос не указан правильно или не имеет больше информации.
РЕДАКТИРОВАТЬ:
Я загрузил образец проекта с отчетом с проблемой здесь.
Я пытался использовать параметры какого -то рода. В рамках контрольного управления до того, как я попробовал:
((XRSubreport)sender).ReportSource.FilterString = "[IdPO_RO] = " + _idPurchaseOrder;
а также
((XRSubreport)sender).ReportSource.Parameters["Id"].Value = _idPurchaseOrder;
Конечно, для второго я добавил параметр и строку фильтра так же, как первый, но с использованием параметра.
Решение
Я мог бы решить проблему.
Причиной для этого было то, что я назначал неправильный объект. Эта строка:
report.SubPurchaseOrder.Report.DataSource = tableSubReport;
должно быть:
report.SubPurchaseOrder.ReportSource.DataSource = tableSubReport;
Таким образом, краткое объяснение состоит в том, что я использовал другое свойство для обозначения отчета, содержащегося в контроле подрепорта (XRSubReport).