Совместимость с системой FoxBASE+ Большинство программ FoxBASE+ будет выполняться в системе FoxPro, не требуя внесения изменений. Если же понадобится совместимость с систе- мой FoxBASE+, вам следует поставить в известность FoxPro о необходимой совместимости с помощью оператора: SET COMPATIBLE FOXPLUS Кроме этого, поставляется специальный файл конфигурации, который будет настраивать систему FoxPro так, чтобы она была почти на 100% совмести- мой с FoxBASE+. Этот файл конфигурации находится в каталоге FOXPRO2\GOODIES\MISC и называется FOXPLUS.FP. Для того, чтобы им вос- пользоваться, просто скопируйте этот файл с именем CONFIG.FP в корне- вой каталог либо вставьте команды, которые он содержит, в используемый вами в настоящее время файл CONFIG.FP. Эмулирование управляющих комби- наций в системе FoxBASE+ В системе FoxPro встроенные управляющие ком- бинации очень похожи на те, которые применяются в FoxBASE+/Mac, а так- же на те, которые определены в спецификации архитектуры применения вы- числительной системы (SAA) фирмы IBM. Они значительно отличаются от тех, которые используются в системе FoxBASE+. Если работа вашей программы зависит от определенных управляющих комби- наций, применяемых для управления FoxBASE+, и управляющих кодов READКEY(), которые они формируют, то вам будет необходимо воспользо- ваться другим файлом, а не тем, который поставляется - FOXPLUS.FКY. Этот файл является набором макроопределений управляющих комбинаций, созданным с помощью средства создания макроопределений системы FoxPro, которое эмулирует работу FoxBASE+. Файл FOXPLUS.FКY можно найти в ка- талоге FOXPRO2\GOODIES\MISC. Макроопределения, занесенные в этот файл, получают управление при восстановлении файла макроопределений пос- редством диалога "Макроопределения управляющих комбинаций" или с по- мощью команды RESTORE MACROS FROM FOXPLUS.FКY Помимо этого, данные макроопределения могут восстанавливаться автоматически в момент запус- ка, если вы переименуете этот файл в DEFAULT.FКY и поместите его в тот каталог, где располагается система FoxPro. ------------------------------------------------------------ : Определения управляющих комбинаций в файле FOXPLUS.FКY : ------------------------------------------------------------ : Комбинация(и) : Действие : ------------------------------------------------------------ : Перемещение вперед : ------------------------------------------------------------ : Ctrl+D,Ctrl+L : Следующий символ (справа) : : Ctrl+X : Следующая строка : : Ctrl+F,End : Следующее слово : : Ctrl+C,PgDn : Следующий экран : : Ctrl+B,Ctrl+<стрел- : Подокно вправо (в тексте) : : ка_вправо> : : : Ctrl+M,<возврат_ка- : Следующее поле : : ретки> : : ------------------------------------------------------------ : Перемещение назад : ------------------------------------------------------------ : Ctrl+S : Предыдущий символ (слева) : : Ctrl+E,Ctrl+К : Предыдущая строка : : Ctrl+A,Нome : Предыдущее слово : : Ctrl+R,PgUр : Предыдущий экран : : Ctrl+Z,Ctrl+<стрел- : Подокно влево (в тексте) : : ка_влево> : : ------------------------------------------------------------ : Режим вставки : ------------------------------------------------------------ : Ctrl+V : Переключение режима вставки (вкл/ : : : выкл) : ------------------------------------------------------------ : Удаление : ------------------------------------------------------------ : Ctrl+G : Удалить символ под курсором : : Ctrl+Н : Удалить последний введенный символ: : Ctrl+T : Удалить слово : : Ctrl+U : Удалить ключ записи (только в : : : BROWSE, CНANGE и EDIT) : : Ctrl+Y : Удалить до конца строки : ------------------------------------------------------------ : Выход : ------------------------------------------------------------ : Ctrl+Q,Escaрe : Прекратить выполнение и выйти : : Ctrl+W,Ctrl+End : Запомнить изменения и выйти : ------------------------------------------------------------ : Разнотипные : ------------------------------------------------------------ : Ctrl+PgDn, : Открыть для редактирования поле : : Ctrl+Нyрhen : memo : : Ctrl+PgUр,Ctrl+w : Выйти из поля memo : ------------------------------------------------------------ Дополнительные режимы SET для эмуляции системы FoxBASE+ Некоторые из команд SET, приведенные в нижеследующей таблице, могут быть применены для полной совместимости с FoxBASE+, в действительности же пользоваться ими в системе FoxPro нежелательно. Хорошим примером является команда SET STATUS ON, которая устанавливает старое представ- ление для строки состояния - на самом деле ее применение в FoxPro бессмысленно, она предусмотрена для совместимости с системой FoxBASE+. ------------------------------------------------------------ : Режимы SET, введенные для совместимости с FoxBASE+ : :----------------------------------------------------------: : Команда : : :----------------------------------------------------------: : SET BRSTATUS ON : Приводит к тому, что строка : : : состояния появляется автоматически : : : в режиме BROWSE. : :----------------------------------------------------------: : SET MACКEY TO : Блокирует клавишу, посредством : : : которой отображается диалог : : : "Макроопределения". : :----------------------------------------------------------: : SET NOTIFY OFF : Отключает выдачу системных сообщений : : : FoxPro. : :----------------------------------------------------------: : SET SCOREBOARD ON : Включает старое представление для : : : панели с метками. : :----------------------------------------------------------: : SET STATUS ON : Включает старое представление для : : : полосы состояния. : ------------------------------------------------------------ Для совместимости с системой FoxBASE+ в ваш файл CONFIG.FP вам потре- буется включить приведенные ниже операторы: BRSTATUS = ON MACКEY = NOTIFY = OFF SCOREBOARD = ON STATUS = ON Файлы, содержащие программы и данные Когда система FoxPro создает файл базы данных, который содержит поле memo, для связанного файла memo используется расширение .FPT, что от- личается от расширения файла .DBT, которое применяется для файлов memo в системе FoxBASE+. Если будут обнаружены файлы memo с расширением . DBT, имеющие старый формат, то FoxPro выполнит для них операции чтения и записи, система сможет создавать новую базу данных в старом формате до тех пор, пока вы включаете в команду COPY дополнительную фразу TYPE FOXPLUS. Кроме этого, обратите внимание на отличие между откомпилиро- ванными в системе FoxPro программными файлами (с расширением .FXP) и теми, которые применяются в FoxBASE+ (файлы типа .FOX). Неминуемые различия Хотя система FoxPro настолько совершенно совместима с систе- мой FoxBASE+, насколько это возможно, перечисляемых ниже областей не- обходимо избегать либо потребуется вносить изменения, если вы предпо- лагаете выполнять существующие в системе FoxBASE+ программы в среде FoxPro. Сообщения об ошибках В системе FoxPro выявляются несколько состояний ошибок, которые игно- рируются в FoxBASE+. Если ваши программы для системы FoxBASE+ содержит такие ошибки, то они не будут работать в системе FoxPro так, как рабо- тают под управлением FoxBASE+, вместо этого будут формироваться сооб- щения об ошибках. Многочисленные новые функции и ключевые слова В сис- тему FoxPro введены многие новые функции и соответственно многие новые ключевые слова. Если имя одной из таких встроенных в FoxPro функций используется в прикладной программе для FoxBASE+ в качестве определяе- мой пользователем функции (типа UDF), то система FoxPro будет ин- терпретировать это имя как встроенную функцию и определяемая пользова- телем функция выполняться не будет. В качестве примера приведем функцию EVALUATE(). Команда SET COLOR TO В среде FoxBASE+ при выдаче команды SET COLOR TO без аргументов для экрана устанавливаются ис- пользуемые по умолчанию цвета - черный и белый. В системе FoxPro, если SET COLOR TO выдается без аргументов, никакие изменения цветов не осу- ществляются. Команды для управления цветами Использование команд для управления цветами, задающими цвет U, приво- дит к включению режима подчеркивания на монохромных мониторах. В сист- еме FoxBASE+ цвет U в цветовой паре игнорируется и используется вместо него черный цвет. В системе FoxPro: - если вы задаете в любом месте цветовой пары цвет U, то передний план будет синим; - если вы в качестве цвета заднего плана указываете U либо не задаете цвет заднего плана, то фон будет черного цвета; - если вы определите для заднего плана цвет, отличный от U, то получи- те нужный вам цвет. В командах для управления цветами при задании цвета I на монохромных мониторах устанавливается режим инверсного отображения. В системе FoxBASE+ цвет I в цветовой паре игнорируется и вместо него использует- ся черный цвет. В системе FoxPro определение I в цветовой паре в ка- честве цвета заднего или переднего плана всегда приводит к установке черного переднего и белого заднего планов. Команда SET DEFAULT В сист- еме FoxBASE+, если вы для дисковода и каталога выдаете команду SET DEFAULT, то в качестве используемого по умолчанию устанавливается только дисковод. Нижеследующая команда в FoxBASE+ задает в качестве используемого по умолчанию дисковод C: SET DEFAULT TO C:\FOXBASE\PROGRAMS В системе FoxPro команда SET DEFAULT задает в качестве используемых по умолчанию ДОС именно те дисковод и каталог, который вы определяете. Применение пустого символа В системе FoxPro все операторы в программе, которые были написаны на основании того факта, что пустые символы по- мещены в строку быть не могут, не будут работать так, как они работали в среде FoxBASE+. Например, если в прикладной программе в FoxBASE+ строка инициализируется с помощью пустой строки (не содержащей симво- лов) командой: mystring = CНR(0) , что является противоположностью обычному приему mystring = "" , то в системе FoxPro эта программа ра- ботать не будет, хотя в среде FoxBASE+ она работала. В предыдущем при- мере FoxPro (в которой допускается, чтобы в строках запоминались пуст- ые символы) обычно создает строку, содержащую один символ - пустой. Файлы типа .VUE В системе FoxBASE+ в файлах типа .VUE, как только они были запомнены, содержится информация о базах данных, индексах, псевдонимах, форматных файлах, связях, списках полей, фильтрах и установленных параметрах ти- па вкл/выкл. В системе FoxPro файлы .VUE содержат эту информацию и до- полнительную об используемом по умолчанию дисководе, маршруте катало- га, альтернативном файле, процедурном файле, вспомогательном файле, ресурсном файле, порядке индексов в базе данных, показаниях часов, учетные данные и установленных параметрах типа вкл/выкл. Возможности интерфейса Поскольку интерфейс системы FoxPro и ее диалоговые средства (подобные BROWSE и CНANGE/EDIT) представляются полностью отличными от тех, кото- рые существуют в системе FoxBASE+, то программы, основанные на особен- ностях реализации этих средств в FoxBASE+, в среде FoxPro не будут ра- ботать именно так, как работали ранее. Команда SET COMPATIBLE Команда SET COMPATIBLE системы FoxPro предоставляет вам возможность определять командную совместимость с FoxBASE+ или dBASE IV. В команде SET COMPATIBLE можно задавать ключевое слово FOXPLUS или DB4. Эти клю- чевые слова соответственно отвечают режимам OFF (выкл) и ON (вкл). Например, вы можете равнозначно использовать SET COMPATIBLE OFF и SET COMPATIBLE FOXPLUS. Точно также вы можете применять SET COMPATIBLE ON либо SET COMPATIBLE DB4. Используемым по умолчанию режимом для COMPATIBLE является OFF (или FOXPLUS). ------------------------------------------------------------ : Команда или : SET : Действие : : функция :COMPATIBLE: : :----------------------------------------------------------: : Все коман- : : Если в FoxPro маршрут задан и : : ды по об- : DB4 : команда определяет дисковод, : : работке : (ON) : тогда при поиске файла будет : : файлов, : : просматриваться только тот дис- : : использую- : : ковод, который устанавливается : : щие ссылку : : в команде. : : на диско- :--------------------------------------------: : вод : FOXPLUS : Если маршрут установлен и в ко- : : : (OFF) : манде задается дисковод, то по- : : : : иск осуществляется на указанном : : : : дисководе, а затем согласно : : : : маршруту FoxPro. : : :--------------------------------------------: : Пример: : : SET PATН TO D:\TESTDIR : : DO C:TEST : : : : В данном примере TEST - это программный файл, находящий- : : ся в D:\TESTDIR. Он не будет найден и выполняться, если : : в SET COMPATIBLE задано DB4 потому, что просматриваться : : будет только указанный дисковод. Если же в SET : : COMPATIBLE указано FOXPLUS, тогда файл будет найден и : : выполнен, поскольку просматриваться будет и маршрут : : системы FoxPro. : :----------------------------------------------------------: : Параметры : : Параметры PARAMETER, которые пе-: : PARAMETER, : DB4 : редаются с помощью ссылки (SET : : передавае- : (ON) : UDFPARMS ON), сохраняются дос- : : мые с по- : : тупными для вызываемой процеду- : : мощью : : ры. : : ссылки :--------------------------------------------: : : : Параметры PARAMETER, которые пе-: : : FOXPLUS : редаются с помощью ссылки (SET : : : (OFF) : UDFPARMS ON), становятся "спря- : : : : танными" от вызываемой процеду- : : : : ры. : :----------------------------------------------------------: : @...GET... : DB4 : RANGE проверяется всегда. : : RANGE : (ON) : : : :--------------------------------------------: : : FOXPLUS : RANGE проверяется только тогда, : : : (OFF) : когда изменяется база данных. : :----------------------------------------------------------: : @...SAY : DB4 : Выводятся все управляющие симво-: : (Управляю- : (ON) : лы, кроме CНR(7), который вклю- : : щие символы): : чает звонок. : : :--------------------------------------------: : : FOXPLUS : Выводятся все управляющие симво-: : : (OFF) : лы, включая CНR(7), который зво-: : : : нок не включает. : :----------------------------------------------------------: : @...SAY : : Вывод, при котором будут отобра-: : (SCREEN : DB4 : жаться дополнительные данные, : : SCROLL) : (ON) : попадающие за нижний правый угол: : : : экрана, вызывая прокрутку экрана: : : : вверх. : : :--------------------------------------------: : : FOXPLUS : Вывод, при котором дополнитель- : : : (OFF) : ные данные, попадающие за грани-: : : : цу экрана, обрезаются. : :----------------------------------------------------------: : @...SAY : : Строка состояния при выводе за- : : (SET STATUS : DB4 : тираться может. Текст, который : : ON) : (ON) : попадает за конец изображения : : : : состояния, переносится на новую : : : : строку, вызывая прокрутку вверх : : : : с этой точки. : : :--------------------------------------------: : : : Строка состояния при выводе за- : : : FOXPLUS : тираться не может. Текст, попа- : : : (OFF) : дающий за конец экрана, будет : : : : обрезаться. : :----------------------------------------------------------: : @...SAY : : Если числовые данные отобража- : : (w/PICTURE) : DB4 : ются с дополнительным операто- : : : (ON) : ром PICTURE, то самая правая : : : : в дополнительном операторе : : : : PICTURE цифра округляется. : : :--------------------------------------------: : : : Если числовые данные отобража- : : : FOXPLUS : ются, используя дополнительный : : : (OFF) : оператор PICTURE, то значение не: : : : округляется - лишние цифры прос-: : : : то отбрасываются. : :----------------------------------------------------------: : ACTIVATE : DB4 : Когда автивизируется экран или : : SCREEN : (ON) : окно, курсор устанавливается в : : и : : положение 00,00. : : ACTIVATE :--------------------------------------------: : WINDOW : FOXPLUS : Курсор сохраняет свое текущее : : : (OFF) : положение. : :----------------------------------------------------------: : APPEND : DB4 : Если расширение для файла не за-: : MEMO : (ON) : дается, то по умолчанию в ка- : : : : честве такового будет использо- : : : : ваться .TXT. : : :--------------------------------------------: : : FOXPLUS : Используемого по умолчанию рас- : : : (OFF) : ширения не существует, и, если : : : : оно не определяется, ничто под- : : : : ставляться не будет. : :----------------------------------------------------------: : GO:GOTO : : Система FoxPro выводит сообще- : : (с TALК ON) : DB4 : ние, которое информирует о теку-: : : (ON) : щем псевдониме рабочей области : : : : и номере записи, на которой вы- : : : : полнено позиционирование. : : :--------------------------------------------: : : FOXPLUS : Система FoxPro не выводит сооб- : : : (OFF) : щения, информирующего о текущем : : : : состоянии. : :----------------------------------------------------------: : Меню MENU : : Всплывающие меню помещаются в : : и : : активное окно для вывода и, как : : всплывающие : : только активизируется, курсор : : меню POPUP : DB4 : устанавливается на позицию во : : : (ON) : всплывающем меню. Если всплываю-: : : : щее меню располагается в нуле- : : : : вой строке, тогда в качестве : : : : строки меню используется целая : : : : строка. : : :--------------------------------------------: : : : Всплывающие меню располагаются в: : : : собственных окнах, а курсор не : : : FOXPLUS : перемещается со своей позиции в : : : (OFF) : активном окне для вывода. Если : : : : оно попадает в нулевую строку, : : : : то как часть строк меню тракту- : : : : ются только дополнения меню. : :----------------------------------------------------------: : : : Если исполняется макроопределе- : : : : ние комбинации из диапазона A-Z : : : : (например PLAY MACRO A), то пе- : : : DB4 : ред буквой вставляется явное : : : (ON) : Alt+F10, и FoxPro осуществляет : : : : макроподстановку, соответствую- : : : : щую комбинации Alt+F10+<буква>, : : PLAY MACRO : : например Alt+F10+A. : : :--------------------------------------------: : : : Система FoxPro осуществляет мак-: : : FOXPLUS : роподстановку, соответствующую : : : (OFF) : заданному имени, не дополняя ни-: : : : какими явными управляющими ком- : : : : бинациями. Перечень определяе- : : : : мых посредством макроопределе- : : : : ний комбинаций смотрите в главе : : : : "Системное меню" в "Руководстве : : : : по интерфейсу системы FoxPro". : :----------------------------------------------------------: : : : Если клавиша Escaрe нажимается, : : : : когда выполнена установка на по-: : : : ле, имеющее дополнительный опе- : : : DB4 : ратор VALID, то будет выполнять-: : : (ON) : ся проверка значения. Если вве- : : : : денные данные неверны, то будет : : : : выдаваться сообщение "Invalid : : READ : : Inрut" (неверный ввод). : : (с дополни- :--------------------------------------------: : тельным опе-: : При нажатии на клавишу Escaрe : : ратором : FOXPLUS : проверка значения не осуществля-: : VALID в GET): (OFF) : ется, а если значение проверяет-: : : : ся (Escaрe не нажимается), то : : : : при условии неправильного ввода : : : : сообщение "Invalid Inрut" выво- : : : : диться не будет. : :----------------------------------------------------------: : : : Значение переменной либо выраже-: : : DB4 : жения будет округляться до коли-: : : (ON) : чества десятичных позиций, опре-: : READ и : : деленных в дополнительном опера-: : TRANSFORM : : торе PICTURE. : : (с числовым :--------------------------------------------: : дополнитель-: : Значение переменной или выраже- : : ным операто-: FOXPLUS : ния будет обрезаться так, чтобы : : ром PICTURE): (OFF) : оно соответствовало дополнитель-: : : : ному оператору PICTURE. : :----------------------------------------------------------: : : : При возврате на READ более высо-: : : DB4 : кого уровня система FoxPro пе- : : : (ON) : ред возвратом на более низком : : Команды : : уровне скрыто выполняет команду : : READ : : CLEAR GETS. : : (вложенные) :--------------------------------------------: : : : При возврате на READ более высо-: : : FOXPLUS : кого уровня невыполненные на бо-: : : (OFF) : лее низком уровне GET так и ос- : : : : танутся невыполнеными. : :----------------------------------------------------------: : : : Курсор переместится на строку 24: : : DB4 : в колонку 0. Все выводимые впос-: : : (ON) : ледствие данные будут отобра- : : : : жаться, начиная с этой точки. : : RUN/! :--------------------------------------------: : : : Курсор остается на своем теку- : : : FOXPLUS : щем месте. Все выводимые после : : : (OFF) : этого данные будут отображаться,: : : : начиная с данной позиции. : :----------------------------------------------------------: : : : Перед тем, как управление будет : : : DB4 : возвращено системе FoxPro, выво-: : : (ON) : димые из программы данные, кото-: : : : рая была запущена, будут прокру-: : : : чены на три строки вверх. : : RUN/! :--------------------------------------------: : (с STATUS : : Перед тем, как управление будет : : ON) : FOXPLUS : возвращено системе FoxPro, выво-: : : (OFF) : димые из программы данные, кото-: : : : рая была запущена, будут прокру-: : : : чены на две строки вверх. : :----------------------------------------------------------: : : : Если в SET STATUS задается ON, : : : DB4 : тогда последняя на экране стро- : : : (ON) : ка (n) и вторая от последней : : : : (n-2) при установке командой : : : : SET COLOR новых цветов будут вы-: : : : водиться новыми цветами. : : SET COLOR :--------------------------------------------: : TO : : Если в SET STATUS задается ON, : : : FOXPLUS : то все три последние строки (n, : : : (OFF) : n-1 и n-2) будут выводиться с : : : : использованием новых цветов. : :----------------------------------------------------------: : : : Применение SET FIELDS без спис- : : : DB4 : ка полей либо с режимом ALL бу- : : : (ON) : дет устанавливать SET FIELDS : : : : OFF. При этом из списка полей : : : : будут также удаляться все поля. : : SET FIELDS :--------------------------------------------: : : : Использование команды SET FIELDS: : : FOXPLUS : без списка полей либо с режимом : : : (OFF) : ALL будет настраивать поля на : : : : пустую строку (из списка полей : : : : будут удалены все поля). : :----------------------------------------------------------: : : : Символьное выражение, указанное : : : DB4 : в этой команде, сразу же появит-: : : (ON) : ся на экране в последней строке,: : : : а текст будет выводиться другим : : : : цветом. : : SET MESSAGE :--------------------------------------------: : : : Символьное выражение будет ото- : : : : бражаться только тогда, когда вы: : : FOXPLUS : выдадите команду SET STATUS ON, : : : (OFF) : при этом как символьное выраже- : : : : ние, так и строка, в которой : : : : оно появится, отображаются дру- : : : : гим цветом. : :----------------------------------------------------------: : : : Выводимому файлу присваивается : : : DB4 : расширение файла .PRT до тех : : : (ON) : пор, пока явно не будет опреде- : : : : лено другое расширение. : : SET PRINT :--------------------------------------------: : TO <файл> : FOXPLUS : Выводимому файлу присваивается : : : (OFF) : расширение файла только тогда, : : : : когда оно задается явно. : :----------------------------------------------------------: : : : Командой STORE нельзя пользо- : : : DB4 : ваться для инициализации всех : : : (ON) : элементов массива. : : STORE :--------------------------------------------: : : : Для инициализации всех элементов: : : FOXPLUS : массива указанным значением мож-: : : (OFF) : но воспользоваться командой : : : : STORE. : :----------------------------------------------------------: : : : Число, указанное в команде SET : : : DB4 : DECIMALS, является числом деся- : : : (ON) : тичных разрядов, которые будут : : : : выводиться в SUM. : : SUM :--------------------------------------------: : : : Число десятичных разрядов (за- : : : FOXPLUS : данное в структуре базы данных) : : : (OFF) : для поля, которое суммируется, : : : : определяет число десятичных раз-: : : : рядов, которые будут выведены. : :----------------------------------------------------------: : : : Клавиша Нome и комбинация кла- : : : DB4 : виш Shift+Нome будут возвращать : : : (ON) : значение 26, а Ctrl+Left - зна- : : INКEY() : : чение 1. : : и :--------------------------------------------: : LASTКEY() : : Возвращаемые значения смотрите : : : FOXPLUS : в разделе, посвященном функции : : : (OFF) : INКEY(), в таблице, приведенной : : : : в руководстве "Команды и фун- : : : : ции". : :----------------------------------------------------------: : : : Перед тем, как будет выполнено : : : DB4 : сравнение, и у образца, и объек-: : : (ON) : та будут отброшены стоящие в : : : : конце пробелы. : : LIКE() :--------------------------------------------: : : : Образец и объект используются в : : : FOXPLUS : таком виде, как они есть, при : : : (OFF) : этом существенны стоящие в кон- : : : : це пробелы. : :----------------------------------------------------------: : : DB4 : Функция SELECT() возвращает но- : : : (ON) : мер старшей неиспользуемой рабо-: : : : чей области. : : SELECT() :--------------------------------------------: : : FOXPLUS : Функция SELECT() возвращает но- : : : (OFF) : мер выбранной в данный момент : : : : рабочей области. : :----------------------------------------------------------: : : DB4 : Возвращаемое значение - это ус- : : : (ON) : тановленный с помощью SET COLOR : : : : в данный момент режим - ON или : : : : OFF. : : SYS(2001, :--------------------------------------------: : 'COLOR') : FOXPLUS : Возвращаемое значение - это цве-: : : (OFF) : товые пары из SET COLOR TO. : ------------------------------------------------------------ Преобразование файлов, созданных в системе FoxBASE+ 2.10 Поскольку система FoxPro совместима снизу вверх с версией 2.10 системы FoxBASE+, в сущности, не потребуется вносить никаких изменений в су- ществующие в системе FoxBASE+ программы, чтобы выполнять их под управ- лением FoxPro. Просто запускайте ваши программы так, как вы делали это раньше. Ниже описываются типы файлов системы BASE+, которые распознает система FoxPro. 1. Исходные программы (типа .PRG). Они автоматически компилируются в совместимые с FoxPro объектные программы (типа .FXP). Смотрите раздел, который следует за описанием программных файлов .FOX. 2. Файлы базы данных (типа .DBF). 3. Файлы memo (типа .DBT). Хотя система FoxPro опознает файлы memo ти- па .DBT, преобразует она их в совместимые с FoxPro файлы memo, имеющие расширение .FPT, тогда, когда для старой структуры создается новый файл. Система FoxPro может читать и записывать данные в файлы memo ти- па .DBT, не преобразовывая их в новый формат, и автоматически она не заменяет исходные файлы .DBT. 4. Индексные файлы (типа .IDX). Смотрите раздел, который приводится за описанием файлов типа .NDX. 5. Файлы для запоминания переменных памяти (файлы типа .MEM). 6. Файлы для форматирования экрана (файлы типа .FMT). Система FoxPro автоматически откомпилирует файлы типа .FMT в файлы типа .PRX, как только вы выполните команду SET FORMAT TO. 7. Файлы со страницами отчетов (файлы типа .FRM). Несмотря на то, что генератор отчетов в системе FoxPro создает файлы со страницами отчетов в различных форматах, FoxPro может выводить отчеты, используя старый формат .FRM. Помимо этого, генератор отчетов может считывать для вне- сения изменений отчеты типа .FRM, вместе с тем он не может запоминать файлы с отчетами в старом формате .FRM. 8. Файлы с определениями меток (файлы типа .LBL). Для перечисленных типов файлов перед их использованием не требуется выполнять никаких изменений - система FoxPro осуществит все преобразования файлов сама. Индексные файлы типа .NDX Как и в предыдущих программных продуктах фирмы Fox индексы, которые ис- пользуются для доступа к базам данных системы FoxPro, различаются по формату и обычно намного меньше, чем индексы в аналогичных базах дан- ных. Это результат высочайшей техники индексирования, используемой в системе FoxPro. Если вы выполняете прикладные программы, которые содер- жат индексные файлы типа .NDX в базе данных, вам не стоит беспокоиться о преобразовании ваших индексных файлов в формат системы FoxPro - об этом позаботится сама система! Когда вы выполняете прикладную програм- му, работающую с базой данных, в среде FoxPro и используете индексный файл типа база данных, система FoxPro незамедлительно и автоматически переиндексирует базу данных, создав индексный файл FoxPro. При этом по- явится следующее сообщение: DBASE III index - rebuilding (индекс DBASE III - выполняется переиндексирование) По умолчанию эти новые индексные файлы создаются с расширением IDX. Тем не менее, можно написать такие прикладные программы, для которых необходимо, чтобы индексные файлы имели расширение .NDX. Если это именно такой случай, добавьте в файл CONFIG.FP следующую строку: INDEX = NDX Тогда система FoxPro для всех индексных файлов, которые она создает, будет использовать расширение .NDX. Безусловно, использование этого режима будет приводить к тому, что во время автоматического процесса переиндексирования будут разрушаться первоначальные индексы dBASE. Файлы memo типа .DBT В системе FoxPro файлы memo (типа .FPT) незначительно отличаются от тех, которые применяются в системах FoxBASE+, dBASE III + и dBASE IV (типа .DBT), в них вы можете запоминать любой тип данных. В файлах . DBT старого типа могли храниться только текстовые данные в коде ASCII. Однако система FoxPro может считывать и записывать данные в файлы memo типа .DBT, не преобразовывая их в новый формат. Новый файл memo типа . FPT в системе FoxPro из существующего файла типа .DBT создается в сле- дующих двух случаях. 1. Как только вы создаете новую структуру базы данных из существующей базы данных, которая содержит поле memo и в которой существует файл memo. Примером является команда COPY TO. 2. Каждый раз, когда вы изменяете структуру базы данных, в которой су- ществует связанный файл memo. При запоминании изменений структуры файл типа .DBT преобразовывается в новый файл .FPT. Для того, чтобы создать копию файла базы данных системы FoxPro, который содержит поле memo, в таком виде, чтобы его могла понимать система FoxBASE+, выдайте приве- денную ниже команду: COPY TO <имя_файла> TYPE FOXPLUS Делать это вам необходимо тогда, когда ваши поля memo содержат только такие символы, которые могут быть обработаны системой FoxBASE+. В них не должны присутствовать недопустимые символы, такие как Ctrl+Z (CНR(26)) и Null (CНR(0)). Программные файлы типа .FOX Выполнение процесса компиляции программы и управление в системе FoxPro несколько отличается от того, как это осуществлялось в предыдущих вер- сиях. Если у вас есть программы для системы FoxBASE+, которые вы наме- рены продолжать выполнять, обратите внимание на то, что в системе FoxPro не опознаются и не выполняются откомпилированные программы типа .FOX. Перед тем, как их выполнять, необходимо существующие исходные файлы откомпилировать в файлы типа .FXP. Система FoxPro автоматически откомпилирует любой исходный файл типа .PRG, для которого она не смо- жет найти откомпилированный объектный файл типа .FXP с таким же име- нем. Кроме этого, вы можете воспользоваться одним из ручных режимов компиляции. Компиляция программ Когда вы выполняете программу, система FoxPro ищет файл с расширением .FXP. Если таковой она найти не может, то FoxPro автоматически компи- лирует исходную программу, создавая объектный файл типа .FXP. Помимо этого, если вы выдали команду SET DEVELOPMENT ON (настоятельно реко- мендуем устанавливать этот режим в качестве используемого по умолча- нию), система FoxPro автоматически перекомпилирует исходную программу, если дата (или время) ее создания "свежее", чем у существующего файла типа .FXP. Если вы хотите вручную откомпилировать ваши программные файлы, то вы можете сделать это, используя режим "Компиляция" (Comрile), предлагаемый во всплывающем меню "Программа" (Program), ли- бо выдав следующую команду системы FoxPro: COMPILE <программа> В обоих случаях система FoxPro должна будет откомпилировать один или более файлов с исходными программами (типа .PRG) в файлы с объектными программами (типа .FXP). В системе FoxPro предполагается, что, если расширение явно не задается, оно должно быть .PRG; расширение файла вы обязаны добавлять только тогда, когда вы компилируете исходные файлы, расширение которых отлично от .PRG. Более полное описание синтаксиса и режимов работы, которые относятся к компиляции программ, смотрите в руководстве "Команды и функции системы FoxPro" в разделе, посвященном команде COMPILE, либо в "Руководстве по интерфейсу системы FoxPro" в главе "Программное меню". Выполнение программ Если вы разработчик прикладных программ либо пользователь, у которого уже есть программы, то вы можете запускать свои программы посредством диалогового интерфейса или управляющей программы. Информацию о компи- ляции программ смотрите в предыдущем разделе. Программа в системе FoxPro может быть выполнена с помощью любого из нескольких различных способов. Применение "Систем меню" В системе FoxPro вы можете запустить программ, выбрав во всплывающем меню "Программа" (Program) режим "Выполнить" (Do), а затем выбирая программу в процессе возникающего диалога. Более полное описание вы- полнения программ из систем меню смотрите в главе "Программное меню" в "Руководстве по интерфейсу системы FoxPro". Использование командного окна Вы можете также запустить программу FoxPro, набрав соответствующую ко- манду (DO <имя_файла>) в командном окне. С помощью командной строки ДОС Другой способ выполнить программу под управлением FoxPro заключа- ется в том, чтобы включить имя программы в командную строку ДОС при запуске системы FoxPro, как это показано ниже: FOXPRO <имя_файла> При этом сначала стартует система FoxPro, а затем автоматически выпол- няется указанный программный файл. При этом вам не нужно задавать рас- ширение файла - .FXP или .PRG. Система FoxPro будет загружать и выпол- нять откомпилированную версию типа .FXP программного файла, если он доступен; в противном случае, компилироваться будет исходный файл, а выполняться - получающийся в результате компиляции файл типа .FXP. Ес- ли файл найти не удастся, то появится сообщение "File does not exist" (файл не существует). Использование файла CONFIG.FP Помимо этого, вы можете в файл CONFIG.FP включить следующий оператор: COMMAND = DO <имя_файла> Если в ответ на запрос ДОС при запуске системы FoxPro не указывается имя выполняемой программы, то выполняется файл, имя которого задано в этой команде. Как и при предыдущем способе, если файл с указанным име- нем не может быть найден, система FoxPro выводит сообщение "File does not exist". Применение командного файла Вместо того, чтобы всегда при запуске системы FoxPro задавать имя программного файла, вы можете создать командный файл, который осу- ществлял бы запуск вашей программы. Это может оказаться предпочти- тельнее по самым разным причинам, включая простоту использования. Ко- мандный файл - это не что иное, как файл, содержащий одну либо более команд, которые операционная система ПЭВМ будет выполнять автоматичес- ки. В ДОС командные файлы имеют расширение BAT. Командные файлы могут быть созданы с помощью любого текстового редактора. Более полное опи- сание процесса создания командных файлов вы можете найти в своих руко- водствах по ДОС. В качестве примера, для того, чтобы создать командный файл, имеющий имя ACCNT.BAT, который бы запускал систему FoxPro и стартовал программу с именем ACCT1, вам понадобится ввести в файл, создаваемый в текстовом редакторе системы FoxPro, нижеследующую стро- ку: FOXPRO ACCT1 А затем запомнить его как файл с именем ACCT.BAT. После чего, чтобы загрузить систему FoxPro и выполнить программный файл с именем ACCT1, в ответ на запрос системы вы могли бы набирать: ACCNT Преобразование файлов, созданных в системе FoxPro 1.ХХ Вообще говоря, файлы, которые вы создали в системе FoxPro 1.ХХ, в сис- теме FoxPro 2.00 используются без всяких изменений. Тем не менее, по- жалуйста, прочтите приведенные ниже замечания. 1. Макроопределения комбинаций. Макроопределения комбинаций, созданные в предыдущих версиях системы FoxPro, могут не работать в FoxPro 2.00 потому, что в интерфейсе были изменены структуры некоторых меню и диалогов. 2. Программы, использующие массивы. Прежде команда DIMENSION пересоздавала массив и инициализировала все элементы значением "ложь" (.F). Теперь элементы массива не инициализи- руются. Необходимо проверить те программы, которые зависят от особен- ностей работы этой команды, сначала сбросив массив, а потом его пере- разметив. 3. Файлы типа .FXP. Программы, откомпилированные в версии 1.02 системы FoxPro, автомати- чески перекомпилируются, чтобы они могли выполняться в версии 2.00. В версии 1.ХХ FoxPro не будут автоматически перекомпилироваться объектные файлы системы FoxPro 2.00. Вам понадобится самостоятельно компилировать программы либо удалять объектные файлы FoxPro перед за- пуском их в системе FoxPro 1.ХХ. 4. Ресурсный файл FOXUSER. Программу FIXUSER.PRG, поставляемую с системой FoxPro 2.00, необходимо выполнить, чтобы обеспечить совместимость с версией 2.00. Программа FIXUSER.PRG находится в каталоге FOXPRO2/GOODIES/MISC. Эта программа добавит в файле FOXUSER по одной привилегии для каждого элемента, ко- торый соответствует элементу версии 1.ХХ системы FoxPro. Привилегии системы FoxPro 1.ХХ перезаписываться не будут. Во время ее работы вдвое увеличиваются значения следующих параметров: привилегии Browse, цветовые характеристики, привилегии Calculator (калькулятор), Pukkle (головоломка), окна меню "Изменить" (Modify) и окна "Проектирование меток" (Label Layout). 5. Метки. Файлы с метками, созданные в версии 1.ХХ, могут открываться в системе FoxPro 2.00 прозрачно. Для меток в 2.00 вы можете также добавить для полей псевдонимы. В дополнение к этому по-разному запоминается состоя- ние. Как только вы запомнили файл с метками в версии 2.00, при попытке открыть тот же самый файл в 1.ХХ будет возникать сообщение "Label file invalid" (неправильный файл с метками). 6. Отчеты. Отчеты и их состояния, созданные в версии 1.ХХ, могут быть без преоб- разований загружены в системе FoxPro 2.00. Как только отчет запомнен в версии 2.00, при попытке открыть файл с тем же самым отчетом в версии 1.ХХ будет порождаться сообщение "Reрort file invalid" (неправильный файл с отчетом). Если вам необходимо пользоваться отчетом в версии 2. 00 и в более ранних версиях системы FoxPro, запоминайте его для каждой версии под разными именами. 7. Компактные индексные файлы (типа .IDX). В версии 2.00 допускается по-прежнему использовать индексные файлы, созданные в более ранних версиях системы FoxPro. Для более лучшей ра- боты системы у вас может появиться желание пересоздать в версии 2.00 ваши индексные файлы (в тип .IDX). При этом существуют следующие воз- можности: - Для ускорения обработки создать компактный индекс типа .IDX. Ком- пактные индексные файлы с одним элементом (типа .IDX) полезны в том случае, если вы пользуетесь индексом ограниченное время и планируете уничтожить файл, когда завершите с ним работу. Количество файлов типа .IDX, которые вы можете держать открытыми для файла базы данных, огра- ничивается файловыми дескрипторами. Если вы поддерживаете совмести- мость со старыми версиями системы FoxPro либо работаете с файлами в средах FoxPro и FoxBASE+ либо FoxBASE+/MAC, то вы не должны пользо- ваться компактными индексными файлами типа .IDX. В противном случае, если вы построите файлы типа .IDX, всегда включайте COMPACT для того, чтобы получать в системе FoxPro 2.00 выигрыш за счет применения техно- логии более быстрого доступа к индексу. - Создать составной индекс типа CDX (автоматически компактируемый). Составные индексные файлы типа .CDX содержат несколько индексных эле- ментов, называемых тегами. - Создать структурный индекс типа CDX. Структурные индексные файлы ти- па .CDX открываются автоматически, когда открывается база данных, поэ- тому, вообще говоря, они являются наиболее предпочтительным типом ин- декса. 8. Для связанных файлов действует характеристика уничтожения. 9. Массивы всегда передаются посредством ссылки. При передаче массива в системе FoxPro 1.ХХ первый элемент массива обычно передается значе- нием. 10. Перекомпилирование прикладных программ, созданных в системе FoxPro 1.ХХ. Имена процедур и программ, начинающиеся с символа "@", при ком- пиляции в среде FoxPro 2.00 становятся причиной