Распечатать счет C # Winforms - PullRequest
7 голосов
/ 06 декабря 2010

Я написал приложение на c #, и теперь я хочу напечатать его содержимое в виде счета-фактуры, как показано на рисунке. Я хочу напечатать данные клиента только один раз, но задания, которые он просил выполнить на своем автомобиле, показанном в виде таблицы данных, должны быть там в форме списка с трудом и общим трудом в конце счета. некоторые люди предлагали использовать отчеты Crystal, я никогда не использовал их, так что в поисках более простого решения вкратце, как мы можем напечатать требуемые значения из формы alt text

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Самое простое и быстрое решение - использовать элемент управления PrintForm в Visual Basic PowerPack (его можно использовать и в проектах C #).

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

Просто перетащите элемент управления в форму, затем из кода вызова

printForm1.Print();

Это напечатает все, что есть в форме, поэтому просто создайте свой отчет в форме, затем вызовите этот код, и все готово.

3 голосов
/ 07 декабря 2010

Вы можете использовать локальный отчет SSRS (расширение .rdlc). В разделе «Отчетность» должен быть новый шаблон элемента для создания отчета. Отчет отображается в Winforms с помощью элемента управления Report Viewer (элемент управления также можно использовать в приложении WPF с использованием WindowsFormsHost). Единственным недостатком является обязательная зависимость, которая должна быть установлена ​​вместе с вашим приложением. Вот распространяемый пакет для средства просмотра отчетов 2010 года.

Плюсом является то, что отчет может быть легко размещен в экземпляре SSRS, если / когда его необходимо будет просмотреть в браузере. Средство просмотра также может локально отображать отчеты, размещенные в экземпляре SSRS.

В Интернете имеется множество руководств по использованию средства просмотра отчетов в зависимости от источника данных, который будет использоваться для заполнения отчета. В следующем примере в качестве источника данных используется общий список. «Метки» в новой строке ReportDataSource должны совпадать с именем набора данных в определении отчета. Свойства универсального объекта также должны соответствовать именам столбцов набора данных.

    public ReportViewer(IEnumerable<UnprocessedLabel> labels)
    {
        InitializeComponent();

        var reportViewer = new Microsoft.Reporting.WinForms.ReportViewer { ProcessingMode = ProcessingMode.Local };
        reportViewer.LocalReport.ReportPath = System.IO.Path.GetDirectoryName(Application.ResourceAssembly.Location) + "\\UnprocessedPalletLabel.rdlc";
        var ds = new ReportDataSource("labels", labels);
        reportViewer.LocalReport.DataSources.Add(ds);
        reportViewer.RefreshReport();
    }
3 голосов
/ 07 декабря 2010

В прошлый раз, когда мне нужно было напечатать несколько полей из формы C #, я просто создал растровое изображение, используя объект «Bitmap» и «Graphics», и использовал «PrintDocument» для его печати. ​​

Макет печатного отчета выполняется в коде путем указания координат печатаемых элементов. Это дешево и грязно, но работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...