Выводит данные на экран или на печать в заданную позицию, выраженную номерами строки и столбца. Включена для совместимости с предыдущими версиями. Для приложений 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, вывод направляется на принтер.