Печать DataGridView.NET

очевидно, в вашем файле ts нет columns декларации

<tr [pSelectableRow]="rowData" class="tr-click" (click)="getSelected(rowData)">
    <td *ngFor="let col of columns">
        {{car[col.field]}}
    </td>
</tr>

-

<tr [pSelectableRow]="rowData" class="tr-click" (click)="getSelected(rowData)">
    <td *ngFor="let col of cols">
        {{car[col.field]}}
    </td>
</tr>

Редактировать: вы подписываетесь на асинхронный метод с подпиской, но вы пытаемся сделать назначения после подписки. из-за этого ваша функция не ждет окончания подписки. Решение вашей проблемы:

this.studentService.getStudents().subscribe(data => {
    this.searchResults = data;

     // table columns
    this.cols = [
      { field: 'studentId', header: 'Student ID'},
      { field: 'name', header: 'Name'},
      { field: 'dob', header: 'Date of Birth'},
      { field: 'status', header: 'Status'}
    ];

    // tested the object with these
    alert('1: ' + JSON.stringify(this.searchResults)); // undefined
    alert('2: ' + this.searchResults);                 // undefined
    alert('3: ' + this.searchResults.toString);        // undefined
});
15
задан hawbsl 2 May 2012 в 11:48
поделиться

7 ответов

Вы могли экспортировать DataGridView в Excel и затем распечатать его от Excel.

Вы могли также рассмотреть, чтобы не показать Ваши данные в DataGridView, но показать его в управлении ReportViewer, которое имеет способность экспортировать в PDF или Excel. Оттуда возможно распечатать Ваши данные.

3
ответ дан 1 December 2019 в 01:00
поделиться

Существуют проекты на CodeProject, которые сделали некоторую печать работы DataGridViews.

8
ответ дан 1 December 2019 в 01:00
поделиться

Нет никакой встроенной поддержки печати, я боюсь.

Вы могли бы обратиться к использованию стороннего управления такой как Infragistics WinGrid, который имеет сборку - в поддержке печати.

3
ответ дан 1 December 2019 в 01:00
поделиться

. СЕТЕВЫЕ средства управления WinForm (как datagridview) исходно не поддерживают быть распечатанным.

В случае datagridview, тем не менее, можно назвать 'DrawToBitmap', и затем взять тот битовый массив и передать его на функции печати для создания его на бумаге.

2
ответ дан 1 December 2019 в 01:00
поделиться

Если Вы собираетесь быть печатью больше, чем просто DataGridViews, то более универсальный подход может стоить преследовать. Мы используем MigraDoc и затем записали нашему собственному классу чтения DataGridViews и произвели классы MigraDoc, представляющие таблицу.

существует много больших доступных пакетов печати, но у меня только есть опыт с MigraDoc.

Редактирование:

В ответ на комментарии, вот ссылка на мой сайт, показывающий код, который я создал для генерации таблиц MigraDoc и примера использования его для отображения DataGridView ( DataGridView к таблицам MigraDoc ).

1
ответ дан 1 December 2019 в 01:00
поделиться

Добавьте DataGridView, PrintDocuemnt и кнопку, затем:

button click events {
    printDocument1.Print();
}

printDocument1_PrintPage events {
    Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
    this.dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
    e.Graphics.DrawImage(bm, 0, 0);
}

Вот и все, что вам нужно для печати данных.

13
ответ дан 1 December 2019 в 01:00
поделиться

Я знаю, что вы уже приняли ответ, но для следующего человека, который будет искать этот вопрос ...

Я также нашел этот замечательный проект в Code Project и только что реализовал его. Было ЛЕГКО и приятно. http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx

5
ответ дан 1 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: