ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 17

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SET STEP             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Открыть окно трассировки для отладки.
    Синтаксис
    SET STEP ON | OFF
    Смотри также
    SET ECHO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Если установлено  SET STEP ON,  то открывается окно Trace (трасси-
ровки).  В этом окне отображается каждая строка программы,  которая  в
этот  момент времени работает.  Когда установлено SET STEP ON,  то две
текстовые кнопки в левом нижнем углу окна  трассировки  позволяют  вам
продвигаться  на  одни  шаг по вашей программе.  Выбор кнопки "Resume"
продвигает каждый раз вас на одну строку.  Выбор кнопки "Cancel"  при-
останавливает выполнение программы.
    Вы можете  передать параметры программе а затем протрассировать ее
выполнение при помощи следующих шагов:
    1. Открыть окно трассировки(Trace).
    2. Из  всплывающего  меню  Программа(Program)  в  окне  трассиров-
ка(Trace),  выбрать опцию Открыть...(Open...) и выбрать программу  или
приложение.
    3. Установить точку останова в первой выполняемой строке программы.
    4. В командном окне, запустить(DO) программу с(WITH) параметрами.
        По умолчанию установлено SET STEP OFF.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SET STICKY            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Управление выводом системного всплывающего меню.
    Синтаксис
    SET STICKY ON | OFF
    Смотри также
    SET SYSMENU
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
     Для использования системы всплывающего меню пакета FoxPro. Только
пользователи мыши могут применять команду SET STICKY.
    Когда установлено  SET STICKY ON и пункт меню выбирается с помощью
мыши,  то всплывающее меню остается на экране до тех пор,  пока вы  не
выберите  опцию или не укажете мышью точку вне меню.  Если установлено
SET STICKY OFF также производите выбор пункта меню с помощью мыши,  то
всплывающее  меню  остается  на  экране до тех пор,  пока не отпустите
кнопку мыши.
    Можно использовать  набор SET STICKY ON в окне команд или задавать
в программном файле или войдя в рамку просмотра STICKY на табло On/Off
окна  View.  Чтобы  отключить эту уставку,  наберите на клавиатуре SET
STICKY OFF в окне окманд Command,  задайте эту команду в программном
файле или отключите STICKY на табло On/Off окна View.
    Режим ON устанавливается по умолчанию.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SET SYSMENU           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Управление доступом к линейки системного меню
    Синтаксис
    SET SYSMENU ON | OFF | AUTOMATIC
      | TO [] | TO [DEFAULT]
    Замечания
    FoxPro 2.0   Расширения:   опции  AUTOMATIC,  DEFAULT,  управление
системным меню FoxPro
    Смотри также
    Menu -  Имена системного меню,  POP MENU,  PUSH MENU,  SET STICKY,
SYS(2013)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда  управляет  доступом к системному меню FoxPro из прог-
раммы.  Также она позволяет убирать указанные пункты линейки  меню,  а
затем восстанавливать его конфигурацию в принятую по умолчанию.

    Дополнительные опции
    ON
    Если SYSMENU установлено в ON,  то доступ к системному меню  можно
выполнить  во  время  ожидания ввода с клавиатуры (при действии команд
READ,  BROWSE,  MODIFY COMMAND и т.д.).  Линейка  системного  меню  не
высвечивается, но ее можно высветить и сделать доступной, нажав клави-
ши Alt или F10 или двойным нажатием правой кнопки мыши.  По  умолчанию
SYSMENU установлено в ON.

    OFF
    Если SYSMENU  установлено в OFF,  то во время выполнения программы
доступ к системному меню невозможен.

AUTOMATIC
    Установка SYSMENU  в  AUTOMATIC  внутри  программы  делает линейку
системного меню видимой в течении всего выполнения программы.  Линейка
системного меню доступна как предназначено, и опции меню разрешены или
запрещены в соответствии с текущей командой.

    TO []
    TO []
    TO [DEFAULT]
    Вы можете поместить объекты системного всплывающего меню в линейку
системного меню включив туда список опций или пунктов всплывающего ме-
ню. Опция   может содержать любую
комбинацию всплывающих системных меню или названий пунктов,  разделен-
ных запятыми.  Названия  всплывающих  системных  меню или пунктов меню
приведены в параграфе "Имена системного меню". Например, команда
    SET SYSMENU TO _MSYSTEM,_MFILE,_MWINDOW
убирает все всплывающие меню,  за исключением System, File, Window.Ко-
манда без дополнительных аргументов запрещает системное меню.

    DEFAULT
    Если вы модифицировали системное меню,  оно может быть приведено к
конфигурации принятой  по  умолчанию при помощи команды SET SYSMENU TO
DEFAULT.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            Пример               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Наберите следующие команды в командном окне:
PUSH MENU _msysmenu
SET SYSMENU TO _msm_systm,_msm_file
SET SYSMENU TO
POP MENU _msysmenu



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SET TALK             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Направление информации о выполнении команд на экран или в окно
    Синтаксис
    SET TALK ON | OFF | WINDOW [] | NOWINDOW
    Замечания
    FoxPro 2.0 Расширения: ключевые слова WINDOW, NOWINDOW
    Смотри также
    DEFINE WINDOW, SET ODOMETER, SET NOTIFY, SYS(103), _TALLY
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Некоторые команды при выполнении  возвращают  информацию  о  своем
состоянии. Информация  о  состоянии часто называется откликом.  Список
таких команд включает:
    APPEND FROM  COUNT       PACK      SORT
    AVERAGE      DELETE      REINDEX   SUM
    CALCULATE    INDEX       REPLACE   TOTAL
    COPY TO      SELECT-SQL
    Отклик может быть направлен на экран (иногда называемый "столом"),
в окно системных сообщений или в окно определенное пользователем. Отк-
лик также может быть выключен.  Когда FoxPro стартует впервые,  отклик
направляется на экран.

    Дополнительные опции
    ON
    Отклик может быть включен командой SET TALK ON.
    Если отклик был установлен в OFF, а затем устанавливался в ON, от-
клик имеет то же направление вывода (экран,  системное окно сообщений,
окно определенное пользователем), что было перед установкой SET OFF.
    OFF
    Если установлено  SET TALK OFF,  то на экран (в системное окно
сообщений,  в окно определенное пользователем не выдается информация о
ходе выполнения команд.

    WINDOW []
    Если указано SET TALK WINDOW,  отклик выводится в  правом  верхнем
угду экрана, в окне системных сообщений, если NOTIFY установлено в ON.
Когда Вы нажимаете кнопку или перемещаете мышь, системное окно сообще-
ний исчезает.
    Можно отправить отклик в окно,  определенное пользователем включив
 после ключевого слова WINDOW.  Перед этим Вы должны соз-
дать окно, использовав команду DEFINE WINDOW. Пользовательское окно не
обязательно должно быть активным или видимым,  когда туда направляется
отклик.  Если окно которое Вы указали не существует, то отклик направ-
ляется в системное окно FoxPro.

    NOWINDOW
    Команда SET TALK NOWINDOW направляет отклик на экран.

    Интервал отчета.
    Интервал времени, через который выдается информация о статусе, мо-
жет задаваться с помощью команды SET ODOMETER  TO.  Этот  интервал  по
умолчанию равен 100. Если установлено SET TALK ON, то время выполнения
программ может существенно замедлиться,  т.к. много времени может пот-
ребоваться  на выдачу экранных сообщений.  Если Вы хотите видеть число
записей в базе данных в процессе  выполнения  команд,  установите  SET
TALK OFF, и используйте для этого системную переменную памяти _TALLY.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Следующая программа демонстрирует пример того, как можно сохранить
отклтк без вывода его на экран или в окно. Этот пример также использу-
ется в @ ... FILL, SET()

IF SET('TALK') = 'ON'  && TALK установлено особым образом.
 SET TALK OFF          && Включить TALK OFF
 savetalk = 'ON'       && TALK было ON, сохранить
ELSE   && TALK is OFF
 savetalk = 'OFF'      && TALK было OFF, сохранить
ENDIF

row =    INT((SROWS() - 14) / 2)
column = INT((SCOLS() - 80) / 2)

SET TALK &savetalk   && Восстановить оригинальную установку TALK

=sys(2017)
@ row,      column + 1  FILL TO row+3,  column + 16 COLOR GR+/B
@ row + 4,  column + 1  FILL TO row+10, column + 8  COLOR GR+/B
@ row + 4,  column + 10 FILL TO row+10, column + 22 COLOR R+/B
@ row + 4,  column + 23 FILL TO row+10, column + 35 COLOR R/B
@ row,      column + 36 FILL TO row+10, column + 50 COLOR BG/B
@ row + 4,  column + 51 FILL TO row+10, column + 63 COLOR G/B
@ row + 4,  column + 64 FILL TO row+10, column + 79 COLOR B+/B
@ row + 11, column      FILL TO row+14, column + 79 COLOR W/B



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          SET TEXTMERGE          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Запрещает или разрешает распознавание полей баз данных.
    SET TEXTMERGE
        [ON | OFF]
        [TO [] [ADDITIVE]]
        [WINDOW ]
        [SHOW | NOSHOW]
    Замечания
    Новая для FoxPro 2.0
    Смотри также
    \,\\, _PRETEXT, SET TEXTMERGE DELIMITERS, _TEXT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    \, \\, TEXT ... ENDTEXT команды используются для соединения текста
с содержимым полей базы данных,  переменными памяти и значениями функ-
ций и выражений. Если поле базы данных, переменная памяти, функция или
выражение окружено разделителями поглощающими текст (по умолчанию << и
>>),  они могут распознаваться и соединяться с текстом,  что позволяет
Вам создавать программы и генераторы программ.
    SET TEXTMERGE определяет каким образом поля базы данных,  перемен-
ные памяти, функции или выражения окруженные разделителями поглощающи-
ми текст , будут распознаваться. SET TEXTMERGE позволяет также направ-
лять слитый выходной текст на экран, в окно или файл.

    Дополнительные опции
    ON
    Если TEXTMERGE установлено в ON,  любые поля базы данных, перемен-
ные памяти,  функции или выражения окруженные текстовыми ограничителя-
ми, распознаются и выводятся, когда помещаются после команд \ или \\ ,
или между TEXT и ENDTEXT.
    Следующая короткая  программа  (запушенная 4 июля),  демонстрирует
как содержимое переменной MTODAYDATE и функции DATE(),  TIME() распоз-
наются когда TEXTMERGE установлено в ON.  Переменная,  DATE() и TIME()
распознаются так как они ограничены разделителями поглощающими текст и
TEXTMERGE установлено в ON. Вывод направляемый на экран имеет вид:

CLEAR
SET TALK OFF
STORE 'Today is: ' TO mtodaydate
SET TEXTMERGE ON
\<>
\\<>
\The time is:
\\ <>

Выходной результат программы приведенной выше:

Today is: 07/04/90
The time is: 10:55:19

    OFF
    Если TEXTMERGE установлено в OFF,  любые поля базы данных, перемен-
ные памяти, функции или выражения являются литералами на всем протяже-
нии, пока они ограничены разделителями поглощающими текст.
    По умолчанию  TEXTMERGE  установлено в OFF.  Отметим разницу между
этим случаем и предыдущим в результатах работы программы:

CLEAR
SET TALK OFF
STORE 'Today is: ' TO mtodaydate
SET TEXTMERGE OFF
\<>
\\<>
\The time is:
\\ <>

Выходной результат программы приведенной выше:

<>\\<>
The time is:\\ <>

    TO [] [ADDITIVE]
    По умолчанию выходной результат из \,  \\ и TEXT ... ENDTEXT посы-
лается на экран.  Вы можете также направить выходной результат в файл,
включив опцию FILE с именем файла . Если файла с таким именем не
существует,  создается новый файл; в противном случае можно задать оп-
цию, которая будет обновлять существующий файл.
    Текстовый файл открывается как низкоуровневый файл,  и его заголо-
вок храниться в системной переменной _TEXT. Файл может быть закрыт при
помощи команды SET TEXTMERGE TO без  дополнительных  аргументов.  Если
заголовок другого файла был предварительно записан в _TEXT,  этот файл
будет закрыт.
    Вы можете добавить выходной результат \,  \\ и TEXT ...  ENDTEXT в
конец существующего файла включив опцию ADDITIVE.
    Для получения  дополнительной информации смотрите описание систем-
ной переменной памяти _TEXT.

    WINDOW 
    Выходной результат из \, \\ и TEXT ... ENDTEXT направляется на эк-
ран по умолчанию.  Вы можете перенаправить вывод в окно, включив опцию
WINDOW,  указав имя окна , куда направляется выходной ре-
зультат.  Окно предварительно  должно  быть  создано  командой  DEFINE
WINDOW, но не обязательно должно быть активным.

    SHOW | NOSHOW
    Выходной результат из \, \\ и TEXT ... ENDTEXT направляется на эк-
ран  по  умолчанию или в окно.  Вы можете подавить вывод в окно или на
экран,  включив опцию NOSHOW. Для того чтобы снова выводить объеденен-
ный текст укажите ключевое слово SHOW в команде SET TEXTMERG. Значение
этой опции по умолчанию при старте FoxPro - SHOW.

    Поля примечаний и объединение текста.
    Поля примечаний  используются  для внедрения текстовые соединений.
Если Поле примечаний содержит поля  базы  данных,  переменные  памяти,
функции  или  выражения  окруженные  разделителями поглощающими текст,
распознаются и выводятся с содержимым поля примечания. Имя поля приме-
чаний также должно быть ограничено разделителями поглощающими текст.
    В следующем примере,  поле примечаний NOTES в базе данных  CLIENTS
из прикладной программы ORGANIZER обновляется значением функций DATE()
и TIME(), ограниченными разделителями поглощающими текст, принятыми по
умолчанию. Затем поле примечаний распознается.

SELECT 0
USE CLIENTS
CLEAR
REPLACE notes WITH '<> <>'
\<>
USE

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


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є    SET TEXTMERGE DELIMITERS     є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает разделители поглощающие текст
    Синтаксис
    SET TEXTMERGE DELIMITERS
      TO [ [, ]]
    Замечания
    Новая для FoxPro 2.0
    Смотри также
    \ ,\\, SET TEXTMERGE, _PRETEXT, _TEXT

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Значение по умолчанию разделителей поглощающих текст,  двойные уг-
ловые скобки (<< и >>). Вы можете указать собственные разделители пог-
лощающие текст при помощи этой команды.
    Текущее значение TEXTMERGE разделителей может быть выведено на эк-
ран при помощи команды DISPLAY STATUS.

    Дополнительные опции

     [, ]
    Если Вы указываете один разделитель включая ,  оба и правый
и левый разделитель устанавливаются в одно и то же  значение  .
если Вы указываете оба разделителя,  включая  и ,  левый
разделитель устанавливается в , а прaвый разделитель в .
    Если Вы  подаете  команду SET TEXTMERGE DELIMITERS TO без дополни-
тельных аргументов,  разделители заданные по умолчанию  восстанавлива-
ются.Левый или  правый  разделитель,  или  оба вместе могут быть также
восстановлены путем указания нулевой строки в  или , или
в обоих выражениях.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SET TOPIC            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Синтаксис
    SET TOPIC TO [ | ]
    Смотри также
    HELP, SET HELP, SET HELPFILTER

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    SET TOPIC TO определяет критерий, по которому выбирается и автома-
тически выводится на экран дисплея  определенная  тема.  По  умолчанию
высвечивается список тем помощи при задании Help. Если вместо этого вы
хотите посмотреть подробно на экране конкретный раздел,  то установите
TOPIC  на  ,  где  это выражение определяется раздел справочного
текста.
    Раздел также можно выбрать с помощью логического выражения .
Этот вариант удобен при создании собственного диалогового  справочного
средства  Help.  Дополнительные  сведения  о создании пользовательских
справочных систем можно получить в главе Customizing Help документации
FoxPro Developer's Guide (Руководство разработчика).


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          SET TRBETWEEN          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Разрешает или запрещает трассировку между двумя точками останова в
окне трассировки.
    Синтаксис
    SET TRBETWEEN ON | OFF
    Смотри также
    ACTIVATE WINDOW, SET ECHO, SET STEP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    В окне трассировки высвечивается исходный код для программы по ме-
ре ее выполнения.  Текущая строка выполняемой программы выделяется бо-
лее ярким цветом.
    Когда TRBETWEEN  установлено в ON,  каждая строка исходного текста
программы высвечивается в окне трассировки и  выделяется  более  ярким
цветом  в момент прохождения через нее.  Когда TRBETWEEN установлено в
OFF, только на последней строке выполняемой программы происходит пауза
и  она  выделяется  в окне трассировки повышенной яркостью.  Стартовое
значение по умолчанию для TRBETWEEN - ON.
    Установка TRBETWEEN   в  ON  эквивалентна  включению  опции  Trace
Between Breaks (Трассировка между остановами) в окне трассировке в ме-
ню Program.  Когда Trace Between Breaks включенна,  диамонд помещается
слева от опции.  Установка TRBETWEEN OFF эквивалентна выключению опции
Trace Between Breaks.
    Окно трассировки можно открыть интерактивно через  системное  меню
FoxPro; строка Choosing Trace... из меню Window открывает окно трасси-
ровки.
    Окно трассировки  также  может  быть  открыто  при  помощи команды
ACTIVATE WINDOW TRACE,  SET ECHO ON или SET STEP ON в командном  окне.
Эти команды также могут быть помещены в программу для отладки.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          SET TYPEAHEAD          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Спецификация числа символов, которые может содержать буфер клавиа-
туры
    Синтаксис
    SET TYPEAHEAD TO 
    Смотри также
    INKEY(), ON KEY
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда TYPEAHEAD используется для контроля  за  числом  символов,
которые может содержать буфер предввода клавиатуры.  В этом буфере за-
поминаются нажатые клавиши до тех пор, пока они не смогут быть обрабо-
таны  какой-то программой.  Буфер предввода клавиатуры может содержать
до 128 символов.
    Если установлено SET TYPEAHEAD TO 0, тогда ни один символ не может
быть помещен в буфер предввода клавиатуры.  Установка SET TYPEAHEAD TO
0  делает неактивными функцию INKEY() и команду ON KEY.  За более под-
робной информацией о функции INKEY() и команде ON KEY отсылаем  вас  к
разделам, где они подробно описаны.
    По умолчанию установлено SET TYPEAHEAD TO 20.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          SET UDFPARMS           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Управление методом передачи параметров функции, определенной поль-
зователем (UDF)
    Синтаксис
    SET UDFPARMS TO VALUE | REFERENCE
    Смотри также
    DO, PARAMETERS,   PARAMETERS(),  PROCEDURE,  Функции  определенные
пользователем (UDFs)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    SET UDFPARMS  определяет  будут ли параметры передаваться функции,
определенной пользователем, по значению или по ссылке.
    По умолчанию,  переменные  передаются  пользовательской функции по
значению. (Переменные всегда передаются в процедуры по ссылке).  Когда
переменная передается по значению,  значение переменной может быть из-
менено процедурой или пользовательской функцией,  но оригинальное зна-
чение в вызывающей программе при этом не изменится.
    Когда переменная передается по ссылке и  пользовательская  функция
изменяет ее значение, оригинальное значение этой переменной в вызываю-
щей программе также изменяется.
    В следующих  примерах демонстрируется разница в результатах приме-
нения передачи параметров по значению и по ссылке.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        Пример программы         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
*** Передача переменной памяти по значению ***

CLEAR
SET TALK OFF
WAIT 'Нажмите кнопку, передача по значению' WINDOW
SET UDFPARMS TO VALUE
STORE 1 TO X
*** Значение x не изменяется ***
@ 2,2 SAY 'UDF value:  ' + STR(plusone(X))
@ 4,2 SAY 'Value of X: ' + STR(X)

*** Передача переменной памяти по ссылке ***

WAIT 'Нажмите кнопку, передача по ссылке' WINDOW
CLEAR
SET UDFPARMS TO REFERENCE
STORE 1 TO X
*** Значение х изменяется ***
@ 2,2 SAY 'UDF value:  ' + STR(plusone(X))
@ 4,2 SAY 'Value of X: ' + STR(X)

*** Это UDF,которая добавляет единицу к числу ***

FUNCTION plusone
PARAMETER Z
Z = Z + 1
RETURN Z

*** Конец UDF ***

    Вы можете принудительно передавать параметры по значению или ссыл-
ке, игнорируя установку UDFPARMS.  Для того чтобы принудительно  пере-
дать переменную по значению заключите переменную в скобки.  Для прину-
дительной передачи переменной по  ссылке,  поставте  перед  переменной
символ "@".
    Ниже приведен пример,  который использовался выше, производящий те
же действия, но используя при этом скобки и символ "@".

*** Передача переменной памяти по значению ***

CLEAR
SET TALK OFF
WAIT 'Нажмите кнопку, передача по значению' WINDOW
STORE 1 TO X
*** Значение x не изменяется ***
@ 2,2 SAY 'UDF value:  ' + STR(plusone((X)))
@ 4,2 SAY 'Value of X: ' + STR(X)

*** Передача переменной памяти по ссылке ***

WAIT 'Нажмите кнопку, передача по ссылке' WINDOW
CLEAR
STORE 1 TO X
*** Значение х изменяется ***
@ 2,2 SAY 'UDF value:  ' + STR(plusone(@X))
@ 4,2 SAY 'Value of X: ' + STR(X)

*** Это UDF,которая добавляет единицу к числу ***

FUNCTION plusone
PARAMETER Z
Z = Z + 1
RETURN Z

*** Конец UDF ***

    ВАЖНО
    Массивы элементов могут передаваться  в  процедуру  или  пользова-
тельскую функцию.  Если  UDFPARMS  установлено  в  REFERENCE или имени
массива предшествует @,  массив элементов  передается.  Если  UDFPARMS
установлено в VALUE или имя массива взято в скобки, передается по зна-
чению первый элемент массива.  Элементы массива всегда  передаются  по
значению.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SET UNIQUE            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Разрешение или  запрет появления в индексном файле записи с дубли-
рующимися значениями ключа
    Синтаксис
    SET UNIQUE ON | OFF
    Смотри также
    INDEX, REINDEX
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда  SET  определяет,  сохраняются ли во вновь создаваемом
индексном файле записи с дублирующимися значениями ключа.
    Если установлено SET UNIQUE ON,  все записи с дублирующимся значе-
нием ключа не будут включены в индексный файл.  В  индексный  файл,  в
этом случае, будут включаться только первые из записей с дублирующимся
значением индексного ключа.
    Индексный файл сохраняет свой статус UNIQUE при выполнении переин-
дексации командой REINDEX.  Дополнительная информация приведена в этом
разделе в командах INDEX и REINDEX.
    По умолчанию установлено SET UNIQUE OFF.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SET VIEW             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Синтаксис
    SET VIEW ON | OFF
    SET VIEW TO  | ?
    Смотри также
    CREATE VIEW
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Выдача команды  SET  VIEW  открывает окно просмотра (View window).
Окно просмотра является одним из полезных средств  в  системе  FoxPro.
Оно  позволяет  легко открывать файлы баз данных,  задавать отношения,
устанавливать или изменять параметры системы FoxPro.  За более подроб-
ной информацией об окне просмотра отсылаем вас к соответствующему раз-
делу документа "FoxPro Interface  Guide"  (Руководство  по  интерфейсу
FoxPro).
    Смотри команду CREATE VIEW для получения дополнительной информации
о файлах окружения FoxPro.

    Дополнительные опции
    ON
    Открывает окно просмотра.

    OFF
    Команда SET VIEW OFF используется для закрытия окна просмотра.  По
умолчанию установлено SET VIEW OFF.

    TO  | ?
    С помощью команды  VIEW  TO    (файл)  восстанавливается  то
состояние  системы  FoxPro,  которое она имела в момент создания файла
view- (файла представления).  Файл представления создается с по-
мощью команды CREATE VIEW .


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є       SET WINDOW OF MEMO        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Задание окна редактирования поля примечания
    Синтаксис
    SET WINDOW OF MEMO TO 
    Замечания
    Включено для  обратной  совместимости - используйте вместо нее ко-
манду @ ... EDIT
    Смотри также
    @ ... EDIT, MODIFY MEMO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    С помощью команды SET WINDOW вы можете редактировать поле примеча-
ния в некотором окне,  которое определено пользователем. Такое пользо-
вательское окно может быть открыто когда используются  команды  @  ...
SAY/GET, APPEND, BROWSE, CHANGE, EDIT или MODIFY MEMO. Окно редактиро-
вания поля примечания должно быть определено до использования  команды
SET WINDOW.
        Для  того, чтобы начать редактирование поле примеча-
ния внутри указанного окна с именем , вам  надо
нажать клавиши Ctrl+Home,  Ctrl+PgUp, Ctrl+PgDn или произвести двойное
нажатие кнопки мыши на поле примечания.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SET()              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Синтаксис
    SET( [,1])
    Возвращаемое значение
    Символьное или числовое
    Смотри также
    DISPLAY/LIST STATUS, SYS(2001), SET
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SET () возвращает статус различных SET ... TO и SET ON или
OFF команд.  Не все SET команды могут использоваться в  этой  функции.
Таблица, приведенная ниже, перечисляет команды SET, которые могут быть
включены в данную функцию. SET () с аргументом ( [,1] ) возвращает
    Функция SET() идентична функции SYS(2001).
    SET () понимает четырех-символьные аббревиатуры  всех  FOXPRO  SET
ключевых слов ( например RELA или PRIN ).

    Дополнительные опции
    
    Возвращает информацию о SET команде, которую Вы указали в символь-
ном выражении . Возвращаемое значение, которое принимает команда SET
может быть числовой или символьной строкой.

    1
    Если включен данный необязательный аргумент, возвращается дополни-
тельная информация  о SET команде,  однако эта информация возвращается
не для всех команд. Команды, которые имеют возвращаемую дополнительную
информацию, отмечены в таблице, приведенной ниже.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Следующий пример программы демонстрирует,  как можно  использовать
команду SET()  для  сохранения  установки TALK без создания отклика на
экране или в окне.

IF SET('TALK') = 'ON'  && TALK установлено как особый случай
 SET TALK OFF          && Выключить TALK OFF
 savetalk = 'ON'       && TALK было ON, сохранить установку
ELSE                   && TALK установлено в OFF
 savetalk = 'OFF'      && TALK было OFF, сохранить установку
ENDIF
SET TALK OFF

SET TALK &savetalk     && Восстановить оригинальную установку TALK

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда SET   Возвращаемое значение
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Alternate     - ON или OFF
Alternate,1   - Альтернативный файл
Ansi          - ON или OFF
Autosave      - ON или OFF
Bell          - ON или OFF
Blink         - ON или OFF
Bloksise      - Числовое выражение
Brstatus      - ON или OFF
Carry         - ON или OFF
Century       - ON или OFF
Clear         - ON или OFF
Clock         - ON или OFF
Color         - Атрибуты цвета
Compatible    - ON или OFF
Confirm       - ON или OFF
Console       - ON или OFF
Currency      - LEFT или RIGHT
Currency,1    - Символьное выражение
Cursor        - ON или OFF
Date          - Символьное выражение
Debug         - ON или OFF
Decimals      - от 0 до 18
Default       - Драйвер по умолчанию;SYS(2003)- для директория
Deleted       - ON или OFF
Delimiters    - ON или OFF
Delimiters,1  - Символьное выражение
Development   - ON или OFF
Device        - PRINTER или SCREEN
Display       - Не поддерживается, используйте SYS(2006)
Dohistory     - ON или OFF
Echo          - ON или OFF
Escape        - ON или OFF
Exact         - ON или OFF
Exclusive     - ON или OFF
Fields        - ON или OFF
Fields,1      - Список полей
Filter        - ON или OFF
Fixed         - ON или OFF
Fullpath      - ON или OFF
Heading       - ON или OFF
Help          - ON или OFF
Help,1        - Имя файла
History       - ON или OFF
Hours         - 12 или 24
Intensity     - ON или OFF
Lock          - ON или OFF
Logerrors     - ON или OFF
Mackey        - Символьное выражение
Margin        - от 0 до 254
Mark          - Символ маркера
Memowidth     - от 8 до 256
Menu          - ON или OFF
Mesage        - Номер строки экрана
Mesage,1      - Символьное выражение
Mouse         - ON или OFF
Multilocks    - ON или OFF
Near          - ON или OFF
Notify        - ON или OFF
Odometer      - от 1 до 32767
Optimize      - ON или OFF
Order         - Индексный файл или тег (с опциями ASCENDING/DESCENDING)
Path          - Путь
Point         - Символ указателя
Printer       - ON или OFF
Printer,1     - Порт или файл
Procedure     - Имя файла процедур
Refresh       - от 0 до 32000
Reprocess     - ON или OFF
Resourse      - ON или OFF
Resourse,1    - Текущий файл ресурсов
Safety        - ON или OFF
Scoreboard    - ON или OFF
Separator     - Символ разделитель
Shadows       - ON или OFF
Space         - ON или OFF
Status        - ON или OFF
Step          - ON или OFF
Sticky        - ON или OFF
Sysmenu       - ON или OFF или AUTOMATIC
Talk          - ON или OFF
Talk,1        - WINDOW, NOWINDOW или имя окна
Textmerge     - ON или OFF
Textmerge,1   - Ограничители поглощающие текст
Topc          - Символьное или логическое выражение
Typeahead     - от 0 до 32000
Udfparms      - VALUE или REFERENCE
Unique        - ON или OFF
View          - Не поддерживается
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SHOW GET             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Повторный вывод на экран единичного GET объекта.
    Синтаксис
    SHOW GET 
     [,  [PROMPT ]]
     [ENABLE | DISABLE]
     [LEVEL ]
     [COLOR  | COLOR SCHEME ]
    Замечания
    Новая в FoxPro 2.0
    Смотри также
    @ ...  SAY/GET,  CLEAR READ,  _CUROBJ,  OBJNUM(), RDLEVEL(), READ,
SHOW GETS, SHOW OBJECT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда осуществляет повторный вывод на экран  единичного  GET
объекта  (поле,  кнопки выбора,  контрольная рамка,  всплывающее меню,
список или область редактирования текста). Когда значение GET поля из-
меняется (например, при перемещении на другую запись), SHOW GET обнов-
ляет значение GET поля.  Когда GET объект заново высвечивается, он мо-
жет быть необязательно разрешен или запрещен.
    SHOW GET может использоватьс для повторного вывода  на  экран  от-
дельных кнопок внутри набора,  селективных или выталкивающихся кнопок.
Кроме того Вы можете изменить приглашение  рамок  контроля  и  кнопок,
используя команду SHOW GET.
    Подпрограмма, содержащая SHOW GET может использоваться для повтор-
ного вывода на экран GET объектов.  GET LEVEL VALID или WHEN, или READ
LEVEL ACTIVATE или DEACTIVATE процедуры содержат команду SHOW GET.

    Соотношение SHOW GET с командами SHOW GETS и SHOW OBJECT.
    Все GETS повторно выводятся на экран при помощи SHOW GETS. Отдель-
ные  объекты  могут  заново высвечиваться при помощи команд SHOW GET и
SHOW OBJECT. SHOW GETS будет выполнять процедуру READ LEVEL SHOW ( по-
казать  уровень чтения).  Команды SHOW GET и SHOW OBJECT эту процедуру
не выполняют.
    SHOW OBJECT  идентична  SHOW  GET,  за исключением описания в SHOW
OBJECT объектов по их номерам;  SHOW GET описывает объекты при  помощи
, переменных памяти, элементов массива или поля базы данных.
    Для получения  дополнительной  информации  обратитесь  к  описанию
OBJNUM() и _CUROBJ.

    Дополнительные опции
    
    Переменная памяти,  элемент массива или поле базы данных,  которые
Вы указали с @ ...  GET . Объект, которым Вы манипулируете коман-
дой SHOW GET, указывается соответствующей .
    В следующем примере создаются три кнопки с приглашениями Apples(яблоки),
Oranges(Апельсины) и Lemons(Лимоны).  Их  является переменной па-
мяти, названной fruit(фрукт).   инициализирует кнопки (  так  как
fruit = 2, вторая кнопка является выбранной), а номер кнопки сохраня-
ется , когда кнопка будет выбрана.

CLEAR
STORE 2 TO fruit
@4,2 GET fruit PICTURE '@*R Apples;Oranges;Lemons'
READ CYCLE

    
    Повторный вывод на экран единичной надавленной, отпущенной или не-
видимой кнопки внутри набора кнопок, указанием номера кнопки  с
.  Номер кнопки определяется порядком, в котором создавались кно-
почные приглашения.  В примере,  указанном выше,  Apples(яблоки) пере-
числена в списке первой, и ее номер равен 1. Второй в списке шла кноп-
ка Oranges(Апельсины);  это кнопка номер два. Последняя - Lemons(Лимо-
ны), ее номер третий.
    Следующая программа  создает кнопки,  перечисленные выше.  Однако,
после того как одна из кнопок выбрана, выполняется процедура NOORANGE;
которая запрещает кнопку Oranges при помощи SHOW GET и ключевого слова
DISABLE.

CLEAR
STORE 2 TO fruit
@4,2 GET fruit PICTURE '@*R Apples;Oranges;Lemons' VALID noorange()
READ CYCLE

FUNCTION noorange
SHOW GET fruit,2 DISABLE  && Disable second button
_CUROBJ = 1
RETURN .T.

    PROMPT 
    Приглашение для  отдельной нажатой или отпущенной кнопки,  а также
для контрольной рамки может быть изменено на другое включением  PROMPT
.  замещает оригинальное приглашение для кнопки или рамки.
Атрибуты кнопки или рамки (разрешена,  запрещена,  горячий ключ, выбор
по умолчанию или выбор прерывания) могут быть также изменены включени-
ем соответствующего специальных символов в .
    В следующем примере создается контрольная рамка. Когда она выбира-
ется, выполняется опция VALID процедуры NEWPROMPT. Процедура NEWPROMPT
изменяет приглашение контрольной рамки и горячий ключ.

CLEAR
STORE 1 TO check
@4,2 GET check FUNCTION '*C \
    Групповая команда READ может быть создана при помощи команд GET  и
READ в подпрограмме вызываемой, пока работает READ. READ могут группи-
роваться в пять уровней.
    Если LEVEL не включается,  команда SHOW GET выполняется по умолча-
нию в текущем уровне READ.  Включение LEVEL позволяет Вам повторно вы-
вести  объект  в  уровне  READ,  отличном от текущего.  other than the
current level. The numeric expression Числовое выражение  может
принимать значение 1,  2, 3, 4 или 5, соответствующее уровню READ объ-
екта,  который Вы хотите заново высветить на экране. Функция RDLEVEL()
возвращает текущий уровень READ.

    COLOR 
    COLOR SCHEME 
    Объекты могут высвечиваться повторно цветом, который Вы указываете.
Вы можете указать список  цветовых  пар  или  схему  цветов.  Смотрите
описание команды @ ... GET для получения информации по цветам для GETA.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SHOW GETS            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Повторное высвечивание на экране всех GET объектов.
    Синтаксис
    SHOW GETS
     [ENABLE | DISABLE]
     [LEVEL ]
     [OFF | ONLY]
     [WINDOW ]
     [LOCK]
     [COLOR | COLOR SCHEME ]
    Замечания
    Новая в FoxPro 2.0
    Смотри также
    @ ... SAY/GET, CLEAR READ, _CUROBJ, OBJNUM(), RDLEVEL(), READ,
SHOW GET, SHOW OBJECT, SYS(2016)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда осуществляет повторный вывод на экран всех GET объекта
(поле,  кнопки выбора, контрольная рамка, всплывающее меню, список или
область редактирования текста).  Когда значение GET  полей  изменяется
(например, при перемещении на другую запись), SHOW GETS обновляет зна-
чение GET полей.  Когда GET объекты заново  высвечивается,  они  может
быть необязательно разрешен или запрещен.
    Подпрограмма, содержащая SHOW GETS может использоваться  для  пов-
торного  вывода на экран GET объектов.  GET LEVEL VALID или WHEN,  или
READ LEVEL ACTIVATE или DEACTIVATE процедуры содержат команду SHOW GET.
    READ поддерживает опцию SHOW,  которая выполняет процедуру (подоб-
ную  UDF),  всякий  раз,  когда порождается SHOW GETS.  Процедура SHOW
часто используется для замещения @ ...  SAY.  Когда SHOW GETS порожда-
ется,  процедура  SHOW  выполняется  следом за повторным высвечиванием
всех GET полей.

    Соотношение SHOW GETS с командами SHOW GET и SHOW OBJECT.
    Все GETS повторно выводятся на экран при помощи SHOW GETS. Отдель-
ные  объекты  могут  заново высвечиваться при помощи команд SHOW GET и
SHOW OBJECT. SHOW GETS будет выполнять процедуру READ LEVEL SHOW ( по-
казать  уровень чтения).  Команды SHOW GET и SHOW OBJECT эту процедуру
не выполняют.
    SHOW OBJECT  идентична  SHOW  GET,  за исключением описания в SHOW
OBJECT объектов по их номерам;  SHOW GET описывает объекты при  помощи
, переменных памяти, элементов массива или поля базы данных.
    Для получения  дополнительной  информации  обратитесь  к  описанию
OBJNUM() и переменной памяти _CUROBJ.

    Дополнительные опции
    ENABLE | DISABLE
    ENABLE позволяет,  чтобы все объекты  были  указаны  или  выбраны.
DISABLE предотвращает все объект от указания или выбора. Объекты зано-
во высвечивается запрещающим цветом.

    LEVEL 
    Групповая команда READ может быть создана при помощи команд GET  и
READ в подпрограмме вызываемой, пока работает READ. READ могут группи-
роваться в пять уровней.
    Если LEVEL не включается, команда SHOW GETS выполняется по умолча-
нию в текущем уровне READ.  Включение LEVEL позволяет Вам повторно вы-
вести объект в уровне READ,  отличном  от  текущего.  other  than  the
current level. The numeric expression Числовое выражение  может
принимать значение 1,  2, 3, 4 или 5, соответствующее уровню READ объ-
екта,  который Вы хотите заново высветить на экране. Функция RDLEVEL()
возвращает текущий уровень READ.

    OFF | ONLY
    Когда выбрано OFF,  SHOW GETS выполняет только процедуру READ SHOW
и не отражает ни каких GET объектов.  Когда указано ONL, SHOW GETS от-
ражает только GETS; процедура READ SHOW при этом не выполняется.

    WINDOW 
    GET объекты могут помещаться в различные окна  и  активизироваться
отдельными  командами READ.Оконная опция позволяет показывать все GETS
в отдельном окне,  не высвечивая заново GETS во всех  окнах.  Включите
имя окна, где объекты должны быть заново высвечны. Если подать команду
SHOW GETS без аргументов,  SYS(2016) возвратит *.  Если подать команду
SHOW GETS с опцией WINDOW, SYS(2016) возвратит имя окна.

    LOCK
    Когда READ подается в FoxPro/LAN,  сетевой версии  FoxPro,  должна
быть проведена  попытка  заблокировать  все  записи включенные в READ.
Когда порождаются READ или READ LOCK проводится попытка  заблокировать
все записи,  включенные  в READ.  Если порождается команда READ NOLOCK
попытка блокировки записей не производится,  и все поля  включенные  в
READ приобретают статус только чтение.
    SHOW GETS означает блокировку записей в рекжиме READ.  Если порож-
дается READ или READ LOCK, SHOW GETS означает блокировку записей вклю-
ченных в READ.  Если порождается READ NOLOCK,  то SHOW GETS не  делает
попытки заблокировать записи и все поля, включенные в READ, становятся
доступными только по чтению.
    Если ключевое  слово  LOCK включено в SHOW GETS,  SHOW GETS всегда
пытается заблокировать записи, включенные в READ. Порождение SHOW GETS
LOCK позволяет заменить READ NOLOCK.
    Для более детальной информации по блокировке записей смотри описа-
ние команды READ.

    COLOR 
    COLOR SCHEME 
    Объекты могут высвечиваться повторно цветом, который Вы указываете.
Вы можете указать список  цветовых  пар  или  схему  цветов.  Смотрите
описание команды @ ... GET для получения информации по цветам для GETA.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLOSE ALL
SET TALK OFF
DEFINE WINDOW customer FROM 3,3 TO 13,57 ;
        FLOAT SHADOW DOUBLE
DEFINE WINDOW panel2 FROM 2, 61 TO 14,74 ;
        FLOAT SHADOW DOUBLE COLOR SCHEME 5
USE customer
ACTIVATE WINDOW customer NOSHOW
@ 3,3 SAY 'Company'
@ 3,14 GET customer.company SIZE 1,35
@ 5,3 SAY 'Contact'
@ 5,14 GET customer.contact SIZE 1,35
@ 7,3 SAY 'City/State'
@ 7,14 GET customer.city SIZE 1,21
@ 7,36 GET customer.state
@ 7,39 GET customer.zip
@ 0,3 SAY 'Customer #'
@ 0,15 SAY cust_id SIZE 1,6
@ 0,36 SAY 'Record #'
@ 0,46 SAY RECNO() SIZE 1,3
ACTIVATE WINDOW panel2
@ 1,2 GET act PICTURE '@*VN Top;Prior;Next;Bottom;\?Quit' ;
  SIZE 1,8,1 DEFAULT 0 VALID actvalid()
READ CYCLE SHOW readshow() COLOR ,r/bg
RELEASE WINDOWS customer,panel2

FUNCTION actvalid
DO CASE
CASE act = 1
  GO TOP
CASE ACT = 2
  SKIP -1
  IF BOF()
   GO TOP
  ENDIF
CASE ACT = 3
  SKIP 1
  IF EOF()
   GO BOTTOM
  ENDIF
CASE act = 4
  GO BOTTOM
CASE act = 5
  CLEAR READ
ENDCASE
SHOW GETS
RETURN 0

FUNCTION readshow
STORE WOUTPUT() TO currwind
IF SYS(2016) = 'customer' OR SYS(2016) = '*'
 ACTIVATE WINDOW customer SAME
 @ 0,15 SAY cust_id SIZE 1,6
 @ 0,46 SAY RECNO() SIZE 1,3
ENDIF
IF NOT EMPTY(currwind)
  ACTIVATE WINDOW (currwind) SAME
ENDIF
RETURN .T.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            SHOW MENU            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Отобразить предварительно определенную линейку меню
    Синтаксис
    SHOW MENU  [,  ... ] | ALL
      [PAD ]
      [SAVE]
    Смотри также
    ACTIVATE MENU, DEFINE MENU,CREATE MENU
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    С помощью команды SHOW MENU вы можете отобразить на экране линейку
меню (menu bar) без активации этого меню.  Меню отображается, но может
и не использоваться.  Линейка меню или пункты меню должны быть предва-
рительно определены при помощи команды DEFINE MENU,  перед тем как  их
можно будет показать.
    Дополнительные опции
     [, ... ]
    Одна или более линеек меню, помещаемые на экране или в окне.

    ALL
    Помещает все определенные в настоящий момент линейки меню на экран
или в окно.

    PAD 
    Указывает пункт меню, выделенный цветом

    SAVE
    Ведет к размещению изображений линеек меню на экране.  Эти изобра-
жения можно размещать на экране или в окне, не активизируя сами объек-
ты.  В  последующем  эти изображения можно стереть с экрана или окна с
помощью команды CLEAR.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        Пример программы         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLEAR
DEFINE MENU mainmenu
DEFINE PAD invoices  OF mainmenu PROMPT ' \
     [ENABLE | DISABLE]
     [LEVEL ]
     [PROMPT ]
     [COLOR  | COLOR SCHEME ]
    Замечания
    Новая в FoxPro 2.0
    Смотри также
    @ ... SAY/GET, CLEAR READ, _CUROBJ, OBJNUM(), RDLEVEL(), READ,
SHOW GETS,SHOW GET, SYS(2016)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда осуществляет повторный вывод на экран  единичного  GET
объекта  (поле,  кнопки выбора,  контрольная рамка,  всплывающее меню,
список или область редактирования текста). Когда значение GET поля из-
меняется (например, при перемещении на другую запись), SHOW OBJECT об-
новляет значение GET поля.
    SHOW OBJECT  может  использоваться  для повторного вывода на экран
отдельных кнопок внутри набора,  селективных или выталкивающихся  кно-
пок.  Кроме  того Вы можете изменить приглашение рамок контроля и кно-
пок, а также запретить или разрешить объект.
    Подпрограмма, содержащая SHOW OBJECT может использоваться для пов-
торного вывода на экран GET объектов.  GET LEVEL VALID или  WHEN,  или
READ  LEVEL  ACTIVATE  или  DEACTIVATE процедуры содержат команду SHOW
OBJECT.

    Соотношение SHOW GET с командами SHOW GETS и SHOW OBJECT.
    Все GETS повторно выводятся на экран при помощи SHOW GETS. Отдель-
ные  объекты  могут  заново высвечиваться при помощи команд SHOW GET и
SHOW OBJECT. SHOW GETS будет выполнять процедуру READ LEVEL SHOW ( по-
казать  уровень чтения).  Команды SHOW GET и SHOW OBJECT эту процедуру
не выполняют.
    SHOW OBJECT  идентична  SHOW  GET,  за исключением описания в SHOW
OBJECT объектов по их номерам;  SHOW GET описывает объекты при  помощи
, переменных памяти, элементов массива или поля базы данных.
    Для получения  дополнительной  информации  обратитесь  к  описанию
OBJNUM() и _CUROBJ.

    Дополнительные опции
    
    Каждому объекту соответствует его номер  .  Номера  объектов
определяются порядком   их   описания.  Каждая  кнопка  внутри  набора
представляет собой отдельный объект. Поле, контрольная рамка, всплыва-
ющее меню,  список  или область редактирования текста,  также является
единичным объектом.

    ENABLE | DISABLE
    ENABLE позволяет,  чтобы  заданный  объект  был указан или выбран.
DISABLE предотвращает заданный объект от указания или  выбора.  Объект
заново высвечивается запрещающим цветом.

    LEVEL 
    Групповая команда READ может быть создана при помощи команд GET  и
READ в подпрограмме вызываемой, пока работает READ. READ могут группи-
роваться в пять уровней.
    Если LEVEL не включается, команда SHOW OBJECT выполняется по умол-
чанию в текущем уровне READ.  Включение LEVEL позволяет  Вам  повторно
вывести  объект  в уровне READ,  отличном от текущего.  other than the
current level. The numeric expression Числовое выражение  может
принимать значение 1,  2, 3, 4 или 5, соответствующее уровню READ объ-
екта,  который Вы хотите заново высветить на экране. Функция RDLEVEL()
возвращает текущий уровень READ.

    PROMPT 
    Приглашение для  отдельной нажатой или отпущенной кнопки,  а также
для контрольной рамки может быть изменено на другое включением  PROMPT
.  замещает оригинальное приглашение для кнопки или рамки.
Атрибуты кнопки или рамки (разрешена,  запрещена,  горячий ключ, выбор
по умолчанию или выбор прерывания) могут быть также изменены включени-
ем соответствующего специальных символов в .

    В следующем примере создается контрольная рамка. Когда она выбира-
ется, выполняется опция VALID процедуры NEWPROMPT. Процедура NEWPROMPT
изменяет приглашение контрольной рамки и горячий ключ.

CLEAR
STORE 1 TO check
@4,2 GET check FUNCTION '*C \
    COLOR SCHEME 
    Объекты могут высвечиваться повторно цветом, который Вы указываете.
Вы можете указать список  цветовых  пар  или  схему  цветов.  Смотрите
описание команды @ ... GET для получения информации по цветам для GETA.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SHOW POPUP            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Отобразить предварительно определенное всплывающее меню
    Синтаксис
    SHOW POPUP  [,  ... ] | ALL
      [SAVE]
    Смотри также
    ACTIVATE POPUP, DEFINE POPUP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    С помощью  этой  команды  SHOW MENU вы можете отобразить на экране
всплывающее меню или набор таких меню без их активации. Меню отобража-
ется, но может и не использоваться. Всплывающее меню должно быть пред-
варительно определены при помощи команды DEFINE POPUP,  перед тем  как
его можно будет показать.

    Дополнительные опции
     [, ... ]
    Одно или более всплывающих меню, помещаемые на экране или в окне.

    ALL
    Помещает все  определенные  в настоящий момент всплывающие меню на
экран или в окно.

    SAVE
    Ведет к  размещению  изображений  всплывающих меню на экране.  Эти
изображения можно размещать на экране или в окне,  не активизируя сами
объекты. В последующем эти изображения можно стереть с экрана или окна
с помощью команды CLEAR.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        Пример программы         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ

CLEAR
DEFINE MENU mainmenu
DEFINE PAD invoices  OF mainmenu PROMPT ' \ [,  ... ] | ALL
     [IN [WINDOW]  | IN SCREEN]
     [REFRESH]
     [TOP | BOTTOM | SAME]
     [SAVE]
    Смотри также
    ACTIVATE WINDOW, DEFINE WINDOW
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SHOW  WINDOW контролирует отображение окон и их размещение
оносительно друг друга.  Если окно или окна были определены, но в дан-
ный  момент  времени  не активны,  то с помощью команды SHOW WINDOW их
можно разместить на экране.  Если окно или окна в данный момент не ви-
димы (hidden), то с помощью команды SHOW WINDOW их можно разместить на
экране.
    Вы также  можете  высветить  системные  окна типа командного окна,
калькулятора,  календаря/дневника и тому подобных.  Настольные принад-
лежности (типа Filer и калькулятора) должны быть активизированы, перед
тем как их можно показать на экране.  Если окно или окна в данный  мо-
мент  отображаются  на экране,  то с помощью команды SHOW WINDOW можно
изменить порядок (от самого ближнего окна к самому дальнему от  опера-
тора), в соответствии с которым они появляются на экране.
    В команде SHOW WINDOW вы не обязаны  задавать,  куда  должен  быть
направлен вывод данных. Для направления вывода данных в какое-то окно,
вы должны использовать команду ACTIVATE WINDOW.

    Дополнительные опции
     [,...]
    Одно или более окон, помещаемых на экране.

    ALL
    Все окна помещаются на экран.

    IN [WINDOW] 
    Если включена опция IN WINDOW  ,  окно  открывается
внутри родительского окна.  Характеристики родительского окна при этом
не учитываются.  Окно,  активизируемое в родительском окне,  не  может
быть перемещено за пределы родительского окна. Когда родительское окно
перемещается,  дочернее окно перемещается вместе с  ним.  Родительское
окно    должно  быть  первым определено командой DEFINE
WINDOW.

    IN SCREEN
    Эта опция позволяет исключительное помещение окна на экран, вместо
того чтобы помещать его внутри другого окна.  Окно помещается на экран
по умолчанию.

    REFRESH
    Вы можете включить опцию REFRESH для повторного высвечивания  окна
Browse.  Это  используется в локальной сети для обеспечения того,  что
каждый пользователь будет работать с текущей версией базы данных.

    TOP
    Включение слова TOP приводит к размещению  указанного  окна  перед
всеми отображаемыми в текущий момент времени окнами.

    BOTTOM
    Включение слова  BOTTOM  приводит  к размещению указанного окна за
всеми отображаемыми в текущий момент времени окнами.

    SAME
    Cлово SAME влияет только на те окна, которые были до этого показа-
ны  (использовалась  команда  SHOW) или активизированы (использовалась
команда ACTIVATE) и потом удалены с экрана с помощью команд DEACTIVATE
WINDOW или HIDE WINDOW. Команда SHOW WINDOW с параметром SAME размеща-
ет окно в стек окон в ту же самую позицию,  которую оно занимало перед
тем, как было удалено с экрана.

    SAVE
        SAVE keeps an image of a window on the screen or in another window after the window has been hidden.  Normally, windows are removed from the screen after they are hidden.  The window image may be cleared from the screen or a window with CLEAR
annot save an image of the current output window.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ

CLEAR
DEFINE WINDOW output FROM 2,1 TO 13,75 TITLE 'Output' ;
  CLOSE FLOAT GROW SHADOW ZOOM
SHOW WINDOW output

    В этом примере окно OUTPUT определяется,  а затем высвечивается на
экране. Так как оно помещается на экран командой SHOW WINDOW, выходная
информация не может быть направлена туда, пока окно не будет активным.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SIGN               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает значения  1,  -1 или 0 в зависимости от знака аргумента
.
    Синтаксис
    SIGN()
    Возвращаемое значение
    Числовое
    Смотри также
    ABS()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SIGN  () возвращает значения 1,  -1 или 0 в зависимости от
знака аргумента .
    Параметры
    
    Если  является положительным числом,  SIGN возвратит 1. Если
 является отрицательным числом,  SIGN возвратит -1.  Если 
равен нулю, SIGN возвратит значение равное 0.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Примеры                 є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 10 to num1
STORE -10 to num2
STORE 0 to zero

? SIGN(num1)
1

? SIGN(num2)
-1

? SIGN(zero)
0



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є               SIN               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает синус числового выражения
    Синтаксис
    SIN()
    Возвращаемое значение
    Числовое
    Смотри также
    ACOS(), COS(), DTOR(), RTOD(), SET DECIMALS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта тригонометрическая  функция возвращает синус числового выраже-
ния.
    Параметры
    
    Тригонометрическая функция   SIN  ()  возвращает  синус  аргумента
. Значение аргумента  вводится в радианной мере. Градусная
мера угла может быть переведена в радианную с помощью функции DTOR ().
    Результат возвращаемый функцией SIN () находится в диапозоне от -1
до 1.  Точность дробной части возвращенного значения, может быть уста-
новлена с помощью команды SET DECIMALS.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є            Пример               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? SIN(0)
0.00

? SIN(27)
0.96

? SIN(DTOR(90))
1.00

? SIN(DTOR(180))
0.00



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SIZE POPUP            є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Изменение размеров ранее определенного всплывающего меню.
    Синтаксис
    SIZE POPUP  TO , 
      | BY , 
    Замечания
    Новая в FoxPro 2.0
    Смотри также
    ACTIVATE POPUP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта команда позволяет изменить размеры всплывающего меню,  опреде-
ленного пользователем.  Размеры  всплывающего меню могут быть изменены
на указанные размеры,  или могут быть  изменены  относительно  текущих
размеров. Если пользовательское всплывающее меню определено,  его раз-
меры могут быть изменены,  причем не требуется, чтобы меню было высве-
ченным или активным.

    Дополнительные опции
    
    Всплывающее меню, размеры которого изменяются.

    TO , 
    Чтобы изменить размеры меню на указанные используйте команду  SIZE
POPUP  TO ,  .  Числовые выражения  и
 задают размеры всплывающего меню в строках и  колонках,  соот-
ветственно.

    BY , 
    Чтобы изменить размеры всплывающего меню относительно существующих
размеров используйте  опцию  BY  ,  .   и 
представляют собой изменения в размерах меню по вертикали и горизонта-
ли. Если  или  или оба положительны, размеры всплывающе-
го меню увеличиваются, в противном случае размеры уменьшаются.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLEAR
DEFINE POPUP movinpop FROM 2,2 TO 20, 17 PROMPT FILES LIKE *.PRG ;
  TITLE 'Programs'
ACTIVATE POPUP movinpop NOWAIT

ON SELECTION POPUP movinpop DO moveproc WITH PROMPT()

FOR count = 1 TO 10
  SIZE POPUP movinpop BY 0,1  && Расширить меню
NEXT

FOR count = 1 TO 30
  MOVE POPUP movinpop BY 1,0  && Переместить меню вниз
NEXT

MOVE POPUP movinpop TO -20,50 && Переместить наверх экрана

FOR count = 1 TO 22
  MOVE POPUP movinpop BY 1,0  && Переместить меню вниз
NEXT

FOR count = 1 TO 10
  SIZE POPUP movinpop BY 0,-1 && Возвратить к предыдущим размерам
NEXT

FOR count = 1 TO 48
  MOVE POPUP movinpop BY 0,-1 && Возвратить к оригинальному положению
NEXT

ACTIVATE POPUP movinpop

PROCEDURE moveproc
PARAMETERS choice
DEACTIVATE POPUP movinpop
RELEASE POPUP    movinpop
@ 2,2 SAY 'You selected the file' + choice



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SKIP               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Перемещение указателя записи базы данных
    Синтаксис
    SKIP
     []
     [IN  | ]
    Смотри также
    GO, SET SKIP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SKIP перемещает указатель записи с его текущего положения.

    Дополнительные опции
    
    Команда SKIP  без параметра  (числовое выражение) перемещает
указатель записи на следующую запись.  Если используется  индексирова-
ние, то порядок следования записей является таким же, как порядок сле-
дования значений ключа в главном индексном файле базы данных.
    Если значение  выражения  является положительным числом,  то
указатель записи перемещается вперед по файлу на  записей.  Если
значение выражения  является отрицательным числом,  то указатель
записи перемещается назад по файлу на  записей.
    Если указатель записи установлен на последнюю запись в файле и вы-
полняется команда SKIP, то функция RECNO() принимает значение, на еди-
ницу превышающее номер последней записи в файле,  а функция EOF() при-
нимает значение .T. (истина). Если указатель записи установлен на пер-
вой  записи в файле и выполняется команда SKIP -1,  то функция RECNO()
принимает значение 1, а функция BOF() принимает значение .T. (истина).

    IN  | 
    Команда SKIP  также перемещает указатель записей баз данных в дру-
гих рабочих областях. Для перемещения указателя записей в другой рабо-
чей  области,  используйте  псевдоним  или номер рабочей области
.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SELECT 2
USE Invoice
SELECT 1
USE Customer
SKIP 4 IN 2

? RECNO(2)
        5

GO BOTTOM
SKIP -5
? RECNO()
        46

    В этом  примере открыватся 2 файла баз данных в рабочих областях 1
и 2. В каждой рабочей области указатель записей перемещается и функция
RECNO() выдает текущий номер записи.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             SKPBAR              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Определяет разрешен или запрещен пункт всплывающего меню
    Синтаксис
    SKPBAR(, )
    Смотри также
    DEFINE BAR, SKPPAD(), SET SKIP OF
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    SKPBAR() возвращает логическое значение,  которое указывает разре-
шен или запрещен пункт всплывающего меню. Пункт меню может быть разре-
шен/запрещен командой SET SKIP OF.
    Если указанный  пункт меню запрещен возвращается логическое значе-
ние "истина"(.T.), в противном случае - "ложь"(.F.).

    Дополнительные опции
    
    Включает имя меню , которое содержит проверяемый пункт.

    
    Включает номер  пункта меню ,  для которого проводиться про-
верка состояния запрета/разрешения.




ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             SKPPAD              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Определяет разрешен или запрещен пункт линейки меню
    Синтаксис
    SKPPAD(, )
    Смотри также
    DEFINE PAD, SKPBAR(), SET SKIP OF
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    SKPPAD() возвращает логическое значение,  которое указывает разре-
шен  или  запрещен  пункт  линейки меню.  Пункт меню может быть разре-
шен/запрещен командой SET SKIP OF.
    Если указанный  пункт меню запрещен возвращается логическое значе-
ние "истина"(.T.), в противном случае - "ложь"(.F.).

    Дополнительные опции
    
    Включает имя линейки меню ,  которое  содержит  проверяемый
пункт.

    
    Включает имя пункта линейки меню , для которого проводиться
проверка состояния запрета/разрешения.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SORT               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Синтаксис
    SORT TO  ON  [/A] [/D] [/C]
      [,  [/A] [/D] [/C] ... ]
      [ASCENDING | DESCENDING]
      [] [FOR ] [WHILE ]
      [FIELDS ]
      [NOOPTIMIZE]
    Смотри также
    COPY, DISKSPACE(),INDEX, SYS(2020)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SORT сортирует активную базу данных  по  указанным  полям.
Отсортированная база данных записывается в файл .
    Поле или поля в текущей базе данных определяют  порядок  появления
записей в новой базе данных. Вы можете указать поля, которые определя-
ют порядок сортировки.

ВНИМАНИЕ:
    Перед выполнением  команды  SORT  убедитесь,  что  на  вашем диске
достаточно места для записи выходного файла   и  других  рабочих
файлов.  Для  выполнения  этой команды необходимо приблизительно в три
раза больше места,  чем занимает активный используемый файл базы  дан-
ных. Размер вободного пространства на диске может быть возвращен функ-
циями DISKSPACE(),  SYS(2020).  Если в процессе сортировки  не  хватит
места  на  диске появляется предупреждение,  и временные рабочие файлы
будут удалены.

    Числовые и символьные поля имеют различия, которые сказываются при
помещении в них данных.  Эти отличия проявляются во время сортировки и
индексирования базы данных.
    Числовые поля  заполняются  справа налево,  с пустым пространством
слева. Символьные поля заполняются  слева  направо,  и  неиспользуемое
пустое пространство остается справа.  Поля символьного типа, заполнен-
ные только цифрами и пробелами,  будут отсортированы не так как число-
вые.
    Например, если две записи в базе данных содержат символьное  поле,
принимающее значения 1724 и 18, и база данных сортируется по этому по-
лю, запись со значением 1724 появится раньше записи со  значением  18.
Это происходит  из-за  того,  что  FoxPro читает символьные поля слева
направо, и потому что 17 меньше чем 18. Для решения этой проблемы, пе-
ред младшим числом запишите необходимое количество лидирующих нулей (в
нашем случае 0018), или сделайте поле числовым.

    Дополнительные опции
    
    Когда база данных сортируется,  создается новая база данных. Вклю-
чите  имя  новой  базы данных .  FoxPro подразумевает расширение
.DBF для файлов базы данных Если в имя включаемого файла расширение не
входит, то автоматически назначается расширение .DBF.

    ON 
    Вы должны включить имя поля () из текущей базы данных. Со-
держимое этого поля будет определять порядок записей в новой базе дан-
ных. По умолчанию сортировка проводится в возрастающем порядке  значе-
ний поля. Сортировку по полям примечаний проводить нельзя.
   Вы можете включить дополнительные поля (,  ) влияю-
щие на порядок в новой базе данных. Первое поле  является пер-
вичным полем сортировки,  - вторичным, и так далее.
    Ниже приведен  пример  сортировки базы данных по трем полям.  База
данных CUSTOMER открывается и сортируется в новую базу CLIENTS. Записи
в COMPANY  сортируются  сначала  по названию компании ( поле COMPANY),
затем по  идентификатору  покупателя  (поле  CUST_ID),  и  наконец  по
поставщику (поле CONTACT).

    USE Customer
    SORT TO clients ON company/A, cust_id/D, contact/AC

    [/A] [/D] [/C]
    Команда SORT выполняется в возрастающем порядке [/A], если не ука-
зан убывающий порядок сортировки [/D].  Необязательный  параметр  [/C]
задает сортировку с игнорированием верхнего и нижнего регистра. Необя-
зательный параметр /C может быть использован совместно  с  параметрами
/A и /D.  Если вводятся два параметра,  используется только одна косая
черта (например /DC или /AC ).
    База данных  CUSTOMER  открывается  и  сортируется  в  новую  базу
CLIENTS.  Записи в COMPANY сортируются по полю COMPANY в  возрастающем
порядке,  по идентификатору покупателя CUST_ID в убывающем порядке,  и
по полю CONTACT в возрастающем порядке игнорируя верхний и нижний  ре-
гистры.

    USE Customer
    SORT TO clients ON company/A, cust_id/D, contact/AC

    ASCENDING | DESCENDING
    Вы можете указать порядок сортировки полей не включая опции /A или
/D Если в команде SORT было использовано ключевое слов  ASCENDING,  то
поля,  для  которых  не  указан ни парамер /A,  ни параметр /D,  будут
отсортированы в возрастающем порядке. Если же было использовано ключе-
вое слов DESCENDING,  то поля, для которых не указан ни парамер /A, ни
параметр /D,  будут отсортированы в убывающем порядке. Если не одна из
опций не включена сортируемые поля располагаются в порядке принятом по
умолчанию.

    
    Вы можете включить диапазон записей ,  которые будут подле-
жать сортировке.  Только записи входящие в  указанный  диапазон  будут
включаться в отсортированную базу данных. По умолчанию сортируются все
записи.

    FOR 
    Если включено  FOR  ,  только  записи удовлетворяющие логи-
ческому условию  включаются в сортировку.  Включение этой опции
позволяет  выполнять условную сортировку,  отфильтровывая ненужные за-
писи.
    Rushmore будет оптимизировать запрос SORT FOR,  если  явля-
ется оптимизируемым выражением. Для лучшего исполнения команды исполь-
зуйть оптимизированные выражения в опции FOR.  Вопросы оптимизации по-
ясняются в главе Оптимизация Ваших Приложений в Руководстве  разработ-
чика (Developer's Guide) FoxPro.

    WHILE 
    Если включена опция WHILE ,  записи из текущей базы  данных
включаются в сортировку пока логическое выражение  будет истин-
ное (.T.).

    FIELDS 
    В команде  SORT можно использовать ключевое слово FIELDS вместе со
списком полей .  Это позволяет приемному файлу  со-
держать некоторое подмножество полей исходной базы данных.  Если опция
FIELDS не включается,  то все поля из оригинальной базы данных включа-
ются в новую базу данных.

    NOOPTIMIZE
    Для запрещения Rushmore оптимизации необходимо указать данную  оп-
цию.  Для  получения  дополнительной  информации по оптимизации смотри
описание команды SET OPTIMIZE в данном руководстве и главу Оптимизация
Ваших   Приложений  в  Руководстве  разработчика  (Developer's  Guide)
FoxPro.




ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             SOUNDEX             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает фонетическое представление символьного выражения
    Синтаксис
    SOUNDEX()
    Возвращаемое значение
    Символьное
    Смотри также
    DIFFERENCE()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SOUNDEX () возвращает четырех-символьную строку, представ-
ленную фонетическими символами из символьного выражения .  Срав-
нивая результаты обработки двух символьных строк функцией SOUNDEX,  вы
можете определить похожи ли фонетически эти две символьных строки. Это
может быть использовано при дублировании или контроле данных.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? SOUNDEX ( "Smiht" ) = SOUNDEX ( "Smith" )
.T.

? SOUNDEX ( "Computer" )
C513

USE Customer
INDEX ON SOUNDEX ( compani ) TO Newcus
SET INDEX TO Newcus
SEEK SOUNDEX ( "Mier Co." )
? company
Mier Co.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SPACE              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает строку заполненную пробелами.
    Синтаксис
    SPACE()
    Возвращаемое значение
    Символьное
    Смотри также
    PADC() | PADL() | PADR(), REPLICATE()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SPACE () возвращает символьную строку,  заполненную 
числом пробелов.  Максимальное число пробелов которое может быть опре-
делено аргументом  в регулярной версии FoxPro - 65,504, в расши-
ренной версии FoxPro это число ограничивается только объемом памяти.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример                  є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE SPACE (15) TO Blank
? LEN ( Blank )
15



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SQRT               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает квадратный корень числового выражения.
    Синтаксис
    SQRT()
    Возвращаемое значение
    Числовое
    Смотри также
    SET DECIMALS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SQRT () возвращает квадратный корень численного  выражения
. Дробная часть возвращенного числа превышает текущее назначение
и превышает число десятичных позиций,  содержащихся в .  Текущая
точность  дробной  части  числа  может  быть  определена в команде SET
DECIMALS.

    Параметры
    
    Функция SQRT () воспринимает только не отрицательные аргументы.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Примеры                 є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? SQRT ( 4 )
2.00

? SQRT ( 57.6 * 14.3 )
28.70



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SROWS              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает число доступных строк на экране.
    Синтаксис
    SROWS()
    Возвращаемое значение
    Числовое
    Смотри также
    COL(), ROW(), SCOLS(), SET DISPLAY, WCOLS(), WROWS()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция SROWS () возвращает число доступных строк экране  дисплея.
Значение возвращаемое функцией зависит от текущего режима дисплея. Ре-
эжим дисплея устанавливается командой SET DISPLAY.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           Примеры               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? SROWS ( )
25

SET DISPLAY TO VGA50
? SROWS ( )
50




ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              STORE              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Запись данных в переменную памяти или в массив
    Синтаксис
    STORE  TO  |  
     |  = 
    Смотри также
    DIMENSION
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда STORE  устанавливает  значение  каждой переменной памяти в
списке переменных  памяти    равным  значению  выражения
.
    Символ равенства также может использоваться для  задания  значения
переменной памяти, элементу массива или для инициализации массива. Пе-
ременная памяти или массив должны располагаться  слева  от  знака  ра-
венства;  записываемое  значение  должно располагаться справа от знака
равенства.
    Заметим, что  даты  могут записываться прямо в переменную памяти с
помощью круглых скобок: STORE (12/25/89) TO XMAX.

    Дополнительные опции

    
    Выражение, значение  которого записывается в каждую переменную па-
мяти из  или в каждый элемент массива.

    
    Если при этом переменная памяти существует, команда STORE заменяет
ее прежнее значение на новое значение выражения .  Если перемен-
ная  памяти не существует,  она создается и инициализируется значением
выражения .


    Если задано  SET  COMPATIBLE  OFF,  то  команда  STORE может также
использоваться для присвоения указанного значения всем элементам неко-
торого  массива переменных памяти.  Перед тем,  как инициировать такой
массив,  он должен быть сначала описан с помощью команды DIMENSION или
декларирован с помощью команды DECLARED.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Примеры             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE DATE() TO vdate
STORE 50 TO vnum
STORE 'Hello' TO vchar
STORE .T. TO vlog
DISPLAY MEMORY LIKE v*

DECLARE x(2,2)
STORE 2 TO x
DISPLAY MEMORY LIKE x



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є               STR               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Преобразует числовое выражение в символьную строку.
    Синтаксис
    STR( [,  [,]])
    Параметры
     Преобразуемое выражение
     Длина возвращаемой символьной строки
     Количество знаков после десятичной точке, в возвращаемом
            значении
    Возвращаемое значение
    Символьное
    Смотри также
    VAL()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция STR() Преобразует числовое выражение в символьную строку.

    Параметры
    
    Является выражением которое будет преобразовано  в  строку  длиной
определенной аргументом .

    
    Указывает длину символьной строки,  возвращаемой  функцией  STR().
Длина    символьной  строки  должна учитывать и саму десятичную
точку и цифры которые появятся справа от десятичной точки.
    Если вы определили длину , как превышающую число цифр слева
от десятичной позиции, STR () заполнит лишнее место пробелами. Если вы
определили  длину  ,  как недостаточное число для цифр слева от
десятичной позиции,  STR () заполнит всю строку звездочками,  указывая
на переполнение.

    
    Указывает число цифр, которые дожны появиться справа от десятичной
точки.  Если вы определили несколько десятичных позиций, с помощью ар-
гумента ,  тогда лишние цифры будут отсечены.  Вы должны  точно
определять  длину ,  и точно указывать число десятичных позиций
.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Примеры             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? STR ( 123.456, 10, 4 )
123.4560



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             STRTRAN             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Ищет вхождение символьного выражения в другом символьном выражении
и замещает это вхождение.
    Синтаксис
    STRTRAN(,  [, ] [, ] [, ])
    Параметры
     Символьное выражение в котором осуществляется поиск.
     Символьное выражение которое замещается в .
     Символьное выражение которое замещает .
     Номер вхождения , с которого начинается замещение.
     Количество вхождений, которые будут замещаться.
    Возвращаемое значение
    Символьное
    Смотри также
    STUFF()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Эта функция осуществляет поиск вхождений символьного  выражения  в
другое символьное выражение, и замещает такое вхождение на третье сим-
вольное выражение.Результирующая строка возвращается.
    Вы можете  указать  где  замещение начинается,  и общее количество
производимых замещений.

    Параметры
    
    Символьное выражение, в котором осуществляется поиск.

    
    Символьное выражение которое ищется в строке  указывается в
. Поиск является зависимым от верхнего и нижнего регистров.

    
    Поисковое символьное выражение  заменяется символьным выра-
жением . Если  не указано, 

    
    Необязательное числовое выражение  указывает с какого вхож-
дения  в  начинается замещение.  Например,  если 
равно 4,  замещение начинается с четвертого вхождения ,  первые
три вхождения остаются неизменными.  Если не указано значение ,
то автоматически ему присваивается значение 1.

    
    Необязательное числовое  выражение    указывает  количество
вхождений  в , которые будут замещаться. Если не указано
, в этом случае все встретившиеся вхождения, будут замещены.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 'abracadabra' TO mystring

? STRTRAN(mystring,'a','z')
zbrzczdzbrz

? STRTRAN(mystring,'a','q',1,2)
qbrqcadabra


CLOSE ALL
USE Items
REPLACE ALL describe WITH STRTRAN ( describe, "chair", "chr" )
* Теперь вернем все назад.
REPLACE ALL describe WITH STRTRAN ( describe, "chr", "chair" )



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              STUFF              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает символьную  строку,  созданную  замещением   указанного
числа символов в символьном выражении.
    Синтаксис
    STUFF(, , , )
    Параметры
     Символьное выражение в котором проводится замена.
     Позиция в , с которой начинается замена
     Количество заменяемых символов
     Символьное выражение помещаемое в 
    Возвращаемое значение
    Символьное
    Смотри также
    LEFT(), PADC() | PADL() | PADR(), RIGHT(), STRTRAN(), SUBSTR()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция STUFF () возвращает символьную строку, созданную замещени-
ем  символов в символьной строке , начиная с позиции оп-
ределенной аргументом , с заменой на строку .

    Параметры
    
    Указывает символьное выражение в котором проводится замена.

    
    Числовое выражение  указывает позицию в ,  с которой
начинается замена.

    
    Указывает количество заменяемых символов.  Если  значение  
равно нулю, замещающая строка будет вставлена но без удаления символов
из существующей строки.

    
    Указывает символьное выражение помещаемое в .  Если 
представляет  собой  пустую  строку,  число  символов  определенных  в
,  будет  удалено  из обрабатываемой строки без добавления туда
каких либо новых символов.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Примеры             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE "abcdefghijklm" TO str1
STORE "12345" TO str2

? STUFF (str1,4,0,str2)              && вставка
abc12345defghijklm

? STUFF (str1,4,3,str2)              && замена
abc12345ghijklm

? STUFF (str1,4,6,"")                && удаление
abcjklm

? STUFF (str1,4,1,str2)              && замена и вставка
abc12345efghijklm

? STUFF (str1,4,4,str2)              && замена и удаление
abc12345hijklm

? STUFF (str1,4,LEN(str1),str2)      && замена и удаление остатка
abc12345





?????? ???????????