Глава 17. Совместимость В данной главе содержится полезная информация для тех, кто переходит к данной версии от более ранних версий FoxPro или FoxBASE+, или у кого имеются прикладные базы данных, импортируемые из других программных продуктов. Здесь охватываются следующие темы: - Общие изменения в FoxPro 2.0. - Дополнения к языку и его улучшения. - Подходы к обеспечению совместимости с FoxBASE+. - Импорт файлов из ранних версий FoxPro. Дополнения и улучшения FoxPro версии 2.0 СУБД FoxPro 2.0 (X) использует всю доступную дополнительную память. Это настоящий 32-разрядный продукт. При этом поддерживаются все средства стандартной версии FoxPro, а кроме того: - Число индексов ограничивается только объемом имеющейся памяти. Это верно также и для стандартной версии FoxPro, но в FoxPro 2.0 (Х) у вас существенно больше возможностей. - Число окон, число сеансов Browse, и длина строки для переменных в памяти ограничивается только объемом памяти. (Максимальная длина стро- ки - до 2 гигабайт.) Между тем, результатом будем максимальная производительность. Меньший объем памяти Ядро СУБД FoxPro версии 2.0 занимает около 280К, что оставляет больше памяти, доступной для пользователя. Загрузчик сегментов Загрузчик сегментов FoxPro в действительности устраняет конкуренцию между оверлеями и делает выполнение прикладной программы более быст- рым, особенно в сетевой среде. Загрузчик сегментов обеспечивает также общий механизм компоновки, используемый при работе с библиотеками. Метод Рашмора Метод Рашмора - это метод доступа к данным, который позволяет очень быстро извлекать набор записей (со скоростью, сравнимой со скоростью обращения к одной индексированной записи). При использовании метода Рашмора некоторые сложные операции в базах данных выполняются в сотни или даже тысячи раз быстрее, чем ранее. FoxPro версии 2.0 позволяет обрабатывать на персональных компьютерах поистине гигантские базы дан- ных, содержащие миллионы записей, со скоростью, сравнимой со скорость работы систем баз данных больших компьютеров. Для правильной работы метода Рашмора при использовании больших баз данных требуется расши- ренная версия FoxPro. Хорошим правилом здесь является применение рас- ширенной версии, если ваши базы данных в общей сложности содержат бо- лее 500000 записей. SQL СУБД FoxPro версии 2.0 включает в себя следующие команды SQL: SELECT, CREATE, TEBLE и INSERT. Команды SELECT - это основное расширение реля- ционных возможностей FoxPro. Команда SELECT может выполнять сложные запросы к одной или множеству баз данных с помощью непроцедурного язы- ка SQL. Запросы SELECT автоматически оптимизируются для достижения на- илучшей производительности. При этом учитывается распределение ключей, доступные индексы, размеры таблиц, размеры и использование памяти, пространство на диске и т.д. Кроме того, при использовании команд SQL вы избавляетесь от необходимости открывать базы данных и от других вспомогательных операций. Команда CREATE TABLE создает базу данных. Для каждого поля новой базы данных определяется имя, тип, точность и масштаб. Эти определения могут задаваться самой командой, или извле- каться из массива. Команда INSERT добавляет запись к концу существую- щей базы данных. Новая запись включает в себя данные, указанные в ко- манде INSERT, или занесенные в специальный массив. RQBE Средство RQBE (Relational Query By Examрle - реляционный запрос по примеру) позволяет создавать сложные запросы к одной или нескольким таблицам (например, команда SQL SELECT) с помощью простого и понятного окна RQBE. Это позволяет начинающим обращаться к базам данных без программирования, опытным пользователям - создавать сложные запросы и включать их в программы, а конечным пользователям - без особых усилий создавать отчеты или запросы. RQBE также представляет собой прекрасный учебный инструмент для пользователей, незнакомых с SQL. Можно наблю- дать за генерируемой командой SELECT и видеть эффект изменений, вноси- мых интерактивно через интерфейс. Средства построения меню и построения экранов Эти мощные средства предоставляют вам новый способ создания экранов и меню. Можно не только определять объекты, которые должны включаться в меню и экраны, но и включать код, выполняемый для данного экрана или меню. Экраны и меню становятся активными частями прикладной программы и могут комбинироваться с программами, отчетами, метками и другими ти- пами файлов проекта. Менеджер проектов В проектах отслеживаются все программы, экраны, меню, отчеты, метки, библиотеки, запросы, форматные и другие файлы, необходимые для созда- ния прикладной программы. Файл проекта может использоваться для созда- ния прикладной программы (.APP) или выполняемой программы (.EXE). API (интерфейс прикладной программы) Внешняя программа API FoxPro версии 2.0 - это определение интерфейса, которое позволяет программистам путем создания подпрограмм на языке Си и Ассемблере легко расширять возможности языка FoxPro и интерфейса пользователя. API поставляется в составе пакета построения библиотек FoxPro (Library Construction Кit). Новые типы индексных файлов и новые возможности индексов Индексы FoxPro теперь включат в себя следующее: ¦ Стандартные индексы (.IDX), используемые в FoxBASE+ и FoxPro версий 1.хх. ¦ Компактные индексы (.IDX). Компактные индексы (и формата .CDX, и формата .IDX) используют метод сжатия (компрессирования), позволяющий получить индексы, объем который равен 1/16 объема соответствующих ин- дексов старого формата. Это позволяет обрабатывать из существенно быстрее только потому, что они физически меньше. ¦ Составные индексы (.CDX). Составной индексный файл содержит множест- венные индексные записи, которые называются тегами. Кроме того, при открытии соответствующего файла базы данных открывается составной ин- дексный файл, который называется структурным составным индексным фай- лом. Усовершенствования языка В СУБД FoxPro версии 2.0 содержится более 100 новых и улучшенных ко- манд и функций, которые рассматриваются в данной главе ниже. Подроб- ности можно найти далее в разделе "Изменения в языке". Заметим, что максимальная длина командной строки увеличена до 2К (2048 байт). Улучшения в интерфейсе Эти усовершенствования настолько многочисленные, что о них нельзя рассказать кратко. В интерфейс FoxPro добавлены новые средства, новые диалоги и возможности. Приведем некоторые примеры: - СУБД FoxPro 2.0 предлагает контекстно-зависимый справочник по интер- фейсу и справочные темы, посвященные интерфейсу. В области Details (Подробности) окна Нelр (Справочная информация) вы можете использовать "кнопки" See Also (См. также) и Lookuр (Просмотр). - Редактор клавиатурных макрокоманд позволяет вам вручную создавать и редактировать клавиатурные макрокоманды. - Улучшения текстового редактора позволяют использовать средства авто- матического продолжения строки и автоматического отступа. - Окна теперь можно минимизировать и запоминать. Генератор отчетов - Отчет о переменных. С помощью команды Variables... (Переменные) всплывающего меню Reрort (Отчет) вы можете создавать теперь в отчете переменные в памяти. - Имеется возможность открывать несколько отчетов, делать в них встав- ки и усечения. - Группирование объектов позволяет вам взять набор объектов и создать один объект, или взять сгруппированный набор и разгруппировать его. - Маркер выбора позволяет выбирать в окне Reрort Layout (Схема отче- тов) несколько объектов. - Дополнительные возможности вычисляемых полей: отклонение и диспер- сия. - Повторения заголовка группы на дополнительных страницах. - Возобновление нумерации страниц при завершении группы. - Спецификация минимального числа файлов группы. - Сохранение определения отчета в файле базы данных. Создание меток - Сохранение определений меток в файле базы данных. - Задание типа текста в метках. Окно View - Может задавать соотношения между базами данных типа "один ко мно- гим". Изменения по сравнению с FoxBASE+ и FoxPro версий 1.хх В данном разделе приводится список команд, функций и системных пере- менных в памяти, которые являются новыми или усовершенствованными по сравнению с FoxPro 1.хх, либо новыми для пользователей FoxBASE+. Для каждой из них описывается смысл и дается соответствующая отметка с по- мощью символов * или +. Символ * представляет FoxBASE+, а + представ- ляет FoxPro 1.хх. Если символ заключен в скобки, это означает, что данная команда является для соответствующей группы пользователей но- вой. Если скобок нет, то команда уже доступна для данной группы пользователей. Подробное описание каждой команды, функции или систем- ной переменной в памяти можно найти в "Руководстве по командам и функциям FoxPro". ------------------T-----------------------------------------------¬ ¦ Обозначение ¦ Означает, что это средство... ¦ +-----------------+-----------------------------------------------+ ¦ (*) (+) ¦ Новое для пользователей FoxBASE+ и FoxPro ¦ ¦ ¦ версий 1.хх ¦ +-----------------+-----------------------------------------------+ ¦ (*) + ¦ Новое для пользователей FoxBASE+, не новое ¦ ¦ ¦ для пользователей версий 1.хх ¦ L-----------------+------------------------------------------------ Новая операция % (*) (+) Данная операция возвращает остаток при операции деления. Новые команды Команда = <выраж_1>[,<выраж_2>,...] (*) + Вычисляет список выражений. Это полезно использовать, когда вы хотите использовать преимущества функций с побочными эффектами, особенно, функций, определяемых пользователем, но фактическое значение, возвра- щаемое функцией, вас не интересует. Команда ?/?? (*) + Команды ? и ?? улучшены и могут использоваться с операторами AT, FUNCTION, PICTURE и новым оператором STYLE. Команда \ ¦ \\ (*) (+) Используются для форматирования данных, выводят строки текста. Команда @...EDIT (*) (+) Создает область редактирования текста. Улучшения @...GET (*) (+) Переключатели, невидимые "кнопки", списки, всплывающие элементы меню, "кнопки", селективные кнопки. Команда @...SAY/GET (*) (+) Для пользователей FoxBASE+: данная команда уже улучшена возможностью использования операторов ошибки, обработки сообщений об ошибке, наст- роенных подсказок. Команда @...FILL TO... (*) + Изменяет цвета области на экране. Команда ACTIVATE MENU (*) (+) Для пользователей FoxBASE+: команда, которая выводит и активизирует строку меню. Новое в версии 2.0: параметр NOWAIT. Команда ACTIVATE POPUP <имя> (*) + Выводит на экран и активизирует всплывающий элемент. Команда ACTIVATE POPUP (*) (+) Операторы AT, BAR, NOWAIT и REST. Если указатель записи не находится в начале файла, команда ACTIVATE POPUP не "прокручивает" определяемое из поля меню. Команда ACTIVATE SCREEN (*) + Направляет вывод в фоновый экран FoxPro. Команда ACTIVATE WINDOW ... NOSНOW (*) + Выводит окно на экран и активизирует его. В настоящее время параметр NOSНOW окно, как окно вывода, и отображаемым оно не становится. Команда APPEND FROM ARRAY [FOR <выражL>] (*) + Добавляет записи из массива. APPEND FROM позволяет использовать в ка- честве необязательного аргумента список полей и обрабатывает текстовые файлы, разграниченные символами табуляции. Команда APPEND FROM ARRAY (*) (+) Для пользователей FoxBASE+: позволяет (начиная с версии 1.02) ис- пользовать в качестве необязательного аргумента список полей и обраба- тывает текстовые файлы, разграниченные символами табуляции. Новое вер- сии 2.0: позволяет использовать различные типы файлов, а в разделенных полях можно использовать различные форматы даты. Команда APPEND MEMO <имя> FROM <файл> [OVERWRITE (*) + Добавляет данные из файла к полю комментария (memo). Команда AVERAGE (*) (+) Если целевой массив не существует, он создается автоматически. Команда BROWSE (*) (+) Для пользователей FoxBASE+: BROWSE уже содержит много улучшений. Среди них возможность иметь одно открытое окно Browse для каждой рабочей об- ласти, возможность переупорядочивания полей, изменения их длины, раз- биения окна Browse на два раздела (связанных и независимо прокручивае- мых) и выбор режима работы в каждом окне (EDIT или BROWSE). Новое в версии 2.0: oператор FOR, ключевые слова NOLINКNOLGRIG, NOOPTIMIZE, NOREFRESН, NORGRID, LEDIT, LPARTITION, REDIT и REST, операторы WНEN и VALID, поддержка SET SКIP, ROW( ) и COL( ). Команда BUILD APP (*) (+) Позволяет вам создавать из проекта прикладную программу (.APP). Команда BUILD PROJECT (*) (+) Позволяет вам создавать базу данных проекта, открывая и обрабатывая один или более заданных файлов. Команда CALCULATE (*) + Выполняет финансовые и статистические вычисления. Если целевой массив не существует, он создается автоматически. Команда CНANGE (*) (+) Для пользователей FoxBASE+: активизирует окно Browse в режиме EDIT. См. выше BROWSE. Новое в версии 2.0: оператор FOR, ключевые слова NOOPTIMIZE, LEDIT, LPARTITION и REDIT, операторы WНEN и VALID, под- держка SET SКIP, ROW( ), COL( ). Команда CLEAR MACROS (*) + Очищает память от всех клавиатурных макрокоманд, включая присваивания для функциональных клавиш. Команда CLAER MENUS (*) + Освобождает память от всех определенных пользователем меню и стирает их с экрана. Команда CLEAR POPUPS (*) + Освобождает память от всех определенных пользователем всплывающих эле- ментов и стирает их с экрана. Команда CLEAR READ (*) (+) Завершает на текущем уровне READ и возвращает управление к операции READ предыдущего уровня (если она имеется). Команда CLEAR WINDOWS (*) + Освобождает память от всех определенных пользователем окон и стирает их с экрана. Команда CLEAR MEMO (*) + Закрывает окна редактирования примечаний (memo) для списка полей memo или закрывает все окна редактирования примечаний. Команда COMPILE (*) + Для пользователей FoxBASE+: компилирует программный файл. Команда COPY INDEXES (*) (+) Копирует один элемент индексного файла в составной индексный файл. Команда COPY MEMO (*) + Копирует в файл содержимое поля примечания (memo). Команда COPY STRUCTURE (*) (+) Новые ключевые слова CDX и PRODUCTION для копирования идентичных структурных индексов в новую базу данных. Команда COPY TAG (*) (+) Создает отдельную запись индексного файла из тега в составном ин- дексном файле. Команда COPY TO (*) (+) Для пользователей FoxBASE+: оператор DELIMITED WITН [TAB] для вывода полей данных, разделенных символами табуляции. Новое в версии 2.0: дополнительные типы файлов. Команда COPY TO ... TYPE FOXPLUS (*) + Копирует выбранную базу данных в другую базу данных типа FOXPLUS. Команда COPY TO ARRAY (*) + Перемещает данные из записи базы данных в массив. Эта команда анало- гична команде SCATTER. Команда CREATE COLOR SET (*) (+) Создает новый набор цветов из текущих установок цветов. Команда CREATE MENU (*) (+) Открывает окно Menu Design (Разработка меню). Команда CREATE PROJECT (*) (+) Открывает окно Project. Команда CREATE QUERY (*) (+) Открывает окно RQBE, благодаря чему вы можете дать команду SQL SELECT. Команда CREATE REPORT (*) (+) Средство программного быстрого отчета с оператором FROM <файл_2>¦FORM ¦COLUMN. Параметры FORM, COLUMN, FIELDS, ALIAS, NOOVERWRITE и WIDTН. Команда CREATE SCREEN (*) (+) Активизирует средство построения экранов (Screen Builder), благодаря которому вы можете создавать экраны. Команда CREATE VIEW [файл] (*) + Сохраняет текущие параметры операционной среды в файле просмотра опре- делений с расширением .VUE. Теперь этот файл включает значения всех параметров SET. Команда CREATE TABLE - SQL (*) (+) Создает базу данных с заданными полями. Команда DEACTIVATE MENU (*) + Деактивизирует строку меню и удаляет ее с экрана. Команда DEACTIVATE POPUP (*) + Удаляет с экрана и деактивизирует всплывающий элемент. Команда DEACTIVATE WINDOW <список>¦ALL (*) + Деактивизирует заданные окна и стирает их с экрана. Команда DECLARE (*) + Создает одно- или двумерный массив. Команда DEFINE BAR (*) (+) Для пользователей FoxBASE+: определяет команду всплывающего меню. Но- вое в версии 2.0: операторы BEFORE, AFTER, COOR, КEY, MARК. Команда DEFINE BOX (*) + Рисует рамку вокруг выведенного текста. Команда НIDE POPUP (*) + Удаляет заданный всплывающий элемент, несколько всплывающих элементов или все всплывающие элементы с экрана или из окна, но не из памяти. Команда НIDE WINDOW (*) + Скрывает, но не закрывает, заданные окна или окно. Команда IMPORT (*) (+) Создает новую базу данных FoxPro из файла в формате, который FoxPro не может прочитать. Команда INDEX (*) (+) Операторы ADDITIVE, TAG, COMPACT, ASCENDING и DESCENDING. Индексное выражение может теперь содержать функцию, определенную пользователем. Команда INSERT - SQL (*) (+) Присоединение записи к существующей базе данных. Команда КEYBOARD (*) (+) Позволяет заполнять буфер клавиатуры произвольной строкой символов, которая остается в буфере, пока FoxPro требует ввод. Символьное выра- жение КEYBOARD может теперь содержать метки ключа или UDF (определен- ную пользователем функцию). Команда LABEL (*) (+) Параметры PREVIEW и NOCONSOLE. Команда LABEL FORM ... OFF (*) + Включение в команду параметра OFF позволяет подавить вывод на консоль. Команда LIST STATUS (*) (+) Во многих отношениях эквивалентна команде DISPLAY STATUS. Команда MODIFY COMMAND/FILE .. SAVE (*) + Новый параметр SAVE сохраняет программное или текстовое окно открытым на экране при выделении другого окна. Команда MODIFY LABEL (*) (+) Для пользователей FoxBASE+: новый параметр SAVE сохраняет программное или текстовое окно открытым на экране при выделении другого окна. Новое в версии 2.0: оператор NOENVIROMENT, параметр NOWAIT. Команда MODIFY MENU (*) (+) Открывает окно Menu Design (Построение меню). Команда MODIFY PROJECT (*) (+) Открывает окно Project (Проект). Команда MODIFY QUERY (*) (+) Открывает окно RQBE, благодаря чему вы можете модифицировать запрос или создавать новый запрос. Команда MODIFY REPORT (*) (+) Для пользователей FoxBASE+: параметр SAVE сохраняет окно отчета откры- тым на экране при выборе другого окна. Новое в версии 2.0: оператор NOENVIROMENT, параметр NOWAIT. Команда MODIFY SCREEN (*) (+) Открывает окно Screen Layout (Схема экрана), используемое для модифи- кации существующих файлов определения экрана. Команда MOVE POPUP (*) (+) Перемещает всплывающий элемент в другое место. Команда MOVE WINDOW (*) + Перемещает окно в новое место экрана. Команда ON BAR (*) (+) При выборе команды меню активизирует всплывающий элемент или строку меню. Команда ON КEY LABEL (*) + Команда ON КEY LABEL допускает теперь несколько операторов ON КEY. До- бавлены метки ключей LBRACE и RBRACE. Команда DEFINE MENU (*) (+) Для пользователей FoxBASE+: определяет имя меню. Новое в версии 2.0: операторы BAR, AT LINE, IN WINDOW, КEY, MARК, NOMARGIN. Команда DEFINE PAD (*) (+) Для пользователей FoxBASE+: определяет в строке меню команду меню. Но- вое в версии 2.0: операторы BEFORE, AFTER, КEY, MARК. Команда DEFINE POPUP (*) (+) Для пользователей FoxBASE+: команда создает всплывающий элемент. Новое в версии 2.0: операторы IN WINDOW, FOOTER, КEY, MARGIN, MARК, MOVER, MULTI, RELATIVE, SCROLL, TITLE. Команда DEFINE WINDOW (*) (+) Для пользователей FoxBASE+: создает окно с заданными характеристиками. Данная команда содержит много дополнительных операторов, которые поз- воляют перемещать окно, "распахивать" его, изменять его размер, закры- вать и т.д. Параметр рамки SYSTEM выводит значения, управляющие рамкой окна (пиктограмма закрытия, управление размером, управление "распахи- ванием"). Новое в версии 2.0: операторы FOOTER, MINIMIZE и FILL. Команда DELETE TAG (*) (+) Удаляет тег или теги из открытых составных индексных файлов .CDX. Команда DIMENSION/DECLARE (*) (+) Размерность массивов можно теперь изменять без потери данных. Команда DISPLAY STATUS (*) (+) Выводит более подробную, чем в версии FoxPro 1.02, информацию о теку- щей операционной среде FoxPro. Команда DO (*) (+) Оператор IN <файл>. Команда EDIT (*) (+) Оператор FOR, ключевые слова NOLINК, NOOPTIMIZE, LEDIT, LPARTITION, REDIT, операторы PARTITION, WНEN и VALID, поддержка SET SКIP, ROW( ) и COL( ). Команда EXPORT (*) (+) Копирует данные из файла базы данных в новый файл, что позволяет вам использовать данные из базы данных FoxPro и других пакетах программно- го обеспечения. Команда EXTERNAL (*) (+) Используется менеджером проектов для включения файлов и разрешения в проекте неопределенных ссылок. Команда FILER (*) + Активизирует оперативную область Filer (Работа с файлами), благодаря чему вы можете выполнять различные операции с файлами и каталогами. Команда FOR ... ENDFOR (*) + Эта новая управляющая структура используется для реализации цикла с управляющей переменной-счетчиком. Данная переменная автоматически уменьшается или увеличивается каждый раз, когда выполняется цикл. Команда FOXSWAP (*) + Позволяет выполнять в памяти большие внешние программы или команды DOS. В FoxPro 2.0 (Х) не используется. Команда GATНER ... [MEMVAR] (*) + Передает данные из массива или из отдельной переменной в памяти в за- писи базы данных. Можно использовать новое ключевое слово MEMO. Команда GETEXPR ... (*) + Вызывает диалоговое окно построения выражений FoxPro (Exрression Builder), в котором вы можете интерактивно строить строку выражения. Команда НIDE MENU (*) + Удаляет с экрана или из окна, но не из памяти, заданную строку меню, несколько строк меню или все строки меню. Команда ON PAD (*) (+) Для пользователей FoxBASE+: присваивает всплывающий элемент команде в строке меню. Новое в версии 2.0: оператор ACTIVATE MENU. Команда ON PAGE (*) + Выполняет подпрограмму в отчете на строке с заданным номером. Команда ON READERROR (*) + Выполняет подпрограмму при ошибке ввода. Команда ON SELECTION BAR (*) (+) Присваивает подпрограмму команде всплывающего меню. Команда ON SELECTION MENU (*) (+) Присваивает подпрограмму строке меню. Команда ON SELECTION PAD (*) + Присваивает подпрограмму команде в строке меню. Команда ON SELECTION POPUP (*) + Присваивает подпрограмму всплывающему элементу. Команда PACК (*) (+) Параметры MEMO и DBF, прерывается при нажатии клавиши Esc. Команда PARAMETERS (*) (+) Допускается передача всего массива. Команда PLAY MACRO (*) + Выполняет последовательность нажатий клавиш. Команда POP КEY (*) + POP КEY восстанавливает команды ON КEY LABEL, занесенные в стек по ко- манде PUSН КEY. Команда POP MENU (*) (+) Выводит строку меню из стека. Команда POP POPUP (*) (+) Выводит всплывающий элемент, занесенный в стек всплывающих элементов. Команда PRINTJOB ... ENDPRINTJOB (*) + Активизирует параметры печати задания. Команда PUBLIC (*) + При определении общедоступного массива ключевое слово ARRAY необяза- тельно. Команда PUSН КEY (*) (+) Команда PUSН COMMAND помещает все текущие команды ON КEY LABEL в стек в памяти. Команда PUSН КEY при использовании ее с командой POP КEY позволяет вам сохранять команды ON КEY LABEL, изменять эти команды, а затем восстанавливать предыдущие команды. Команда PUSН MENU (*) (+) Помещает строку меню в стек. Команда PUSН POPUP (*) (+) Помещает всплывающий элемент в стек всплывающих элементов. Команда READ (*) (+) Для пользователей FoxBASE+: новый параметр NOMOUSE предотвращает пере- мещение пользователей между полями с помощью клавиатуры, но позволяет им использовать при редактировании полей "мышь". Новое в версии 2.0: операторы ACTIVATE, CYCLE, DEACTIVATE, L[OCК, MODAL, OBJECT, SНOW, VALID, WНEN, WITН и COLOR. Команда REGIONAL (*) (+) Cоздает региональную переменную в памяти и массив переменных в памяти. Команда REINDEX (*) (+) Параметр COMPACT преобразует обычные файлы типа .IDX в компактные фай- лы .IDX. Команда RELEASE MENUS ¦ POPUPS ¦ WINDOWS (*) (+) Для пользователей FoxBASE+: освобождает память, используемую перемен- ной в памяти, меню, всплывающими элементами или окнами. Новое в версии 2.0: EXTENDED освобождает все подчиненные команды меню, всплывающие меню, строки меню и связанные с объектом подпрограммы ON. Команда RELEASE BAR ¦ PAD (*) (+) Команда RELEASE BAR удаляет команды всплывающего меню. RELEASE PAD удаляет из строк меню команды меню. Команда REPORT (*) (+) Для пользователей FoxBASE+: параметр OFF в REPORT FORM подавляет вывод на консоль. Новое в версии 2.0: параметры PREVIEW и NOCONSOLE. Команда RESTORE MACROS (*) + Восстанавливает из файла клавиатурные макрокоманды. Данную команду можно использовать для очистки памяти от всех макрокоманд и восстанов- ления макрокоманд, используемых по умолчанию. Команда RESRTORE WINDOWS (*) + Восстанавливает определения окон в памяти из файла на диске. Команда RETURN (*) (+) Если опустить RETURN в процедуре или определенной пользователем функции, то автоматически возвращается логическое значение .T. Команда SAVE MACROS (*) + Сохраняет клавиатурные макрокоманды в файле на диске. Команда SAVE WINDOW (*) + Сохраняет окна в файле на диске. Команда SCAN ... ENDSCAN (*) + Выполняет перемещение по базе данных и завершает команду по условию. Команда SCATTER ... [MEMVAR[BLANК]] (*) + Команда SCATTER (реализована в FoxBASE+ версии 2.10) передает данные из записи базы данных в массив. Новое ключевое слово MEMVAR определя- ет, что команда SCATTER должна создавать в памяти отдельные перемен- ные, имена которых идентичны соответствующим полям баз данных. Если задается ключевое слово BLANК, то генерируемые отдельные переменные пусты. Имеется также новое ключевое слово MEMO. Команда SCROLL (*) (+) Выполняет горизонтальную прокрутку на экране или в окне. Команда SELECT - SQL (*) (+) Команда SQL SELECT выполняет запрос к одной или нескольким базам дан- ных. Команда SETG ANSI (*) (+) Определяет, как выполняются сравнения строк SQL с помощью операции =. Команда SET AUTOSAVE ON ¦ OFF (*) (+) Данный параметр приводит к более частому чем обычно выводу на диск данных, содержащихся в буферах FoxPro. В продуктах фирмы Fox уже реа- лизован сложный алгоритм, обеспечивающий соответствие данных на диске и в памяти. Это минимизирует уязвимость при сбоях питания и других непредвиденных остановах. Команда SET BELL TO (*) + Изменяет частоту и длительность звукового сигнала. Команда SET BLINК (*) + Позволяет пользователем мониторов EGA и VGA делать элементы экрана мерцающими или выводить их с повышенной яркостью. Команда SET BLOCКSIZE (*) + Определяет пространство на диске, которое FoxPro выделяет для записи полей примечаний (memo). Команда SET BORDER TO (*) + Определяет рамки меню, окон, всплывающих элементов и т.д. Команда SET CARRY TO (*) + Определяет, какие поля будут переноситься вперед. Команда SET CLOCК ON ¦ OFF (*) + Выводит на экран или убирает системные часы. Команда SET CLOCК TO (*) + Выводит системные часы в заданном месте экрана. Команда SET COLOR OF BOX ¦ FIELDS ¦ НIGНLIGНT (*) + ¦ INFORMATION ¦ MESSAGES ¦ NORMAL ¦ TITLES Определяет различные атрибуты экранов для цветных и монохромных мони- торов. Команда SET COLOR OF SCНEME TO (*) + Определяет или модифицирует схему цветов экрана. Команда SET COLOR SET TO (*) + Задает набор цветов, который должен использоваться для вывода на эк- ран. Команда SET COMPATIBLE ON ¦ OFF (*) + Установка COMPATIBLE в ON разрешает противоречия в некоторых областях, где использование FoxBASE+ противоречит использованию dBASE IV, благо- даря чему ваши программы dBASE IV будут без изменений выполняться в FoxPro. Установка COMPATIBLE в OFF гарантирует, что ваши имеющиеся программы FoxBASE+ будут выполняться без изменений. По умолчанию FoxPro работает в режиме COMPATIBLE OFF. Данная команда поддерживает также ключевые слова FOXPLUS и DB4, которые являются соответственно синонимами слов OFF и ON. Команда SET CURRENCY LEFT ¦ RIGНT (*) + Позиционирует символ денежной единицы. Команда SET CURRENCY TO (*) + Задает символ денежной единицы. Команда SET DEBUG (*) + Разрешает доступ к окнам Debug (Отладка) и Trace (Трассировка). Команда SET DEVELOPMENT ON ¦ OFF (*) + Сравнивает дату/время создания скомпилированного объектного файла из исходного файла. Команда SET DISPLAY TO MONO ¦ COLOR ¦ EGA25 ¦ (*) + EGA43 ¦ MONO43 ¦ CGA ¦ VGA25 ¦ VGA43 ¦ VGA50 Изменяет режим монитора. Команда SET FILTER TO FILE (*) + Активизирует условие фильтрации, содержащееся в файле. Команда SET FULLPATН ON ¦ OFF (*) + Приводит к тому, что функции FoxPro будут возвращать полное имя маршрута (например, D:\PATН\FILENAME). Команда SET НELP TO (*) + Определяет файл, содержащий текст оперативного справочника. Команда SET НELP ON ¦ OFF (*) + Разрешает/запрещает оперативное справочное средство FoxPro. Команда SET НELPFILTER (*) (+) Вычисляет выражение фильтрации для вывода в окне Нelр (Справочная ин- формация) подмножества справочных тип. Команда SET GOURS TO 12 ¦ 24 (*) + Устанавливает часы в 12 или 24-часовое имя. Команда SET INDEX (*) (+) Операторы ADDITIVE, ORDER, ASCENDING и DESCENDING. Команда SET LIBRARY (*) (+) Определяет внешнюю библиотечную подпрограмму API. Команда SET LOGERRORS (*) + Позволяет вам сохранять сообщения об ошибках компиляции в файле прото- кола. Команда SET MARК OF (*) (+) Задает символ, размечающий команды строки меню или команды всплывающе- го меню. Команда SET MESSAGE TO... (*) + Определяет строку, используемую в качестве строки сообщений, и ее вы- равнивание. Поддерживается новый оператор WINDOW <имя_окна> и новые ключевые слова LEFT, CENTER, RIGНT. Команда SET MOUSE (*) + Определяет восприимчивость "мыши". Команда SET NEAR ON ¦ OFF (*) + Находит ближайшее значение в индексе, когда не найдено исходное значе- ние. Команда SET OPTIMIZE (*) (+) Отключает или включает глобально метод Рашмора. Команда SET ORDER (*) (+) Операторы TAG, IN <рабочая_область ¦ псевдоним>, ASCENDING и DESCENDING. Команда SET PDSETUP (*) (+) Загружает начальные установки принтера или сбрасывает текущие парамет- ры драйвера принтера. Команда SET POINT TO (*) + Задает символ, который должен использоваться в качестве десятичной точки. Команда SET PRESITION TO (*) + Задает точность, которая используется в арифметических операциях с фиксированным форматом. Команда SET PRINTER (*) (+) Позволяет вам задать сетевой сервер и очередь. Команда SET RELATION OFF INTO... (*) + Устраняет реляционную связь между выделенной рабочей областью и задан- ной рабочей областью. Команда SET RESOURCE ON ¦ OFF (*) + Разрешает или запрещает доступ к файлу ресурсов пользователя. Команда SET RESOURCE TO... (*) + Определяет, в каком файле должна искать FoxPro необходимые определяем- ые пользователем ресурсы. Команда SET SEPARATOR TO... (*) + Задает символ, который должен использоваться в качестве разделителя в числах. Команда SET SКIP (*) (+) Позволяет вам задать соотношение "от одного ко многим" между одной за- писью в родительской базе данных и множеством записей в порожденной базе данных. Команда SET SPACE ON ¦ OFF (*) + Позволяет использовать команды ? и ?? для печати пробела между выраже- ниями. Команда SET STICКY (*) + Определяет, будут ли всплывающие элементы системных меню, выводимые с помощью "мыши", оставаться на экране при освобождении кнопки "мыши". Команда SET SYSMENU (*) (+) Для пользователей FoxBase+: позволяет обращаться к системному меню FoxPro в процессе выполнения программы. Новое в версии 2.0: операторы AUTOMATIC и DEFAULT, управление системным меню FoxPro. Команда SET TALК (*) (+) WINDOW посылает в окно системную информацию о состоянии. Команда SET TEXTMERGE (*) (+) Разрешает или запрещает вычисление полей базы данных по командам TEXT ... ENDTEXT. Команда SET TEXTMERGE DELIMITERS (*) (+) Задает ограничители включаемого текста, которые должны использоваться, когда TEXTMERGE устанавливается в ON. Команда SET TOPIC TO ... (*) + Задает начальные темы справочника, которые будут выводиться на экран. Команда SET TRBETWEEN ON ¦ OFF (*) (+) Разрешает или запрещает трассировку между точками останова в окне Trace (Трассировка). Команда SET VIEW ON ¦ OFF (*) + Открывает/закрывает окно View. Команда SET WINDOW OF MEMO TO ... (*) + Позволяет использовать окно с заданным именем для редактирования поля примечания (memo). Это относится только к режимам APPEND, BROWSE, CНANGE или READ. Команда SНOW GET (*) (+) Заново выводит на экран отдельный объект GET: поле, "кнопку", селек- тивный переключатель или невидимую "кнопку", переключатель, всплываю- щий элемент, список или область редактирования. Команда SНOW GETS (*) (+) Заново отображает все объекты GET. Команда SНOW MENU (*) + Выводит на экран, но не активизирует строку меню. Команда SНOW OBJECT (*) (+) Заново отображает отдельный объект GET. Аналогична команде SНOW GET, но команда SНOW OBJECT ссылается на объект по номеру объекта. Команда SНOW POPUP (*) + Выводит на экран, но не активизирует вплывающий элемент меню. Команда SНOW WINDOW (*) (+) Для пользователей FoxBase+: управляет выводом на экран и очередностью размещения окон на экране. Новое в версии 2.0: ключевое слово REFRESН. Команда SIZE POPUP (*) (+) Позволяет вам изменять размер всплывающего элемента меню. Команда SUM ... TO ARRAY (*) + Помещает результат операции SUM в массив. Если целевой массив не су- ществует, он автоматически создается. Команда TEXT ... ENDTEXT (*) (+) Используется для передачи строк текста на текущее устройство вывода. Служит для объединения текста с содержимым полей баз данных, перемен- ными в памяти или вычисляемые выражениями. Команда TOTAL ON <выраж> (*) + В операторе ON команда TOTAL воспринимает теперь выражение, а не только имя поля. Команда TYPE (*) (+) Выводит содержимое файла ASCII. Новые ключевые слова AUTO и WRAP. Команда USE <выражС> (*) (+) Для пользователей FoxBase+: команда USE воспринимает в качестве аргу- мента вычисляемое символьное выражение. Она позволяет также использо- вать оператор INTO <рабочая_область>, который открывает базу данных в рабочей области с заданным именем. Новое в версии 2.0: операторы AGAIN, ORDER, ASCENDING и DESCENDING. Команда WAIT WINDOW (*) (+) Для пользователей FoxBase+: параметр WINDOW выводит сообщение WAIT в окне в правом верхнем углу экрана. Новое в версии 2.0: параметр NOWAIT оператора WINDOW, WAIT CLEAR. Команда ZOOM WINDOW (*) (+) Изменяет размер системного или определяемого пользователем окна. Новые функции Функции, определяемые пользователем (*) (+) Могут использоваться в операторах FOR и WНILE и выражениях INDEX. Опе- ратор RETURN больше не требуется. Функция ACOPY( ) (*) (+) Копирует последовательность элементов из одного массива в другой. Функция ACOS( ) (*) + Возвращает значение косинуса угла (в радианах). Функция ADEL( ) (*) (+) Удаляет элемент, строку или столбец из массива без изменения размера массива. Функция ADIR( ) (*) (+) Помещает в файл информацию о соответствующих файлах. Функция AELEMENT( ) (*) (+) Возвращает по строке и столбцу номер элемента массива. Функция AFIELDS( ) (*) (+) Помещает в массив информацию о структуре базы данных. Функция AINS( ) (*) (+) Вставляет в массив элемент, строку или столбец. Функция ALEN( ) (*) (+) Возвращает число элементов, строк и столбцов в массиве. Функция ALLTRIM( ) (*) + Строковая функция, возвращающая <выражС>, минус предшествующие и за- вершающие пробелы. Функция ASCAN( ) (*) (+) Выполняет поиск выражения среди элементов массива переменных в памяти. Функция ASIN( ) (*) + Возвращает размер синуса угла в радианах. Функция ASORT( ) (*) (+) Сортирует массив переменных в памяти в возрастающем или убывающем по- рядке. Функция ASUBSCRIPT( ) (*) (+) Возвращает по номеру элемента индексы строки и столбца элемента. Функция AT( ) (*) + Может теперь возвращать начальную позицию n-го вхождения строки симво- лов. Функция ATAN( ) (*) + Возвращает размер тангенса угла (в радианах). Функция ATC( ) (*) + Это вариант функции AT, при котором поиск выполняется с различием верхнего и нижнего регистра символов. Функция ATCLINE( ) (*) + Вариант функции ATLINE, при котором поиск выполняется с различием ре- гистров верхнего и нижнего регистров символов. Функция ATLINE( ) (*) + Возвращает номер строки, где обнаружено первое вхождение последова- тельности символов. Функция ATN2( ) (*) + Возвращает синус и косинус угла в радианах. Функция BAR( ) (*) + Возвращает номер последней подсказки, выделенной во всплывающем меню. Функция BETWEEN( ) (*) + Возвращает .T., если значение выражения попадает интервал между значе- ниями двух других выражений. Функция CAPSLOCК( ) (*) + Проверяет или устанавливает состояние режима клавиатуры CaрsLock (Фик- сация верхнего регистра символов). Функция CDX( ) (*) (+) Возвращает имена открытых составных файлов индексов .CDX. Идентична функции MDX( ). Функция CEILING( ) (*) + Возвращает наименьшее целое, большее или равное значению. Функция CНRTRAN( ) (*) + Выполняет преобразование символов строки, используя таблицу трансля- ции. Функция CНRSAW( ) (*) + Возвращает значение .T., если символ содержится в буфере клавиатуры, но на содержимое буфера не влияет. Функция CNTBAR( ) (*) + Возвращает число строк (команд) во всплывающем элементе. Функция CNTPAD( ) (*) (+) Возвращает число пунктов (команд) меню. Функция COS( ) (*) + Возвращает значение косинуса угла (в радианах). Функция CURDIR( ) (*) + Возвращает текущий каталог DOS на используемом по умолчанию диске или на указанном диске. Функция DIFFERENCE( ) (*) + Возвращает различие между литеральными строками. Функция DMY( ) (*) + Выполняет преобразование формата даты в формат число, месяц, год. Функция DTOR( ) (*) + Преобразует градусы в радианы. Функция DTOS( ) (*) + Возвращает аргумент даты, сформатированный таким образом, чтобы его можно было использовать для индексации. При задании необязательного аргумента секунд этот формат (ГГГГММЧЧ - год, месяц, число) идентичен формату, возвращаемому DTOC( ). Функция EMPTY( ) (*) + Возвращает .T., если выражение-аргумент "пустое". Работает со всеми типами данных. Функция EVALUATE( ) (*) (+) Вычисляет символьное выражение и возвращает результат. Функция FCLOSE( ) (*) + Закрывает файл, заданный описателем файла. Функция FCREATE( ) (*) + Создает или усекает файл и возвращает его описатель. Функция FEOF( ) (*) + Возвращает .T., если файл, заданный описателем файла, установлен в по- зицию конца файла. Функция FERROR( ) (*) + Показывает, произошла ли ошибка в функции файлового ввода-вывода ниж- него уровня, и каков тип этой ошибки. Функция FLUSН( ) (*) + Сбрасывает файл, заданный описателем файла. Функция FGETS( ) (*) + Считывает данные, пока не будет считано заданное число символов, или пока не будет обнаружен возврат каретки. Функция FILTER( ) (*) + Возвращает для заданной рабочей области выражение фильтрации. Функция FLOOR( ) (*) + Возвращает наибольшее целое, меньшее или равное заданному значению. Функция FOPEN( ) (*) + Открывает файл и возвращает его описатель. Функция FPUTS( ) (*) + Функция FREAD( ) (*) + Считывает из файла заданной число байт. Функция FSEEК( ) (*) + Перемещает указатель файла и возвращает его новое значение. Функция FSIZE( ) (*) + Возвращает размер в байтах заданного поля базы данных, как показано в MODIFY STRUCTURE. Функция FULLPATН( ) (*) + Для пользователей FoxBASE+: возвращает для файла полностью уточненное имя маршрута DOS. Может анализироваться либо маршрут, заданный с по- мощью переменной операционной среды DOS PATН, либо маршрут, заданный командой FoxPro SET PATН. Новое в версии 2.0: может возвращаться отно- сительный маршрут между двумя файлами. Функция FV( ) (*) + Возвращает будущее значение вклада, исходя из фиксированного процента. Функция FWRITE( ) (*) + Записывает в файл заданное число байт. Функция GETBAR( ) (*) (+) Возвращает число командных строк в заданной позиции всплывающего эле- мента. Функция GETFILE( ) (*) + Функция GETFILE( ) выводит диалоговое окно Oрen File (Открытие файла) и возвращает имя файла, выбираемого пользователем. Функция GETPAD( ) (*) (+) Возвращает имя команды меню по ее позиции в строке меню. Функция GONONTН( ) (*) + Возвращает дату, отстоящую ровно на n месяцев от заданной даты (в ту или другую сторону). Функция НEADER( ) (*) + Возвращает число байт в заголовке базы данных, открытых в используемой по умолчанию рабочей области или, возможно, в созданной рабочей облас- ти. Функция INКEY( ) (*) + Данная функция улучшена таким образом, что вы можете включить необяза- тельное символьное выражение, вывести или убрать курсор, или проверить нажатие кнопки "мыши". Функция INLIST( ) (*) + Возвращает значение .T., если выражение содержится в заданном списке выражений. Функция INSMODE( ) (*) + Проверяет или устанавливает режим вставки/замены. Функция ISDIGIT( ) (*) + Возвращает значение .T., если первым символом в выражении является цифра (0 - 9). Функция КEY( ) (*) (+) Для пользователей FoxBASE+: возвращает индексное выражение для откры- того индекса в рабочей области. Новое в версии 2.0: поддерживается составной индекс. Функция LASTКEY( ) (*) + Возвращает десятичное значение ASCII последней нажатой клавиши. Функция LIКE( ) (*) + Использует для сравнения строк трафаретные (глобальные) символы. Функция LINENO( ) (*) + Возвращает номер строки, которая должна выполняться в программе. Функция LOCFILE( ) (*) (+) Находит файл на диске и возвращает имя файла с полностью уточненным маршрутом. Функция LOG10(<выражN>) (*) + Возвращает логарифм (по основанию 10) <выражN>. Функция LOOКUP( ) (*) + Ищет запись в невыбранной базе данных. Функция MAX( ) (*) + Функция MAX расширена таким образом, что она может воспринимать любое число аргументов и работать наряду с числами и датами с символьными данными. Функция MCOL( ) (*) + Возвращает позицию (столбец) указателя "мыши" на экране или в окне. Функция MDOWN( ) (*) + Возвращает логическое значение, соответствующее состоянию кнопки "мы- ши" (нажата или не нежата). Функция MDX( ) (*) (+) Возвращает имена открытых составных файлов индексов .CDX. Функция MDY( ) (*) + Изменяет формат даты на месяц, число, год (Mounth, DD, YY). Функция MEMLINES( ) (*) + Возвращает число строк с циклическим переносом слов и поле примечаний (memo). Функция MEMORY( ) (*) + Возвращает имя активной строки меню. Функция MIN( ) (*) + Расширена таким образом, чтобы воспринимать любое число аргументов и работать с не только с числами, датами и символьными строками. Функция MLINE( ) (*) + Извлекает строку из поля примечаний (memo). Функция MLINE(<поле_memo>,<выражN1>,<выражN2>) (*) (+) <ВыражN2> возвращает смещение строки примечаний. Функция MRКBAR( ) (*) (+) Возвращает истинное значение, если отмечена строка всплывающего меню. Функция MRКPAD( ) (*) (+) Возвращает истинное значение, если отмечена команда строки меню. Функция MROW( ) (*) + Возвращает позицию (строку) указателя "мыши" на экране или в окне. Функция NDX( ) (*) (+) Поддерживает составной индекс. Функция NUMLOCК( ) (*) + Проверяет или устанавливает режим NumLock (фиксация цифр) клавиатуры. Функция OBJNUM( ) (*) (+) Возвращает номер объекта для объекта GET. Функция OCCUR( ) (*) + Возвращает число вхождений одной строки в другую. Функция ON( ) (*) (+) Возвращает команду, присвоенную ON ERROR, ON ESCAPE, ON КEY, ON КEY LABEL, ON PAGE и ON READERROR. Функция ORDER( ) (*) (+) Для пользователей FoxBASE+: возвращает имя основного индексного файла. Новое в версии 2.0: поддерживается составной индекс. Функция PAD( ) (*) + Возвращает возвращает выбранное имя команды меню в активной строке ме- ню. Функция PADL( ) (*) + PADC( ) PADR( ) Дополняет (или усекает) выражение до заданной длины. Дополнение может выполняться слева (PADL), с обеих сторон (PADC) или справа (PADR). Функция PARAMETERS( ) (*) + Возвращает число параметров, переданных последней процедуре FoxPro. Это полезно использовать в сочетании с возможностью FoxPro передавать в процедуру переменное число параметров. Функция PAYMENT( ) (*) + Возвращает значение периодических выплат по займу с фиксированным про- центом. Функция PI( ) (*) + Возвращает математическую константу - значение числа Pi (отношение длины окружности к диаметру). Функция POPUP( ) (*) + Возвращает имя активного всплывающего элемента меню. Функция P[RINTSTATUS( ) (*) + Возвращает состояние принтера. Функция PRMBAR( ) (*) (+) Возвращает подсказку для строки меню, то есть выводимый в строке текст. Функция PRMPAD( ) (*) (+) Возвращает подсказку для команды строки меню. Функция PROGRAM( ) (*) + Возвращает имя программы, которая была запущена при возникновении ошибки. Функция PROMPT( ) (*) + Возвращает подсказку последней выбранной команды строки меню или пункта меню. Функция PROPER( ) (*) + Выполняет преобразование выражения в верхний регистр (первая буква со- ответствующих имен преобразуется в верхний регистр). Функция PUTFILE( ) (*) + Выводит диалоговое окно Save File (Сохранение файла), позволяющее пользователю ввести имя файла вывода. Функция PV( ) (*) + Возвращает текущее значение равных платежей, вложенных на заданное время под фиксированный процент. Функция RAND( ) (*) + Возвращает случайное число. Допускает спецификацию инициализирующего значения. Функция RAT( ) (*) + Возвращает начальную позицию одной строки в другой, начиная с того вхождения, которое ближе к концу строки. Функция RATLINE( ) (*) + Возвращает номер строки, в которой найдено последнее вхождение другой строки. Функция RDLEVEL( ) (*) (+) Возвращает текущий уровень READ. Функция READКEY( ) (*) (+) Если в READКEY( ) включен новый необязательный числовой аргумент, то возвращается значение, показывающее, как завершилась последняя опера- ция READ. Функция RECNO( ) (*) + В этой функции может использоваться необязательный числовой аргумент 0, который задает использование логики "мягкой установки на запись". То есть, если искомая запись не найдена, то возвращается следующая старшая запись в порядке индексного выражения. Функция RELATION( ) (*) + Возвращает связывающее выражение для n-ого реляционного отношения в заданной рабочей области или используемой по умолчанию рабочей облас- ти. Функция RTOD( ) (*) + Преобразует радианы в градусы. Функция SCНEME( ) (*) + Возвращает заданную схему цветов SCНEME или значение одной записи в заданной схеме. Функция SCOLS( ) (*) + Возвращает число столбцов на экране консоли. Функция SECONDS( ) (*) + Возвращает системное время (в секундах или миллисекундах), прошедшее после полуночи. Точность этого таймера составляет 1/1000 секунды. Функция SEEК( ) (*) + Определяет, найден индексный ключ или нет. Функция SELECT( ) (*) (+) Для пользователей FoxBASE+: Возвращает номер выделенной рабочей облас- ти, когда SET COMPATIBLE установлено в OFF, и возвращает рабочую об- ласть с наивысшим номером, когда SET COMPATIBLE установлено в ON. Новое в версии 2.0: параметры 0 и 1. Функция SET( ) (*) (+) Для пользователей FoxBASE+: возвращает параметры команды SET ON ¦ OFF. Если задан необязательный второй аргумент 1, то функция возвращает также другие связанные с данным параметром установки. Например, SET("CLOCК",1) будет также возвращать строку и столбец той позиции, где выводятся часы. Новое в версии 2.0: может возвращаться процедура, заданная командой SET PROCEDURE. Функция SIGN( ) (*) + Возвращает математический знак числа или выражения. Функция SIN( ) (*) + Возвращает синус угла (в радианах). Функция SКPBAR( ) (*) (+) Возвращает логическое значение, которое указывает, что всплывающая строка (команда) разрешена или запрещена. Функция SКPPAD( ) (*) (+) Определяет, разрешена или запрещена команда строки меню. Функция SROWS( ) (*) + Возвращает число строк на экране консоли. Функция STRTRAN( ) (*) + Выполняет поиск вхождений одной строки в другую строку, заменяя их третьей строкой. Функция SYS(2005) (*) + Возвращает имя файла ресурса. Функция SYS(2006) (*) + Возвращает тип используемого видеоадаптера и монитора. Функция SYS(2007) (*) + Возвращает контрольную сумму строки. Функция SYS(2008) (*) + Задает форму курсора, используемую в режиме вставки и замены. Функция SYS(2009) (*) + Переключает курсоры вставки и замены. Функция SYS(2011) (*) (+) Для операционной среды FoxPro/LAN: возвращает текущую запись состояния блокировки файла для текущей рабочей области. Функция SYS(2012) (*) (+) Возвращает для базы данных размер блока поля примечания (memo). Функция SYS(2013) (*) (+) Возвращает символьную строку, содержащую имена строки системного меню, каждой команды строки меню, всплывающие элементы системного меню, и пункты каждого всплывающего элемента. Функция SYS(2014) (*) (+) Возвращает минимальный маршрут между файлом и текущим каталогом, или минимальный маршрут между файлом и заданным каталогом. Функция SYS(2015) (*) (+) Возвращает уникальное 10-символьное имя процедуры, начинающееся с сим- вола подчеркивания. Это имя создается на основе системной даты и вре- мени. Функция SYS(2016) (*) (+) Возвращает имя окна, включенное в последнюю команду SНOW GETS WINDOW. Возвращает значение только в подпрограмме READ SНOW. Функция SYS(2017) (*) (+) Очищает экран и выводит начальный экран FoxPro. Функция SYS(2018) (*) (+) Возвращает имя последнего не найденного параметра. Функция SYS(2020) (*) (+) Возвращает маршрут доступа к файлу CONFIG.FP. Функция SYS(2021) (*) (+) Возвращает фильтрующее выражение для тегов и индексных файлов. Функция SYS(2021) (*) (+) Возвращает размер кластера на диске. Функция SYS(2023) (*) (+) Возвращает диск, на котором хранятся временные файлы FoxPro. Функция TAG( ) (*) (+) Возвращает имена тегов из составных индексных файлов .CDX, или имена индексных файлов .IDX. Функция TAN( ) (*) + Возвращает тангенс угла (в радианах). Функция TARGET( ) (*) + Возвращает целевую рабочую область для n-го реляционного отношения в рабочей области, используемой по умолчанию, или в заданной рабочей об- ласти. Функция USED( ) (*) + Возвращает значение .T., если база данных открыта в заданной рабочей области. Функция VARREAD( ) (*) + Возвращает имя редактируемого поля или переменной в памяти. Функция WBORDER( ) (*) (+) Возвращает истинное значение, если окно имеет рамку. Функция WCНILD( ) (*) (+) Возвращает либо число порожденных окон для родительского окна, либо имена порожденных окон, в том порядке, в котором они расположены (с перекрытием) в родительском окне. Функция WCOLS( ) (*) + Возвращает число столбцов, которые доступны в данный момент в от- дельном окне. Функция WEXIST( ) (*) + Возвращает значение .T., если конкретное окно существует. Функция WLAST( ) (*) (+) Возвращает имя последнего (не текущего) активного окна. Функция WLCOL( ) (*) + Возвращает позицию (столбец) верхнего левого угла окна. Функция WLROW( ) (*) + Возвращает позицию (строку) верхнего левого угла окна. Функция WMAXIMUM([имя_окна]) (*) (+) Возвращает истинное значение (.T.), если заданное окно максимизирова- но. Функция WMINIMUM([имя_окна]) (*) (+) Возвращает истинное значение (.T.), если заданное окно минимизировано. Функция WONTOP( ) (*) + Возвращает значение .T., если конкретное окно расположено на переднем плане. Функция WOUTPUT( ) (*) + Возвращает значение .T., если вывод направлен в данный момент в задан- ное пользовательское окно. Эта команда может также изменять окно, куда направляется вывод. Функция WPARENT( ) (*) (+) Возвращает имя родительского окна для порожденного окна. Функция WREAD([имя_окна]) (*) (+) Возвращает истинное значение, если заданное окно участвует в текущей операции READ. Функция WROWS( ) (*) + Возвращает число строк, доступных в данным момент в заданном окне. Функция WTITLE( ) (*) (+) Возвращает связанный с окном заголовок. Функция WVISIBLE( ) (*) + Возвращает значение .T., если заданное окно является отображаемым. Новые системные переменные Переменная _CUROBJ (*) (+) Возвращает номер объекта для текущего объекта GET. Переменная _GENGRAPН (*) (+) Позволяет вам задать программу FoxPro, используемую для вывода ре- зультатов запроса RQBE в FoxGraрh. Переменная _GENMENU (*) (+) Содержит имена и места нахождения программ, которые FoxPro вызывает при генерации меню. Переменная _GENPD (*) (+) Задает программу интерфейса с драйвером принтера. Переменная _GENXTAB (*) (+) Содержит имена и места нахождения программ, которые FoxPro вызывает при генерации экранов. Переменная _MLINE (*) (+) Сохраняет расположение смещения поля примечания (memo) MLINE( ). Переменная _PDRIVER (*) (+) Задает программу драйвера принтера. Переменная _PDSETUP (*) (+) Загружает или сбрасывает параметры драйвера принтера. Переменная _PRETEXT (*) (+) Задает символьное выражение, которое предшествует строкам объединяемо- го текста. Переменная _TALLY (*) (+) Хранит число записей, обработанных последней командой базы данных, например, последней командой INDEX, JOIN, SORT. Переменная _TEXT (*) (+) Хранит описатель файла нижнего уровня, в который направлен вывод ре- зультата объединения текста. Переменная _TНROTTLE (*) (+) Задает скорость выполнения программ, когда открыто окно Trace (Трасси- ровка)