Команда @ ... SAY

Выводит данные на экран или на печать в заданную позицию, выраженную номерами строки и столбца. Включена для совместимости с предыдущими версиями. Для приложений Visual FoxPro следует пользоваться элементом управления метка, чтобы вывести текст, и элемент управления текстовое поле, чтобы вывести содержимое полей и переменных памяти.

Синтаксис

@ nRow, nColumn SAY Expression
	[FUNCTION cFormatCodes]
	[PICTURE cFormatCodes]
	[SIZE nHeight, nWidth]
	[FONT cFontName [, nFontSize]]
	[STYLE cFontStyle]
	[COLOR SCHEME nSchemeNumber
	| COLOR ColorPairList]

Параметры
@ nRow, nColumn
Задает позицию, в которой должен появиться вывод команды @ ... SAY.
Строки нумеруются сверху вниз. Первая строка имеет номер 0 в основном окне Visual FoxPro или в окне, определенном пользователем.
В Visual FoxPro строка 0 это строка, расположенная непосредственно под системной строкой меню Visual FoxPro.
В FoxPro для Macintosh строка 0 это строка, расположенная непосредственно под строкой заголовка FoxPro.
В FoxPro для MS-DOS строка 0 это строка, которую занимает системная строка меню FoxPro. Подробнее о том, как, манипулируя системной строкой меню, размещать в FoxPro для MS-DOS вывод команды @ ... SAY в строке 0, см. SET SYSMENU. На принтерах первая строка это строка 1, а максимальный номер строки определяется физическими размерами страницы и количеством строк на странице.
Столбцы нумеруются слева направо. Первый столбец имеет номер 0 в основном окне Visual FoxPro или пользовательском окне. Для принтеров первый столбец имеет номер 1. Максимальный номер столбца определяется физическими размерами страницы.
Когда вывод команды @ ... SAY направляется в пользовательское окно, координаты по строкам и столбцам выражаются относительно этого пользовательского окна, а не основного окна Visual FoxPro.
В Visual FoxPro и FoxPro для Macintosh позиция в основном окне Visual FoxPro или в пользовательском окне определяется шрифтом этого окна. Большинство шрифтов допускают множество вариантов с различными размерами, а некоторые из них имеют пропорциональные промежутки. Номер строки зависит от высоты текущего шрифта, а номер столбца от средней ширины буквы в текущем шрифте.
В Visual FoxPro и FoxPro для Macintosh позицию вывода команды @ ... SAY можно задавать дробными значениями координат по строкам и столбцам.
В FoxPro для MS-DOS десятичные дробные значения, используемые в качестве координат по строкам и столбцам, округляются до ближайшего целого числа.

SAY Expression
Задает, что именно нужно вычислить и вывести на дисплей или на печать, начиная с позиции nRow1, nColumn1. Здесь можно задать пользовательскую функцию.
FUNCTION cFormatCodes | PICTURE cFormatCodes
Задает функциональный код или код шаблона, который определяет, в каком виде вывод команды @ ... SAY будет отображаться на дисплее или в печати. Вы можете указать предложение FUNCTION, предложение PICTURE или оба эти предложения.
Коды FUNCTION могут быть включены в предложение PICTURE. В этом случае предложение PICTURE должно начинаться с символа @. Кроме него предложение PICTURE может содержать коды FUNCTION, коды PICTURE или те и другие. Поскольку предложение FUNCTION влияет на все выражение, оно может содержать только коды FUNCTION.

Код FUNCTION	Назначение
B		Выравнивает числовые данные влево в области отображения.
C		После положительного числа ставятся символы CR, обозначающие кредит.
		Может использоваться только с числовыми данными.
D		Задает использование текущего формата даты согласно установке SET DATE.
E		Редактирует даты как даты в формате BRITISH. 
T		Отбрасывает начальные и конечные пробелы в выражении Expression.
X		После отрицательного числа ставятся символы DB, обозначающие дебет.
		Используется только с числовыми данными. 
Z		Если числовое значение выражения Expression равно 0, оно отображается
		в виде пробелов. Используется только с числовыми данными.
(		Заключает отрицательные числа в скобки. Используется только с числовыми данными.
!		Переводит буквенные символы в верхний регистр. Используется только с символьными данными. 
^		Отображает числовые данные в экспоненциальном представлении.
		Используется только с числовыми данными.
$		Отображает текущий символ денежной единицы, заданный установкой
		SET CURRENCY. По умолчанию этот символ ставится непосредственно перед
		полем или после него. Однако символ денежной единицы и его позицию
		(заданные установкой SET CURRENCY), а также символ-разделитель
		(заданный установкой SET SEPARATOR) и десятичный разделитель (заданный
		установкой SET POINT) можно изменить. Используется только с числовыми
		данными.

Выражение кода PICTURE может содержать любые символы, но в отображении на дисплее и на печати активное участие принимают только перечисленные ниже символы.

Код PICTURE	Назначение
X		Отображает все символы и определяет ширину области отображения или печати.
Y		Отображает значения "истина" (.T.) и "ложь" (.F.) как Y и N.
!		Отображает строчные буквы как прописные.
$		Отображает текущий символ денежной единицы, заданный установкой
		SET CURRENCY. По умолчанию этот символ ставится непосредственно
		перед полем или после него. Однако символ денежной единицы и его
		позицию (заданные установкой SET CURRENCY), а также символ-разделитель
		(заданный установкой SET SEPARATOR) и десятичный разделитель (заданный
		установкой SET POINT) можно изменить.
*		Отображает звездочки впереди числового значения. Используйте вместе
		со знаком доллара ($) для защиты чеков.
.		Точка задает позицию десятичного разделителя.
,		Запятая используется для разделения групп цифр, расположенных слева
		от десятичного разделителя.

В следующем примере приведена комбинация двух кодов FUNCTION, задающих формат числового значения. Коды $$ формируют плавающий знак доллара, а код C помещает после числа символы CR.

CLEAR
@ 2, 2 SAY 1.15 FUNCTION 'C$$'

SIZE nHeight, nWidth>
Задает высоту и ширину области отображения или печати для команды @ ... SAY. nHeight задает высоту области в строках, а nWidth ее ширину в столбцах. Если предложение SIZE опущено, Visual FoxPro создает по умолчанию область высотой в одну строку.
В соответствии со значением nWidth производится перенос вывода команды @ ... SAY на следующую строку, а значение nHeight определяет число строк, на которые допускается перенос.
В Visual FoxPro и FoxPro для Macintosh размер текстового поля определяется шрифтом команды @ ... SAY, который задан в предложении FONT. Если предложение FONT опущено, в выводе команды @ ... SAY используется шрифт ее родительского окна (основного окна Visual FoxPro или пользовательского окна).
FONT cFontName [, nFontSize]
Допустимо только в Visual FoxPro и FoxPro для Macintosh.
Задает шрифт для вывода команды @ ... SAY. cFontName задает имя шрифта, а nFontSize размер шрифта в пунктах. Например, следующая команда отображает текст с помощью 16-пунктового шрифта Courier:

@ 2, 2 SAY 'Font clause example' FONT 'Courier', 16 

Если вы задали предложение FONT, опустив размер шрифта nFontSize, используется размер 10 пунктов.
Если в Visual FoxPro заданный шрифт отсутствует, его заменяет шрифт с похожими характеристиками.
Если в FoxPro для Macintosh заданный шрифт отсутствует, используется шрифт Chicago.
В FoxPro для MS-DOS предложение FONT игнорируется.
STYLE cFontStyle
Допустимо только в Visual FoxPro и FoxPro для Macintosh.
Задает стиль шрифта для вывода команды @ ... SAY. Если предложение STYLE опущено, используется стиль Normal (нормальный).
Если в Visual FoxPro заданный стиль шрифта отсутствует, его заменяет стиль с похожими характеристиками.
Если в FoxPro для Macintosh заданный стиль отсутствует, используется стиль Normal.
В FoxPro для MS-DOS предложение STYLE игнорируется.
В качестве cFontStyle можно задавать следующие стили шрифтов:

Символ	Стиль шрифта
B	Bold (Полужирный)
C	Condense (Уплотненный; только в FoxPro для Macintosh)
E	Extend (Раздвинутый; только в FoxPro для Macintosh)
I	Italic (Курсив)
N	Normal (Нормальный)
O	Outline (Контурный)
Q	Opaque (Непрозрачный)
S	Shadow (Затененный)
-	Strikeout (Перечеркнутый; только в FoxPro для Windows)
T	Transparent (Прозрачный)
U	Underline (Подчеркнутый)

Можно указать сразу несколько символов, задав комбинацию стилей. Например, следующее предложение задает полужирный курсив (Bold Italic):

@ 2, 2 SAY 'Font clause example' STYLE 'BI'

COLOR SCHEME nSchemeNumber
Задает цвета для вывода команды @ ... SAY. Если вы не задали предложение COLOR, цвет вывода @ ... SAY определяется цветовой схемой основного окна Visual FoxPro. Если вывод команды @ ... SAY направляется в пользовательское окно, цвет вывода определяется цветовой схемой этого пользовательского окна.
Цвет вывода команды @ ... SAY определяется только первой цветовой парой в цветовой схеме или в списке цветовых пар.
COLOR ColorPairList
Задает цвета для вывода команды @ ... SAY. Цвет определяется только первой цветовой парой в списке цветовых пар.
Подробнее о цветовых схемах и цветовых парах см. Использование цветов.

Комментарии
Для создания элементов управления Label и TextBox используются конструктор форм или DEFINE CLASS. Подробнее о совместимости элементов управления предыдущих версий FoxPro 2.x см. Элементы управления и объекты.
Подробнее о добавлении элементов управления к форме см. главу 9 "Создание форм" Руководства разработчика и Добавление объекта в контейнерный класс.
Используйте данную команду для отображения отформатированного вывода в основном окне Visual FoxPro или в пользовательском окне. Ее можно использовать и для форматирования вывода, предназначенного для принтера.
Можно объединить @ ... SAY и @ ... GET в одну команду. Если заданы оба предложения SAY и GET, укажите один набор координат nRow, nColumn, обозначающий позицию начала вывода @ ... SAY. Между выводом команды @ ... SAY и текстовым полем автоматически вставляется пробел.
Если вы выдали команду SET DEVICE TO SCREEN (эта установка принимается при запуске), вывод команды @ ... SAY появляется в основном окне Visual FoxPro или в активном пользовательском окне. Если вы выдали команду SET DEVICE TO PRINTER, вывод направляется на принтер.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.