Как лучше всего создавать и печатать счета в приложении .NET?

StackOverflow https://stackoverflow.com/questions/117101

  •  02-07-2019
  •  | 
  •  

Вопрос

Я работаю над системой выставления счетов для коммунальной компании, и у нас есть следующие требования:

  • Пакетное создание и печать примерно 1500 счетов в день, которые мы затем отправляем клиентам.
  • Сохраните счет в формате, который можно будет отправить клиенту по электронной почте, а также заархивировать (возможно, в формате PDF).
  • Построен на .NET с серверной базой данных MS SQL Server.

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

Есть предположения?Будет ли WPF работать или есть лучшее решение?

Это было полезно?

Решение

Если вы используете серверную часть SQL Server, вам подойдут службы Reporting Services.

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

Другие советы

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

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

На вашем месте я бы сосредоточился на создании пакетного процессора, который мог бы работать либо как служба Windows, либо запускаться по расписанию через определенные промежутки времени для выполнения своей работы.

Вы можете получить хорошие возможности печати из WPF, поскольку новая технология формата бумаги XPS document является заменой PDF.И он также имеет отличную поддержку программирования.Блог от Pettzold http://www.charlespetzold.com/blog/2006/02/201111.html относительно печати WPF.

Даже при использовании SQL Server вам может потребоваться изучить функциональность отчетов на стороне клиента.ИМО действительно лучше соответствует тому, что вы хотите.Вы по-прежнему можете запрашивать и получать все необходимые данные с сервера, но это позволяет вам полностью контролировать процесс автоматизации.Возможно, вы хотите запустить его как службу: каждый день служба генерирует отчет, конвертирует его в PDF, копирует на диск и автоматически отправляет по электронной почте.Клиентская сторона может сделать все это легко.И здесь нет необходимости полагаться на службы отчетов или IIS или на необходимость их настройки.

Возможно, вам стоит попробовать использовать ActiveReports.NET или DevExpress XtraReports, чтобы сначала генерировать отчеты с помощью кода.Оба имеют поддержку экспорта PDF, поэтому вы можете создавать PDF-файлы и отправлять их по почте.

Посмотрите эту книгу (http://www.apress.com/book/view/9781590598542) он предоставляет множество различных сценариев, включая отправку отчетов по электронной почте, службу создания отчетов и т. д.Речь идет об отчетности на стороне клиента, но она одинаково хорошо применима и к стороне сервера (во всяком случае, на стороне дизайна).это может иметь свои преимущества при использовании клиентской стороны (или выделенного сервера), поскольку вы можете полностью контролировать процесс автоматизации.Но это если вы хотите использовать отчеты .NET.

И да, вы можете использовать WPF.

Вы также можете посмотреть itextSharp.Это инструмент для записи PDF-файлов .net и порт Java itext.Ограниченное количество игр, которые я с ним делал, сделало написание PDF-файлов простым и увлекательным.

В одном из проектов, над которыми я работаю, мы используем список и метка.

По сути, у вас есть .NET API, вы передаете ему DataSet, а затем создаете шаблоны, ссылающиеся на столбцы в наборе данных, которые, по крайней мере, можно распечатать (и, я полагаю, тоже экспортировать в PDF, но не проверял...)

Сам с ним не работал, поэтому о качестве ничего сказать не могу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top