Программа для склада, для магазина, для производства |
Vvs "Офис-Склад-Магазин"Редактирование форм документов и отчетов |
П.9. Команды.
В форме документа на отдельных строках могут располагаться команды. Перед ними в строке может стоять условие. Они не выводят текст в выходной документ, а управляют его формированием или выполняют другие действия. С помощью команд также может осуществляться передача данных в другие приложения, например MS Excel.
Команды управления формированием документа.
@BREAK
Эта команда прерывает формирование документа. Она может идти после условия.
Например:
@XIS=??Печатать вместе с накладной приходный ордер?
@ЕСЛИ[ISNUL(XIS)]@BREAK
@CLOSE
Закрывает выходной файл документа, форма документа продолжает обрабатываться. После этой команды выходной файл доступен для обработки другими программами, запущенными с помощью команды @RUN или @EXEC.
Например, мы использовали эти команды для печати чека на кассовом аппарате АМС-100Ф. Для управления кассовым аппаратом использовалась внешняя программа. При ее вызове в командной строке указывается текстовый файл с данными о покупках.
@ALERT сообщение
Используется для вывода на экран сообщения для информирования пользователя.
Например:
@ALERT Заказ [AP3 ] давно просрочен!
@SETOUT имя_файла
Команда позволяет перенаправить вывод документа в файл с заданным именем. Используя эту команду можно с помощью одного отчета получить несколько выходных текстовых файлов. Например, можно сформировать несколько страниц в формате HTML с каталогом товаров для размещения в интернет.
Команды запуска приложений и открытия документов.
@RUN Имя файла приложения или документа
Эта команда запускает программу или открывает документ.
@EXEC Имя файла приложения
Команда @EXEC также запускает внешние программы. В отличии от команды @RUN, она не может открывать документы. При указании пути к программе не поддерживаются длинные имена файлов.
Например:
@EXEC notepad readme.txt
@EXEC C:\PROGRA~1\MICROS~1\OFFICE\EXCEL.EXE
@PRINT Имя файла документа
Эта команда выводит на печать документ без его открытия.
После команд(@PRINT, @RUN и @EXEC может идти строка с выражением в квадратных скобках. Таким образом, в параметрах команды могут быть вставлены значения из базы данных. Например, в описании товара в примечании может храниться имя файла с изображением товара или его сертификата. Можно сделать форму, которая выводит на печать изображения товаров:
{
@PRINT [DP9,-1]
}
Управление ориентацией страницы на текущем принтере Windows.
@PAGEL
Установить альбомную ориентацию страницы.
@PAGEP
Установить портретную ориентацию страницы.
Эти команды остались для совместимости с предыдущими версиями, использовать их не рекомендуется. Такой способ управления ориентацией страницы бывает неудобно использовать из-за того, что изменение ориентации страницы происходит для всех приложений. Кроме того, он не работает под Windows NT и Windows 2000.
Другим, более удобным способом управления ориентацией страницы является использование ключей при запуске внешнего редактора TVIEW95 (версии не ниже 2.7). Используйте ключ /L для альбомной, и ключ /P для портретной ориентации. Для каждого документа в программе можно задать внешний редактор, который используется для его открытия. В строке для запуска редактора можно указать необходимые ключи (для изменения параметров документа найдите его в списке и нажмите кнопку "Редактировать").Начиная с версии 2.10 в редакторе Tview95 можно для каждого документа задавать свои параметры, в том числе и ориентацию страницы.
Команды для динамического обмена данными с другими приложениями.
Программа может устанавливать связь с другими приложениями, используя механизм динамического обмена данными - DDE. В другую программу могут быть переданы данные или команды, например, запущены макросы. Этот механизм удобно использовать для обмена с MS Excel. При этом формы документов и отчетов сначала делаются в Excel. При формировании документа, необходимые ячейки заполняются данными из программы. Использование в Excel макросов написанных на Visual Basic for Applications могут существенно расширить функциональность программы.
Вся функциональность динамического обмена уместилась в трех командах: установки связи с приложением @DDECONNECT, выполнения макроса @DDEEXECUTE, передачи значения в ячейку @DDEPOKE.
Чтобы начать обмен данными сначала необходимо установить связь. Команда @DDECONNECT служит для установки связи с другим приложением. В качестве параметров команде передаются имя приложения и необязательный параметр через точку с запятой - тема (обычно имя документа).
Формат этой команды следующий:
@DDECONNECT Приложение;Тема
Приложение - имя приложения, с которым вы хотите начать сеанс. Форма аргумента зависит от приложения, к которому вы осуществляете доступ. Например, DDE-имя MS Excel - Excel, MS Word - MSWord.
Тема - необязательный параметр. Обычно соответствует имени документа. Форма аргумента Тема также зависит от приложения. Microsoft Excel воспринимает имена текущих документов, а так же имя "System".
Если документ уже открыт, то программа сразу установит с ним связь и начнет передавать данные. Если документ не открыт, то программа сначала попытается открыть его. Если не указан явный путь к документу, то он будет открываться из рабочего каталога программы.
Примеры:
Установка связи с с документом Excel PRICE.XLS выглядит так:
@DDECONNECT EXCEL;PRICE.XLS
Для передачи команд и запуска макросов используется команда @DDEEXECUTE. Аргументом команды является строка, которая передается в другое приложение.
@DDEEXECUTE Команда
В этой строке могут быть команды, заключенные в квадратные скобки. В одной строке может быть передано несколько команд, следующих друг за другом. В MS Excel в квадратных скобках передаются названия макросов для их запуска.
Например:
1) Распечатать документ:
@DDEEXECUTE [PRINT()]
2) Выделить и очистить ячейки в таблице Excel:
@DDEEXECUTE [Select("R5C1:R100C4")][CLEAR()]
Иногда возникает необходимость передавать в команде значения из базы данных. В этом случае в строке могут содержаться формулы, заключенные в квадратные скобки с наклонной чертой, например:
\[DTWR \].
Пример: вставить строку с названием товара в текст MS Word.
@DDEEXECUTE [Insert("\[DTWR,-1\]")]
Более подробно о взаимодействии с MS Excel смотрите в следующей главе.
Команда @DDEPOKE используется для передачи данных в другое приложение. Ее формат следующий:
@DDEPOKE принимающий элемент ; данные
принимающий элемент - текст, идентифицирующий элемент, которому необходимо послать данные в приложении, к которому открывается доступ через DDE. Форма аргумента "принимающий элемент" зависит от прикладной программы, присоединяемой через DDE. Для MS Excel это обычно номер ячейки в формате R1C1 (ряд 1 колонка 1).
данные - строка с данными, которые будут переданы из программы.
Для вывода данных в обоих параметрах могут содержаться формулы, заключенные в квадратные скобки.
Примеры:
1) Передача в Excel в ячейку A1 строки с текущей датой:
@DDEPOKE R1C1;Сегодня [&TODAY(0)]
2) Передача в Excel названия товара. Номер ряда в таблице находится в переменной XN:
@DDEPOKE R[~XN,-1]C2;[DTWR,-1]