Команды и функции, управляющие выводом VFP
« Назад Команда SET PRINTER ON [PROMPT] | OFFнаправляет вывод на притер или в файл. Опции: ON [PROMPT] – направляет вывод на принтер. Если задана опция PROMPT, то откроется диалог настройки параметров принтера. OFF – (по умолчанию) отменяет вывод на принтер. Команда SET PRINTER TO [DEFAULT | NAME WindowsPrinterName]направляет вывод на принтер по умолчанию (DEFAULT) или на принтер, заданный опцией NAME WindowsPrinterName. Для получения имени принтера можно употребить функцию GETPRINTER( ) или APRINTERS( ), например: set printer to name GetPrinter( ) Команда SET PRINTER TO [FileName [ADDITIVE] | PortName]задает файл FileName или порт PortName, в который направляется вывод. Опция ADDITIVE позволяет заносить данные в файл, сохраняя имеющиеся. При ее отсутствии файл перезаписывается. Открытый таким образом файл будет закрыт после выполнения SET PRINTER TO без параметра FileName. Пример: set textmerge on show && Вывод в файл d:\a.txt set printer on set printer to d:\a.txt fi = Pi( ) / 4 \Синус угла <<fi>> равен <<Sin(fi)>> && Закрываем файл d:\a.txt set printer to При выводе в порт (в параллельный – LPT1, LPT2 или LPT3 или последовательный – COM1 или COM2) могут быть указаны следующие параметры:
Пример: set printer on set printer to COM1, 9600, N, 8, 1, H, RL В примере приведены заданные по умолчанию установки последовательного порта COM1. Команда SET PRINTER TO NAME \\ServerName\PrinterNameнаправляет вывод на сетевой принтер. Поддерживается начиная с версии Windows NT 4.0. Параметры: ServerName – уникальное сетевое имя сервера печати. PrinterName – сетевое имя принтера. Выполнение SET PRINTER TO направит вывод на устройство, определяемое MS-DOS PRN-утилитой. Команда SET PRINTER FONT cFontName [, cFontSize] [STYLE cFontStyle]задает шрифт и его параметры, употребляемые при выводе текста на принтер. Параметры: cFontName, cFontSize и cFontStyle – соответственно имя шрифта, его размер и стиль, например: set printer font "MS Sans Serif", 16 style "BI" В строке, задающей опцию cFontStyle, могут находиться приведенные в табл. 4.3 символы. Таблица 4.3
Символы, входящие в cFontStyle
Если опция STYLE не задана, используется обычный стиль. Замечание. Параметры cFontName, cFontSize и cFontStyle могут быть заданы как результат функции GETFONT( ), например: set printer font GetFont("MS Sans Serif") Функция GETPRINTER( )открывает диалог Print выбора принтера и возвращает строку, содержащую имя выбранного принтера. Если принтер не выбран, то функция вернет пустую строку. Пример: selectedPrinter = GetPrinter( ) if not Empty(selectedPrinter) then && Используем выражение с именем set printer to name (selectedPrinter) else MessageBox("Принтер не выбран!") endif Функция PRINTSTATUS( )возвращает .T., если принтер работает или установлен в панели управления Windows, или .F. – в противном случае. Функция GETFONT([cFontName [, nFontSize [, cFontStyle [, nFontCharSet]]]])открывает диалог Font выбора шрифта и возвращает строку, содержащую имя выбранного шрифта, его размер, стиль и набор символов, например: MS Sans Serif,18,BI,204 Набор символов включается в результат, если функции GETFONT( ) передан параметр nFontCharSet. Функция вернет пустую строку, если шрифт не выбран. Параметры: cFontName – имя шрифта, устанавливаемое в Font-диалоге после его открытия. Если заданный шрифт не существует, то будет выбран шрифт по умолчанию. nFontSize – размер шрифта, выбираемый в Font-диалоге после его открытия. Если указанный размер не поддерживается или если nFontSize опущен, то выбирается размер по умолчанию. cFontStyle – стиль шрифта, выбираемый в Font-диалоге после его открытия. Если указанный стиль не поддерживается или если cFontStyle опущен, то выбирается стиль по умолчанию. Параметр cFontStyle могут быть комбинацией следующих значений:
Пример: Getfont("Arial", 12, "BP") nFontCharSet – число, задающее набор символов шрифта; принимает следующие значения:
Замечание. Если использовать сокращенное имя GETF( ), то будет вызвана функция GETFILE( ), а не GETFONT( ). Функция FONTMETRIC(nAttribute [, cFontName, nFontSize [, cFontStyle]])возвращает атрибут шрифта для текущего окна вывода данных. Тип возвращаемого значения – Numeric. Имя текущего шрифта, его размер и стиль возвращает функция WFONT( ). Параметры: nAttribute – определяет атрибут шрифта, значение которого возвращается функцией FONTMETRIC( ). Если параметры cFontName, nFontSize и cFontStyle опущены, то функция вернет атрибут для текущего шрифта активного окна вывода данных. Принимает приведенные в табл. 4.4 значения; в третьем столбце таблицы приведены результаты функции FONTMETRIC( ), возвращаемые после выполнения команд define window someWindow at 10, 10 size 21, 40 ; in desktop system float close ; font "Times New Roman", 12 style "BI" activate window someWindow for ind = 1 to 20 ? Fontmetric(ind) next Таблица 4.4
Значения параметра nAttribute
cFontName – имя установленного шрифта. nFontSize – размер шрифта cFontName. cFontStyle – код стиля шрифта cFontName. Может принимать приведенные в табл. 4.3. значения. Если параметр опущен, то FONTMETRIC( ) возвращает атрибут для нормального стиля. Команда TYPE FileName1 [AUTO] [WRAP] [TO PRINTER [PROMPT]
|
Код |
Описание и примеры |
! |
При форматировании символьных данных выводит строчные буквы как прописные ? "upper" function "!" && Напечатает: UPPER |
$ |
Проставляет символ валюты, заданный командой SET CURRENCY. Для изменения символа валюты и его положения (перед полем вывода или после него) употребляется соответственно команда SET CURRENCY. Символ, разделяющий группы в целой части числа, задается командой SET SEPARATOR, а вид десятичной точки регулируется командой SET POINT set currency to " руб." |
^ |
Отображает числовые данные в научном формате; употребляется только с числовыми данными ? Pi( ) function "^" && Напечатает: 3.14159265358980E+0 |
( |
Заключает отрицательные числа в скобки, знак минус не отображается; употребляется только с числовыми данными ? –Pi( ) picture "99.99" function "(" && Напечатает: (3.14) |
0 |
Преобразовывает положительные данные типа Currency или Numeric в шестнадцатеричное представление. Преобразовываемое число должно быть меньше 4,294,967,296 ? 15 function "0" && Напечатает: 0x0000000F |
B |
Отбрасывает ведущие пробелы ? 123 picture '9999999' && Напечатает: 123 |
C |
Символы CR выводятся после положительного числа для обозначения кредита; употребляется только с числовыми данными ? 123 function 'C' && Напечатает: 123 CR |
D |
Применяется при выводе данных типа Date и DateTime; использует текущий SET DATE-формат ? {^2005–12–31} function "D" && Напечатает: 12/31/2005 |
E |
Выводит дату в формате, принятом в Великобритании ? {^2005–12–31} function "E" && Напечатает: 31/12/2005 |
F |
Предотвращает появление в Varchar-значениях хвостовых пробелов и в Varbinary-величинах хвостовых нулевых байтов |
L |
Отображает ведущие нули вместо пробелов ? 123 picture '@L 9999999' && Напечатает: 0000123 |
R |
Преобразование применяет маску, заданную картинными кодами. Используется только с числовыми или символьными данными. Символы маски, превышающие длину выводимой строки, не отображаются && Употребляем функциональный код R |
T |
Удаляет ведущие и хвостовые пробелы ? "ab ", " cd" && Напечатает: ab cd |
X |
После отрицательных чисел отображаются символы DB, обозначающие дебет; знак минус не выводится; употребляется только с числовыми данными ? –Pi( ) function "X" && Напечатает: 3.14 DB |
YS |
Отображает дату а коротком формате, определяемом установками панели управления Windows ? {^2005–12–31} function "YS" && Напечатает: 31.12.2005 |
YL |
Отображает дату а длинном формате, определяемом установками панели управления Windows ? {^2005–12–31} function "YL" && Напечатает: 31 декабря 2005 |
Z |
Числовое значение, если оно равно нулю, выводится в виде пробелов; употребляется только числовыми данными и датами. В случае пустой даты разделители между частями даты не отображаются store 0 to nVar |
Таблица 4.6
Картинные коды
Код |
Описание и примеры |
9 |
При форматировании числовых и символьных данных задает размер поля вывода ? Pi( ) picture "99.9999" && Напечатает: 3.1400 При форматировании числовых данных может также использоваться с другими, задающими маску символами ? 1203948 picture "999-99-99" && Напечатает: 120-39-48 При выводе чисел длина форматной строки должна быть не меньше числа имеющихся в числе знаков ? 1203948 picture "999" && Напечатает: *** |
# |
Имеет то же действие, что и код 9 set decimals to |
. |
Задает положение десятичной точки |
, |
Задает положение разделителя в целой части числа set separator to ":" |
X |
При форматировании символьных данных задает размер поля вывода ? "Часть строки" picture "xxxxxxx" && Напечатает: Часть с |
! |
При форматировании символьных данных задает размер поля вывода и выводит строчные буквы как прописные ? "Часть строки" picture "!!!!!!!" && Напечатает: ЧАСТЬ С |
Y |
При форматировании логических данных печатает взамен .T. и .F. соответственно Y и N ? IsDigit("A") && Напечатает: .F. |
Если с опцией употребляется код, отличный от перечисленных, то он отображается в поле вывода, не оказывая форматирующего действия.
Функциональные коды воздействуют на весь результат, картинные – только на его отдельные символы. Если функциональные коды присутствуют в cFormatCodes, то они должны появляться перед картинными и им должен предшествовать символ @. Для нескольких неразделенных пробелами функциональных кодов можно употребить один символ @. После последнего функционального кода нужно проставить один или несколько пробелов, а затем начать запись картинных кодов.
FUNCTION cFormatCodes – задает функциональные коды. Символ @ при этом не употребляется.
VnWidth – специальный функциональный код, позволяющий вывести результат на нескольких строках, ограничивая длину каждой строки не более nWidth символами, например:
&& Задаем размер области вывода равным 20 позициям
? "Этот текст разместится на трех строчках." function "V20"
После выполнения команды ? на экране появится следующий результат:
Этот текст
разместится на
трех строчках.
AT nColumn – задает номер позиции (столбца) окна вывода, начиная с которой печатается результат.
FONT cFontName [, nFontSize] – задает имя шрифта (cFontName) и его размер (nFontSize). Если параметр nFontSize опущен, то размер шрифта устанавливается равным 10. Если указанный шрифт недоступен, то берется шрифт с похожими характеристиками. Если не задана опция FONT, то используется шрифт, определенный для окна, в которое выполняется вывод.
STYLE cFontStyle задает стиль шрифта. Опция употребляется, если присутствует опция FONT. Параметр cFontStyle может включать приведенные в табл. 4.3 символы. Если опция опущена, то используется обычный стиль.
Пример. После выполнения команд
set decimals to 7
? Pi( ) at 10 font "Impact", 16 style "BI"
на экране появится число p, содержащее 7 десятичных знаков, отображенное с использованием шрифта Impact размера 16 и стилей Italic и Bold. Изображение числа разместится начиная с 10-й позиции текущей строки (рис. 4.6).
Рис. 4.6. Изображение числа p
Если SET PRINTER установлен в ON, то результат команды ? | ?? направляется и в окно (главное или активное пользовательское) и на принтер (или в порт, или текстовый файл). Если при этом SET CONSOLE установлен в OFF, то результат печатается только на принтере.
Вторая возможность направить вывод команды ? | ?? в текстовый файл – это использовать SET ALTERNATE.
По умолчанию между выводимыми командой ? | ?? значениями проставляется 1 пробел.
Команда
SET SPACE ON | OFF
задает (ON) или устраняет (OFF) пробел между полями вывода, формируемыми командой ? | ??.
Пример:
set space on
? "ab " function "T", " cd" function "T" && Напечатает: ab cd
set space off
? "ab " function "T", " cd" function "T" && Напечатает: abcd
Команды
SET ALTERNATE ON | OFF
или
SET ALTERNATE TO [FileName [ADDITIVE]]
направляют вывод команд \ | \\, ? | ??, DISPLAY и LIST в текстовый файл.
Опции и параметр:
ON – вывод будет направлен в текстовый файл.
OFF – (по умолчанию) вывод в текстовый файл отменяется.
TO FileName – создает текстовый файл FileName. Расширение файла, если оно не задано явно, – TXT.
При выполнении SET ALTERNATE TO последний текстовый файл, созданный SET ALTERNATE TO FileName, будет закрыт.
ADDITIVE – добавляет данные в конец файла FileName. Если опция опущена, то содержимое файла перезаписывается.
Команда
CLOSE ALTERNATE
закрывает файл, открытый SET ALTERNATE.
Команда
SET BELL ON | OFF
или
SET BELL TO [cWAVFileName]
включает (ON) или отключает (OFF) звуковой сигнал или устанавливает его атрибут путем задания имени звукового файла cWAVFileName.
Сигнал воспроизводится при попытке ввести недопустимые данные, например в проверяемое поле таблицы, отображаемой в browse-окне.
Пример. Звучит мелодия из файла Ding.wav.
set bell to 'c:\Windows\Media\Ding.wav'
?? Chr(7)