#c# #devexpress #report
#c# #devexpress #Сообщить
Вопрос:
Я работаю с очень ограниченными инструментами, поскольку я в нашей корпоративной среде пытаюсь создавать автоматические отчеты из нашей основной базы данных. Конструктор отчетов — это DevExpress, для которого глобально установлено значение C #.
У меня есть два запроса, которые приводят к созданию отдельных таблиц данных, которые будут использоваться при построении отчета. Содержание этих таблиц данных, по сути, следующее
---------- ------ ----- ---------- ---------- --------- -----
| PersonId | Name | ... | | PersonId | JobTitle | Company | ... |
---------- ------ ----- ---------- ---------- --------- -----
| 1 | John | ... | | 1 | Clerk | ACME | |
---------- ------ ----- | 1 | Janitor |Umbrella | |
---------- ---------- --------- -----
Итак, у меня есть таблица данных, содержащая личные данные отдельных лиц, и другая таблица, в которой перечислены их предыдущие должности.
Я заинтересован в создании автоматизированного конструктора резюме с текущими и тремя последними позициями на странице отчета для заданного количества людей. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу фильтровать записи в таблице 2 по идентификатору пользователя в таблице 2 в пользовательском интерфейсе DevExpress. Я могу создать одностраничное резюме для людей, в котором красиво перечислены все личные данные из таблицы 1, но затем вводятся ВСЕ записи из таблицы 2 и повторяется это для всех отдельных страниц резюме.
Итак, в качестве примера, у меня есть три человека, все с тремя позициями, тогда отчет даст мне девять предыдущих позиций для всех кандидатов.
Я попытался создать вычисляемое поле в таблице 2 и настроить его так, чтобы идентификатор пользователя, который в настоящее время находится на главной странице, соответствовал идентификатору пользователя в подробном отчете. Но я не могу получить доступ к другой таблице изнутри, где вызывается вычисляемый параметр
private void Previouspositions_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e) {
e.Value = Convert.ToString((e.Row as DataRowView).Row["Table1.PersonId"]);
return;
}
Вычисляемое поле может получать значение из «PersonID», но оно автоматически получает его из Table2. Добавление таблицы1. prefic выдает сообщение об ошибке.
Любая помощь приветствуется! Заранее спасибо
Ответ №1:
Я предпочитаю использовать основной подробный отчет в сценарии. Пожалуйста, следуйте этим примерам:
Урок 3 — Создание основного подробного отчета
Как: Создать основной подробный отчет с использованием групп подробных отчетов
Как: Создать основной подробный отчет с использованием вложенных отчетов