WPF: Лучший метод для печати нумеровавшего страницы datagrids

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

Кто-либо серьезно пишет, что пользовательский documentpaginator возражает для обработки потребностей создания отчетов в их Приложениях отделов организации? Я хочу смочь распечатать "бесплатно" и не иметь для кодирования как сумасшедший только для взятия то, что находится на экране, и бросьте его на бумагу.

Как люди делают это? У кого-либо есть рекомендуемая третья сторона для разрешения печати великоватого datagrids?

Спасибо

9
задан FauxReal 9 June 2010 в 20:15
поделиться

2 ответа

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

Для старого приложения WinForms, которое печатало таблицы данных, мы реализовали полностью отдельный API отчетов для распечаток. Мы распечатали базовый источник данных ADO.Net с помощью бесплатного элемента управления ReportViewer . Учебное пособие находится на gotreportviewer.com .

1
ответ дан 5 December 2019 в 02:27
поделиться

Я нашел самый простой способ - реализовать обобщенный класс DocumentPaginator для постраничного отображения всего, что я могу поместить на экран. С моим DocumentPaginator мне не нужно беспокоиться о печати, потому что я могу взять любой произвольный элемент управления WPF и указать ему на печать, и он выведет несколько страниц, если это необходимо для отображения всех данных.

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

Я описываю свое решение DocumentPaginator более подробно в этом ответе, включая описание необходимого алгоритма.

0
ответ дан 5 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

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