ПЕЧАТЬ через запуск внешнего процесса Excel.

 

Это помещено в Реализацию, хотя имеет отношение ко всем модулям.

 

Появилась возможность печатать Excel таблицы совершенно без преобразований посредством вызова приложения Excel.

Пример такого использования - печать прайс листов, набранных в Excel вместе с накладными отгрузки продукции

(также можно печатать в любом месте программы).

 

Вызов процедуры печати выглядит след. образом:

 

ShellExecute('z:\fabius\reflis\Прайсы 2010\price1.xls', 'print')

 

Здесь:  z:\fabius\reflis\Прайсы 2010\ - полный путь расположения файла таблицы

        price1.xls - сама таблица для печати

Вызывается системный процесс, который все печатает стандартным способом операционной системы,

при этом достигается огромный плюс - результат печати точно такой как это подготовили при наборе в Excel

без преобразований и без масштабирования.

 

Нужно заметить:

1. В системе должен быть обязательно установлен Excel из пакета MS Office (неважно какой, 2003, 2007, 2010)

под Open Office эта печать НЕ работает.

2. Печать идет прямо на принтер (предпросмотр невозможен, или установить принтер

по умолчанию Microsoft Office Document Image Writer, тогда возможен вывод в файл для проверки).

3. При печати кратковременно показывается экран Excel (неприятно мелькает).

 

 

 

Теперь пример использования для печати из накладных отгрузки (можно добавить печать прайс листа в комплект

документов экспедиции для автоматической печати).

 

Открываем список накладных.

Нажимаем Shift/F9 - список бланков печати.

F6 - Добавляем новый. Заполняем "Полное имя бланка документа".

Указываем "файл бланка" (сам бланк не потребуется), "файл программы" - можно не заполнять.

В поле "Преблок" заносим текст программы печати:

 

  result:=.f.  // Бланк печатать не нужно

 

  ShellExecute('z:\fabius\reflis\Прайсы 2010\price1,0.xls', 'print')

 

Печатать прайс лист можно и по F5 из накладных и в составе комплекта документов печати экспедиции.