XtraReport печатает только выбранные строки C#

#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. вы можете попробовать применить шаги из ответа и сообщить о своем прогрессе здесь в комментариях.