LEADERSOFT.ru Разработка на заказ программ и сайтов
Интернет магазин программного обеспечения

1 000 руб.

ДОРАБОТКА ПРОГРАММ

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

Перейти к оформлению заказа ...
Класс используется для вывода на печать из Access отчетов типа Microsoft Word в виде бланков (доверенностей, договоров и т.п.), таблиц (накладных) или сложных форм, например, заказов с реквизитами поставщика и спецификацией. Цель разработки такого класса – это создание простого интерфейса, который будет выводить на печать документы Word, используя информацию запросов. При этом обращение к кодированию информации отчета путем VBA (visual basic for application) будет минимальным
Требования

Класс и его функции предназначены для работы под управлением операционной системы Microsoft  Windows с установленным программным комплексом Microsoft Office 2000 или выше, обязательно включающим  компонент Microsoft Access

Основные файлы

В примере, который находится в папке Programs, Вы найдете файл Microsoft Access (AccessWord.mdb), где будут находиться основные объекты программы. Вот они

  • clsReportWord – класс для работы с Word (главный объект выводы на печать)
  •  la_Money – функции для перевода чисел в пропись
  •  la_formInit – это функции для инициализации отчета Word
  •  LA_CatalogReports – таблица с описанием отчетов

Обратите внимание. Эти все объекты надо переносить в другие проекты, если вам необходимо будет использовать вывод на печать отчетов в формате Microsoft Word. Для заполнения таблицы с отчетами есть интерфейс, который позволяет это сделать быстрее.

  • LA_InitReports – форма для редактирования таблицы LA_CatalogReports (не обязательный объект)
Вспомогательные файлы

В примере есть объекты для демонстрации примера работы с классом на базе распространенной формы заказов. Они содержат типовые таблицы

  • ЗАКАЗЫ список – список заказов
  • ЗАКАЗЫ данные – спецификация заказов
  • ФИРМЫ – список компаний и их реквизитов
  • АКТИВЫ ед_измерения – единицы измерения товаров
  • АКТИВЫ список – список товаров

Формы для заполнения реквизитов заказа

  • formЗаказы – форма заказов
  • formЗаказыВкладкаДанные – спецификация заказа

Запросы SQL для отчета

  • formЗаказыОтчетСчетWordQry – содержит поля для вывода шапки отчета
  • formЗаказыОтчетСчетWordQry_T – содержит поля для вывода таблицы отчета

Пример шаблона Word *.dot для вывода отчета. Используется для  подготовки основного отчета

Порядок действий
  1. Откройте в режиме редактирования документ Счет на предоплату.dot (правой кнопкой в проводнике) и поставьте закладки в те места документа, которые нужно заполнить. Меню Вставка – Закладки. Пример документа Word с закладками.
  2. Обратите внимание. Для того чтобы вставить закладку для таблицы используйте имя N1. Она добавляется в первое поле таблицы, под №1. На втором этапе работы с классом нужно определить запросы. Для этого используйте редактор запросов Access.

Запрос. formЗаказыОтчетСчетWordQry

Первый запрос содержит поля, которые добавляются в шапку отчета: БанкИмя, ФилиалИНН и т.п.

idЗаказ Филиал ФилиалИНН ФилиалАдрес БанкИмя БанкNсчета
1 ООО «Новая компания» 7722261008 124713, г. Москва, ул. Краснопролетарская, д.16 Банк рублевый 12345678901234567890
22 ООО «Новая компания» 7722261008 124713, г. Москва, ул. Краснопролетарская, д.16 Банк рублевый 12345678901234567890

Запрос. formЗаказыОтчетСчетWordQry_T

Второй запрос содержит поля таблицы заказов. Выводимые поля имеют префикс T_ , остальные - вспомогательные

T_Пункт T_Актив T_Кол_во T_ЕдИзм T_Цена~~format1 T_Сумма~~format1 format1
1 Мяч для регби "Mitre Squad"

1

шт.

629,00р.

629,00р.

# ##0-00

1 Клан Пещерного Медведя

1

шт.

99,00р.

99,00р.

# ##0-00

1 Jet Live, комплект из 2 шт.

3

 

820,00р.

2 460,00р.

# ##0-00

Обратите внимание. У некоторых полей, есть формат. Он идет после ~~. Например, поле Цена = 629,0000 надо вывести в формате 699-00, то оно должно иметь имя T_Цена~~format1. format1 – это вспомогательное поле и равно  ##0-00. Итоги. Префикс Т_ означает, что это поле будет выводиться в таблице, а суффикс ~~format1 - что поле форматируется по формату поля format1. Формат данных соответсвует условиям форматирования полей в Access.

3. Когда Вы создали запросы и отчет dot, то их нужно записать в таблицу (LA_CatalogReports) и из нее взять idReport, который будет использоваться для вывода на печать. Пример интерфейса.

Обратите внимание. Запросы содержат записи сразу многих заказов, чтобы вывести 1 заказ, нужно назначить фильтр. idЗаказ=%1. %1 будет заменен на поле формы заказа (idЗаказ) при выводе на печать.

Привязка к форме

Заключительным этапом вывода информации, является привязка отчета к кнопке формы. Код, который нужно написать на VBA,  минимальный. Вот он

Private Sub butReport_Click()       
        ' Сохраняем текст, если были изменения в форме
       
        Me.Refresh
        Dim rpt As rptRecord
        Dim idReport As Long

        ' Код отчета берется из таблицы LA_CatalogReports
        idReport = 228

        ' Инициализация отчета
        fcInitReportADO Me.Form, idReport, rpt

        ' Отображение отчета
        funPreviewReport rpt

End Sub

Обратите внимание. 228 соответствует индексу отчета.

Общие выводы

Таким образом, нужно только научиться делать закладки и составлять запросы SQL, чтобы выводить на печать сложные документы в  формате Word