Часть 16
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MARK OF є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Указание пункта меню или символа маркера в команде всплывающего меню Синтаксис SET MARK OF MENU TO | SET MARK OF PAD OF TO | SET MARK OF POPUP TO | SET MARK OF BAR OF TO | Замечания Новая в FoxPro 2.0 Смотри также CNTBAR(), CNTPAD(), DEFINE BAR, DEFINE MENU, DEFINE PAD, DEFINE POPUP, MRKPAD(), MRKBAR() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Символ маркера помещается перед каждым пунктом или командой поль- зовательских меню. Это одиночный символ помещаемый слева от пункта или команды меню. Символ маркера может использоваться для указания, что данный пункт или команда меню доступны. Символ маркера может поме- щаться перед пунктами и командами в Системных меню. Данные команды позволяют указывать символ маркера, а также удалять его. MRKPAD() и MRKBAR() дают возможность высвечивать или убирать сим- вол маркера для пунктов и команд меню. Для установки маркера в проти- воположное состояние в пункте меню используйте !MRKPAD() в . Для установки маркера в команде меню используйте !MRKBAR() в . Команды и дополнительные опции SET MARK OF Символ маркера указывается для каждого пункта в меню с помощью SET MARK OF . TO Символ маркера задается при помощи . Если литераль- ная строка, она должна быть заключена в одиночные или двойные апостра- фы. Если содержит более одного символа, только первый символ используется в качестве символа маркера. Если логическое выражение принимает значение "истина" (.T.), то символ маркера высвечивается перед каждым пунктом меню. Для того чтобы убрать символ маркера, необходимо установить логическое значение в "ложь" (.F.). SET MARK OF PAD OF Указать символ маркера для отдельных пунктов меню. TO TO Различные символы маркера могут указываться для каждого пункта ме- ню. Символ маркера для пункта меню указанный в может быть включен или выключен при помощи выражения . SET MARK OF POPUP TO | SET MARK OF BAR OF TO | SET MARK OF POPUP и SET MARK OF BAR OF команды позволяют помещать символ маркера перед каждой командой командой во всплывающем меню или перед отдельными строками. SET MARK OF POPUP используется для назначения символа маркера, ко- торый в дальнейшем в каждой команде всплывающего меню; SET MARK OF BAR OF помещает символ маркера в отдельные указанные строки всплывающего меню. Маркеры могут включаться и выключаться при помощи логического выражения одновременно у всех команд меню, и по отдельности при помощи . Вы не можете использовать опции маркера во всплывающих меню, соз- данных с любыми опциями PROMPT (FIELD, FILES или STRUCTURE). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Пример є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Для примера использования SET MARK, смотри описание примера для CNTBAR(). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MARK TO є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация разделителя в датах Синтаксис SET MARK TO [] Смотри также SET DATE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET MARK TO задает символ, который в дате является разде- лителем полей месяца, года и дня. Разделитель должен быть одним символом, заключенным в одинарные или двойные кавычки, или в скобки, или быть символьной переменной памяти. Используйте команду SET MARK TO без параметра для переуста- новки символа разделителя в его значение, принятое по умолчанию - сим- вол наклонной черты (/). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MEMOWIDTH є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация ширины поля примечания при его визуализации Синтаксис SET MEMOWIDTH TO Смотри также ATCLINE(), ATLINE(), MEMLINES(), MLINE() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда задает c помощью ширину поля типа примечание (memo) при его визуализации командами DISPLAY, LIST или ?/??. Оказывает влия- ние на все поля примечаний и символьные выражения длиной более 254 байт.Ширина поля примечания влияет на значения, которые выдают функции ATLINE, ATCLINE, MEMLINE и MLINE. По умолчанию принято значение 50 для ширины поля при- мечания. Можно указывать значение в диапазоне от 8 до 256. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MESSAGE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Задание строки сообщения и ее положения на экране или в окне Синтаксис SET MESSAGE TO [] SET MESSAGE TO [ [LEFT | CENTER | RIGHT]] SET MESSAGE WINDOW [] Смотри также SET STATUS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание SET MESSAGE позволяет определить сообщение выводимое на экран под строкой состояния. Она также позволяет определить положение сообщения, которое порождается командами @...PROMPT, DEFINE BAR, DEFINE MENU, DEFINE PAD, DEFINE POPUP. Дополнительные опции SET MESSAGE TO [] Команда SET MESSAGE TO дает возможность пользователю опре- делять строку символов, которая должна отображаться как некоторое сообщение. Линейка состояния должна быть выведена на экран командой SET STATUS перед тем, как высвечивается сообщение. Если SET MESSAGE TO порождается без аргументов, сообщение устанавливается в нулевую строку. Символьное выражение может иметь длину до 79 символов. SET MESSAGE TO [ [LEFT | CENTER | RIGHT]] Формат команды SET MESSAGE TO используется в том случает, когда требуется указать строку окна или экрана на которой во время ра- боты команд @ ... PROMPT, DEFINE BAR, DEFINE MENU, DEFINE PAD и DEFINE POPUP может быть высвечена необязательная символьная строка. Если вы- ражение установлено в 0, то сообщения не отображаются. Команда SET MESSAGE TO без аргументов делает номер строки сообщения становится равным последнему номеру строки экрана или окна. Кроме этого, вы можете специфицировать горизонтальное положение на экране для сообщения с помощью необязательных ключевых слов LEFT, RIGHT и CENTER. Эти ключевые слова не оказывают влияния на сообщения от команд DEFINE BAR, DEFINE MENU, DEFINE PAD и DEFINE POPUP. SET MESSAGE WINDOW [] Сообщение высвечивается в указанном окне. Для исключения вывода сообщения в окно и вывода его на экран необходимо подать команду SET MESSAGE WINDOW. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MOUSE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Задание чувствительности устройства мышь Синтаксис SET MOUSE ON | OFF SET MOUSE TO [] Смотри также _DBLCLICK ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Вы можете разрешить или запретить использование мыши при помощи команд SET MOUSE ON, SET MOUSE OFF. Дополнительные опции ON Разрешает мышь, так что Вы можете полностью ее использовать. OFF Запрещает ввод информации с мыши. TO Команда SET MOUSE TO дает возможность пользователю опреде- лять активность (чувствительность) устройства типа мышь. Значение вы- ражения определяет отклик указателя мыши на ее перемещение по экрану. Значение выражения может располагаться в диапазоне от 1 до 10, при чем 1 соответствует наименьшей чувствительности, а 10 соот- ветствует наибольшей чувствительности. По умолчанию принято значение 5 для этой команды. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET MULTILOCKS є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Включает/выключает блокировку группы записей. Синтаксис SET MULTILOCKS ON | OFF Замечания FoxPro/LAN Смотри также LOCK(), RLOCK() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание FoxPro/LAN обеспечивает возможность заблокировать в файле базы данных одну или несколько записей. В зависимости от установки MULTILOCKS можно попытаться заблокировать либо одну запись, либо груп- пу записей. Записи могут быть заблокированы при помощи функций LOCK(), RLOCK() (LOCK() и RLOCK() взаимозаменяемы). ВАЖНО: Заметим, что переключение MULTILOCKS с ON на OFF или с OFF на ON неявно осуществляет UNLOCK ALL -все блокированный записи во всех рабо- чих областях освобождаются. Для получения дополнительной информации смотри описание функций LOCK() и RLOCK(). Дополнительные опции ON Если установлено SET MULTILOCKS ON, Вы можете попытаться заблоки- ровать множество записей. Попытку заблокировать несколько записей мож- но осуществить двумя способами: включить в LOCK() или RLOCK() набор номеров записей или выполнить функцию несколько раз. Записи можно пытаться заблокировать в в текущей рабочей области или в других областях, указав псевдоним, имя или номер рабочей области. OFF Если MULTILOCKS установлено в OFF (значение по умолчанию), только одна запись может быть заблокирована в текущей рабочей области с по- мощью функции LOCK() или RLOCK(). Записи можно пытаться заблокировать в в текущей рабочей области или в других областях, указав псевдоним, имя или номер рабочей области. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Пример программы є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ SET MULTILOCKS ON SELECT A USE customer ? LOCK("1,2,3,4,5", 1) ? RLOCK("1,2,3,4,5", "customer") USE ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET NEAR є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация положения указателя записей при неудачных поисках Синтаксис SET NEAR ON | OFF Смотри также RECNO() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET NEAR определяет положение указателя записей, которое он должен занять при после неудачного поиска записи. Неудачный поиск записи имеет место, когда не найдено ни одной записи, отвечающей кри- терию поиска. Команда SET NEAR влияет на команды FIND и SEEK. Дополнительные опции ON Если установлено SET NEAR ON и поиск не завершился успехом, то указатель записей (record pointer) настроен на запись, которая распо- ложена непосредственно за ближайшей подходящей записью. Функция RECNO() будет выдавать номер этой подходящей записи; функция FOUND() будет возвращать значение .F., EOF() будет возвращать значение .F. OFF Если установлено SET NEAR OFF и поиск не завершился успехом, то указатель записей (record pointer) настроен на конец файла. Функция RECORD() будет выдавать число записей в текущей базе данных плюс один. FOUND() будет возвращать значение .F., EOF() будет возвращать значение .T. Независимо от установок команды SET NEAR функция RECNO() с нулевым аргументом будет выдавать номер самой ближайшей подходящей записи при неудачном поиске. По умолчанию установлено SET NEAR OFF. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET NOTIFY є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрешает/запрещает вывод на экран системных сообщений. Синтаксис SET NOTIFY ON | OFF Смотри также SET MESSAGE, WAIT ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание SET NOTIFY подавляет вывод на экран системных сообщений. Если SET NOTIFY ON, системные сообщения высвечиваются на экране, в противном случае их вывод на экран дисплея подавляется. Системные сообщения вы- водятсяв окне, расположенном в правом верхнем углу экрана. Примером системного сообщения является сообщение "Expression is valid (Выражение допустимо)" диалога построителя выражений (Expression Builder)и "Do Cancelled (Прекращено)", появляющееся в случае прерыва- ния работы программы. WAIT WINDOW (Окно ожидания) выводит свои сообще- ния в окно системных сообщений. Когда используется FoxPro/LAN, сетевая версия FoxPro, SET NOTIFY влияет на сообщением "Attempting to lock..." , которое появляется, когда REPROCESS установлено в AUTOMATIC или 0. Если NOTIFY установлено в OFF, сообщение не выводится. Значение по умолчанию SET NOTIFY ON. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET ODOMETER є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Настройка интервала отчета Синтаксис SET ODOMETER TO [] Смотри также SET TALK, _TALLY ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET ODOMETER используется для настройки отчетного интерва- ла (reporting interval) для команд, которые выдают информацию о своем статусе. Например, команда COPY отображает на экране число записей, которые копируются в новый файл во время выполнения команды. Такой счетчик записей может быть удален с экрана с помощью команды TALK OFF. SET TALK WINDOW направляет вывод в системное окно вместо экрана. Значение может находиться в диапазоне от 1 до 32767. Значение по умолчанию равно 0. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET OPTIMIZE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрешение/запрещение оптимизации. Синтаксис SET OPTIMIZE ON | OFF Замечания Новая в FoxPro 2.0 Смотри также INDEX, SET ORDER ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание FoxPro использует технологию Rushmore для оптимизации обращения к данным. Команды базы данных, которые поддерживают опцию FOR используют оптимизацию Rushmore при выполнении. Случаи, кода нужно запрещать оп- тимизацию довольно редки. Когда порождается команда использующая опти- мизацию, Rushmore определяет, какие записи удовлетворяют условию FOR. Затем выполняется команда, оперируя с набором записей, определенным Rushmore. Если команда выгадывающая от использования Rushmore модифицирует ключи индексных запросов, набор записей Rushmore может оказаться уста- ревшим. Вы можете запретить Rushmore, чтобы быть уверенным в актуаль- ности информации, получаемой из базы данных. Rushmore может быть разрешено/запрещено глобально для всех команд которые ускоряются при использовании Rushmore с помощью SET OPTIMIZE. Команда SET OPTIMIZE OFF запрещает Rushmore, SET OPTIMIZE ON разрешает Rushmore. Каждая команда использующая Rushmore имеет опцию NOOPTIMIZE которая может запрещать Rushmore для множества команд. Ниже приведена таблиц, содержащая команды, которые при выполнении используют Rushmore, когда в них включена опция FOR. SET OPTIMIZE эф- фективна для любой из этих команд. Каждая команда,также поддерживает опцию NOOPTIMIZE для запрещения Rushmore для этой команды. Команды ускоряющиеся при использовании Rushmore. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД AVERAGE DISPLAY REPLACE BROWSE EDIT REPORT CALCULATE EXPORT SCAN CHANGE JOIN SORT COPY TO LABEL SUM COPY TO ARRAY LIST TOTAL COUNT LOCATE DELETE RECALL ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для дополнительной информации Rushmore, смотрите главу "Оптимиза- ция Ваших приложений" в документе FoxPro "Руководство разработчика"( Developer's Guide). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET ORDER є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация главного управляющего индекса Синтаксис SET ORDER TO [ | <.idx index file> | [TAG] [OF <.cdx file>] [IN | ] [ASCENDING | DESCENDING]] Замечания Расширена в FoxPro 2.0: TAG, IN , опции ASCENDING и DESCENDING Смотри также INDEX ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание База данных может иметь несколько открытых индексных файлов однов- ременно. Однако, только один индексный файл (главный индексный файл) или тег из составного .CDX индексного файла (главный тег) определяет порядок доступа и просмотра записей. Некоторые команды (например SEEK) используют главный индексный файл или главный тег для поиска записи. Данная команда позволяет определить главный индексный файл или главный тег. Главный индекс также может определять последовательность записей в процессе их обработки. Индексные файлы могут быть открыты вместе с базой данных, включе- нием опции INDEX в команду USE. Если база данных имеет связанный с ней структурный индексный файл, то он открывается автоматически вместе с базой данных. после открытия базы данных, Вы можете открывать/закры- вать индексные файлы для базы данных, используя команду SET INDEX. Дополнительные опции Используется для определения главного индексного файла или главно- го тега. Выражение ссылается на порядок нумерации индексных файлов, которые были перечислены в параметрах команд SET INDEX и USE. Затем теги в структурных индексных файлах (если они существуют) нуме- руются в порядке их создания. И последними нумеруются теги независимых составных индексных файлах в порядке их создания. Пример поможет иллюстрацией, как нумеруются различные индексные файлы и теги. Имена файлов приведены для иллюстрации, и не обязательно будут существовать. База данных VIDEO.DBF открывается с тремя ин- дексными файлами TITLE.IDX, COSTS.CDX, RATING.IDX в первой рабочей об- ласти при помощи команды: USE video INDEX title.idx,costs.cdx,rating.idx IN 1 VIDEO.DBF имеет сложный структурный .CDX индексный фал с двумя те- гами NUMBERSOLD и YEARSOLD. Структурный файл (VIDEO.CDX) открывается автоматически, когда открывается база данных. DISPLAY STATUS возвратит следующую информацию о базе данных и ее индексах: Currently Selected Database Select area: 1, Database in Use: C:\FOXPRO2\VIDEO.DBF Master index file: C:\FOXPRO2\TITLE.IDX Key: TITLE Index file: C:\FOXPRO2\RATING.IDX Key: RATING Structual CDX file: C:\FOXPRO2\VIDEO.CDX Index tag: NUMBERSOLD Index tag: YEARSOLD CDX file: C:\FOXPRO2\COSTS.CDX Index tag: RENALCOST Index tag: BUYCOST Так как .IDX файлы нумеруются первыми, необходимо подать команду SET ORDER TO 1, чтобы сделать файл TITLE.IDX главным индексным файлом и SET ORDER TO 2, чтобы сделать файл RATING.IDX главным индексным фай- лом: SET ORDER TO 1 Главный индекс: C:\FOXPRO2\TITLE.IDX SET ORDER TO 2 Главный индекс: C:\FOXPRO2\RATING.IDX Далее нумеруются теги структурного составного индексного файла: SET ORDER TO 3 Главный индекс: C:\FOXPRO2\VIDEO.CDX Tag: NUMBERSOLD SET ORDER TO 4 Главный индекс: C:\FOXPRO2\VIDEO.CDX Tag: YEARSOLD Последними нумеруются теги в составном индексном файле COSTS.CDX: SET ORDER TO 5 Главный индекс: C:\FOXPRO2\COSTS.CDX Tag: RENTALCOST SET ORDER TO 6 Главный индекс: C:\FOXPRO2\COSTS.CDX Tag: BUYCOST Если больше чем номер .IDX индексного файла и тега .CDX составного индексног файла, высветится сообщение об ошибке "Index tag not found" ( Индексный файл не найден). Если = 0, база данных доступна в физическом порядке записей, но индексные файлы при этом от- крыты для обновления. Включение ORDER без аргументов эквивалентно ORDER 0. <.idx index file> Вы можете переназначить .IDX индексный файл как главный индексный файл включив его имя в <.idx index file>. [TAG] [OF <.cdx file>] Для назначения тега .CDX индексного файла в качестве главного те- га, включите . может быть из структурного ин- дексного файла или любого открытого .CDX составного индексного файла. Если существуют одинаковые имена тегов в открытых .CDX составных индексных файлах включите опцию OF <.cdx file>. ВНИМАНИЕ: Если совпадает имя .IDX файла и имя тега, .IDX файл пользуется преимуществом.. IN | SET ORDER назначает главный индексный файл или тег для базы дан- ных, открытой в текущей рабочей области. можно определять главный ин- дексный файл или тег для базы данных, открытой в произвольной рабочей области, для чего надо указать псевдоним или номер рабочей об- ласти . ASCENDING | DESCENDING Вы можете также определить в порядке возрастания или убывания бу- дут доступны записи базы данных, включив опцию ASCENDING или DESCENDING. Индексный файл или тег при этом не изменяются изменяется только поря- док доступа. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET PATH є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация пути каталога при поиске файлов Синтаксис SET PATH TO [] Смотри также LOCFILE() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание С помощью команды SET PATH TO вы можете специфицировать список ка- талогов, в которых система FoxPro будет осуществлять поиск файлов, ко- торые не найдены в текущем рабочем каталоге. Имена каталогов в списке должны отделяться друг от друга либо символом запятой (,), либо символом точкой с запятой (;). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET PDRIVER є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация драйвера принтера Синтаксис SET PDRIVER TO [] Смотри также _PDRIVER, SET PDSETUP, SET PRINTER ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Этой командой Вы можете специфицировать драйвер принтера, включив имя драйвера принтера в команду SET PDRIVER. Например, если имя прог- раммы драйвера для принтера DRIVER.PRG, используйте команду: SET PDRIVER TO DRIVER Имя программы для драйвера принтера может включать полный путь для поиска, если программа не принадлежит пути FoxPro для поиска файлов. Когда Вы подадите эту команду, имя программы будет сохранено в системной переменной в системной переменной _PDRIVER. SET PDRIVER выгружает текущий драйвер принтера, если таковой был загружен. Когда Вы подаете такую команду, выполняется процедура PDONUNLOAD (если такая имеется) текущего загруженного драйвера принте- ра. Затем загружается новый драйвер принтера и выполняется процедура PDONLOAD (если такая имеется). Для выгрузки программы драйвера принтера необходимо подать команду SET PDRIVER TO без аргументов. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET PDSETUP є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Загрузка или очистка установки драйвера принтера. Синтаксис SET PDSETUP TO [[ [, [, ... ]]] [WITH [, ... ]]] Смотри также _GENPD, _PDRIVER, _PDSETUP, SET PRINTER ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание SET PDSETUP загружает установку драйвера принтера или зачищает те- кущую установку драйвера принтера. Установка драйвера принтера - это комбинация установочных параметров, которые включют в себя программу драйвера и информацию о печати, такую как ориентация страницы, шрифт используемый по умолчанию, размер и тип шрифта, границы и так далее. Установки драйвера принтера хранятся в файле ресурсов FoxPro FOXUSER.DBF, и могут быть созданы интерактивно с использованием диало- га Редактирования установки принтера (Printer Setup Editing). Установка драйвер принтера может быть загружена или зачищена с использованием системной переменной памяти _PDSETUP. Когда подается команда SET PDSETUP, выполняется прикладной интер- фейс текущего драйвера принтера, который передает имя установки драй- вера принтера, включенное в SET PDSETUP. Прикладной интерфейс установ- ки принтера указывается системной переменной памяти _GENPD (по умолча- нию GENPD.APP, прикладной интерфейс установки принтера, включенный в FoxPro). Дополнительные опции Вы можете загрузить установку драйвера принтера, указав ее имя в . Когда Вы загрузите установку драйвера принтера, ее имя будет сох- ранено в системной переменной памяти _PDSETUP и может быть создан спе- циальный массив переменных памяти _PDPARMS. Если имя установки драйвера принтера, которое Вы указали в не существует в файле ресурсов, то выполняется прикладная установка текущего драйвера принтера так, как будто Вы указали ее имя. Если имя прикладной установки драйвера принтера GENPD.APP (прикладной интерфейс установки принтера, включенный в FoxPro) появится диалог Редактирова- ния установки принтера (Printer Setup Editing), при помощи которого Вы сможете создать установку. Если имя начинается с тире (-), программа _GENPD не будет испол- няться, но имя следующее за тире сохраниться в _PDSETUP. Если Вы дадите команду SET PDSETUP TO без , текущая установ- ка принтера драйвера будет зачищена, нулевая строка запишется в _PDSETUP, и массив _PDPARMS будет удален из памяти. Установка принтера по умолчанию будет загружена при старте FoxPro если указать следующую строку в CONFIG.FP: PDSETUP = '' WITH имя установки, загружаемой при старте FoxPro ( обяза- тельно должно быть заключено в кавычки). Указанная в CONFIG.FP уста- новка имеет преимущества над установкой принятой по умолчанию в диало- ге Установки драйвера принтера (Printer Driver Setup). [, ... ] Вы также можете включить необязательные параметры , ... вместе с именем установки драйвера принтера. Они передаются в прикладной интерфейс установки драйвера принтера и могут иметь любой тип. Первая строка в прикладном интерфейсе установки драйвера принтера должна быть командой PARAMETERS, принимающей параметры передаваемые из SET PDSETUP. Если Вы используете GENPD.APP, прикладной интерфейс установки драйвера принтера, принятый по умолчанию, не включайте в команду жти необязательные параметры. GENPD.APP не принимает параметры передавае- мые из SET PDSETUP и генерирует ошибку. WITH , [ ... ] Необязательная опция WITH может включаться в SET PDSETUP для создания специального массива _PDPARMS. Каждый параметр , становится элементом _PDPARMS. Первый параметр записывается в первый элемент _PDPARMS, параметр во второй элемент и так да- лее. Эти параметры могут иметь любой тип. Если Вы используете GENPD.APP, прикладной интерфейс установки драйвера принтера, принятый по умолчанию, включенные Вами параметры заменят существующие. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET POINT є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Изменение символа десятичной точки на другой символ Синтаксис SET POINT TO [] Смотри также SET DECIMAL, SET FIXED ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET POINT TO позволяет вам определить вместо символа деся- тичной точки некоторый другой символ. Символьное выражение мо- жет быть строкой символов, ограниченной либо одинарными кавычками (`'), либо двойными кавычками (""), либо квадратными скобками ([]), либо может быть переменной памяти. Для того, чтобы переустановить сим- вол десятичной точки в значение, принятое по умолчанию, надо издать команду SET POINT TO без выражения . По умолчанию установлено, что символ десятичной точ- ки это символ точка (.). Хотя Вы можете заменить символ десятичной точки для вывода на экран на другой символ, использовать при вычисле- ниях необходимо символ принятый по умолчанию. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Примеры є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ x = 1.25 newpoint ="_" SET POINT TO newpoint ? x 1_25 SET POINT TO && сброс в значение по умолчанию ?x 1.25 ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET PRINTER є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрешение или запрет вывода данных на принтер и указание порта вывода Синтаксис SET PRINTER ON | OFF SET PRINTER TO [ [ADDITIVE] | ] FoxPro/LAN: SET PRINTER TO [\\ \ = ] SET PRINTER TO [\\SPOOLER [\NB] [\F = ] [\B = ][\C = ] [\P = ]] [\S = ] [\Q = ] Смотри также PRINTSTATUS() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Эта команда позволяет Вам направлять/запрещать вывод в файл, порт или на сетевой принтер. Изучите руководство по сети для получения дополнительной информа- ции о работе сетевого принтера. Команды и дополнительные опции SET PRINTER ON Использование команды SET PRINTER ON разрешает вывод данных на принтер Выводные данные, которые форматируются с помощью команды @...SAY, не направляются на принтер, когда выполняется команда SET PRINTER ON. Для того, чтобы направить результаты работы команд @...SAY, используейте команду SET DEVICE TO PRINTER. SET PRINTER OFF Команда SET PRINTER OFF запрещает такой вывод. По умолчанию уста- новлено SET PRINTER OFF. SET PRINTER TO [ [ADDITIVE] | ] Команда SET PRINTER TO обеспечивает возможность назначать для вы- вода дисковый файл или порт. Можно включать имя <файл> в тех местах, где вы хотите определить адресат вывода. Включая ключ ADDITIVE, можно писать в конец существующего файла . Если ключевое слов ADDITIVE опущено, существующий файл будет перезаписан. Вы также можете указать порт для выхода, предназначенный для раз- личных локальных принтеров. Вы можете указать один из трех параллель- ных портов (LPT1, LPT2 или LPT3) или один из двух последовательных портов (COM1 или COM2). Используйте SET PRINTER TO без аргументов для сброса присвоенного значения выхода в значение ДОС, принятое по умолча- нию (утилита печати PRN). FoxPro/LAN Дополнительные опции и команды Выходная печать в сети может быть направлена в сеть, на локальное устройство или в файл (как однопользовательская версия) при помощи использования SET PRINTER. После порождения SET PRINTER, выходная ин- формация будет печататься или собираться в спуллере, пока не будет по- рождена следующая команда SET PRINTER. \\\ = Первый формат сетевой команды SET PRINTER направляет очередь выво- да печати на сетевой принтер. сетевое имя назначаемое Вашей рабочей станции. Имя назначается администратором сети и должно быть уникальным. имя назначаемое администратором сети принтеру. LPT1, LPT2 или LPT3 используется для указания отличий инсталлированного принтера. SET PRINTER TO Второй формат сетевой команды SET PRINTER специально предназначен для печати при помощи Novell Advanced Netware (R) версия 2.00 или выше. Значение по умолчанию SET PRINTER TO - утилита DOS для печати (PRN). SPOOLER SPOOLER может быть представлена для совместимости, но игнорируется - любая символьная строка может быть замещена. При использовании опций перечисленных ниже, не включаете между ними пробелы. \NB Подавляет печать на заглавной странице. (No Banner). \F = Указывает номер формы (от 0 до 255) в соответствии с кото- рой будет распечатываться информация. Эта опция используется для прин- теров, на которых выводятся различные типы букв, накладок, меток. \B = Заглавное имя. Указывает заголовок, который будет распечатываться на заглавной странице. Заголовок может содержать до 12 симво- лов. По умолчанию - это имя пользователя. \C = Указывает количество копий (от 1 до 255) направляемых в очередь сетевого принтера. По умолчанию 1 копия. \P = Указывает сетевой принтер, на который направляется вывод. Specifies network printer where output will be sent. номер назначаемый сетевому принтеру. По умолчанию - 0. \S = Указывает сетевой сервер печати сцепленный с выводом, куда посыла- ется информация. Имя не должно быть символьным выражением, то есть не должно быть окружено кавычками. \Q = Указывает очеред назначаемую принтеру на который направлен вывод. Имя не должно быть символьным выражением, то есть не должно быть окружено кавычками. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET PROCEDURE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Открыть процедурный файл Синтаксис SET PROCEDURE TO [] Смотри также PROCEDURE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET PROCEDURE TO используется для открытия файла, специфи- цированного с помощью необязательного параметра . По умолчанию, принято расширение .PRG имени файла, если оно не специфицировано в ко- манде. В каждый момент времени может быть открыт только один процедур- ный файл. Команда SET PROCEDURE TO без необязательного параметра закрывает текущий процедурный файл. Когда подается команда DO или описывается UDF, SET PROCEDURE will be ищет файл, если он не найден в программе, которая исполняется в настоящий момент. За более подробной информацией о процедурных файлах отсылаем вас к описанию команды PROCEDURE в данном руководстве. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET REFRESH є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Синтаксис SET REFRESH TO Замечания FoxPro/LAN Смотри также BROWSE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание FoxPro/LAN обеспечивает многопользовательский режим использования баз данных в сети. Одновременно несколько пользователей сети могут использовать одну и ту же базу данных или ее запись. Возможно, что за- пись, просматриваемая одним пользователем, в это же время редактиру- ется другим пользователем. С помощью команды SET REFRESH можно ука- зать, будет ли изменяться экран, если другой пользователь изменит ин- формацию, кроме того задать частоту обновления экрана. SET REFRESH касается только записи, высвечиваемой для редактирова- ния при помощи команды BROWSE и полей примечаний открытых командой MODIFY MEMO. Также касается при выводе на экран записей при помощи ко- манд CHANGE и EDIT (безформатных). SET REFRESH не эффективна с другими командами. Дополнительные опции SET REFRESH поддерживает числовой аргумент между 0 и 3,600. Если REFRESH установлено в 0, то изменения записи, сделанные другим пользователем будут выводится на экран только после перемещения указа- теля записи на измененную запись или ее блокировке. Если запись изме- нена другим пользователем, то после сброса ее блокировки, то будет вы- дано сообщение о ее изменениях и она обновится. Если значение лежит в диапазоне от 1 до 3,600 экран будет изме- нятся через каждые секунд. Если REFRESH установлено в 1 экран обновляется каждую секунду , если REFRESH установлено в 3,600 обновле- ние осуществляется один раз в час. Независимо от установки REFRESH, если запись заблокирована другим пользователем сети Вы получите обновленную запись, после сброса ее блокировки. Кроме того Вы получите сообщение "Record has change" (За- пись изменена). По умолчанию SET REFRESH установлено в 0. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET RELATION є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация отношения между двумя и более базами данных Синтаксис SET RELATION TO [ INTO | [, INTO | ... ] [ADDITIVE]] Смотри также INDEX, RELATION(), SET ORDER, SET RELATION OFF, SET SKIP, TARGET() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание С помощью команды SET RELATION TO вы можете связать два открытых файла баз данных. Перед установкой связи, одна база данных (роди- тельская база данных) должна быть открыта в текущей рабочей области и другая база данных (дочерняя база данных) должна быть открыта в другой рабочей области. После этого Вы можете подать команду SET RELATION для установления связи. В каждый момент времени, когда указатель записи в родительской ба- зе данных перемещается, также перемещается на соответствующую запись указатель записей в связанном дочернем файле. Если подходящая запись не найдена в связанной дочерней базе данных, то указатель записи для этой базы данных перемещается в самый конец файла. Связываемые базы данных обычно имеют общие поля. Например, предпо- ложим, что база данных (CUSTOMER.DBF) содержит информацию о покупате- лях. Она содержит поля для имени, адреса и уникального номера покупа- теля. Вторая база данных (BILLING.DBF) содержит информацию о поставщи- ках. Она также содержит поле для номера покупателя, и поля различных платежных характеристик. Вы можете использовать SET RELATION для связи двух баз данных по их общему полю - полю номера покупателя. Для установки связи, дочерняя база данных должна быть проиндексирована по общему полю. После уста- новки связи, при перемещении указателя записи на запись с данным номе- ром покупателя в родительской базе данных (CUSTOMER), указатель записи в дочерней базе данных (BILLING) переместится на запись с тем же номе- ром покупателя. Дополнительные опции Основное выражение связи обеспечивает связь между двумя базами данных (родительской и дочерней). выражение связи обычно явля- ется индексным выражением для главного управляющего индексного выраже- ния дочерней базы данных, хотя может быть и числовым выражением. Дочерняя база данных обычно индексируется по символьным, числовым полям или полям дат. Индекс для дочерней базы данных может быть еди- ничным элементом - .IDX индекс, или множественным структурным или не- зависимым составным .CDX индексом. Если индекс является составным, указывается подходящий индексный тег или порядок дочерней базы данных. SET ORDER команда может использоваться для указания индексного те- га, который упорядочивает дочернюю базу данных. Например, рассмотрим базы данных CUSTOMER и INVOICE, описанные вы- ше. Предположим, что дочерняя база данных (INVOICE) будет индексиро- ваться и упорядочиваться по номеру покупателя при помощи команды: SET ORDER TO TAG cust_id Для связи баз данных CUSTOMER и INVOICE по номеру покупателя используется команда SET RELATION, которая указывает индексное выраже- ние в качестве связующего выражения : SET RELATION TO cust_id INTO invoice Дочерняя база данных должна быть не индексирована, пока выражение для связи будет числовым. Если Вы подаете команду SET RELATION с нечисловым выражением связи и дочерняя база данных не является ин- дексированной, высвечивается сообщение "Database is not ordered"(База данных не упорядочена). Если является числовым, действует при перемещении указателя записи в родительской базе данных. Указатель записи в дочер- ней базе при этом перемещается на запись с номером . Для устранения всех связей во всех рабочих областях, необходимо подать команду SET RELATION TO. INTO | Дочерняя база данных идентифицируется рабочей областью, в которой она открыта или ее псевдонимом. Включайте для дочерней базы данных но- мер рабочей области , или псевдоним базы данных . INTO | ... Вы можете создать множественные связи в текущей рабочей области при помощи единичной команды SET RELATION, для этого включите туда список связей ( INTO | , INTO | , ... ) разделенных запятыми. ADDITIVE Необязательное ключевое слово ADDITIVE может быть задано в команде SET RELATION. Когда оно использовано, то все предыдущие отношения в текущей рабочей области остаются в силе, в противном случае все они разрушаются и создается новая связь на их месте. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Пример программы є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Следующий пример использует базы данных CUSTOMER и INVOICE. База данных CUSTOMER (родительская) открывается в первой рабочей об- ласти. База данных INVOICE (дочерняя) открывается во второй рабочей области. Дочерняя база затем индексируется по полю, общему для двух баз данных, полю CUSTNUMBER. Тем самым создается индексный тег структ- крного индекса для INVOICE. Команда SET ORDER используется для указа- ния порядка базы данных INVOICE. Затем снова выбирается первая рабочая область, и между двумя база- ми данных организуется отношение связи. Команда SET открывает окно просмотра, в котором высвечиваются отношения связи. Из окна просмотра, вы можете выйти в режим Browse для любой базы данных. CLOSE ALL USE customer IN 1 && Родительская база данных USE invoice IN 2 && Дочерняя база данных SELECT invoice SET ORDER TO TAG cust_id && Указания порядка базы SELECT customer && Переключение рабочих областей SET RELATION TO cust_id INTO invoice && Создание отношения связи SET && Просмотр отношений связи ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET RELATION OFF є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрушает отношения связи между двумя базами данных Синтаксис SET RELATION OFF INTO | Смотри также RELATION(), SET RELATION ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET отменяет установленное отношение между двумя открытыми базами данных. Управляющая родительская база данных должна быть теку- щей, а связанная с ней дочерняя база данных задается рабочей областью или псевдонимом. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET REPROCESS є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Определяет действие после безуспешной блокировки записи или файла Синтаксис SET REPROCESS TO [SECONDS] | TO AUTOMATIC Замечания FoxPro/LAN Смотри также FLOCK() ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Блокировка записи или файла не всегда успешно оканчивается после первой попытки. Очень часто возникают ситуации, когда запись или файл уже заблокированы другим пользователем сети. SET REPROCESS позволяет управлять ситуацией после неудачной попытки заблокировать запись или файл, при этом можно задать наличие дополнительных попыток блокирова- ки. Можно задать количество дополнительных блокировок, или время в те- чении которого они будут выполняться. Наличие подпрограммы обработки ошибочных ситуаций ON ERROR влияет на действие после неудачной попытки блокировки. Значение SET REPROCESS, , является целым числом в диапазоне между -2 и 32000.Вы можете установить значение SET REPROCESS в AUTOMATIC. Дальше описывается действия команды в зависимости от уста- новленных значений. The following describes the effect of different values of and AUTOMATIC on SET REPROCESS. Дополнительные опции TO Указывает сколько раз FoxPro/LAN будет пытаться заблокировать за- пись после неудачной попытки.Значение по умолчанию для равно 0. Следующие примеры описывают действие различных числовых значений, присваиваемых . SET REPROCESS TO 0 Если установлено SET REPROCESS TO 0 (значение по умолчанию) и вы- полняется команда или функция, пытающаяся заблокировать запись или файл FoxPro/LAN будет пытаться выполнить блокировку записи или файла до бесконечности. Во время выполнения попыток блокировки записи или файла будет гореть системное сообщение "Attempting to lock... Press ESC to Cancel" (Попытка заблокировать ... Для прерывания процесса наж- мите ESC). После удачной попытки заблокировать запись или файл, системное сообщение исчезнет с экрана. Если для блокировки использова- лась функция, то ее значение будет равно .T.(истина). Если Вы нажали Escape в ответ на системное сообщение, высветится соответствующее предупреждение (например, "Record is in use by another." (Запись используется другим)). При попытке выполнить блоки- ровку при помощи функции, предупреждающее сообщение выводиться не бу- дет, а значение функции будет установлено в .F.(ложь). Если использу- ется программа обработки ON ERROR, то во время работы команды, пытаю- щейся заблокировать запись или файл, подпрограмма обработки ON ERROR имеет преимущество над дополнительными попытками блокировки. Процедура ON ERROR начнет немедленно выполняться - не будут производиться допол- нительные попытки выполнить блокировку, и системное сообщение не будет выводиться на экран. При попытки выполнить блокировку записи при помощи функции систем- ное сообщение выводиться не будет, ON ERROR процедура выполняться не будет, и будет немедленно возвращено логическое значение .F.(ложь). SET REPROCESS TO -1 Если установлено SET REPROCESS TO -1, FoxPro/LAN будет пытаться выполнить блокировку записи или файла до бесконечности, при этом их нельзя прервать при помощи ключа Escape и процедура обработки ситуации ON ERROR выполняться не будет. Только системное сообщение "Waiting for lock..."(Ждите блокировки ...) будет выведено на экран, если STATUS установлено в ON. Необходимо помнить о том, что попытка заблокировать запись или файл, которые уже заблокированы другим пользователем, может быть вы- полнена успешно только после того, как другой пользователь сбросит блокировку. Это может потребовать очень длительного ожидания. SET REPROCESS TO > 0 Если SET REPROCESS установлено в значение больше 0, это указывает количество попыток на протяжении которых FoxPro/LAN будет пытаться заблокировать запись или файл. Например, если SET REPROCESS TO 30, FoxPro/LAN предпримет попытку заблокировать запись или файл в течении 30 раз. Если использовать нео- бязательное ключевое слово SECONDS (SET REPROCESS TO 30 SECONDS), FoxPro/LAN будет предпринимать попытки заблокировать запись или файл в течении 30 секунд. Системное сообщение "Waiting for lock..."(Ждите блокировки ...) будет появляться на экране только в случае, если STATUS установлено в ON. Если отсутствует программа обработки ON ERROR и невозможно забло- кировать запись или файл, будет выдано соответствующее предупреждение, например "Record is in use by another."(Запись используется другим пользователем). При попытке выполнить блокировку при помощи функции, предупреждение высвечиваться не будет, а функция возвратит значение .F. (ложь). Если процедура ON ERROR имеет место, а попытка выполнить блокиров- ку завершилась неудачно, будет выполнена процедура обработки ON ERROR. При попытке выполнить блокировку при помощи функции, процедура обра- ботки ON ERROR выполняться не будет, а функция возвратит значение .F. (ложь). TO [SECONDS] Указывает как долго (в секундах) FoxPro/LAN будет пытаться осу- ществить попытку блокировки записи или файла. TO AUTOMATIC Если установлено SET REPROCESS TO AUTOMATIC ( идентично SET REPROCESS TO -2), FoxPro/LAN будет пытаться выполнить блокировку за- писи или файла до бесконечности. Во время выполнения попыток блокиров- ки записи или файла будет гореть системное сообщение "Attempting to lock... Press ESC to Cancel" (Попытка заблокировать ... Для прерывания процесса нажмите ESC). После удачной попытки заблокировать запись или файл, системное сообщение исчезнет с экрана. Если для блокировки использовалась функция, то ее значение будет равно .T.(истина). Если процедура обработки ON ERROR не задействована и Вы нажали Escape в ответ на системное сообщение, высветится соответствующее пре- дупреждение (например, "Record is in use by another." (Запись исполь- зуется другим)). При попытке выполнить блокировку при помощи функции, предупреждающее сообщение выводиться не будет, а значение функции бу- дет установлено в .F.(ложь). Если используется программа обработки ON ERROR, и была нажата кла- виша Escape то выполняется процедура обработки ситуации ON ERROR. При попытке выполнить блокировку при помощи функции, процедура обработки ON ERROR выполняться не будет, а функция возвратит значение .F. (ложь). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET RESOURCE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Указывает или обновляет файл ресурсов Синтаксис SET RESOURCE ON | OFF SET RESOURCE TO [] Смотри также SYS(2005) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание С помощью этих двух команд вы можете либо обновить текущий файл ресурсов, либо специфицировать новый файл ресурсов. В системе FoxPro файл ресурсов представляет собой файл базы дан- ных, который содержит информацию о всей системе и о всех ее элементах, заданных пользователем (множества цветов, макросы, положение и размеры системных окон, записи в дневнике и т.д). За более подробной информацией о файлах ресурсов отсылаем Вас к главе Пользовтелям FoxPro документа "FoxPro Developer's Guide" (Руко- водство разработчика FoxPro). Дополнительные опции ON Информация о любых изменениях, произошедших в среде FoxPro, будет сохранена в файле ресурсов, если командой SET RESOURCE установлено ON (значение по умолчанию). OFF Если установлено SET RESOURCE OFF, то информация об изменениях, произошедших в среде FoxPro, сохранена в файле ресурсов не будет. TO [] Команда SET RESOURCE TO позволяет вам определить свой, отличный от системного, файл ресурсов. Это средство позволяет сохранить параметры среды FoxPro в файле ресурсов, который отличается от ресурсного файла, принятого по умолчанию. Сохраненные параметры среды FoxPro могут в дальнейшем быть восста- новлены, путем задания этого файла в качестве нового файла ресурсов. По умолчанию установлено SET RESOURCE ON и файлом ресурсов явля- ется файл FOXUSER.DBF. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SAFETY є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрешение или запрещение средств защиты файлов Синтаксис SET SAFETY ON | OFF Смотри также SET TALK ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание С помощью команды SAFETY вы можете специфицировать активность средств защиты файлов от записи (включить их или выключить). Дополнительные опции ON Если установлено SET SAFETY ON, то у вас всегда будет запраши- ваться подтверждение при выполнении любой команды, которая может изме- нить данные некоторого файла. OFF Если установлено SET SAFETY OFF, то у вас не будет запрашиваться подтверждение возможности занесения данных в файл. По умолчанию установлено SAFETY ON. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SCOREBOARD є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Определяет место вывода на экран дисплея состояния клавиш Num Lock, Caps Lock и Insert. Синтаксис SET SCOREBOARD ON | OFF Замечания Включается для обратной совместимости Смотри также SET BRSTATUS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Эта команда вместе с командой SET STATUS определяет место вывода на экран дисплея состояния клавиш блокировки числовой панели Num Lock, фиксации регистра Caps Lock и клавиши включения режима вставки Insert. Информация, соответствующая SET SCOREBOARD выводится в нулевой строке, если SCOREBOARD установлена в ON и линейка STATUS установлена в OFF. Если STATUS установлена в ON, то информация SCOREBOARD всегда выводится в линейке STATUS. Если оба режима SCOREBOARD и STATUS уста- новлены в OFF, то информация SCOREBOARD на экран не выводится. По умолчанию SET SCOREBOARD установлена в OFF. Выдача команды SET SCOREBOARD OFF очищает экран. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SEPARATOR є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Спецификация разделителя числовых полей Синтаксис SET SEPARATOR TO [] Смотри также SET DECIMALS ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET SEPARATOR позволяет вам изменить "numeric place separator" (разделитель числовых полей) на другой символ в необяза- тельном предложении PICTURE. Выражение должно быть символьной строкой, ограниченной одинарными или двойными кавычками, скобками или должно быть символьной переменной памяти. Команда SET SEPARATOR без выражения восстанавливает значе- ние разделителя, принятое по умолчанию (разделителем является символ запятая "," ). ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Пример программы є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ SET SEPARATOR TO '#' x = 1000 @ 2,2 GET x PICTURE '9,999.99' READ SET SEPARATOR TO && Сброс в значение по умолчанию ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SHADOWS є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Задание или отмена теней у окон Синтаксис SET SHADOWS ON | OFF Смотри также DEFINE WINDOW ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SHADOWS определяет отображение теней у всех окон, появляю- щихся на экране. Это относится к системным окнам, к окнам, определен- ным пользователем, к выпадающим меню, к окнам диалога и к окнам пре- дупреждений. Любые тексты или объекты, попадающие в тень окон, оста- ются видимы. Команда SHADOWS ON задает визуализацию теней, команда SHADOWS OFF отменяет показ оконнных теней. Команда SHADOWS не влияет на окна, оп- ределенные пользователем (окна, созданные с помощью команды DEFINE WINDOW), если только они не определялись с помощью необязательного ключевого слова SHADOW. По умолчанию установлено SHADOWS ON. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SKIP є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Создание отношений связи один ко многим между базами данных. SET SKIP TO [ [, ] ... ] Замечания Новая в FoxPro 2.0 Смотри также RELATION(), SET RELATION, SKIP ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Вы можете установить отношение связи между базами открытыми в раз- ных рабочих областях при помощи команды SET RELATION. Когда указатель записи перемещается по родительской базе данных, указатель записи в родительской базе данных перемещается на первую соответствующую за- пись. Запись, на которую перемещается указатель записи в дочерней базе данных определяется выражением отношения связи в SET RELATION. Если отношение связи установлено один к одному - для каждой записи в роди- тельской базе данных указатель записи перемещается только на первую соответствующую запись в дочерней базе данных. Если соответствующая запись в дочерней базе данных не найдена, указатель записи перемеща- ется на конец файла. Часто дочерняя база данных содержит множество записей, которые соответствуют одной записи в родительской базе данных. SET SKIP позво- ляет установить отношение связи один ко многим между записью в роди- тельской базе данных и множеством записей в дочерней базе данных. Ког- да Вы проходите через родительский файл, указатель записи показывает на одну и ту же запись, пока не будут пройдены все связанные записи в дочернем файле. Отношение один ко многим осуществляется в начале также, как и от- ношение один к одному. Во первых, отношение связи между родительской и дочерней базой данных устанавливаются командой SET RELATION. Затем, SET SKIP создает множественные отношения связи. Дополнительные опции [ [, ] ... ] Если родительская база данных связана с несколькими дочерними ба- зами данных, Вы можете включить список псевдонимов (, , ... ), разделенного запятыми для создания отношений связи один ко многим с каждой дочерней базой данных. В командах поддерживающих диапазон (DISPLAY, LIST, и т.д.), записи в родительской базе данных будут повторяться для каждого значения соответствующей записи в дочерней базе данных. Для удаления отношения связи один ко многим в текущей рабочей об- ласти используйте команду SET SKIP TO без дополнительных аргументов, при этом отношение связи один к одному остается в силе и разрушается только командой SET RELATION TO. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Пример программы є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ В следующем примере программы, отношение связи один ко многим соз- дается командой SET SKIP. Родительская база данных INVOICE содержит поле с номером поставки и информации о покупателе, которые размещены по порядку. Создается единичная запись в родительской базе данных для каждой поставки. Другая база данных (LINEITEMS, дочерняя) также содержит поле с номером поставки. Оставшиеся поля базы данных LINEITEMS содержат информацию о каждом элементе поставки. Дочерняя ба- за данных LINEITMSсодержит множество записей для каждой записи роди- тельскойбазы данных. Родительская база (INVOICE.DBF) открывается. Дочерняя база данных (LINEITMS.DBF) открывается и упорядочивается по поставкам.По этому по- лю устанавливается отношение связи между базами данных. Выбирается рабочая область с родительской базой данных и устанав- ливается отношение связи (SET RELATION TO invoice INTO lineitms). Поле INVOICE представляет собой индексный ключ для поиска в дочерней базе данных. SET SKIP порождается для установки отношения связи один ко многим между родительской и дочерней базой данных. Окно BROWSE откры- вается для просмотра полей из двух баз данных. CLOSE ALL CLEAR SELECT 0 && Родительская рабочая область USE invoice && Родительская база данных SELECT 0 && Дочерняя рабочая область USE lineitms && Дочерняя база данных SET ORDER TO TAG invoice && Выбор индекса SELECT invoice && Назад в род. рабочую область SET RELATION TO invoice INTO lineitms && Установка отношения связи SET SKIP TO lineitms && Создание отнош. один ко многим ** Показывает поля из родительской (invoice) и дочерней (item, descript) баз данных ** BROWSE FIELDS invoice.invoice, invoice.company, lineitms.quantity,; lineitms.descript NOWAIT ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SKIP OF є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Запрещает/разрешает меню Синтаксис SET SKIP OF MENU SET SKIP OF PAD OF SET SKIP OF POPUP SET SKIP OF BAR | OF Замечания Новая для FoxPro 2.0 Смотри также CREATE MENUM, DEFINE BAR, DEFINE MENU, DEFINE PAD, DEFINE POPUP, MENU- System Menu Names (Имена системного меню) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание SET SKIP OF позволяет выборочно запрещать/разрешать меню, пункты меню, всплывающие меню и строки всплывающих меню. SET SKIP OF может использоваться с системным меню FoxPro, или с пользовательскими систе- мами меню. Полный список имен системных меню приведен в данном доку- менте, в теме "Имена системного меню" Если логическое выражение принимает значение "истина" (.T.), меню, пункты меню, всплывающие меню и строки всплывающих меню включенные в SET SKIP OF запрещены (не могут выбираться) и высвечива- ются запрещенным цветом. Если логическое выражение принимает значение "ложь" (.F.), меню, пункты меню, всплывающие меню и строки всплывающих меню включенные в SET SKIP OF разрешены (могут выбираться) и высвечиваются разрешенным цветом. SET SKIP OF MENU SET SKIP OF MENU позволяет разрешить/запретить линейку меню. Нап- ример, системная линейка меню FoxPro _MSYSMENU может быть запрещена командой: SET SKIP OF MENU _MSYSMENU .T.; и разрешена командой: SET SKIP OF MENU _MSYSMENU .F.. SET SKIP OF MENU может также использоваться для разрешения/запре- щения пользовательских меню созданных при помощи команды DEFINE MENU. SET SKIP OF PAD OF SET SKIP OF PAD позволяет разрешать/запрещать указанные пункты ме- ню в линейке меню. Вы можете выборочно разрешать/запрещать пункты системного меню FoxPro, или пункты пользовательского меню, созданного командой DEFINE PAD. Например, пункт меню FoxPro "File" может быть запрещен коман- дой: SET SKIP OF PAD _MSM_FILE OF _MSYSMENU .T.; и разрешен при помощи команды: SET SKIP OF PAD _MSM_FILE OF _MSYSMENU .F. SET SKIP OF POPUP SET SKIP OF POPUP позволяет разрешать/запрещать всплывающие системные меню FoxPro, или пользовательские всплывающие меню, создан- ные командой DEFINE POPUP. Например, всплывающее меню FoxPro "File" может быть запрещено командой: SET SKIP OF POPUP _MFILE .T., и разрешено при помощи команды: SET SKIP OF POPUP _MFILE .F. SET SKIP OF BAR | OF SET SKIP OF BAR позволяет разрешить/запретить указанные строки всплывающих меню. Вы можете запретить/разрешить строки всплывающего системного меню FoxPro, или пользовательского всплывающего меню, соз- данного командой DEFINE BAR. Например, строку "New" всплывающего меню FoxPro "File" можно зап- ретить командой: SET SKIP OF BAR _MFI_NEW OF _MFILE .T.; и разрешить при помощи ко- манды: SET SKIP OF BAR _MFI_NEW OF _MFILE .F. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET SPACE є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Вставка или удаление пробела между полями в командах ? или ?? Синтаксис SET SPACE ON | OFF Смотри также ? | ?? ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET SPACE может быть использована для вставки или удаления пробела (space) между полями или выражениями при использовании команд ? или ??. Команда SPACE ON вставляет пробел между полями или выражениями, тогда как команда SPACE OFF обрабатывает поля и выражения вместе. По умолчанию установлено SPACE ON. ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є Примеры є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ x = 'John' y = 'Smith' SET SPACE OFF ? x,y JohnSmith SET SPACE ON ? x,y John Smith ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД· є SET STATUS є УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ Назначение Разрешение или запрет отображения в линейки состояния Синтаксис SET STATUS ON | OFF Замечания Включена для обратной совместимости ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Описание Команда SET STATUS влияет на сообщения, которые отоб- ражаются в верхней части экрана. Если установлено SET STATUS ON, то строка состояния выводится на экран, отображая имя текущей программы (если есть), активную базу данных, текущую запись, позицию указателя, число записей в файле базы данных, состояние ключей Num Lock, Caps Lock и Insert. Строка состояния обновляется при выпол- нении, любой команды, изменяющей информацию, которая в ней содержится. В FoxPro/LAN, в строке состояния указана сетевая версия FoxPro, запись или файл, заблокированные в настоящее время. Выдача команды SET STATUS OFF, подавляет вывод строки состояния на экран. По умолчанию установлено SET STATUS OFF.