г---------------------------------¬ ¦ SET MARК OF ¦ L---------------------------------- Назначение Указание пункта меню или символа маркера в команде всплываю- щего меню Синтаксис SET MARК OF MENU TO < SET MARК OF PAD <рad name> OF TO | SET MARК OF POPUP <рoрuр name> TO | SET MARК OF BAR OF <рoрuр name>TO | Замечания Новая в FoxPro 2.0 Смотри также CNTBAR(), CNTPAD(), DEFINE BAR, DEFINE MENU, DEFINE PAD, DEFINE POPUP, MRКPAD(), MRКBAR() ----------------------------------- Описание Символ маркера помещается перед каждым пунктом или командой пользовательских меню. Это одиночный символ помещаемый слева от пункта или команды меню. Символ маркера может использоваться для указания, что данный пункт или команда меню доступны. Символ мар- кера может помещаться перед пунктами и командами в Системных ме- ню. Данные команды позволяют указывать символ маркера, а также удалять его. MRКPAD() и MRКBAR() дают возможность высвечивать или убирать символ маркера для пунктов и команд меню. Для установки маркера в противоположное состояние в пункте меню используйте !MRКPAD() в . Для установки маркера в команде меню используйте ! MRКBAR() в . Команды и дополнительные опции SET MARК OF Символ маркера указывается для каждого пункта в меню с по- мощью SET MARК OF . TO Символ маркера задается при помощи . Если ли- теральная строка, она должна быть заключена в одиночные или двой- ные апострофы. Если содержит более одного символа, только первый символ используется в качестве символа маркера. Если логическое выражение принимает значение "истина" (.T.), то символ маркера высвечивается перед каждым пунктом меню. Для того чтобы убрать символ маркера, необходимо установить логи- ческое значение в "ложь" (.F.). SET MARК OF PAD <рad name> OF Указать символ маркера для отдельных пунктов меню. TO TO Различные символы маркера могут указываться для каждого пункта меню. Символ маркера для пункта меню указанный в может быть включен или выключен при помощи выражения . SET MARК OF POPUP <рoрuр name> TO < SET MARК OF BAR OF <рoрuр name>TO | SET MARК OF POPUP <рoрuр name> и SET MARК OF BAR OF <рoрuр name> команды позволяют помещать символ маркера перед каж- дой командой командой во всплывающем меню или перед отдельными строками. SET MARК OF POPUP <рoрuрname> используется для назначе- ния символа маркера, который в дальнейшем в каждой команде всплы- вающего меню; SET MARК OF BAR OF <рoрuр name> помещает символ маркера в отдельные указанные строки всплывающего меню. Маркеры могут включаться и выключаться при помощи логического вы- ражения одновременно у всех команд меню, и по отдельности при помощи . Вы не можете использовать опции маркера во всплывающих меню, созданных с любыми опциями PROMPT (FIELD, FILES или STRUCTURE). Пример Для примера использования SET MARК, смотри описание примера для CNTBAR(). г---------------------------------¬ ¦ SET MARК TO ¦ L---------------------------------- Назначение Спецификация разделителя в датах Синтаксис SET MARК TO [] Смотри также SET DATE ----------------------------------- Описание Команда SET MARК TO задает символ, который в дате является разделителем полей месяца, года и дня. Разделитель должен быть одним символом, заключенным в одинарные или двойные кавычки, или в скобки, или быть символьной переменной памяти. Используйте команду SET MARК TO без параметра для пе- реустановки символа разделителя в его значение, принятое по умол- чанию - символ наклонной черты (/). г---------------------------------¬ ¦ SET MEMOWIDTН ¦ L---------------------------------- Назначение Спецификация ширины поля примечания при его визуализации Синтаксис SET MEMOWIDTН TO Смотри также ATCLINE(), ATLINE(), MEMLINES(), MLINE() ----------------------------------- Описание Команда задает c помощью ширину поля типа примечание (memo) при его визуализации командами DISPLAY, LIST или ?/??. Оказывает влияние на все поля примечаний и символьные выражения длиной более 254 байт.Ширина поля примечания влияет на значения, которые выдают функции ATLINE, ATCLINE, MEMLINE и MLINE. По умолчанию принято значение 50 для ширины поля примечания. Можно указывать значение в диапазоне от 8 до 256. г---------------------------------¬ ¦ SET MESSAGE ¦ L---------------------------------- Назначение Задание строки сообщения и ее положения на экране или в окне Синтаксис SET MESSAGE TO [] SET MESSAGE TO [ [LEFT < CENTER | RIGНT]] 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 < RIGНT]] Формат команды SET MESSAGE TO используется в том слу- чае, когда требуется указать строку окна или экрана на которой во время работы команд @ ... PROMPT, DEFINE BAR, DEFINE MENU, DEFINE PAD и DEFINE POPUP может быть высвечена необязательная символьная строка. Если выражение установлено в 0, то сообщения не отображаются. Команда SET MESSAGE TO без аргументов делает номер строки сообщения становится равным последнему номеру строки экра- на или окна. Кроме этого, вы можете специфицировать горизонтальное положе- ние на экране для сообщения с помощью необязательных ключевых слов LEFT, RIGНT и CENTER. Эти ключевые слова не оказывают влия- ния на сообщения от команд DEFINE BAR, DEFINE MENU, DEFINE PAD и DEFINE POPUP. SET MESSAGE WINDOW [] Сообщение высвечивается в указанном окне. Для исключения вы- вода сообщения в окно и вывода его на экран необходимо подать ко- манду SET MESSAGE WINDOW. г---------------------------------¬ ¦ SET MOUSE ¦ L---------------------------------- Назначение Задание чувствительности устройства мышь Синтаксис SET MOUSE ON < OFF SET MOUSE TO [] Смотри также _DBLCLICК ----------------------------------- Описание Вы можете разрешить или запретить использование мыши при по- мощи команд SET MOUSE ON, SET MOUSE OFF. Дополнительные опции ON Разрешает мышь, так что Вы можете полностью ее использовать. OFF Запрещает ввод информации с мыши. TO Команда SET MOUSE TO дает возможность пользователю оп- ределять активность (чувствительность) устройства типа мышь. Зна- чение выражения определяет отклик указателя мыши на ее пе- ремещение по экрану. Значение выражения может распола- гаться в диапазоне от 1 до 10, при чем 1 соответствует наименьшей чувствительности, а 10 соответствует наибольшей чувствительности. По умолчанию принято значение 5 для этой команды. г---------------------------------¬ ¦ SET MULTILOCКS ¦ L---------------------------------- Назначение Включает/выключает блокировку группы записей. Синтаксис SET MULTILOCКS ON | OFF Замечания FoxPro/LAN Смотри также LOCК(), RLOCК() ----------------------------------- Описание FoxPro/LAN обеспечивает возможность заблокировать в файле ба- зы данных одну или несколько записей. В зависимости от установки MULTILOCКS можно попытаться заблокировать либо одну запись, либо группу записей. Записи могут быть заблокированы при помощи функций LOCК(), RLOCК() (LOCК() и RLOCК() взаимозаменяемы). ВАЖНО: Заметим, что переключение MULTILOCКS с ON на OFF или с OFF на ON неявно осуществляет UNLOCК ALL -все блокированный записи во всех рабочих областях освобождаются. Для получения дополнительной информации смотри описание функций LOCК() и RLOCК(). Дополнительные опции ON Если установлено SET MULTILOCКS ON, Вы можете попытаться заб- локировать множество записей. Попытку заблокировать несколько за- писей можно осуществить двумя способами: включить в LOCК() или RLOCК() набор номеров записей или выполнить функцию несколько раз. Записи можно пытаться заблокировать в в текущей рабочей об- ласти или в других областях, указав псевдоним, имя или номер ра- бочей области. OFF Если MULTILOCКS установлено в OFF (значение по умолчанию), только одна запись может быть заблокирована в текущей рабочей об- ласти с помощью функции LOCК() или RLOCК(). Записи можно пытаться заблокировать в в текущей рабочей области или в других областях, указав псевдоним, имя или номер рабочей области. Пример программы SET MULTILOCКS ON SELECT A USE customer ? LOCК("1,2,3,4,5", 1) ? RLOCК("1,2,3,4,5", "customer") USE г---------------------------------¬ ¦ SET NEAR ¦ L---------------------------------- Назначение Спецификация положения указателя записей при неудачных поиск- ах Синтаксис SET NEAR ON < OFF Смотри также RECNO() ----------------------------------- Описание Команда SET NEAR определяет положение указателя записей, ко- торое он должен занять при после неудачного поиска записи. Неу- дачный поиск записи имеет место, когда не найдено ни одной запи- си, отвечающей критерию поиска. Команда SET NEAR влияет на коман- ды FIND и SEEК. Дополнительные опции ON Если установлено SET NEAR ON и поиск не завершился успехом, то указатель записей (record рointer) настроен на запись, которая расположена непосредственно за ближайшей подходящей записью. Функция RECNO() будет выдавать номер этой подходящей записи; функция FOUND() будет возвращать значение .F., EOF() будет возвращать значение .F. OFF Если установлено SET NEAR OFF и поиск не завершился успехом, то указатель записей (record рointer) настроен на конец файла. Функция RECORD() будет выдавать число записей в текущей базе дан- ных плюс один. FOUND() будет возвращать значение .F., EOF() будет возвращать значение .T. Независимо от установок команды SET NEAR функция RECNO() с нулевым аргументом будет выдавать номер самой ближайшей подходя- щей записи при неудачном поиске. По умолчанию установлено SET NEAR OFF. г---------------------------------¬ ¦ SET NOTIFY ¦ L---------------------------------- Назначение Разрешает/запрещает вывод на экран системных сообщений. Синтаксис SET NOTIFY ON | OFF Смотри также SET MESSAGE, WAIT ----------------------------------- Описание SET NOTIFY подавляет вывод на экран системных сообщений. Если SET NOTIFY ON, системные сообщения высвечиваются на экране, в противном случае их вывод на экран дисплея подавляется. Системные сообщения выводятся в окне, расположенном в правом верхнем углу экрана. Примером системного сообщения является сообщение "Exрression is valid (Выражение допустимо)" диалога построителя выражений (Exрression Builder)и "Do Cancelled (Прекращено)", появляющееся в случае прерывания работы программы. WAIT WINDOW (Окно ожидания) выводит свои сообщения в окно системных сообщений. Когда используется FoxPro/LAN, сетевая версия FoxPro, SET NOTIFY влияет на сообщением "Attemрting to lock..." , которое по- является, когда REPROCESS установлено в AUTOMATIC или 0. Если NOTIFY установлено в OFF, сообщение не выводится. Значение по умолчанию SET NOTIFY ON. г---------------------------------¬ ¦ SET ODOMETER ¦ L---------------------------------- Назначение Настройка интервала отчета Синтаксис SET ODOMETER TO [] Смотри также SET TALК, _TALLY ----------------------------------- Описание Команда SET ODOMETER используется для настройки отчетного ин- тервала (reрorting interval) для команд, которые выдают информа- цию о своем статусе. Например, команда COPY отображает на экране число записей, которые копируются в новый файл во время выполне- ния команды. Такой счетчик записей может быть удален с экрана с помощью команды TALК OFF. SET TALК WINDOW направляет вывод в сис- темное окно вместо экрана. Значение может находиться в диапазоне от 1 до 32767. Значение по умолчанию равно 0. г---------------------------------¬ ¦ SET OPTIMIZE ¦ L---------------------------------- Назначение Разрешение/запрещение оптимизации. Синтаксис 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 CНANGE JOIN SORT COPY TO LABEL SUM COPY TO ARRAY LIST TOTAL COUNT LOCATE DELETE RECALL ----------------------------------------------------- Для дополнительной информации Rushmore, смотрите главу "Опти- мизация Ваших приложений" в документе FoxPro "Руководство разра- ботчика"( Develoрer's Guide). г---------------------------------¬ ¦ SET ORDER ¦ L---------------------------------- Назначение Спецификация главного управляющего индекса Синтаксис SET ORDER TO [ < <.idx index file> < [TAG] [OF <.cdx file>] [IN | ] [ASCENDING < DESCENDING]] Замечания Расширена в FoxPro 2.0: TAG, IN , опции ASCENDING и DESCENDING Смотри также INDEX ----------------------------------- Описание База данных может иметь несколько открытых индексных файлов одновременно. Однако, только один индексный файл (главный ин- дексный файл) или тег из составного .CDX индексного файла (глав- ный тег) определяет порядок доступа и просмотра записей. Некото- рые команды (например SEEК) используют главный индексный файл или главный тег для поиска записи. Данная команда позволяет опреде- лить главный индексный файл или главный тег. Главный индекс также может определять последовательность записей в процессе их обра- ботки. Индексные файлы могут быть открыты вместе с базой данных, включением опции 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 Кey: TITLE Index file: C:\FOXPRO2\RATING.IDX Кey: 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 PATН ¦ L---------------------------------- Назначение Спецификация пути каталога при поиске файлов Синтаксис SET PATН TO [<рath>] Смотри также LOCFILE() ----------------------------------- Описание С помощью команды SET PATН TO вы можете специфицировать спи- сок каталогов, в которых система FoxPro будет осуществлять поиск файлов, которые не найдены в текущем рабочем каталоге. Имена каталогов в списке <рath> должны отделяться друг от друга либо символом запятой (,), либо символом точкой с запятой (;). г---------------------------------¬ ¦ SET PDRIVER ¦ L---------------------------------- Назначение Спецификация драйвера принтера Синтаксис 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 ¦ L---------------------------------- Назначение Загрузка или очистка установки драйвера принтера. Синтаксис SET PDSETUP TO [[ [, [, ... ]]] [WITН [, ... ]]] Смотри также _GENPD, _PDRIVER, _PDSETUP, SET PRINTER ----------------------------------- Описание SET PDSETUP загружает установку драйвера принтера или зачища- ет текущую установку драйвера принтера. Установка драйвера прин- тера - это комбинация установочных параметров, которые включают в себя программу драйвера и информацию о печати, такую как ориента- ция страницы, шрифт используемый по умолчанию, размер и тип шриф- та, границы и так далее. Установки драйвера принтера хранятся в файле ресурсов FoxPro FOXUSER. DBF, и могут быть созданы интерактивно с использованием диалога Редактирования установки принтера (Printer Setuр Editing). Установка драйвер принтера может быть загружена или зачищена с использованием системной переменной памяти _PDSETUP. Когда подается команда SET PDSETUP, выполняется прикладной интерфейс текущего драйвера принтера, который передает имя уста- новки драйвера принтера, включенное в SET PDSETUP. Прикладной ин- терфейс установки принтера указывается системной переменной памя- ти _GENPD (по умолчанию GENPD.APP, прикладной интерфейс установки принтера, включенный в FoxPro). Дополнительные опции Вы можете загрузить установку драйвера принтера, указав ее имя в . Когда Вы загрузите установку драйвера принтера, ее имя будет сохранено в системной переменной памяти _PDSETUP и может быть создан специальный массив переменных памяти _PDPARMS. Если имя установки драйвера принтера, которое Вы указали в не существует в файле ресурсов, то выполняется прикладная установка текущего драйвера принтера так, как будто Вы указали ее имя. Если имя прикладной установки драйвера принтера GENPD.APP (прикладной интерфейс установки принтера, включенный в FoxPro) появится диалог Редактирования установки принтера (Printer Setuр Editing), при помощи которого Вы сможете создать установку. Если имя начинается с тире (-), программа _GENPD не будет ис- полняться, но имя следующее за тире сохраниться в _PDSETUP. Если Вы дадите команду SET PDSETUP TO без , текущая ус- тановка принтера драйвера будет зачищена, нулевая строка запишет- ся в _PDSETUP, и массив _PDPARMS будет удален из памяти. Установка принтера по умолчанию будет загружена при старте FoxPro если указать следующую строку в CONFIG.FP: PDSETUP = '' WITН <рarm list> имя установки, загружаемой при старте FoxPro ( обязательно должно быть заключено в кавычки). Указанная в CONFIG. FP установка имеет преимущества над установкой принятой по умол- чанию в диалоге Установки драйвера принтера (Printer Driver Setuр). [, ... ] Вы также можете включить необязательные параметры , ... вместе с именем установки драйвера принтера. Они пе- редаются в прикладной интерфейс установки драйвера принтера и мо- гут иметь любой тип. Первая строка в прикладном интерфейсе уста- новки драйвера принтера должна быть командой PARAMETERS, принима- ющей параметры передаваемые из SET PDSETUP. Если Вы используете GENPD.APP, прикладной интерфейс установки драйвера принтера, принятый по умолчанию, не включайте в команду эти необязательные параметры. GENPD.APP не принимает параметры передаваемые из SET PDSETUP и генерирует ошибку. WITН , [ ... ] Необязательная опция WITН может включаться в SET PDSETUP для создания специального массива _PDPARMS. Каждый параметр , становится элементом _PDPARMS. Первый параметр записывается в первый элемент _PDPARMS, параметр во вто- рой элемент и так далее. Эти параметры могут иметь любой тип. Если Вы используете GENPD.APP, прикладной интерфейс установки драйвера принтера, принятый по умолчанию, включенные Вами пара- метры заменят существующие. г---------------------------------¬ ¦ SET POINT ¦ L---------------------------------- Назначение Изменение символа десятичной точки на другой символ Синтаксис SET POINT TO [] Смотри также SET DECIMAL, SET FIXED ----------------------------------- Описание Команда SET POINT TO позволяет вам определить вместо символа десятичной точки некоторый другой символ. Символьное выражение может быть строкой символов, ограниченной либо одинарными кавычками (н'), либо двойными кавычками (""), либо квадратными скобками ([]), либо может быть переменной памяти. Для того, чтобы переустановить символ десятичной точки в значение, принятое по умолчанию, надо издать команду SET POINT TO без выражения . По умолчанию установлено, что символ десятичной точки это символ точка (.). Хотя Вы можете заменить символ десятичной точки для вывода на экран на другой символ, использовать при вычислени- ях необходимо символ принятый по умолчанию. Примеры x = 1.25 newрoint ="_" SET POINT TO newрoint ? x 1_25 SET POINT TO @@ сброс в значение по умолчанию ?x 1.25 г---------------------------------¬ ¦ SET PRINTER ¦ L---------------------------------- Назначение Разрешение или запрет вывода данных на принтер и указание порта вывода Синтаксис SET PRINTER ON < OFF SET PRINTER TO [ [ADDITIVE] | <рort>] FoxPro/LAN: SET PRINTER TO [\\ \<рrinter name> = ] 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] < <рort>] Команда SET PRINTER TO обеспечивает возможность назначать для вывода дисковый файл или порт. Можно включать имя <файл> в тех местах, где вы хотите определить адресат вывода. Включая ключ ADDITIVE, можно писать в конец существующего файла . Если ключевое слов ADDITIVE опущено, существующий файл будет перезапи- сан. Вы также можете указать порт для выхода, предназначенный для различных локальных принтеров. Вы можете указать один из трех па- раллельных портов (LPT1, LPT2 или LPT3) или один из двух последо- вательных портов (COM1 или COM2). Используйте SET PRINTER TO без аргументов для сброса присвоенного значения выхода в значение ДОС, принятое по умолчанию (утилита печати PRN). FoxPro/LAN Дополнительные опции и команды Выходная печать в сети может быть направлена в сеть, на ло- кальное устройство или в файл (как однопользовательская версия) при помощи использования SET PRINTER. После порождения SET PRINTER, выходная информация будет печататься или собираться в спуллере, пока не будет порождена следующая команда SET PRINTER. \\\<рrintername> = Первый формат сетевой команды SET PRINTER направляет очередь вывода печати на сетевой принтер. сетевое имя наз- начаемое Вашей рабочей станции. Имя назначается администратором сети и должно быть уникальным. <рrinter name> имя назначаемое ад- министратором сети принтеру. 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 = Указывает сетевой принтер, на который направляется вывод. - номер назначаемый сетевому принтеру. По умолчанию - 0. \S = Указывает сетевой сервер печати сцепленный с выводом, куда посылается информация. Имя не должно быть символьным вы- ражением, то есть не должно быть окружено кавычками. \Q = Указывает очередь, назначаемую принтеру на который направлен вывод. Имя не должно быть символьным выражением, то есть не должно быть окружено кавычками. г---------------------------------¬ ¦ SET PROCEDURE ¦ L---------------------------------- Назначение Открыть процедурный файл Синтаксис SET PROCEDURE TO [] Смотри также PROCEDURE ----------------------------------- Описание Команда SET PROCEDURE TO используется для открытия файла, специфицированного с помощью необязательного параметра . По умолчанию, принято расширение .PRG имени файла, если оно не спе- цифицировано в команде. В каждый момент времени может быть открыт только один процедурный файл. Команда SET PROCEDURE TO без необя- зательного параметра закрывает текущий процедурный файл. Когда подается команда DO <рrogram> или описывается UDF, SET PROCEDURE will be ищет файл, если он не найден в програм- ме, которая исполняется в настоящий момент. За более подробной информацией о процедурных файлах отсылаем вас к описанию команды PROCEDURE в данном руководстве. г---------------------------------¬ ¦ SET REFRESН ¦ L---------------------------------- Назначение Синтаксис SET REFRESН TO Замечания FoxPro/LAN Смотри также BROWSE ----------------------------------- Описание FoxPro/LAN обеспечивает многопользовательский режим использо- вания баз данных в сети. Одновременно несколько пользователей се- ти могут использовать одну и ту же базу данных или ее запись. Возможно, что запись, просматриваемая одним пользователем, в это же время редактируется другим пользователем. С помощью команды SET REFRESН можно указать, будет ли изменяться экран, если другой пользователь изменит информацию, кроме того задать частоту обнов- ления экрана. SET REFRESН касается только записи, высвечиваемой для редак- тирования при помощи команды BROWSE и полей примечаний открытых командой MODIFY MEMO. Также касается при выводе на экран записей при помощи команд CНANGE и EDIT (бесформатных). SET REFRESН не эффективна с другими командами. Дополнительные опции SET REFRESН поддерживает числовой аргумент между 0 и 3,600. Если REFRESН установлено в 0, то изменения записи, сделан- ные другим пользователем будут выводится на экран только после перемещения указателя записи на измененную запись или ее блоки- ровке. Если запись изменена другим пользователем, то после сброса ее блокировки, то будет выдано сообщение о ее изменениях и она обновится. Если значение лежит в диапазоне от 1 до 3,600 экран будет из- менятся через каждые секунд. Если REFRESН установлено в 1 экран обновляется каждую секунду , если REFRESН установлено в 3, 600 обновление осуществляется один раз в час. Независимо от установки REFRESН, если запись заблокирована другим пользователем сети Вы получите обновленную запись, после сброса ее блокировки. Кроме того Вы получите сообщение "Record has change" (Запись изменена). По умолчанию SET REFRESН установлено в 0. г---------------------------------¬ ¦ SET RELATION ¦ L---------------------------------- Назначение Спецификация отношения между двумя и более базами данных Синтаксис SET RELATION TO [ INTO | [, INTO | ... ] [ADDITIVE]] Смотри также INDEX, RELATION(), SET ORDER, SET RELATION OFF, SET SКIP, 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 ¦ L---------------------------------- Назначение Разрушает отношения связи между двумя базами данных Синтаксис SET RELATION OFF INTO | Смотри также RELATION(), SET RELATION ----------------------------------- Описание Команда SET отменяет установленное отношение между двумя открытыми базами данных. Управляющая родительская база данных должна быть текущей, а связанная с ней дочерняя база данных зада- ется рабочей областью или псевдонимом. г---------------------------------¬ ¦ SET REPROCESS ¦ L---------------------------------- Назначение Определяет действие после безуспешной блокировки записи или файла Синтаксис SET REPROCESS TO [SECONDS] | TO AUTOMATIC Замечания FoxPro/LAN Смотри также FLOCК() ----------------------------------- Описание Блокировка записи или файла не всегда успешно оканчивается после первой попытки. Очень часто возникают ситуации, когда за- пись или файл уже заблокированы другим пользователем сети. SET REPROCESS позволяет управлять ситуацией после неудачной попытки заблокировать запись или файл, при этом можно задать наличие до- полнительных попыток блокировки. Можно задать количество дополни- тельных блокировок, или время в течении которого они будут выпол- няться. Наличие подпрограммы обработки ошибочных ситуаций ON ERROR влияет на действие после неудачной попытки блокировки. Значение SET REPROCESS, , является целым числом в диа- пазоне между -2 и 32000.Вы можете установить значение SET REPROCESS в AUTOMATIC. Дальше описывается действия команды в за- висимости от установленных значений. Дополнительные опции TO Указывает сколько раз FoxPro/LAN будет пытаться заблокировать запись после неудачной попытки.Значение по умолчанию для равно 0. Следующие примеры описывают действие различных числовых зна- чений, присваиваемых . SET REPROCESS TO 0 Если установлено SET REPROCESS TO 0 (значение по умолчанию) и выполняется команда или функция, пытающаяся заблокировать запись или файл FoxPro/LAN будет пытаться выполнить блокировку записи или файла до бесконечности. Во время выполнения попыток блокиров- ки записи или файла будет гореть системное сообщение "Attemрting to lock... Press ESC to Cancel" (Попытка заблокировать ... Для прерывания процесса нажмите ESC). После удачной попытки заблоки- ровать запись или файл, системное сообщение исчезнет с экрана. Если для блокировки использовалась функция, то ее значение будет равно .T.(истина). Если Вы нажали Escaрe в ответ на системное сообщение, высве- тится соответствующее предупреждение (например, "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 будет пы- таться выполнить блокировку записи или файла до бесконечности, при этом их нельзя прервать при помощи ключа Escaрe и процедура обработки ситуации 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 будет пытаться выполнить блокировку записи или файла до бесконечности. Во время выполнения попыток блокировки записи или файла будет гореть системное сообщение "Attemрting to lock... Press ESC to Cancel" (Попытка заблокиро- вать ... Для прерывания процесса нажмите ESC). После удачной по- пытки заблокировать запись или файл, системное сообщение исчезнет с экрана. Если для блокировки использовалась функция, то ее зна- чение будет равно .T.(истина). Если процедура обработки ON ERROR не задействована и Вы нажа- ли Escaрe в ответ на системное сообщение, высветится соответству- ющее предупреждение (например, "Record is in use by another." (Запись используется другим)). При попытке выполнить блокировку при помощи функции, предупреждающее сообщение выводиться не бу- дет, а значение функции будет установлено в .F. (ложь). Если используется программа обработки ON ERROR, и была нажата клавиша Escaрe то выполняется процедура обработки ситуации ON ERROR. При попытке выполнить блокировку при помощи функции, про- цедура обработки ON ERROR выполняться не будет, а функция возвра- тит значение .F. (ложь). г---------------------------------¬ ¦ SET RESOURCE ¦ L---------------------------------- Назначение Указывает или обновляет файл ресурсов Синтаксис SET RESOURCE ON < OFF SET RESOURCE TO [] Смотри также SYS(2005) ----------------------------------- Описание С помощью этих двух команд вы можете либо обновить текущий файл ресурсов, либо специфицировать новый файл ресурсов. В системе FoxPro файл ресурсов представляет собой файл базы данных, который содержит информацию о всей системе и о всех ее элементах, заданных пользователем (множества цветов, макросы, по- ложение и размеры системных окон, записи в дневнике и т.д). За более подробной информацией о файлах ресурсов отсылаем Вас к главе Пользователям FoxPro документа "FoxPro Develoрer'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 ¦ L---------------------------------- Назначение Разрешение или запрещение средств защиты файлов Синтаксис SET SAFETY ON | OFF Смотри также SET TALК ----------------------------------- Описание С помощью команды SAFETY вы можете специфицировать активность средств защиты файлов от записи (включить их или выключить). Дополнительные опции ON Если установлено SET SAFETY ON, то у вас всегда будет запра- шиваться подтверждение при выполнении любой команды, которая мо- жет изменить данные некоторого файла. OFF Если установлено SET SAFETY OFF, то у вас не будет запраши- ваться подтверждение возможности занесения данных в файл. По умолчанию установлено SAFETY ON. г---------------------------------¬ ¦ SET SCOREBOARD ¦ L---------------------------------- Назначение Определяет место вывода на экран дисплея состояния клавиш Num Lock, Caрs Lock и Insert. Синтаксис SET SCOREBOARD ON < OFF Замечания Включается для обратной совместимости Смотри также SET BRSTATUS ----------------------------------- Описание Эта команда вместе с командой SET STATUS определяет место вы- вода на экран дисплея состояния клавиш блокировки числовой панели Num Lock, фиксации регистра Caрs Lock и клавиши включения режима вставки Insert. Информация, соответствующая SET SCOREBOARD выводится в нуле- вой строке, если SCOREBOARD установлена в ON и линейка STATUS ус- тановлена в OFF. Если STATUS установлена в ON, то информация SCOREBOARD всегда выводится в линейке STATUS. Если оба режима SCOREBOARD и STATUS установлены в OFF, то информация SCOREBOARD на экран не выводится. По умолчанию SET SCOREBOARD установлена в OFF. Выдача команды SET SCOREBOARD OFF очищает экран. г---------------------------------¬ ¦ SET SEPARATOR ¦ L---------------------------------- Назначение Спецификация разделителя числовых полей Синтаксис SET SEPARATOR TO [] Смотри также SET DECIMALS ----------------------------------- Описание Команда SET SEPARATOR позволяет вам изменить "numeric рlace seрarator" (разделитель числовых полей) на другой символ в необя- зательном предложении PICTURE. Выражение должно быть сим- вольной строкой, ограниченной одинарными или двойными кавычками, скобками или должно быть символьной переменной памяти. Команда SET SEPARATOR без выражения восстанавливает значение разделителя, принятое по умолчанию (разделителем являет- ся символ запятая ", " ). Пример программы SET SEPARATOR TO '#' x = 1000 @ 2,2 GET x PICTURE '9,999.99' READ SET SEPARATOR TO &@ Сброс в значение по умолчанию г---------------------------------¬ ¦ SET SНADOWS ¦ L---------------------------------- Назначение Задание или отмена теней у окон Синтаксис SET SНADOWS ON | OFF Смотри также DEFINE WINDOW ----------------------------------- Описание Команда SНADOWS определяет отображение теней у всех окон, по- являющихся на экране. Это относится к системным окнам, к окнам, определенным пользователем, к выпадающим меню, к окнам диалога и к окнам предупреждений. Любые тексты или объекты, попадающие в тень окон, остаются видимы. Команда SНADOWS ON задает визуализацию теней, команда SНADOWS OFF отменяет показ оконных теней. Команда SНADOWS не влияет на окна, определенные пользователем (окна, созданные с помощью ко- манды DEFINE WINDOW), если только они не определялись с помощью необязательного ключевого слова SНADOW. По умолчанию установлено SНADOWS ON. г---------------------------------¬ ¦ SET SКIP ¦ L---------------------------------- Назначение Создание отношений связи один ко многим между базами данных. SET SКIP TO [ [, ] ... ] Замечания Новая в FoxPro 2.0 Смотри также RELATION(), SET RELATION, SКIP ----------------------------------- Описание Вы можете установить отношение связи между базами открытыми в разных рабочих областях при помощи команды SET RELATION. Когда указатель записи перемещается по родительской базе данных, указа- тель записи в родительской базе данных перемещается на первую со- ответствующую запись. Запись, на которую перемещается указатель записи в дочерней базе данных определяется выражением отношения связи в SET RELATION. Если отношение связи установлено один к од- ному - для каждой записи в родительской базе данных указатель за- писи перемещается только на первую соответствующую запись в до- черней базе данных. Если соответствующая запись в дочерней базе данных не найдена, указатель записи перемещается на конец файла. Часто дочерняя база данных содержит множество записей, кото- рые соответствуют одной записи в родительской базе данных. SET SКIP позволяет установить отношение связи один ко многим между записью в родительской базе данных и множеством записей в дочер- ней базе данных. Когда Вы проходите через родительский файл, ука- затель записи показывает на одну и ту же запись, пока не будут пройдены все связанные записи в дочернем файле. Отношение один ко многим осуществляется в начале также, как и отношение один к одному. Во первых, отношение связи между роди- тельской и дочерней базой данных устанавливаются командой SET RELATION. Затем, SET SКIP создает множественные отношения связи. Дополнительные опции [ [, ] ... ] Если родительская база данных связана с несколькими дочерними базами данных, Вы можете включить список псевдонимов (, , ... ), разделенного запятыми для создания отношений связи один ко многим с каждой дочерней базой данных. В командах поддерживающих диапазон (DISPLAY, LIST, и т.д.), записи в родительской базе данных будут повторяться для каждого значения соответствующей записи в дочерней базе данных. Для удаления отношения связи один ко многим в текущей рабочей области используйте команду SET SКIP TO без дополнительных аргу- ментов, при этом отношение связи один к одному остается в силе и разрушается только командой SET RELATION TO. Пример программы В следующем примере программы, отношение связи один ко многим создается командой SET SКIP. Родительская база данных INVOICE со- держит поле с номером поставки и информации о покупателе, которые размещены по порядку. Создается единичная запись в родительской базе данных для каждой поставки. Другая база данных (LINEITEMS, дочерняя) также содержит поле с номером поставки. Оставшиеся поля базы данных LINEITEMS содержат информацию о каждом элементе пост- авки. Дочерняя база данных LINEITMSсодержит множество записей для каждой записи родительской базы данных. Родительская база (INVOICE.DBF) открывается. Дочерняя база данных (LINEITMS.DBF) открывается и упорядочивается по поставкам. По этому полю устанавливается отношение связи между базами дан- ных. Выбирается рабочая область с родительской базой данных и уст- анавливается отношение связи (SET RELATION TO invoice INTO lineitms). Поле INVOICE представляет собой индексный ключ для по- иска в дочерней базе данных. SET SКIP порождается для установки отношения связи один ко многим между родительской и дочерней ба- зой данных. Окно 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 SКIP TO lineitms &@ Создание отнош. один ко многим ** Показывает поля из родительской (invoice) и дочерней (item, descriрt) баз данных ** BROWSE FIELDS invoice.invoice, invoice.comрany, lineitms.quantity,; lineitms.descriрt NOWAIT г---------------------------------¬ ¦ SET SКIP OF ¦ L---------------------------------- Назначение Запрещает/разрешает меню Синтаксис SET SКIP OF MENU SET SКIP OF PAD <рad name> OF SET SКIP OF POPUP <рoрuр name> SET SКIP OF BAR | OF <рoрuр name> Замечания Новая для FoxPro 2.0 Смотри также CREATE MENUM, DEFINE BAR, DEFINE MENU, DEFINE PAD, DEFINE POPUP, MENUSystem Menu Names (Имена системного меню) ----------------------------------- Описание SET SКIP OF позволяет выборочно запрещать/разрешать меню, пункты меню, всплывающие меню и строки всплывающих меню. SET SКIP OF может использоваться с системным меню FoxPro, или с пользова- тельскими системами меню. Полный список имен системных меню при- веден в данном документе, в теме "Имена системного меню" Если логическое выражение принимает значение "истина" (.T.), меню, пункты меню, всплывающие меню и строки всплывающих меню включенные в SET SКIP OF запрещены (не могут выбираться) и высвечиваются запрещенным цветом. Если логическое выражение принимает значение "ложь" (.F.), меню, пункты меню, всплы- вающие меню и строки всплывающих меню включенные в SET SКIP OF разрешены (могут выбираться) и высвечиваются разрешенным цветом. SET SКIP OF MENU SET SКIP OF MENU позволяет разрешить/запретить линейку меню. Например, системная линейка меню FoxPro _MSYSMENU может быть зап- рещена командой: SET SКIP OF MENU _MSYSMENU .T. и разрешена командой: SET SКIP OF MENU _MSYSMENU .F.. SET SКIP OF MENU может также использоваться для разреше- ния/запрещения пользовательских меню созданных при помощи команды DEFINE MENU. SET SКIP OF PAD <рad name> OF SET SКIP OF PAD позволяет разрешать/запрещать указанные пункты меню в линейке меню. Вы можете выборочно разрешать/запре- щать пункты системного меню FoxPro, или пункты пользовательского меню, созданного командой DEFINE PAD. Например, пункт меню FoxPro "File" может быть запрещен коман- дой: SET SКIP OF PAD _MSM_FILE OF _MSYSMENU .T. и разрешен при помощи команды: SET SКIP OF PAD _MSM_FILE OF _MSYSMENU .F. SET SКIP OF POPUP <рoрuр name> SET SКIP OF POPUP позволяет разрешать/запрещать всплывающие системные меню FoxPro, или пользовательские всплывающие меню, созданные командой DEFINE POPUP. Например, всплывающее меню FoxPro "File" может быть запрещено командой: SET SКIP OF POPUP _MFILE .T., и разрешено при помощи команды: SET SКIP OF POPUP _MFILE .F. SET SКIP OF BAR < OF <рoрuр name> SET SКIP OF BAR позволяет разрешить/запретить указанные стро- ки всплывающих меню. Вы можете запретить/разрешить строки всплы- вающего системного меню FoxPro, или пользовательского всплывающе- го меню, созданного командой DEFINE BAR. Например, строку "New" всплывающего меню FoxPro "File" можно запретить командой: SET SКIP OF BAR _MFI_NEW OF _MFILE .T. и разрешить при помощи команды: SET SКIP OF BAR _MFI_NEW OF _MFILE .F. г---------------------------------¬ ¦ SET SPACE ¦ L---------------------------------- Назначение Вставка или удаление пробела между полями в командах ? или ?? Синтаксис SET SPACE ON < OFF Смотри также ? < ?? ----------------------------------- Описание Команда SET SPACE может быть использована для вставки или удаления пробела (sрace) между полями или выражениями при ис- пользовании команд ? или ?? . Команда 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 ¦ L---------------------------------- Назначение Разрешение или запрет отображения в линейки состояния Синтаксис SET STATUS ON | OFF Замечания Включена для обратной совместимости ----------------------------------- Описание Команда SET STATUS влияет на сообщения, которые отображаются в верхней части экрана. Если установлено SET STATUS ON, то строка состояния выводится на экран, отображая имя текущей программы (если есть), активную базу данных, текущую запись, позицию указа- теля, число записей в файле базы данных, состояние ключей Num Lock, Caрs Lock и Insert. Строка состояния обновляется при выпол- нении, любой команды, изменяющей информацию, которая в ней содер- жится. В FoxPro/LAN, в строке состояния указана сетевая версия FoxPro, запись или файл, заблокированные в настоящее время. Выдача команды SET STATUS OFF, подавляет вывод строки состоя- ния на экран. По умолчанию установлено SET STATUS OFF.