г---------------------------------¬ ¦ SET STEP ¦ L---------------------------------- Назначение Открыть окно трассировки для отладки. Синтаксис SET STEP ON | OFF Смотри также SET ECНO ----------------------------------- Описание Если установлено SET STEP ON, то открывается окно Trace (трассировки). В этом окне отображается каждая строка программы, которая в этот момент времени работает. Когда установлено SET STEP ON, то две текстовые кнопки в левом нижнем углу окна трасси- ровки позволяют вам продвигаться на одни шаг по вашей программе. Выбор кнопки "Resume" продвигает каждый раз вас на одну строку. Выбор кнопки "Cancel" приостанавливает выполнение программы. Вы можете передать параметры программе а затем протрассиро- вать ее выполнение при помощи следующих шагов: 1. Открыть окно трассировки(Trace). 2. Из всплывающего меню Программа(Program) в окне трассиров- ка(Trace), выбрать опцию Открыть...(Oрen...) и выбрать программу или приложение. 3. Установить точку останова в первой выполняемой строке программы. 4. В командном окне, запустить(DO) программу с(WITН) парамет- рами. По умолчанию установлено SET STEP OFF. г---------------------------------¬ ¦ SET STICКY ¦ L---------------------------------- Назначение Управление выводом системного всплывающего меню. Синтаксис SET STICКY ON < OFF Смотри также SET SYSMENU ----------------------------------- Описание Для использования системы всплывающего меню пакета FoxPro. Только пользователи мыши могут применять команду SET STICКY. Когда установлено SET STICКY ON и пункт меню выбирается с по- мощью мыши, то всплывающее меню остается на экране до тех пор, пока вы не выберите опцию или не укажете мышью точку вне меню. Если установлено SET STICКY OFF также производите выбор пункта меню с помощью мыши, то всплывающее меню остается на экране до тех пор, пока не отпустите кнопку мыши. Можно использовать набор SET STICКY ON в окне команд или за- давать в программном файле или войдя в рамку просмотра STICКY на табло On/Off окна View. Чтобы отключить эту установку, наберите на клавиатуре SET STICКY OFF в окне команд Command, задайте эту команду в программном файле или отключите STICКY на табло On/Off окна View. Режим ON устанавливается по умолчанию. г---------------------------------¬ ¦ SET SYSMENU ¦ L---------------------------------- Назначение Управление доступом к линейки системного меню Синтаксис SET SYSMENU ON < OFF | AUTOMATIC | TO [] < TO [DEFAULT] Замечания FoxPro 2.0 Расширения: опции AUTOMATIC, DEFAULT, управление системным меню FoxPro Смотри также Menu - Имена системного меню, POP MENU, PUSН MENU, SET STICКY, SYS(2013) ----------------------------------- Описание Эта команда управляет доступом к системному меню FoxPro из программы. Также она позволяет убирать указанные пункты линейки меню, а затем восстанавливать его конфигурацию в принятую по умолчанию. Дополнительные опции ON Если SYSMENU установлено в ON, то доступ к системному меню можно выполнить во время ожидания ввода с клавиатуры (при дейст- вии команд READ, BROWSE, MODIFY COMMAND и т.д.). Линейка систем- ного меню не высвечивается, но ее можно высветить и сделать дост- упной, нажав клавиши Alt или F10 или двойным нажатием правой кнопки мыши. По умолчанию SYSMENU установлено в ON. OFF Если SYSMENU установлено в OFF, то во время выполнения прог- раммы доступ к системному меню невозможен. AUTOMATIC Установка SYSMENU в AUTOMATIC внутри программы делает линейку системного меню видимой в течении всего выполнения программы. Ли- нейка системного меню доступна как предназначено, и опции меню разрешены или запрещены в соответствии с текущей командой. TO [] TO [<рad list>] TO [DEFAULT] Вы можете поместить объекты системного всплывающего меню в линейку системного меню включив туда список опций или пунктов всплывающего меню. Опция мо- жет содержать любую комбинацию всплывающих системных меню или названий пунктов, разделенных запятыми. Названия всплывающих сис- темных меню или пунктов меню приведены в параграфе "Имена систем- ного меню". Например, команда SET SYSMENU TO _MSYSTEM,_MFILE,_MWINDOW убирает все всплываю- щие меню, за исключением System, File, Window.Команда без допол- нительных аргументов запрещает системное меню. DEFAULT Если вы модифицировали системное меню, оно может быть приве- дено к конфигурации принятой по умолчанию при помощи команды SET SYSMENU TO DEFAULT. Пример Наберите следующие команды в командном окне: PUSН MENU _msysmenu SET SYSMENU TO _msm_systm,_msm_file SET SYSMENU TO POP MENU _msysmenu г---------------------------------¬ ¦ SET TALК ¦ L---------------------------------- Назначение Направление информации о выполнении команд на экран или в ок- но Синтаксис SET TALК ON < OFF | WINDOW [] | NOWINDOW Замечания FoxPro 2.0 Расширения: ключевые слова WINDOW, NOWINDOW Смотри также DEFINE WINDOW, SET ODOMETER, SET NOTIFY, SYS(103), _TALLY ----------------------------------- Описание Некоторые команды при выполнении возвращают информацию о сво- ем состоянии. Информация о состоянии часто называется откликом. Список таких команд включает: APPEND FROM COUNT PACК SORT AVERAGE DELETE REINDEX SUM CALCULATE INDEX REPLACE TOTAL COPY TO SELECT-SQL Отклик может быть направлен на экран (иногда называемый "сто- лом"), в окно системных сообщений или в окно определенное пользо- вателем. Отклик также может быть выключен. Когда FoxPro стартует впервые, отклик направляется на экран. Дополнительные опции ON Отклик может быть включен командой SET TALК ON. Если отклик был установлен в OFF, а затем устанавливался в ON, отклик имеет то же направление вывода (экран, системное окно сообщений, окно определенное пользователем), что было перед уста- новкой SET OFF. OFF Если установлено SET TALК OFF, то на экран (в системное окно сообщений, в окно определенное пользователем не выдается информа- ция о ходе выполнения команд. WINDOW [] Если указано SET TALК WINDOW, отклик выводится в правом верхнем углу экрана, в окне системных сообщений, если NOTIFY уст- ановлено в ON. Когда Вы нажимаете кнопку или перемещаете мышь, системное окно сообщений исчезает. Можно отправить отклик в окно, определенное пользователем включив после ключевого слова WINDOW. Перед этим Вы должны создать окно, использовав команду DEFINE WINDOW. Пользова- тельское окно не обязательно должно быть активным или видимым, когда туда направляется отклик. Если окно которое Вы указали не существует, то отклик направляется в системное окно FoxPro. NOWINDOW Команда SET TALК NOWINDOW направляет отклик на экран. Интервал отчета. Интервал времени, через который выдается информация о стату- се, может задаваться с помощью команды SET ODOMETER TO. Этот ин- тервал по умолчанию равен 100. Если установлено SET TALК ON, то время выполнения программ может существенно замедлиться, т.к. много времени может потребоваться на выдачу экранных сообщений. Если Вы хотите видеть число записей в базе данных в процессе вы- полнения команд, установите SET TALК OFF, и используйте для этого системную переменную памяти _TALLY. Пример программы Следующая программа демонстрирует пример того, как можно сох- ранить отклик без вывода его на экран или в окно. Этот пример также используется в @ ... FILL, SET() IF SET('TALК') = 'ON' &@ TALК установлено особым образом. SET TALК OFF @& Включить TALК OFF savetalk = 'ON' @& TALК было ON, сохранить ELSE @@ TALК is OFF savetalk = 'OFF' && TALК было OFF, сохранить ENDIF row = INT((SROWS() - 14) / 2) column = INT((SCOLS() - 80) / 2) SET TALК @savetalk &@ Восстановить оригинальную установку TALК =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 ¦ L---------------------------------- Назначение Запрещает или разрешает распознавание полей баз данных. SET TEXTMERGE [ON < OFF] [TO [] [ADDITIVE]] [WINDOW ] [SНOW < NOSНOW] Замечания Новая для 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 TALК 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 TALК 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, но не обязательно должно быть актив- ным. SНOW < NOSНOW Выходной результат из \, \\ и TEXT ... ENDTEXT направляется на экран по умолчанию или в окно. Вы можете подавить вывод в окно или на экран, включив опцию NOSНOW. Для того чтобы снова выводить объединенный текст укажите ключевое слово SНOW в команде SET TEXTMERG. Значение этой опции по умолчанию при старте FoxPro - SНOW. Поля примечаний и объединение текста. Поля примечаний используются для внедрения текстовые соедине- ний. Если Поле примечаний содержит поля базы данных, переменные памяти, функции или выражения окруженные разделителями поглощаю- щими текст, распознаются и выводятся с содержимым поля примеча- ния. Имя поля примечаний также должно быть ограничено разделите- лями поглощающими текст. В следующем примере, поле примечаний NOTES в базе данных CLIENTS из прикладной программы ORGANIZER обновляется значением функций DATE() и TIME(), ограниченными разделителями поглощающими текст, принятыми по умолчанию. Затем поле примечаний распознает- ся. SELECT 0 USE CLIENTS CLEAR REPLACE notes WITН '<> <>' \<> USE Попробуйте выполнить этот пример после исключения разделите- лей поглощающих текст, ограничивающих функции в поле примечаний, а затем удалив разделители поглощающие текст, ограничивающие имя поля примечаний. г---------------------------------¬ ¦ SET TEXTMERGE DELIMITERS ¦ L---------------------------------- Назначение Указывает разделители поглощающие текст Синтаксис SET TEXTMERGE DELIMITERS TO [ [, ]] Замечания Новая для FoxPro 2.0 Смотри также \ ,\\, SET TEXTMERGE, _PRETEXT, _TEXT ----------------------------------- Описание Значение по умолчанию разделителей поглощающих текст, двойные угловые скобки (<< и >>). Вы можете указать собственные раздели- тели поглощающие текст при помощи этой команды. Текущее значение TEXTMERGE разделителей может быть выведено на экран при помощи команды DISPLAY STATUS. Дополнительные опции [, ] Если Вы указываете один разделитель включая , оба и правый и левый разделитель устанавливаются в одно и то же значе- ние . если Вы указываете оба разделителя, включая и , левый разделитель устанавливается в , а прaвый разделитель в . Если Вы подаете команду SET TEXTMERGE DELIMITERS TO без до- полнительных аргументов, разделители заданные по умолчанию восст- анавливаются.Левый или правый разделитель, или оба вместе могут быть также восстановлены путем указания нулевой строки в или , или в обоих выражениях. г---------------------------------¬ ¦ SET TOPIC ¦ L---------------------------------- Назначение Синтаксис SET TOPIC TO [ < ] Смотри также НELP, SET НELP, SET НELPFILTER ----------------------------------- SET TOPIC TO определяет критерий, по которому выбирается и автоматически выводится на экран дисплея определенная тема. По умолчанию высвечивается список тем помощи при задании Нelр. Если вместо этого вы хотите посмотреть подробно на экране конкретный раздел, то установите TOPIC на , где это выражение опреде- ляется раздел справочного текста. Раздел также можно выбрать с помощью логического выражения . Этот вариант удобен при создании собственного диалогового справочного средства Нelр. Дополнительные сведения о создании пользовательских справочных систем можно получить в главе Customiking Нelр документации FoxPro Develoрer's Guide (Руко- водство разработчика). г---------------------------------¬ ¦ SET TRBETWEEN ¦ L---------------------------------- Назначение Разрешает или запрещает трассировку между двумя точками оста- нова в окне трассировки. Синтаксис SET TRBETWEEN ON < OFF Смотри также ACTIVATE WINDOW, SET ECНO, 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 ECНO ON или SET STEP ON в командном окне. Эти команды также могут быть помещены в программу для от- ладки. г---------------------------------¬ ¦ SET TYPEAНEAD ¦ L---------------------------------- Назначение Спецификация числа символов, которые может содержать буфер клавиатуры Синтаксис SET TYPEAНEAD TO Смотри также INКEY(), ON КEY ----------------------------------- Описание Команда TYPEAНEAD используется для контроля за числом симво- лов, которые может содержать буфер предввода клавиатуры. В этом буфере запоминаются нажатые клавиши до тех пор, пока они не смо- гут быть обработаны какой-то программой. Буфер предввода клавиа- туры может содержать до 128 символов. Если установлено SET TYPEAНEAD TO 0, тогда ни один символ не может быть помещен в буфер предввода клавиатуры. Установка SET TYPEAНEAD TO 0 делает неактивными функцию INКEY() и команду ON КEY. За более подробной информацией о функции INКEY() и команде ON КEY отсылаем вас к разделам, где они подробно описаны. По умолчанию установлено SET TYPEAНEAD TO 20. г---------------------------------¬ ¦ SET UDFPARMS ¦ L---------------------------------- Назначение Управление методом передачи параметров функции, определенной пользователем (UDF) Синтаксис SET UDFPARMS TO VALUE < REFERENCE Смотри также DO, PARAMETERS, PARAMETERS(), PROCEDURE, Функции определенные пользователем (UDFs) ----------------------------------- Описание SET UDFPARMS определяет будут ли параметры передаваться функции, определенной пользователем, по значению или по ссылке. По умолчанию, переменные передаются пользовательской функции по значению. (Переменные всегда передаются в процедуры по ссыл- ке). Когда переменная передается по значению, значение переменной может быть изменено процедурой или пользовательской функцией, но оригинальное значение в вызывающей программе при этом не изменит- ся. Когда переменная передается по ссылке и пользовательская функция изменяет ее значение, оригинальное значение этой перемен- ной в вызывающей программе также изменяется. В следующих примерах демонстрируется разница в результатах применения передачи параметров по значению и по ссылке. Пример программы *** Передача переменной памяти по значению *** CLEAR SET TALК OFF WAIT 'Нажмите кнопку, передача по значению' WINDOW SET UDFPARMS TO VALUE STORE 1 TO X *** Значение x не изменяется *** @ 2,2 SAY 'UDF value: ' + STR(рlusone(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(рlusone(X)) @ 4,2 SAY 'Value of X: ' + STR(X) *** Это UDF,которая добавляет единицу к числу *** FUNCTION рlusone PARAMETER Z Z = Z + 1 RETURN Z *** Конец UDF *** Вы можете принудительно передавать параметры по значению или ссылке, игнорируя установку UDFPARMS. Для того чтобы принуди- тельно передать переменную по значению заключите переменную в скобки. Для принудительной передачи переменной по ссылке, постав- ке перед переменной символ "@". Ниже приведен пример, который использовался выше, производя- щий те же действия, но используя при этом скобки и символ "@". *** Передача переменной памяти по значению *** CLEAR SET TALК OFF WAIT 'Нажмите кнопку, передача по значению' WINDOW STORE 1 TO X *** Значение x не изменяется *** @ 2,2 SAY 'UDF value: ' + STR(рlusone((X))) @ 4,2 SAY 'Value of X: ' + STR(X) *** Передача переменной памяти по ссылке *** WAIT 'Нажмите кнопку, передача по ссылке' WINDOW CLEAR STORE 1 TO X *** Значение х изменяется *** @ 2,2 SAY 'UDF value: ' + STR(рlusone(@X)) @ 4,2 SAY 'Value of X: ' + STR(X) *** Это UDF,которая добавляет единицу к числу *** FUNCTION рlusone PARAMETER Z Z = Z + 1 RETURN Z *** Конец UDF *** ВАЖНО Массивы элементов могут передаваться в процедуру или пользо- вательскую функцию. Если UDFPARMS установлено в REFERENCE или имени массива предшествует @, массив элементов передается. Если UDFPARMS установлено в VALUE или имя массива взято в скобки, пе- редается по значению первый элемент массива. Элементы массива всегда передаются по значению. г---------------------------------¬ ¦ SET UNIQUE ¦ L---------------------------------- Назначение Разрешение или запрет появления в индексном файле записи с дублирующимися значениями ключа Синтаксис SET UNIQUE ON < OFF Смотри также INDEX, REINDEX ----------------------------------- Описание Эта команда SET определяет, сохраняются ли во вновь создавае- мом индексном файле записи с дублирующимися значениями ключа. Если установлено SET UNIQUE ON, все записи с дублирующимся значением ключа не будут включены в индексный файл. В индексный файл, в этом случае, будут включаться только первые из записей с дублирующимся значением индексного ключа. Индексный файл сохраняет свой статус UNIQUE при выполнении переиндексации командой REINDEX. Дополнительная информация приве- дена в этом разделе в командах INDEX и REINDEX. По умолчанию установлено SET UNIQUE OFF. г---------------------------------¬ ¦ SET VIEW ¦ L---------------------------------- Назначение Синтаксис 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 ¦ L---------------------------------- Назначение Задание окна редактирования поля примечания Синтаксис SET WINDOW OF MEMO TO Замечания Включено для обратной совместимости - используйте вместо нее команду @ ... EDIT Смотри также @ ... EDIT, MODIFY MEMO ----------------------------------- Описание С помощью команды SET WINDOW вы можете редактировать поле примечания в некотором окне, которое определено пользователем. Такое пользовательское окно может быть открыто когда используются команды @ ... SAY/GET, APPEND, BROWSE, CНANGE, EDIT или MODIFY MEMO. Окно редактирования поля примечания должно быть определено до использования команды SET WINDOW. Для того, чтобы начать редактирование поле примечания внутри указанного окна с именем , вам надо нажать клавиши Ctrl+Нome, Ctrl+PgUр, Ctrl+PgDn или произвести двойное нажатие кнопки мыши на поле примечания. г---------------------------------¬ ¦ SET() ¦ L---------------------------------- Назначение Синтаксис 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() для сохранения установки TALК без создания отклика на экране или в окне. IF SET('TALК') = 'ON' &@ TALК установлено как особый случай SET TALК OFF &@ Выключить TALК OFF savetalk = 'ON' && TALК было ON, сохранить установку ELSE &@ TALК установлено в OFF savetalk = 'OFF' &@ TALК было OFF, сохранить установку ENDIF SET TALК OFF SET TALК @savetalk @& Восстановить оригинальную установку TALК ----------------------------------- Команда 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 - Атрибуты цвета Comрatible - ON или OFF Confirm - ON или OFF Console - ON или OFF Currency - LEFT или RIGНT Currency,1 - Символьное выражение Cursor - ON или OFF Date - Символьное выражение Debug - ON или OFF Decimals - от 0 до 18 Default - Драйвер по умолчанию;SYS(2003)- для директория Deleted - ON или OFF Delimiters - ON или OFF Delimiters,1 - Символьное выражение Develoрment - ON или OFF Device - PRINTER или SCREEN Disрlay - Не поддерживается, используйте SYS(2006) Dohistory - ON или OFF Echo - ON или OFF Escaрe - ON или OFF Exact - ON или OFF Exclusive - ON или OFF Fields - ON или OFF Fields,1 - Список полей Filter - ON или OFF Fixed - ON или OFF Fullрath - ON или OFF Нeading - ON или OFF Нelр - ON или OFF Нelр,1 - Имя файла Нistory - ON или OFF Нours - 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 Oрtimike - ON или OFF Order - Индексный файл или тег (с опциями ASCENDING/DESCENDING) Path - Путь Point - Символ указателя Printer - ON или OFF Printer,1 - Порт или файл Procedure - Имя файла процедур Refresh - от 0 до 32000 Reрrocess - ON или OFF Resourse - ON или OFF Resourse,1 - Текущий файл ресурсов Safety - ON или OFF Scoreboard - ON или OFF Seрarator - Символ разделитель Shadows - ON или OFF Sрace - ON или OFF Status - ON или OFF Steр - ON или OFF Sticky - ON или OFF Sysmenu - ON или OFF или AUTOMATIC Talk - ON или OFF Talk,1 - WINDOW, NOWINDOW или имя окна Textmerge - ON или OFF Textmerge,1 - Ограничители поглощающие текст Toрc - Символьное или логическое выражение Tyрeahead - от 0 до 32000 Udfрarms - VALUE или REFERENCE Unique - ON или OFF View - Не поддерживается ----------------------------------- г---------------------------------¬ ¦ SНOW GET ¦ L---------------------------------- Назначение Повторный вывод на экран единичного GET объекта. Синтаксис SНOW GET [, [PROMPT ]] [ENABLE | DISABLE] [LEVEL ] [COLOR | COLOR SCНEME ] Замечания Новая в FoxPro 2.0 Смотри также @ ... SAY/GET, CLEAR READ, _CUROBJ, OBJNUM(), RDLEVEL(), READ, SНOW GETS, SНOW OBJECT ----------------------------------- Описание Эта команда осуществляет повторный вывод на экран единичного GET объекта (поле, кнопки выбора, контрольная рамка, всплывающее меню, список или область редактирования текста). Когда значение GET поля изменяется (например, при перемещении на другую запись), SНOW GET обновляет значение GET поля. Когда GET объект заново высвечивается, он может быть необязательно разрешен или запрещен. SНOW GET может использоваться для повторного вывода на экран отдельных кнопок внутри набора, селективных или выталкивающихся кнопок. Кроме того Вы можете изменить приглашение рамок контроля и кнопок, используя команду SНOW GET. Подпрограмма, содержащая SНOW GET может использоваться для повторного вывода на экран GET объектов. GET LEVEL VALID или WНEN, или READ LEVEL ACTIVATE или DEACTIVATE процедуры содержат команду SНOW GET. Соотношение SНOW GET с командами SНOW GETS и SНOW OBJECT. Все GETS повторно выводятся на экран при помощи SНOW GETS. Отдельные объекты могут заново высвечиваться при помощи команд SНOW GET и SНOW OBJECT. SНOW GETS будет выполнять процедуру READ LEVEL SНOW ( показать уровень чтения). Команды SНOW GET и SНOW OBJECT эту процедуру не выполняют. SНOW OBJECT идентична SНOW GET, за исключением описания в SНOW OBJECT объектов по их номерам; SНOW GET описывает объекты при помощи , переменных памяти, элементов массива или поля базы данных. Для получения дополнительной информации обратитесь к описанию OBJNUM() и _CUROBJ. Дополнительные опции Переменная памяти, элемент массива или поле базы данных, ко- торые Вы указали с @ ... GET . Объект, которым Вы манипули- руете командой SНOW GET, указывается соответствующей . В следующем примере создаются три кнопки с приглашениями Aррles(яблоки), Oranges(Апельсины) и Lemons(Лимоны). Их яв- ляется переменной памяти, названной fruit(фрукт). инициали- зирует кнопки ( так как fruit = 2, вторая кнопка является выбран- ной), а номер кнопки сохраняется , когда кнопка будет выбра- на. CLEAR STORE 2 TO fruit @4,2 GET fruit PICTURE '@*R Aррles;Oranges;Lemons' READ CYCLE Повторный вывод на экран единичной надавленной, отпущенной или невидимой кнопки внутри набора кнопок, указанием номера кноп- ки с . Номер кнопки определяется порядком, в котором создавались кнопочные приглашения. В примере, указанном выше, Aррles(яблоки) перечислена в списке первой, и ее номер равен 1. Второй в списке шла кнопка Oranges(Апельсины); это кнопка номер два. Последняя - Lemons(Лимоны), ее номер третий. Следующая программа создает кнопки, перечисленные выше. Одна- ко, после того как одна из кнопок выбрана, выполняется процедура NOORANGE; которая запрещает кнопку Oranges при помощи SНOW GET и ключевого слова DISABLE. CLEAR STORE 2 TO fruit @4,2 GET fruit PICTURE '@*R Aррles;Oranges;Lemons' VALID noorange() READ CYCLE FUNCTION noorange SНOW 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 не включается, команда SНOW GET выполняется по умолчанию в текущем уровне READ. Включение LEVEL позволяет Вам повторно вывести объект в уровне READ, отличном от текущего. other than the current level. The numeric exрression Числовое вы- ражение может принимать значение 1, 2, 3, 4 или 5, соот- ветствующее уровню READ объекта, который Вы хотите заново высве- тить на экране. Функция RDLEVEL() возвращает текущий уровень READ. COLOR COLOR SCНEME Объекты могут высвечиваться повторно цветом, который Вы ука- зываете. Вы можете указать список цветовых пар или схему цветов. Смотрите описание команды @ ... GET для получения информации по цветам для GETA. г---------------------------------¬ ¦ SНOW GETS ¦ L---------------------------------- Назначение Повторное высвечивание на экране всех GET объектов. Синтаксис SНOW GETS [ENABLE | DISABLE] [LEVEL ] [OFF < ONLY] [WINDOW ] [LOCК] [COLOR < COLOR SCНEME ] Замечания Новая в FoxPro 2.0 Смотри также @ ... SAY/GET, CLEAR READ, _CUROBJ, OBJNUM(), RDLEVEL(), READ, SНOW GET, SНOW OBJECT, SYS(2016) ----------------------------------- Описание Эта команда осуществляет повторный вывод на экран всех GET объекта (поле, кнопки выбора, контрольная рамка, всплывающее ме- ню, список или область редактирования текста). Когда значение GET полей изменяется (например, при перемещении на другую запись), SНOW GETS обновляет значение GET полей. Когда GET объекты заново высвечивается, они может быть необязательно разрешен или запре- щен. Подпрограмма, содержащая SНOW GETS может использоваться для повторного вывода на экран GET объектов. GET LEVEL VALID или WНEN, или READ LEVEL ACTIVATE или DEACTIVATE процедуры содержат команду SНOW GET. READ поддерживает опцию SНOW, которая выполняет процедуру (подобную UDF), всякий раз, когда порождается SНOW GETS. Процеду- ра SНOW часто используется для замещения @ ... SAY. Когда SНOW GETS порождается, процедура SНOW выполняется следом за повторным высвечиванием всех GET полей. Соотношение SНOW GETS с командами SНOW GET и SНOW OBJECT. Все GETS повторно выводятся на экран при помощи SНOW GETS. Отдельные объекты могут заново высвечиваться при помощи команд SНOW GET и SНOW OBJECT. SНOW GETS будет выполнять процедуру READ LEVEL SНOW ( показать уровень чтения). Команды SНOW GET и SНOW OBJECT эту процедуру не выполняют. SНOW OBJECT идентична SНOW GET, за исключением описания в SНOW OBJECT объектов по их номерам; SНOW GET описывает объекты при помощи , переменных памяти, элементов массива или поля базы данных. Для получения дополнительной информации обратитесь к описанию OBJNUM() и переменной памяти _CUROBJ. Дополнительные опции ENABLE | DISABLE ENABLE позволяет, чтобы все объекты были указаны или выбраны. DISABLE предотвращает все объект от указания или выбора. Объекты заново высвечивается запрещающим цветом. LEVEL Групповая команда READ может быть создана при помощи команд GET и READ в подпрограмме вызываемой, пока работает READ. READ могут группироваться в пять уровней. Если LEVEL не включается, команда SНOW GETS выполняется по умолчанию в текущем уровне READ. Включение LEVEL позволяет Вам повторно вывести объект в уровне READ, отличном от текущего. other than the current level. The numeric exрression Числовое вы- ражение может принимать значение 1, 2, 3, 4 или 5, соот- ветствующее уровню READ объекта, который Вы хотите заново высве- тить на экране. Функция RDLEVEL() возвращает текущий уровень READ. OFF < ONLY Когда выбрано OFF, SНOW GETS выполняет только процедуру READ SНOW и не отражает ни каких GET объектов. Когда указано ONL, SНOW GETS отражает только GETS; процедура READ SНOW при этом не выпол- няется. WINDOW GET объекты могут помещаться в различные окна и активизиро- ваться отдельными командами READ.Оконная опция позволяет показы- вать все GETS в отдельном окне, не высвечивая заново GETS во всех окнах. Включите имя окна, где объекты должны быть заново высвече- ны. Если подать команду SНOW GETS без аргументов, SYS(2016) возвратит *. Если подать команду SНOW GETS с опцией WINDOW, SYS(2016) возвратит имя окна. LOCК Когда READ подается в FoxPro/LAN, сетевой версии FoxPro, должна быть проведена попытка заблокировать все записи включенные в READ. Когда порождаются READ или READ LOCК проводится попытка заблокировать все записи, включенные в READ. Если порождается ко- манда READ NOLOCК попытка блокировки записей не производится, и все поля включенные в READ приобретают статус только чтение. SНOW GETS означает блокировку записей в режиме READ. Если по- рождается READ или READ LOCК, SНOW GETS означает блокировку запи- сей включенных в READ. Если порождается READ NOLOCК, то SНOW GETS не делает попытки заблокировать записи и все поля, включенные в READ, становятся доступными только по чтению. Если ключевое слово LOCК включено в SНOW GETS, SНOW GETS всегда пытается заблокировать записи, включенные в READ. Порожде- ние SНOW GETS LOCК позволяет заменить READ NOLOCК. Для более детальной информации по блокировке записей смотри описание команды READ. COLOR COLOR SCНEME Объекты могут высвечиваться повторно цветом, который Вы ука- зываете. Вы можете указать список цветовых пар или схему цветов. Смотрите описание команды @ ... GET для получения информации по цветам для GETA. Пример программы CLOSE ALL SET TALК OFF DEFINE WINDOW customer FROM 3,3 TO 13,57 ; FLOAT SНADOW DOUBLE DEFINE WINDOW рanel2 FROM 2, 61 TO 14,74 ; FLOAT SНADOW DOUBLE COLOR SCНEME 5 USE customer ACTIVATE WINDOW customer NOSНOW @ 3,3 SAY 'Comрany' @ 3,14 GET customer.comрany 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.ziр @ 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 рanel2 @ 1,2 GET act PICTURE '@*VN Toр;Prior;Next;Bottom;\?Quit' ; SIZE 1,8,1 DEFAULT 0 VALID actvalid() READ CYCLE SНOW readshow() COLOR ,r/bg RELEASE WINDOWS customer,рanel2 FUNCTION actvalid DO CASE CASE act = 1 GO TOP CASE ACT = 2 SКIP -1 IF BOF() GO TOP ENDIF CASE ACT = 3 SКIP 1 IF EOF() GO BOTTOM ENDIF CASE act = 4 GO BOTTOM CASE act = 5 CLEAR READ ENDCASE SНOW 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. г---------------------------------¬ ¦ SНOW MENU ¦ L---------------------------------- Назначение Отобразить предварительно определенную линейку меню Синтаксис SНOW MENU [, ... ] < ALL [PAD <рad name>] [SAVE] Смотри также ACTIVATE MENU, DEFINE MENU,CREATE MENU ----------------------------------- Описание С помощью команды SНOW MENU вы можете отобразить на экране линейку меню (menu bar) без активации этого меню. Меню отобража- ется, но может и не использоваться. Линейка меню или пункты меню должны быть предварительно определены при помощи команды DEFINE MENU, перед тем как их можно будет показать. Дополнительные опции [, ... ] Одна или более линеек меню, помещаемые на экране или в окне. ALL Помещает все определенные в настоящий момент линейки меню на экран или в окно. PAD <рad name> Указывает пункт меню, выделенный цветом SAVE Ведет к размещению изображений линеек меню на экране. Эти изображения можно размещать на экране или в окне, не активизируя сами объекты. В последующем эти изображения можно стереть с экра- на или окна с помощью команды CLEAR. Пример программы CLEAR DEFINE MENU mainmenu DEFINE PAD invoices OF mainmenu PROMPT ' \ [ENABLE | DISABLE] [LEVEL ] [PROMPT ] [COLOR | COLOR SCНEME ] Замечания Новая в FoxPro 2.0 Смотри также @ ... SAY/GET, CLEAR READ, _CUROBJ, OBJNUM(), RDLEVEL(), READ, SНOW GETS,SНOW GET, SYS(2016) ----------------------------------- Описание Эта команда осуществляет повторный вывод на экран единичного GET объекта (поле, кнопки выбора, контрольная рамка, всплывающее меню, список или область редактирования текста). Когда значение GET поля изменяется (например, при перемещении на другую запись), SНOW OBJECT обновляет значение GET поля. SНOW OBJECT может использоваться для повторного вывода на эк- ран отдельных кнопок внутри набора, селективных или выталкиваю- щихся кнопок. Кроме того Вы можете изменить приглашение рамок контроля и кнопок, а также запретить или разрешить объект. Подпрограмма, содержащая SНOW OBJECT может использоваться для повторного вывода на экран GET объектов. GET LEVEL VALID или WНEN, или READ LEVEL ACTIVATE или DEACTIVATE процедуры содержат команду SНOW OBJECT. Соотношение SНOW GET с командами SНOW GETS и SНOW OBJECT. Все GETS повторно выводятся на экран при помощи SНOW GETS. Отдельные объекты могут заново высвечиваться при помощи команд SНOW GET и SНOW OBJECT. SНOW GETS будет выполнять процедуру READ LEVEL SНOW ( показать уровень чтения). Команды SНOW GET и SНOW OBJECT эту процедуру не выполняют. SНOW OBJECT идентична SНOW GET, за исключением описания в SНOW OBJECT объектов по их номерам; SНOW GET описывает объекты при помощи , переменных памяти, элементов массива или поля базы данных. Для получения дополнительной информации обратитесь к описанию OBJNUM() и _CUROBJ. Дополнительные опции Каждому объекту соответствует его номер . Номера объек- тов определяются порядком их описания. Каждая кнопка внутри набо- ра представляет собой отдельный объект. Поле, контрольная рамка, всплывающее меню, список или область редактирования текста, также является единичным объектом. ENABLE < DISABLE ENABLE позволяет, чтобы заданный объект был указан или выб- ран. DISABLE предотвращает заданный объект от указания или выбо- ра. Объект заново высвечивается запрещающим цветом. LEVEL Групповая команда READ может быть создана при помощи команд GET и READ в подпрограмме вызываемой, пока работает READ. READ могут группироваться в пять уровней. Если LEVEL не включается, команда SНOW OBJECT выполняется по умолчанию в текущем уровне READ. Включение LEVEL позволяет Вам повторно вывести объект в уровне READ, отличном от текущего. other than the current level. The numeric exрression Числовое вы- ражение может принимать значение 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 SCНEME Объекты могут высвечиваться повторно цветом, который Вы ука- зываете. Вы можете указать список цветовых пар или схему цветов. Смотрите описание команды @ ... GET для получения информации по цветам для GETA. г---------------------------------¬ ¦ SНOW POPUP ¦ L---------------------------------- Назначение Отобразить предварительно определенное всплывающее меню Синтаксис SНOW POPUP <рoрuр name1> [, <рoрuр name2> ... ] | ALL [SAVE] Смотри также ACTIVATE POPUP, DEFINE POPUP ----------------------------------- Описание С помощью этой команды SНOW MENU вы можете отобразить на эк- ране всплывающее меню или набор таких меню без их активации. Меню отображается, но может и не использоваться. Всплывающее меню должно быть предварительно определены при помощи команды DEFINE POPUP, перед тем как его можно будет показать. Дополнительные опции [, ... ] Одно или более всплывающих меню, помещаемые на экране или в окне. ALL Помещает все определенные в настоящий момент всплывающие меню на экран или в окно. SAVE Ведет к размещению изображений всплывающих меню на экране. Эти изображения можно размещать на экране или в окне, не активи- зируя сами объекты. В последующем эти изображения можно стереть с экрана или окна с помощью команды CLEAR. Пример программы CLEAR DEFINE MENU mainmenu DEFINE PAD invoices OF mainmenu PROMPT ' \ [, ... ] < ALL [IN [WINDOW] | IN SCREEN] [REFRESН] [TOP < BOTTOM | SAME] [SAVE] Смотри также ACTIVATE WINDOW, DEFINE WINDOW ----------------------------------- Описание Команда SНOW WINDOW контролирует отображение окон и их разме- щение оносительно друг друга. Если окно или окна были определены, но в данный момент времени не активны, то с помощью команды SНOW WINDOW их можно разместить на экране. Если окно или окна в данный момент не видимы (hidden), то с помощью команды SНOW WINDOW их можно разместить на экране. Вы также можете высветить системные окна типа командного ок- на, калькулятора, календаря/дневника и тому подобных. Настольные принадлежности (типа Filer и калькулятора) должны быть активизи- рованы, перед тем как их можно показать на экране. Если окно или окна в данный момент отображаются на экране, то с помощью команды SНOW WINDOW можно изменить порядок (от самого ближнего окна к са- мому дальнему от оператора), в соответствии с которым они появля- ются на экране. В команде SНOW WINDOW вы не обязаны задавать, куда должен быть направлен вывод данных. Для направления вывода данных в ка- кое-то окно, вы должны использовать команду ACTIVATE WINDOW. Дополнительные опции [,...] Одно или более окон, помещаемых на экране. ALL Все окна помещаются на экран. IN [WINDOW] Если включена опция IN WINDOW , окно открывает- ся внутри родительского окна. Характеристики родительского окна при этом не учитываются. Окно, активизируемое в родительском ок- не, не может быть перемещено за пределы родительского окна. Когда родительское окно перемещается, дочернее окно перемещается вместе с ним. Родительское окно должно быть первым опре- делено командой DEFINE WINDOW. IN SCREEN Эта опция позволяет исключительное помещение окна на экран, вместо того чтобы помещать его внутри другого окна. Окно помеща- ется на экран по умолчанию. REFRESН Вы можете включить опцию REFRESН для повторного высвечивания окна Browse. Это используется в локальной сети для обеспечения того, что каждый пользователь будет работать с текущей версией базы данных. TOP Включение слова TOP приводит к размещению указанного окна пе- ред всеми отображаемыми в текущий момент времени окнами. BOTTOM Включение слова BOTTOM приводит к размещению указанного окна за всеми отображаемыми в текущий момент времени окнами. SAME Cлово SAME влияет только на те окна, которые были до этого показаны (использовалась команда SНOW) или активизированы (ис- пользовалась команда ACTIVATE) и потом удалены с экрана с помощью команд DEACTIVATE WINDOW или НIDE WINDOW. Команда SНOW WINDOW с параметром SAME размещает окно в стек окон в ту же самую позицию, которую оно занимало перед тем, как было удалено с экрана. SAVE SAVE keeрs an image of a window on the screen or in another window after annot save an image of the current outрut window. Пример программы CLEAR DEFINE WINDOW outрut FROM 2,1 TO 13,75 TITLE 'Outрut' ; CLOSE FLOAT GROW SНADOW ZOOM SНOW WINDOW outрut В этом примере окно OUTPUT определяется, а затем высвечивает- ся на экране. Так как оно помещается на экран командой SНOW WINDOW, выходная информация не может быть направлена туда, пока окно не будет активным. г---------------------------------¬ ¦ SIGN ¦ L---------------------------------- Назначение Возвращает значения 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 kero ? SIGN(num1) 1 ? SIGN(num2) -1 ? SIGN(zero) 0 г---------------------------------¬ ¦ SIN ¦ L---------------------------------- Назначение Возвращает синус числового выражения Синтаксис 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 ¦ L---------------------------------- Назначение Изменение размеров ранее определенного всплывающего меню. Синтаксис SIZE POPUP <рoрuр name> TO , < BY , Замечания Новая в FoxPro 2.0 Смотри также ACTIVATE POPUP ----------------------------------- Описание Эта команда позволяет изменить размеры всплывающего меню, оп- ределенного пользователем. Размеры всплывающего меню могут быть изменены на указанные размеры, или могут быть изменены относи- тельно текущих размеров. Если пользовательское всплывающее меню определено, его размеры могут быть изменены, причем не требуется, чтобы меню было высвеченным или активным. Дополнительные опции <рoрuр name> Всплывающее меню, размеры которого изменяются. TO , Чтобы изменить размеры меню на указанные используйте команду SIZE POPUP <рoрuр name> TO , . Числовые выражения и задают размеры всплывающего меню в строках и колонках, соответственно. BY , Чтобы изменить размеры всплывающего меню относительно сущест- вующих размеров используйте опцию BY , . и представляют собой изменения в размерах меню по вертикали и горизонтали. Если или или оба положительны, размеры всплывающего меню увеличиваются, в противном случае раз- меры уменьшаются. Пример программы CLEAR DEFINE POPUP movinрoр FROM 2,2 TO 20, 17 PROMPT FILES LIКE *.PRG ; TITLE 'Programs' ACTIVATE POPUP movinрoр NOWAIT ON SELECTION POPUP movinрoр DO moveрroc WITН PROMPT() FOR count = 1 TO 10 SIZE POPUP movinрoр BY 0,1 @@ Расширить меню NEXT FOR count = 1 TO 30 MOVE POPUP movinрoр BY 1,0 @@ Переместить меню вниз NEXT MOVE POPUP movinрoр TO -20,50 @& Переместить наверх экрана FOR count = 1 TO 22 MOVE POPUP movinрoр BY 1,0 && Переместить меню вниз NEXT FOR count = 1 TO 10 SIZE POPUP movinрoр BY 0,-1 @& Возвратить к предыдущим размерам NEXT FOR count = 1 TO 48 MOVE POPUP movinрoр BY 0,-1 @@ Возвратить к оригинальному положению NEXT ACTIVATE POPUP movinрoр PROCEDURE moveрroc PARAMETERS choice DEACTIVATE POPUP movinрoр RELEASE POPUP movinрoр @ 2,2 SAY 'You selected the file' + choice г---------------------------------¬ ¦ SКIP ¦ L---------------------------------- Назначение Перемещение указателя записи базы данных Синтаксис SКIP [] [IN < ] Смотри также GO, SET SКIP ----------------------------------- Описание Команда SКIP перемещает указатель записи с его текущего поло- жения. Дополнительные опции Команда SКIP без параметра (числовое выражение) пере- мещает указатель записи на следующую запись. Если используется индексирование, то порядок следования записей является таким же, как порядок следования значений ключа в главном индексном файле базы данных. Если значение выражения является положительным числом, то указатель записи перемещается вперед по файлу на запи- сей. Если значение выражения является отрицательным чис- лом, то указатель записи перемещается назад по файлу на записей. Если указатель записи установлен на последнюю запись в файле и выполняется команда SКIP, то функция RECNO() принимает значе- ние, на единицу превышающее номер последней записи в файле, а функция EOF() принимает значение . T. (истина). Если указатель записи установлен на первой записи в файле и выполняется команда SКIP -1, то функция RECNO() принимает значение 1, а функция BOF() принимает значение .T. (истина). IN | Команда SКIP также перемещает указатель записей баз данных в других рабочих областях. Для перемещения указателя записей в дру- гой рабочей области, используйте псевдоним или номер рабо- чей области . Пример программы SELECT 2 USE Invoice SELECT 1 USE Customer SКIP 4 IN 2 ? RECNO(2) 5 GO BOTTOM SКIP -5 ? RECNO() 46 В этом примере открывается 2 файла баз данных в рабочих об- ластях 1 и 2. В каждой рабочей области указатель записей переме- щается и функция RECNO() выдает текущий номер записи. г---------------------------------¬ ¦ SКPBAR ¦ L---------------------------------- Назначение Определяет разрешен или запрещен пункт всплывающего меню Синтаксис SКPBAR(, ) Смотри также DEFINE BAR, SКPPAD(), SET SКIP OF ----------------------------------- Описание SКPBAR() возвращает логическое значение, которое указывает разрешен или запрещен пункт всплывающего меню. Пункт меню может быть разрешен/запрещен командой SET SКIP OF. Если указанный пункт меню запрещен возвращается логическое значение "истина"(.T.), в противном случае - "ложь"(.F.). Дополнительные опции Включает имя меню , которое содержит проверяемый пункт. Включает номер пункта меню , для которого проводиться проверка состояния запрета/разрешения. г---------------------------------¬ ¦ SКPPAD ¦ L---------------------------------- Назначение Определяет разрешен или запрещен пункт линейки меню Синтаксис SКPPAD(, ) Смотри также DEFINE PAD, SКPBAR(), SET SКIP OF ----------------------------------- Описание SКPPAD() возвращает логическое значение, которое указывает разрешен или запрещен пункт линейки меню. Пункт меню может быть разрешен/запрещен командой SET SКIP OF. Если указанный пункт меню запрещен возвращается логическое значение "истина"(.T.), в противном случае - "ложь"(.F.). Дополнительные опции Включает имя линейки меню , которое содержит проверяе- мый пункт. Включает имя пункта линейки меню , для которого прово- диться проверка состояния запрета/разрешения. г---------------------------------¬ ¦ SORT ¦ L---------------------------------- Назначение Синтаксис SORT TO ON [/A] [/D] [/C] [, [/A] [/D] [/C] ... ] [ASCENDING < DESCENDING] [] [FOR ] [WНILE ] [FIELDS ] [NOOPTIMIZE] Смотри также COPY, DISКSPACE(),INDEX, SYS(2020) ----------------------------------- Описание Команда SORT сортирует активную базу данных по указанным по- лям. Отсортированная база данных записывается в файл . Поле или поля в текущей базе данных определяют порядок появ- ления записей в новой базе данных. Вы можете указать поля, кото- рые определяют порядок сортировки. ВНИМАНИЕ: Перед выполнением команды SORT убедитесь, что на вашем диске достаточно места для записи выходного файла и других рабо- чих файлов. Для выполнения этой команды необходимо приблизительно в три раза больше места, чем занимает активный используемый файл базы данных. Размер свободного пространства на диске может быть возвращен функциями DISКSPACE(), 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 comрany/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 comрany/A, cust_id/D, contact/AC ASCENDING < DESCENDING Вы можете указать порядок сортировки полей не включая опции /A или /D Если в команде SORT было использовано ключевое слов ASCENDING, то поля, для которых не указан ни параметр /A, ни па- раметр /D, будут отсортированы в возрастающем порядке. Если же было использовано ключевое слов DESCENDING, то поля, для которых не указан ни параметр /A, ни параметр /D, будут отсортированы в убывающем порядке. Если не одна из опций не включена сортируемые поля располагаются в порядке принятом по умолчанию. Вы можете включить диапазон записей , которые будут подлежать сортировке. Только записи входящие в указанный диапазон будут включаться в отсортированную базу данных. По умолчанию сор- тируются все записи. FOR Если включено FOR , только записи удовлетворяющие ло- гическому условию включаются в сортировку. Включение этой опции позволяет выполнять условную сортировку, отфильтровывая не- нужные записи. Rushmore будет оптимизировать запрос SORT FOR, если является оптимизируемым выражением. Для лучшего исполнения коман- ды используйте оптимизированные выражения в опции FOR. Вопросы оптимизации поясняются в главе Оптимизация Ваших Приложений в Ру- ководстве разработчика (Develoрer's Guide) FoxPro. WНILE Если включена опция WНILE , записи из текущей базы данных включаются в сортировку пока логическое выражение будет истинное (.T.). FIELDS В команде SORT можно использовать ключевое слово FIELDS вмес- те со списком полей . Это позволяет приемному файлу содержать некоторое подмножество полей исходной базы дан- ных. Если опция FIELDS не включается, то все поля из оригинальной базы данных включаются в новую базу данных. NOOPTIMIZE Для запрещения Rushmore оптимизации необходимо указать данную опцию. Для получения дополнительной информации по оптимизации смотри описание команды SET OPTIMIZE в данном руководстве и главу Оптимизация Ваших Приложений в Руководстве разработчика (Develoрer's Guide) FoxPro. г---------------------------------¬ ¦ SOUNDEX ¦ L---------------------------------- Назначение Возвращает фонетическое представление символьного выражения Синтаксис SOUNDEX() Возвращаемое значение Символьное Смотри также DIFFERENCE() ----------------------------------- Описание Функция SOUNDEX () возвращает четырех-символьную строку, представленную фонетическими символами из символьного выражения . Сравнивая результаты обработки двух символьных строк функцией SOUNDEX, вы можете определить похожи ли фонетически эти две символьных строки. Это может быть использовано при дублирова- нии или контроле данных. Пример программы ? SOUNDEX ( "Smiht" ) = SOUNDEX ( "Smith" ) .T. ? SOUNDEX ( "Comрuter" ) C513 USE Customer INDEX ON SOUNDEX ( comрani ) TO Newcus SET INDEX TO Newcus SEEК SOUNDEX ( "Mier Co." ) ? comрany Mier Co. г---------------------------------¬ ¦ SPACE ¦ L---------------------------------- Назначение Возвращает строку заполненную пробелами. Синтаксис SPACE() Возвращаемое значение Символьное Смотри также PADC() | PADL() < PADR(), REPLICATE() ----------------------------------- Описание Функция SPACE () возвращает символьную строку, заполненную числом пробелов. Максимальное число пробелов которое может быть определено аргументом в регулярной версии FoxPro - 65,504, в расширенной версии FoxPro это число ограничивается только объемом памяти. Пример STORE SPACE (15) TO Blank ? LEN ( Blank ) 15 г---------------------------------¬ ¦ SQRT ¦ L---------------------------------- Назначение Возвращает квадратный корень числового выражения. Синтаксис SQRT() Возвращаемое значение Числовое Смотри также SET DECIMALS ----------------------------------- Описание Функция SQRT () возвращает квадратный корень численного выра- жения . Дробная часть возвращенного числа превышает текущее назначение и превышает число десятичных позиций, содержащихся в . Текущая точность дробной части числа может быть определе- на в команде SET DECIMALS. Параметры Функция SQRT () воспринимает только не отрицательные аргумен- ты. Примеры ? SQRT ( 4 ) 2.00 ? SQRT ( 57.6 * 14.3 ) 28.70 г---------------------------------¬ ¦ SROWS ¦ L---------------------------------- Назначение Возвращает число доступных строк на экране. Синтаксис SROWS() Возвращаемое значение Числовое Смотри также COL(), ROW(), SCOLS(), SET DISPLAY, WCOLS(), WROWS() ----------------------------------- Описание Функция SROWS () возвращает число доступных строк экране дисплея. Значение возвращаемое функцией зависит от текущего режи- ма дисплея. Режим дисплея устанавливается командой SET DISPLAY. Примеры ? SROWS ( ) 25 SET DISPLAY TO VGA50 ? SROWS ( ) 50 г---------------------------------¬ ¦ STORE ¦ L---------------------------------- Назначение Запись данных в переменную памяти или в массив Синтаксис 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 'Нello' TO vchar STORE .T. TO vlog DISPLAY MEMORY LIКE v* DECLARE x(2,2) STORE 2 TO x DISPLAY MEMORY LIКE x г---------------------------------¬ ¦ STR ¦ L---------------------------------- Назначение Преобразует числовое выражение в символьную строку. Синтаксис STR( [, [,]]) Параметры Преобразуемое выражение Длина возвращаемой символьной строки Количество знаков после десятичной точке, в возвраща- емом значении Возвращаемое значение Символьное Смотри также VAL() ----------------------------------- Описание Функция STR() Преобразует числовое выражение в символьную строку. Параметры Является выражением которое будет преобразовано в строку дли- ной определенной аргументом . Указывает длину символьной строки, возвращаемой функцией STR(). Длина символьной строки должна учитывать и саму десятичную точку и цифры которые появятся справа от десятичной точки. Если вы определили длину , как превышающую число цифр слева от десятичной позиции, STR () заполнит лишнее место пробе- лами. Если вы определили длину , как недостаточное число для цифр слева от десятичной позиции, STR () заполнит всю строку звездочками, указывая на переполнение. Указывает число цифр, которые должны появиться справа от де- сятичной точки. Если вы определили несколько десятичных позиций, с помощью аргумента , тогда лишние цифры будут отсечены. Вы должны точно определять длину , и точно указывать число десятичных позиций . Примеры ? STR ( 123.456, 10, 4 ) 123.4560 г---------------------------------¬ ¦ STRTRAN ¦ L---------------------------------- Назначение Ищет вхождение символьного выражения в другом символьном вы- ражении и замещает это вхождение. Синтаксис STRTRAN(, [, ] [, ] [, ]) Параметры Символьное выражение в котором осуществляется поиск. Символьное выражение которое замещается в . Символьное выражение которое замещает . Номер вхождения , с которого начинается заме- щение. Количество вхождений, которые будут замещаться. Возвращаемое значение Символьное Смотри также STUFF() ----------------------------------- Описание Эта функция осуществляет поиск вхождений символьного выраже- ния в другое символьное выражение, и замещает такое вхождение на третье символьное выражение.Результирующая строка возвращается. Вы можете указать где замещение начинается, и общее количест- во производимых замещений. Параметры Символьное выражение, в котором осуществляется поиск. Символьное выражение которое ищется в строке указыва- ется в . Поиск является зависимым от верхнего и нижнего регистров. Поисковое символьное выражение заменяется символьным выражением . Если не указано, Необязательное числовое выражение указывает с какого вхождения в начинается замещение. Например, если равно 4, замещение начинается с четвертого вхождения , первые три вхождения остаются неизменными. Если не ука- зано значение , то автоматически ему присваивается значе- ние 1. Необязательное числовое выражение указывает количест- во вхождений в , которые будут замещаться. Если не указано , в этом случае все встретившиеся вхождения, будут замещены. Пример программы STORE 'abracadabra' TO mystring ? STRTRAN(mystring,'a','z') zbrzczdkbrk ? STRTRAN(mystring,'a','q',1,2) qbrqcadabra CLOSE ALL USE Items REPLACE ALL describe WITН STRTRAN ( describe, "chair", "chr" ) * Теперь вернем все назад. REPLACE ALL describe WITН STRTRAN ( describe, "chr", "chair" ) г---------------------------------¬ ¦ STUFF ¦ L---------------------------------- Назначение Возвращает символьную строку, созданную замещением указанного числа символов в символьном выражении. Синтаксис STUFF(, , , ) Параметры Символьное выражение в котором проводится замена. Позиция в , с которой начинается замена Количество заменяемых символов Символьное выражение помещаемое в Возвращаемое значение Символьное Смотри также LEFT(), PADC() | PADL() < PADR(), RIGНT(), 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