#c# #winforms #xtrareport
#c# #winforms #xtrareport
Вопрос:
введите описание изображения здесьУ меня есть флажок в datagridview, и я хочу, чтобы после проверки печати (XtraReport) в datagridview была отмечена только строка. Теперь все печатаются из datagridview.
Комментарии:
1. Можете ли вы показать немного больше своей собственной работы?
2. Да, теперь я добавляю новое изображение.
3. является ли datagridview стандартной сеткой dotnet winforms? вы можете показать, как вы создаете макет отчета
4. Да, добавлено новое изображение. Я только вызвал отчет и напечатал все. Я хочу, чтобы в поле «Печать» был установлен флажок (столбец datagridview).
5. я не могу найти, как настроить макет xtrareport?
Ответ №1:
для печати только выбранных строк вы можете назначить XtraReport.filterString и создайте невидимый многозначный параметр, чтобы передать ему проверенные идентификаторы. таким образом, макет отчета может иметь
.FilterString = "ID in (?filterParameters)"
где ‘filterParameters’ — это имя параметра.
и перед отображением предварительного просмотра отчета вы можете передать значение параметра, например
report.Parameters["filterParameters"].Value = new[] { 1, 2, 3 };
new ReportPrintTool(report).ShowRibbonPreviewDialog();
Комментарии:
1. Спасибо, братан, но я добавил флажок в datagridview в качестве столбца, у меня его нет в xtrareport как filterstirng.
2. да, я это вижу. итак, вам нужно вручную выбрать элементы фильтра вашего кода, которые были проверены в grid, и передать идентификатор строк в параметр отчета, как я упоминал в ответе. здесь вы можете показать свой код, как вы пытались получить проверенные строки из gridview.
3. для (int i = 0; i < dataGridView1.Rows. Количество; i ) //1 { bool isCellChecked = Преобразовать. ToBoolean(dataGridView1.Rows[i]. Ячейки[0].Значение); //2 if (isCellChecked == true) { var allCheckedRows = this.dataGridView1.Rows.Cast<DataGridViewRow>() //3 .Где(строка => (bool?)строка. Ячейки [0].Значение == true) . ToList();
4. //1 прохождение через datagridview //2 если установлен флажок, то true //3 сохраняет все (истинные) значения в ToList(); Как напечатать только эти значения в XtraReport?
5. для фильтрации значений, которые проверяются в grid, вы должны получить идентификаторы из вашего «allCheckedRows» как int[] и передать его параметру xtrareport. вы можете попробовать применить шаги из ответа и сообщить о своем прогрессе здесь в комментариях.