LEADERSOFT.ru Разработка на заказ программ и сайтов
ЕСЛИ БАЗА ВАМ НУЖНА В ЛИДЕРСОФТ ЗАЙДИ СПЕРВА!
Список всех статей ... Подписка на новости (рассылка через subscribe.ru)




































Выпуск 11. Как пронумеровать строки в

отчете?

Подписка: "Access 2000 - программирование и готовые решения"
Дата:         25.09.2000
Сайт:         http://www.leadersoft.ru
Слоган:     Если база Вам нужна, в LeaderSoft зайди сперва.
Комментарий: 
      Мы разрабатываем по заказам клиентов различные программы, используя Microsoft Access. Базы данных разрабатываются "с нуля" или, используя готовые решения (Склад, Касса, Банк и т.п.), что позволяет достаточно гибко решать финансовые вопросы по оплате услуг за разработку. Для регистрации заказа заполните форму: Регистрация заказа на разработку


Введение. В данном выпуске рассылки рассказывается о проблемах, связанных с печатью отчетов в Access 2000. Кроме комментариев к вопросам написаны короткие программы в la_report.mdb файле. Смотрите их на сайте в разделе "Архив подписки".

Внимание. На сайте: www.leadersoft.ru с предыдущего выпуска рассылки появились новые ответы и решения: Разное(1), Формы(5), Запросы(1), Защита(1), Массивы(1), Модули(1). К некоторым из них есть решения в файлах mdb

1. Вопрос. Как пронумеровать строки в отчете, например, 1.1, 1.2, 1.3 (a.1, a.2, a.3 ...), где первая цифра или буква означает группу товаров.

1. Ответ. Во первых, надо научится пронумеровывать строки в отчете по порядку: 1,2,3,4. Делается это следующим образом. Вы вводите свободное поле в отчет. В конструкторе выбираете вкладку "Данные". Далее в свойствах поля "Данные" записываете выражение "=1" и  "Сумма с накоплением" делаете равным "Для группы".
     Во вторых, это поле делаете с именем и невидимым, т.е. свойство "Имя"="Num", а "Вывод на экран" = "Нет". PS. Я все поля, которые имеют невидимые свойства, изменяю на красный цвет, чтобы можно было отличать в конструкторе от тех, которые печатаются в отчете.
     В третьих, вводите еще одно поле, где в свойстве данные введите строку: =[Группа] & "." & [Num]
     Если непонятно описание, то готовое решение Вы можете посмотреть в файле: la_report.mdb

2. Вопрос. Как напечатать в отчете в Access 97 штрих коды типа EAN13 или подобные им. Может есть библиотека ?

2. Ответ. Существует несколько способов записи штрих - кодов, например, ЕАN-8, EAN-13, 12-UCP-E, 8-UCP-E. Примеры Вы можете посмотреть в файле: la_report.mdb. Практически они одинаковы и отличаются, только числом линий (шрихов). Для вывода на печать из Access 2000 штрих-кода мне известно три способа.
    1. Печать в виде рисунка, т.е. на диске хранится графический файл с изображением штрих-кода. Иногда штрих-код разбивают на несколько изображений, например, цифре 1 соответствует рисунок pic01.gif, цифре 2 - pic02.gif и т.д. При открытии отчета Вы можете управлять этими рисунками, т.е. указывать их новое положение на диске. Например, Me.Controls(2).Picture = "c:\newcode\ean13\pic01.gif"
    2. Второй способ, это когда штрих-код "набирается" в виде управляющих элементов линий. При открытии отчета эти линии гасятся, передвигаются или изменяется их толщина. Вы можете использовать для них следующие свойства: ctrl.left, ctrl.visible, ctrl.width. Эти свойства работают также в mde файле.
    3. Третий способ, это когда применяется специальный шрифт (font) и код набирается символами.
    Решения для первых 2 способов печати штрих - кодов Вы можете посмотреть в файле: la_report.mdb. PS. Желательно штрих код разработать и разместить в подчиненном отчете. О том существует ли бесплатная DLL-библиотека для печати кодов, и кем и как она распространяется мне неизвестно.

3. Как напечатать в отчете "Оглавление", например, как в учебниках. Сейчас у меня прайс - лист занимает более 20 страниц и требуется напечатать содержание.

3. Ответ. Стандартными средствами, т.е. используя только один отчет, Вы это не сделаете. Для этого нужно разработать подчиненный отчет, в котором и вывести оглавление. Необходимо запомнить, что оглавление всегда выводится на новой странице в начале или конце отчета, поэтому надо поставить, например, для примечания отчета (в котором находится подчиненный отчет) "Конец страницы = До раздела". Решение в формате mdb Вы можете найти в файле: la_report.mdb.

4.Объясните, пожалуйста, как использовать быструю печать шрифтами принтера (EPSON FX1170 в частности) русских букв из MS Access 2000, например, при выборе шрифта DRAFT 10 cpi (использовал печать отчёта из MS Access 2000). Английский алфавит печатается, а вместо русского - знаки "?". Используется Windows 98. По моему драйвер принтера здесь не причём, так как изменение принтера в параметрах страницы на лазерный, при том же шрифте ничего не меняет. Принтер EPSON поддерживает кодовую страницу 866.

4. Ответ. Принтер EPSON FX1170 относится к матричным принтерам. Причем у матричных принтеров существует два режима печати: один текстовый, когда Вы можете печатать только текст (с подчеркиванием или выделением) и другой - графический, когда Вы можете напечатать отчет с любым оформлением. Все команды принтера имеют общий вид, т. е. с начала идет символ ESC (десятичный код = 27) далее - код команды с данными. (Внимание! У лазерных принтеров совершенно другая система команд загрузки шрифтов и данных. Они полностью не совместимы с матричными устройствами.)
    При печати из Access 2000, драйвер Windows будет всегда принтер переводить в графический режим, чтобы обеспечить приемлемое качество отчета и поддержку русского алфавита. Графический режим самый медленный, но если Вам нужно отпечатать текст в DRAFT-режиме (быстрый режим), минуя драйвер Windows, то сначала сделайте проверку принтера, загрузите шрифт, а потом уже отпечатайте отчет:
    a) попробуйте послать ESC-команду подчеркивание: ESC-1 Test-underline ESC-0 (chr(27) & "-" & chr(1) ...). Если текст будет с подчеркиванием, то можно будет загрузить драйвер принтера.
    б) Возьмите любой драйвер загружающий русские символы. Он должен иметь ДОСовский формат, т.е. разработан для DOS, а не для Windows. Все DOS-драйверы в принципе одинаковы, их даже можно взять от другого матричного принтера поддерживающего стандарт EPSON.
    в) Драйвер русского алфавита загружается путем простого копирования файла на принтер: FileCopy "Epson_Drive","PRN". При удачной загрузке драйвера принтер не будет ничего печатать, иначе выдаст "тарабарщину"  
    г) Текст из Access 2000 форматируется в ДОСовскую кодировку командой: DoCmd.OutputTo acOutputReport, "Прайс-лист N2", acFormatTXT, "PRN". В результате этого, он будет посылаться на печать, минуя установленный в Windows драйвер печати, и использовать Ваш набор символов и настройки принтера, которые Вы выбрали на его панели управления. Решение в формате mdb Вы можете найти в файле: la_report.mdb.