logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Как сделать чек из программы Windows Forms
  • Работа с NuGet пакетами FastReport

    22 ноября 2021 г.

    UPD: Актуально до версии FastReport .NET 2022.2. Теперь лицензионные пакеты доступны на нашем NuGet-сервере.

    Подробнее
  • Как сделать чек из программы WPF

    17 августа 2020 г.

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

    Подробнее
  • Как создать визитки из своего приложения WinForms

    28 мая 2020 г.

    Приложения типа Windows Forms, как вы понимаете предназначены для работы в операционной системе Windows. Это

    Подробнее
  • Использование линейки в RichText для FastReport .NET

    16 марта 2022 г.

    В редактор RichText была добавлена линейка. Она позволяет пользователям управлять шириной табуляции и задавать

    Подробнее
  • Кастомизация дизайнера отчетов

    31 мая 2020 г.

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

    Подробнее

Как сделать чек из программы Windows Forms

30 мая 2020 г.

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

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

Одним из таких документов, как уже говорилось выше является товарный чек (sales receipt). Если ваша информационная система или автоматизированная система учета предназначена для учета продаж, то такой документ вам необходимо выдавать покупателю. В этой статье мы рассмотрим, как выводить товарный чек из вашей WinForms программы. Самым простым и логичным способом будет использовать генератор отчетов, для создания нужного шаблона документа, а данные в отчет будут поступать из пользовательской программы.

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

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

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

Наша задача создать следующий шаблон:

Sales receipt report template

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

Прежде всего нужно сказать о структуре данных. От нее зависит и состав бэндов данных.

В нашем случае данные о продажах берутся из таблиц: Orders, Order Details, Products, Employees и Customers. Чтобы отображать данные по конкретному заказу из каждой таблицы, все они должны быть связаны. Для этого, в FastReport.NET предусмотрен механизм связывания таблиц по ключам:

 Data source Orders with relations

Таблица Orders связана с Customers и Employees. Это значит, что для конкретной записи заказа, из этих таблиц по ключам будут выбраны соответствующие данные.

Обратите внимание, на скриншот с шаблоном отчета. Для бэнда Data выбран источник Orders. Это означает, что если нам потребуется выводить информацию из Customers и Employees, то нужно брать ее из связей:

 Data source Customers

Бэнд «Данные» имеет детальный бэнд, со своим заголовочным и подвальным бэндами. Для детального бэнда «Данные» определен источник Order Details. Эта таблица тоже имеет связи:

 Data source Order Details with relations

Как вы, наверное, предполагали, существует связь с таблицей Orders. А также с таблицей товаров Products, из которой можно взять наименования.

Теперь, когда понятно, что основная информация берется из таблицы Orders, а детализирующая информация по товарам из Order Details, мы рассмотрим итоги.

Первый итог Line Total – умножение количества товара на цену рассчитывается простым перемножением полей: [[Order Details.UnitPrice] * [Order Details.Quantity]]. Этот итог рассчитывается для каждого наименования товара. 

Далее необходимо суммировать все итоговые суммы в этом столбце и отображать в поле Sub Total. Для этого нужно создать объект итога в окне Данные:

 Create report Total

Назовем его SubTotal и зададим свойства в появившемся окне:

 Adjust total

Как видите мы использовали функцию сложения для итога. В качестве выражения для данных мы использовали комбинацию из умножения тех же полей, что и в Line Total. Таким образом мы получим сумму всех итогов по всем наименованиям товаров. 

В поле с заголовком Tax Rate указывается процентная ставка налогового сбора. В нашем случае она равна 5 процентам.

Для поля Tax Due необходимо рассчитать сумму налогового сбора. Формула проста – итог * процентная ставка:

[[SubTotal] * 0.05]

И, наконец, финальный итог – Total Due. Он состоит из суммы под итога и суммы налогового сбора:

[[SubTotal] + [SubTotal] * 0.05]

На этом создание чека завершено. Необходимо сохранить шаблон отчета.


В приложении 

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

1
2
3
4
5
6
7
8
9
10
DataSet data = new DataSet(); //Создаем источник данных
data.ReadXml($"{Application.StartupPath}/nwind.xml"); //Загружаем в него xml
Report report = new Report();//Создаем объект отчета
report.Load($"{Application.StartupPath}/SalesReceipt.frx"); //Загружаем в объект отчета шаблон
report.RegisterData(data); //Регистрируем данные в отчете
report.Prepare(); //Строим отчет
using (var export = new FastReport.Export.PDF.PDFExport())
{
 export.Export(report, "SalesReceipt.pdf"); //Экспортируем отчет в формат PDF
}

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

О продукте Купить
avatar
Dmitriy Fedyashov
Технический писатель
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport Designer WinForms Report Windows

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Политика в отношении обработки персональных данных
  • Не является публичной офертой