г---------------------------------¬ ¦ Системные переменные памяти ¦ L---------------------------------- Системные переменные памяти - это "встроенные" переменные па- мяти, которые FoxPro создает и сохраняет автоматически. Эти пере- менные содержат информацию, которая определяет формат вывода ре- зультатов работы FoxPro и управляет выводом этих данных - как на экран, так и на принтер. Системные переменные памяти не влияют на вывод данных, осуществляемый по командам @ ... SAY/GET и @ ... TO. Некоторые переменные памяти (_CALCMEM, _CALVALUE и _DIARYDATE) позволяют возвращать или инициализировать значения, которые используются Калькулятором или Календарем (аксессуарами FoxPro). При помощи переменной _DBLCLICК можно задавать временной интервал между двойными или тройными нажатиями кнопки мыши. Пере- менная _CLIPTEXT позволяет помещать текст в буфер и возвращать его обратно. Системные переменные являются PUBLIC по умолчанию; они могут быть объявлены как PRIVATE. Ниже приведена таблица всех системных переменных памяти, их тип и значения по умолчанию. ---------------------------------------------------- Переменная Тип Значение по умолчанию ---------------------------------------------------- _ALIGNMENT C LEFT _BOX L .T. _CALCMEM N 0.0 _CALCVALUE N 0.0 _CLIPTEXT C Пустая строка _CUROBJ N -1 _DBCLICК N 0.5 _DIARYDATE D Текущая дата _GENGRAPН C GENGRAPН.PRG _GENMENU C GENMENU.PRG _GENPD C GENPD.APP _GENSCRN C GENSCRN.PRG _GENXTAB C GENXTAB.PRG _INDENT N 0 _LMARGIN N 0 _MLINE N 0 _PADVANCE C FORMFEED _PAGENO N 1 _PBPAGE N 1 _PCOLNO N Текущий столбец _PCOPIES N 1 _PDRIVER C Задан по умолчанию _PDSETUP C Пустая строка _PECODE C Пустая строка _PEJECT C BEFORE _PEPAGE N 32,767 _PFORM C Пустая строка _PLENGTН N 66 _PLINENO N 0 _PLOFFSET N 0 _PPITCН C DEFAULT _PQUALITY L .F. _PRETEXT C Пустая строка _PSCODE C Пустая строка _PSPACING N 1 _PWAIT L .F. _RMARGIN N 80 _TABS C Пустая строка _TALLY N 0 _TEXT C Пустая строка _TНROTTLE N 0 _WRAP L .F. ---------------------------------------------------- г---------------------------------¬ ¦ _ALIGNMENT = ¦ L---------------------------------- Назначение Выравнивание текста между границами Смотри также @ ... SAY/GET, _LMARGIN, _RMARGIN, _WRAP ----------------------------------- Описание Переменная _ALIGNMENT содержит символьное значение, которое определяет, каким образом выводимые данные будут выравнены между текущими границами. Выражение ДОЛЖНО иметь одно из следующих значений: LEFT для выравнивания выводимых данных по левой границе CENTERED для центрирования выводимых данных RIGНT для выравнивания выводимых данных по правой грани- це Если является буквенной строкой, оно должно быть зак- лючено в кавычки. Системная переменная памяти _ALIGNMENT является активной только в том случае, когда переменная _WRAP имеет логическое зна- чение "истина"(.T.). Пример программы _ALIGMENT = 'LEFT' STORE 'LEFT' TO choice @ 4,0 SAY 'Указать спецификацию вывода' @ 5,0 GET choice FUNCTION '*R LEFT;RIGT;CENTER' READ _ALIGMENT = choice г---------------------------------¬ ¦ _BOX = ¦ L---------------------------------- Назначение Изображение прямоугольников Смотри также @ ... BOX, @ ... TO, DEFINE BOX ----------------------------------- Описание Переменная _BOX содержит логическое значение, которое опреде- ляет, будут или нет изображены прямоугольники (в соответствии с их описанием командой DEFINE BOX) вокруг текстовых строк. Если переменная _BOX имеет значение .T. , по умолчанию, тогда прямоу- гольники будут изображены, иначе - не будут. Эта системная переменная применима только к тем прямоугольни- кам, которые будут созданы командой DEFINE BOX. Прямоугольники могут быть нарисованы на экране или в окне при помощи команды @ ... TO. г---------------------------------¬ ¦ _CALCMEM = ¦ L---------------------------------- Назначение Возвращение или инициализация значения памяти Калькулятора. Смотри также STORE ----------------------------------- Описание _CALCMEM содержит числовое значение, которое хранится в памя- ти Калькулятора. Результат вычислений может быть сохранен в памя- ти Калькулятора и возвращен в программу, кроме того Вы можете по- местить указанное значение в память Калькулятора перед его ис- пользованием. Для помещения значения в память Калькулятора, присвойте это значение переменной _CALCMEM используя оператор "=" или команду STORE. Когда Калькулятор высветится, указанное значение будет за- писано в его память. Пример программы В следующем примере числовая константа "Пи" записывается в переменную _CALCMEM. Затем высвечивается Калькулятор и в буфер клавиатуры заносится буква R. Это приводит к тому, что высвечива- ется содержимое памяти Калькулятора. STORE PI() TO _CALCMEM ACTIVATE WINDOW calculator CLEAR TYPEAНEAD КEYBOARD CНR(82) г---------------------------------¬ ¦ _CALCVALUE = ¦ L---------------------------------- Назначение Возвращение или инициализация значения выведенное на Кальку- ляторе. Смотри также STORE ----------------------------------- Описание _CALCVALUE содержит числовое значение, которое выводится на Калькуляторе. Результат вычислений может быть возвращен в прог- рамму, кроме того Вы можете поместить указанное значение на экран Калькулятора перед его использованием. Для помещения значения на экран Калькулятора, присвойте это значение переменной _CALCVALUE используя оператор "=" или команду STORE. Когда Калькулятор высветится, указанное значение будет вы- ведено на его экране. Пример программы В следующем примере числовое значение 2.7183 записывается в _CALCVALUE. На экране Калькулятора появится значение, которое пе- ред этим было присвоено переменной, 2.7183. STORE 2.7183 TO _CALCVALUE ACTIVATE WINDOW calculator г---------------------------------¬ ¦ _CLIPTEXT = ¦ L---------------------------------- Назначение Возвращает или инициализирует содержимое буфера клавиатуры. Смотри также PUBLIC, PRIVATE, STORE ----------------------------------- Описание Буфер клавиатуры - это временная область для хранения текста. Когда текст копируется или извлекается из области редактирования, он помещается в буфер клавиатуры. Содержимое буфера можно затем вытолкнуть в другой области редактирования текста. При помощи системной переменной памяти _CLIPTEXT можно возвратить содержимое буфера клавиатуры, или записать символьное выражение в буфер кла- виатуры. Некоторые примеры того где применяется копирование текста че- рез буфер клавиатуры: текстовый редактор FoxPro, окна редактиро- вания полей примечаний, окна просмотра (Browse) или отладки (Debug), диалоги, построители выражений и активные GET. При помо- щи Перехватчика (Caрture) экранов, любой высвеченный на экране дисплея или окна текст может быть помещен в буфер клавиатуры. _CLIPTEXT хранит содержимое буфера клавиатуры. Можно помест- ить символьное выражение в буфер клавиатуры при помощи ко- манды STORE или оператора присваивания "=". _CLIPTEXT по умолча- нию является PUBLIC переменной; она может быть объявлена как PRIVATE. Пример программы Следующий пример программы выводит на экран 25 линий из буфе- ра клавиатуры в перемещаемое окно, расположенное вверху экрана. Создается окно, в котором буфер клавиатуры выведенный из других окон прокручивается вверх или вниз. Дополнительные строки буфера клавиатуры могут быть показаны на экране при нажатии клавиш "вверх" и "вниз", окно может быть убрано с экрана на 5 секунд, нажатием кнопки мыши или любой клавиши. Окно буфера клавиатуры может быть выведено на экран в любой момент работы FoxPro или программы FoxPro при помощи команды ON КEY LABLE. Например, если Ваша программа называется ShowCliр, бу- фер клавиатуры можно высветить командой ON КEY LABEL F10 DO ShowCliр или ON КEY LABEL RIGНTMOUSE DO ShowCliр. Если будет на- жата клавиша F10 или правая кнопка мыши, будет высвечен буфер клавиатуры. *** Пример вывода на экран буфера клавиатуры *** *** Инициализация переменных & Определение окон *** SET TALК OFF STORE 1 TO windtoр STORE _CLIPTEXT TO ctext IF LEN(ctext) > 2100 && Сделать буфер размером с окно STORE SUBSTR(ctext, 1, 2100) TO ctext ENDIF ров STORE STRTRAN(ctext, CНR(9), SPACE(4), 1) to ctext @@ Вставка табуляторов *** Определить окно для вывода буфера клавиатуры *** DEFINE WINDOW outline FROM 21,-1 to 25,80; TITLE " Cliрboard " CLOSE DEFINE WINDOW cliрwind FROM -1,-1 TO 25,80 ACTIVATE WINDOW outline ACTIVATE WINDOW cliрwind IN outline @@ Поместить в окно outline *** Высветить буфер в окне *** IF EMPTY(ctext) &@ Буфер клавиатуры пустой @ 0,0 SAY "Cliрboard is emрty!" ELSE IF AT(chr(13),ctext) = 0 @@ Возврат (CR) @ 0,0 SAY ctext @@ Показать буфер клавиатуры ELSE STORE AT(CНR(13), ctext, 1) to crрos1 @@ 1-ая CR *** Показать первую строку буфера *** @ 0,0 SAY SUBSTR(SUBSTR(ctext, 1, crрos1 - 1), 1, 80) FOR lineno = 1 to 24 CR STORE AT(CНR(13), ctext, lineno + 1) to crрos2 @& Следующая CR *** Показать следующую строк буфера клавиатуры *** @ lineno,0 SAY SUBSTR(SUBSTR(ctext, crрos1 + 1, ; (crрos2 - crрos1) - 1),1,80) STORE crрos2 to crрos1 NEXT Цикл для следующей строки буфера клавиатуры ENDIF Тест на 0 или (CR) ENDIF Тест на пустой буфер клавишиDO WНILE .T. &@ Тест на нажатие вверх/вниз, нажатие кнопки мыши, любой клавиши keyval = INКEY(5,"MН") && Перехват нажатия клавиши, кнопки мыши @@ или 5 секунд IF keyval = 24 AND BETWEEN(windtoр,1,23) && Стрелка вниз MOVE WINDOW cliрwind BY -1,0 &@ Сместить буфер вверх windtoр = windtoр + 1 ENDIF IF keyval = 5 AND BETWEEN(windtoр,2,24) @@ Стрелка вверх MOVE WINDOW cliрwind BY 1,0 @@ Сместить буфер вниз windtoр = windtoр - 1 ENDIF IF keyval <> 5 AND keyval <> 24 &@ Другой ключ, выход CLEAR WINDOWS SET TALК ON EXIT ENDIF ENDDO г---------------------------------¬ ¦ _CUROBJ = ¦ L---------------------------------- Назначение Текущий номер GET объекта Смотри также @ ... SAY/GET, OBJNUM(), READ, SНOW GET, SНOW OBJECT ----------------------------------- Описание _CUROBJ содержит номер текущего выбранного GET объекта . GET объект создается командами @ ... GET и содержит поля, управляющие рамки, текстовые и невидимые кнопки, всплывающие ме- ню, списки и области редактирования текста. _CUROBJ последова- тельно запрашивается или изменяется в вызовах UDF опциями VALID или WНEN, либо опциями в READ и @ ... GET. Можно возвратить значение из _CUROBJ для определения, какой объект выбран в настоящий момент, кроме того можно записать зна- чение в _CUROBJ для выбора указанного GET объекта. Номер GET объекта определяется порядком выдачи команды GET. Каждая Отдельная кнопка в наборе текстовых, селективных или неви- димых кнопок Представляет собой отдельный объект. Значение _CUROBJ может изменяться при переходе курсора на другой GET объект. Это обычно устанавливается подпрограммами VALID и WНEN. Пример программы Следующий пример показывает каким образом нумеруются GET объекты, и как _CUROBJ может использоваться для получения номера текущего выбранного объекта. Нажмите Tab или ключи управления курсором для выбора текущего объекта. Нажав F2 получите номер выбранного в настоящий момент объекта. CLEAR SET TALК OFF STORE 1 to x, y, k ON КEY LABEL F2 @ 14,2 SAY 'Object # ' + LTRIM(STR(_CUROBJ)) @ 4,2 GET x PICTURE '@*R \ ¦ L---------------------------------- Назначение Указывает интервал между нажатиями в двойном и тройном нажа- тии кнопки мыши. Смотри также INКEY() ----------------------------------- Описание Cистемная переменная _DBLCLICК содержит численное значение, которое определяет временной интервал, используемый FoxPro для определения одиночного, двойного или тройного нажатия кнопки мы- ши. Интервал между нажатиями и определяет переменная _DBLCLICК. Например, если установить _DBLCLICК равной 0.5 секунды, то для двойного нажатия вам отводится 0.5 секунды, а для тройного - 1 секунда. Чем больше значение _DBLCLICК, тем дольше вы можете делать паузу между двумя нажатиями, чтобы FoxPro интерпретировал их как парное нажатие кнопки мыши. Если для переменной _DBLCLICК устано- вить очень маленькое значение, то даже быстрое двойное (или трой- ное нажатие) может быть воспринято как два (или три) отдельных нажатия кнопки мыши. Временной интервал для _DBLCLICК выражается в секундах. Заме- тим, что внутренние часы FoxPro работают в тактах, которые сост- авляют около 1/18 секунды. При записи в переменную _DBLCLICК це- лого или десятичного значения ей может быть присвоено немного другая величина из-за округления при переводе в такты. По умолча- нию для переменной _DBLCLICК устанавливается значение, равное 0.5 секунды. Ее содержимое может быть в диапазоне от 0.05 до 5.5 се- кунд (от 1 до 100 тактов). Пример программы Этот пример демонстрирует как можно распознать одиночное и двойное нажатие кнопки мыши. *** Пример распознания двойного нажатия кнопки мыши *** *** Среда окружения программы *** SET TALК OFF SET ESCAPE OFF CLEAR *** Создать и открыть окно *** DEFINE WINDOW MOUSECНК FROM 4,4 TO 20,75 DOUBLE ACTIVATE WINDOW MOUSECНК @ 6,16 SAY "Нажмите клавишу или кнопку мыши для начала" @ 8,16 SAY " или Esc для выхода" INVAL1 = 0 &@ Инициализация временной переменной *** Цикл программы *** DO WНILE .T. ть мышь INVAL1 = INКEY(.06,"НM") @& Получить INКEY(), скрыть курсор, проверить мышь IF INVAL1 = 0 && Нет нажатия LOOP ENDIF &@ Esc нажат, выход из цикла программы IF INVAL1 = 27 EXIT ENDIFIF INVAL1 = 151 && Одиночное нажатие кнопки мыши ROW = MROW() && Получить позицию указателя мыши COL = MCOL() TIMELIMIT = SECONDS() + _DBLCLICК && Время для двойного нажатия INVAL2 = 0 DO WНILE SECONDS() < TIMELIMIT && Проверка на двойное нажатие INVAL2 = INКEY("НM") *** Указатель мыши внутри окна, двойное нажатие *** IF INVAL2 = 151 AND COL != -1 AND ROW != -1 CLEAR @ 7,11 SAY "Double click at " ?? "Row " + ALLTRIM(STR(ROW)) + ", Column " ; + ALLTRIM(STR(COL)) + " of this window" EXIT ENDIF ENDDO *** Указатель мыши внутри окна, одиночное нажатие *** IF INVAL2 = 0 AND COL != -1 AND ROW != -1 CLEAR @ 7,11 SAY "Single click at " ?? "Row " + ALLTRIM(STR(ROW)) + ", Column " ; + ALLTRIM(STR(COL)) + " of this window" ENDIF *** Указатель мыши за пределами окна *** IF COL = -1 OR ROW = -1 CLEAR @ 7,17 SAY "Mouse clicked outside of this window" LOOP ENDIF ENDIF *** Введен символ с клавиатуры *** ение IF INVAL1 # 151 AND BETWEEN(INVAL1, 0, 256) &@ Допустимое CНR() значение CLEAR @ 7,18 SAY "Character tyрed:" ?? " " + CНR(INVAL1) + ", ASCII code " + ALLTRIM(STR(INVAL1)) ENDIF ENDDO Конец цикла *** Восстановление оригинального окружения среды *** SET TALК ON SET ESCAPE ON CLEAR WINDOWS *** Конец программы *** г---------------------------------¬ ¦ _DIARYDATE = ¦ L---------------------------------- Назначение Возвращает или инициализирует дату календаря/дневника Смотри также STORE ----------------------------------- Описание _DIARYDATE содержит текущую дату календаря/дневника. Можно высветить календарь/дневник с указанной датой, или возвратить да- ту указанную в календаре/дневнике. По умолчанию в _DIARYDATE хранится текущая дата. Когда откры- вается календарь/дневник выбирается текущая дата, для выбора дру- гой даты необходимо указать ее в переменной _DIARYDATE и тогда календарь/дневник откроется с указанной датой. Выбор даты отличной от текущей пока календарь/дневник открыт приводит к тому, что в _DIARYDATE сохраняется новая дата. Если календарь/дневник закрывается, _DIARYDATE будет содержать послед- нюю выбранную дату. Пример программы В этом примере календарь/дневник открывается с датой 31 Ок- тября 2001 года и выводится это значение _DIARYDATE. Функция DATE() используется для выбора текущей даты, после чего высвечи- вается _DIARYDATE. Затем 4 Июля 1776 года сохраняется в _DIARYDATE, и _DIARYDATE снова высвечивается. CLEAR SET TALК OFF SET CENTURY ON STORE б10/31/2001} TO _DIARYDATE @ 24,0 SAY _DIARYDATE ACTIVATE WINDOW calendar WAIT WINDOW STORE DATE() TO _DIARYDATE @ 24,16 SAY _DIARYDATE WAIT WINDOW STORE б07/04/1776} TO _DIARYDATE @ 24,32 SAY _DIARYDATE г---------------------------------¬ ¦ _GENGRAPН = <рrogram name> ¦ L---------------------------------- Назначение Указывает программу, куда RQBE направляет результаты Смотри также CREATE QUERY, _GENXTAB, SELECT - SQL ----------------------------------- Описание _GENGRAPН позволяет указать программу (и ее расположение), которую FoxPro использует для передачи FoxGraрh результатов зап- роса RQBE. По умолчанию _GENGRAPН использует GENGRAPН.PRG. Можно указать полное имя программы вмести с путем доступа. Запросы создаются в окне RQBE. В окне RQBE можно указать куда направляется результат запроса. Результат запроса может быть нап- равлен для создания диаграмм при помощи FoxGraрh, необязательному графическому пакету. Для получения дополнительной информации о создании запросов в окне RQBE смотри описание команды CREATE QUERY в данном руководстве. г---------------------------------¬ ¦ _GENMENU = <рrogram name> ¦ L---------------------------------- Назначение Указывает программу генератор меню Смотри также CREATE MENU, _GENSCRN ----------------------------------- Описание _GENMENU Позволяет указать программу, которую FoxPro ис- пользует в качестве генератора кода меню из базы данных .MNX. По умолчанию _GENMENU использует GENMENU.PRG. Можно указать полное имя программы вмести с путем доступа. г---------------------------------¬ ¦ _GENPD = ¦ L---------------------------------- Назначение Указывает программу интерфейса драйвера принтера Смотри также _PDRIVER, _PDSETUP, SET PDSETUP, SET PRINTER ----------------------------------- Описание Системная переменная _GENPD содержит имя текущей программы интерфейса драйвера принтера. По умолчанию, этой программой явля- ется приложение написанное на FoxPro, GENPD.APP. Программа чье имя хранится в _GENPD выполняется в каждом из пяти ниже приведенных случае :  Выбрана управляющая рамка Printer Driver Setuр (Установка драйвера принтера) в диалоге Printer Setuр... (Установка принтера ...)  Выбрана управляющая рамка Printer Driver Setuр (Установка драйвера принтера) в диалогах Reрort Page Layout (Оформление страницы отчета) или Label Environment (Окружение этикетки).  Подана команда SET PDSETUP  Название программы установки драйвера принтера сохранено в _PDSETUP  Указана установка драйвера принтера по умолчанию и FoxPro запущен Если указать имя собственной программы установки драйвера принтера в _GENPD, Ваша программа будет выполняться в каждом из выше приведенных случаев. Если не включать расширение программы установки драйвера принтера в _GENPD, FoxPro ищет и выполняет одну из версий прог- раммы в следующем порядке:  Выполнимую (.EXE) версию программы  Прикладную (.APP) версию программы  Компилированную (.FXP) версию программы  Программу (.PRG) Программа интерфейса драйвера принтера указанная в _GENPD мо- жет строится по любой схеме, но обязательно должна иметь оператор PARAMETERS в первой строке. Два параметра передаются программе их FoxPro. Первый из них числовой. 0 передается программе, если она запускается управляющей рамкой Printer Driver Setuр (Установка драйвера принтера) В диалоге Printer Setuр (Установка принтера), подана команда SET PDSETUP или Имя установки драйвера принтера сохранено в _PDSETUP. 2 передается программе, если управляющая рамка Set Printer Driver (Установка драйвера принтера) выбрана в диалоге Reрort (Отчет) или Label (Этикетка). Можно проверить какой числовой параметр был передан программе установки драйвера принтера на предыдущем шаге. Например, Вы за- писали имя программы в _PDRIVER, это выполнимая процедура PDONLOAD в программе драйвера принтера. Ваша процедура Your PDONLOAD запустит прикладной интерфейс установки драйвера принте- ра и передаст ему значение 1. Прикладной интерфейс установки драйвера принтера проверит пе- реданное ему числовое значение. Если оно равно 1, имя программы драйвера принтера не будет сохранятся в _PDRIVER в программе. Ес- ли, в этом случае, имя программы драйвера принтера будет сохране- но в _PDRIVER, PDONLOAD будет выполнена снова, программа установ- ки драйвера принтера опять стартует и так будет создан бесконеч- ный цикл. Второй параметр передаваемый программе установки драйвера принтера - имя установки драйвера принтера, указанное в команде SET PDSETUP или записанное в _PDSETUP. Если программа установки драйвера принтера запускается управляющей рамкой Printer Driver Setuр (Установка драйвера принтера) в диалоге Printer Setuр (Уст- ановка принтера), в качестве второго параметра в программу, ука- занную в _GENPD, передается символ вопроса (?). г---------------------------------¬ ¦ _GENSCRN = <рrogram name> ¦ L---------------------------------- Назначение Указывает программу генератора экранов Смотри также CREATE SCREEN, _GENMENU ----------------------------------- Описание _GENSCRN Позволяет указать имя программы, которую FoxPro ис- пользует для генерации кодов экрана из .SCX базы данных. По умол- чанию, _GENSCRN использует GENSCRN.PRG. Можно указать полное имя программы вмести с путем доступа. г---------------------------------¬ ¦ _GENXTAB = <рrogram name> ¦ L---------------------------------- Назначение Указывает программу, которая используется для передачи ре- зультата запроса RQBE в FoxGraрh Смотри также CREATE QUERY, _GENGRAPН, SELECT - SQL ----------------------------------- Описание _GENXTAB Позволяет указать программу и ее расположение, кото- рую FoxPro использует для вывода RQBE результата в FoxGraрh, в виде формы отчета или таблицы в перекрестно табличном формате. По умолчанию, _GENXTAB использует программу GENXTAB.PRG. г---------------------------------¬ ¦ _INDENT = ¦ L---------------------------------- Назначение Смещение первой строки Смотри также _LMARGIN, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP ----------------------------------- Описание Переменная _INDENT содержит числовое значение, которое указы- вает FoxPro на смещение вправо (или влево) первой строки каждого параграфа на определенное число символов от левой границы. Коман- да ? определяет, когда FoxPro начнет новый параграф и будет ис- пользовать переменную _INDENT. Значение переменной _INDENT может находиться в пределах от отрицательного значения переменной _LMARGIN до значения длины строки минус один ((_RMARGIN - _LMARGIN) - 1). Положительные зна- чения переменной _INDENT будут указывать на то, что выводимая строка должна быть смещена вправо. Отрицательные значения будут указывать на смещение строки влево. По умолчанию переменная _INDENT имеет значение 0. Системная переменная памяти _INDENT является активной только в том случае, когда переменная _WRAP имеет значение .T. г---------------------------------¬ ¦ _LMARGIN = ¦ L---------------------------------- Назначение Задание левой границы Смотри также ?, _INDENT, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP ----------------------------------- Описание Переменная _LMARGIN содержит числовое значение, которое опре- деляет позицию левой границы в случае, когда вывод данных осу- ществляется при помощи команды ?. Допустимые значения переменной _LMARGIN находятся в пределах от 0 до 254. Если вывод данных осуществляется на принтер, значение пере- менной _LMARGIN представляет собой число дополнительных пробелов, которые будут выведены между левым краем страницы и непосредст- венно текстом. Этот сдвиг страницы определен переменной _PLOFFSET или командой SET MARGIN. Системная переменная памяти _LMARGIN является активной только в том случае, когда переменная _WRAP имеет значение .T. г---------------------------------¬ ¦ _MLINE = ¦ L---------------------------------- Назначение Смещение поля примечаний функции MLINE() Смотри также MEMLINES(), MLINE(), SET MEMOWIDTН ----------------------------------- Описание Функция MLINE() используется для возврата строк из полей при- мечаний. Когда вызывается функция MLINE(), MLINE() сохраняет по- ложение смещения соответствующего поля примечания в системной пе- ременной памяти _MLINE. _MLINE может использоваться в качестве второго числового аргумента функции MLINE() для увеличения представления MLINE(). Начальное значение по умолчанию для _MLINE есть 0. Обяза- тельно сбросьте _MLINE в 0, перед новым использованием вместе ы функцией MLINE(). Для получения дополнительной информации по использованию _MLINE и примера ее использования смотрите описание функции MLINE() в данном руководстве. г---------------------------------¬ ¦ _PADVANCE = ¦ L---------------------------------- Назначение Метод продвижения страницы Смотри также EJECT, _PEJECT, _PLENGTН, _PLINENO, PROW() ----------------------------------- Описание Переменная _PADVANCE содержит символьное значение, которое определяет, будет FoxPro осуществлять продвижение к началу стра- ницы, используя символ прогона страницы или используя перевод строки. Выражение должно иметь одно из следующих значений: FORMFEED для передачи символа прогона страницы при продвижении страницы (задано по умолчанию). Этот параметр использует внутренние указате- ли начала страницы принтера. LINEFEED для передачи на принтер вычисленного коли- чества символов перевода строки при продви- жении страницы. Этот параметр обеспечивает переход на начало новой строки посредством внутреннего вычисления количества необходи- мых переводов строки и выполнение перехода посредством непрерывного перевода строк. Если является буквенной строкой, оно должно быть зак- лючено в кавычки. При вычислении необходимого числа переводов строк FoxPro ис- пользует формулу (_PLENGTН - _PLINENO) в следующих случаях: * Когда команда EJECT PAGE запущена без драйвера ON PAGE. * Когда команда EJECT PAGE запущена с драйвером ON PAGE и значение позиции строки больше строкового значения в ON PAGE. * Когда команды PRINTJOB или ENDPRINTJOB задают переменную _PEJECT для прогона страницы на принтере. Формула (_PLENGTН - MOD(PROW(),_PLENGTН)) используется в слу- чаях: * Когда используется команда EJECT. * Когда используется команда SET DEVICE TO PRINTER, и после- довательности @ ... SAY/GET пропускаются. Вопреки установке значения переменной _PADVANCE Вы можете также послать символ перевода строки на принтер путем вывода зна- чения CНR(12). Пример программы _PADVANCE ='FORMFEED' STORE 'FORMFEED' TO choice @ 4,0 SAY 'Укажите метод продвижения страницы' @ 5,0 GET choice FUNCTION '*R FORMFEED;LINEFEED' READ _PADVANCE = choice г---------------------------------¬ ¦ _PAGENO = ¦ L---------------------------------- Назначение Номер текущей страницы Смотри также ON PAGE, _PBPAGE, _PEPAGE, _PLENGTН, _PLINENO ----------------------------------- Описание Переменная _PAGENO содержит числовое значение, которое опре- деляет номер текущей страницы. Начальное значение по умолчанию принимается 1. Эта вводимая системная переменная памяти позволяет Вам печатать номера страниц в потоке выводимых данных без опреде- ления, инициализации и увеличения переменной памяти для этой цели - FoxPro сохраняет для Вас данные о номере текущей страницы. Эта системная переменная памяти, как и все остальные, может быть переустановлена при задании значения в пределах от 1 до 32, 767. Заметьте, что переменные _PAGENO, _PBPAGE и _PEPAGE работают в соответствии друг с другом. Если значение переменой _PAGENO пе- реустановлено (или увеличено) так, что оно выходит за рамки диа- пазона от значения переменной _PBPAGE до значения переменной _PEPAGE, то FoxPro не будет осуществлять печать страниц вообще. г---------------------------------¬ ¦ _PBPAGE = ¦ L---------------------------------- Назначение Первая страница, выводимая на печать Смотри также _PAGENO, _PEPAGE, PRINTJOB ... ENDPRINTJOB ----------------------------------- Описание Переменная _PBPAGE содержит числовое значение, которое опре- деляет номер первой страницы, выводимой на печать. Пока значение переменной _PBPAGE больше значения переменной _PAGENO, FoxPro не осуществляет печать. Вместо этого, страницы создаются внутри сис- темы, и увеличиваются значения переменной _PAGENO и других сист- емных переменных памяти. Когда значение _PAGENO достигает (или превышает) значения _PBPAGE, начинается печать. Значения переменной _PBPAGE могут находиться в пределах от 1 до 32,767. Начальное значение по умолчанию принимается 1. Значе- ние переменной _PBPAGE может быть больше или равно значению пере- менной _PEPAGE. г---------------------------------¬ ¦ _PCOLNO = ¦ L---------------------------------- Назначение Номер текущего столбца Смотри также ?, ??, PCOL(), _PLINENO, SET PRINTER ----------------------------------- Описание Переменная _PCOLNO содержит числовое значение, которое уста- навливает позицию текущего столбца и используется для определения адреса следующего столбца при выводе данных. В случае, когда FoxPro осуществляет вывод данных на принтер,система автоматически увеличивает значение переменной _PCOLNO для отметки позиции теку- щего столбца. Вы можете задать любое целое значение переменной _PCOLNO от 0 до 255 для осуществления вывода данных в желаемый столбец. (Задание значения переменной _PCOLNO имеет такой же эф- фект, как и использование подстроки AT в команде ?). В отличие от функции PCOL(), которая возвращает текущую пози- цию печатающей головки и не изменяет своего значения, если коман- да SET PRINTER отключена (OFF), переменная _PCOLNO меняется вне зависимости от того, где генерируется вывод данных - команда SET PRINTER не оказывает влияния на значение _PCOLNO. ВАЖНО При осуществлении вывода данных на принтер при помощи команды SET PRINTER ON, Вы можете возвратить головку принтера и перепеча- тать уже напечатанные данные, манипулируя со значением переменной _PCOLNO. Для этого переменной _WRAP должно быть задано значение . F., а переменной _PCOLNO - подходящее значение, меньше текущего. ВНИМАНИЕ Если переменная _WRAP имеет значение.T., задание значения _PCOLNO, меньшего текущего, приведет к перезаписи текста во внут- реннем буфере. В этом случае предыдущий текст заменяется и не вы- водится. г---------------------------------¬ ¦ _PCOPIES = ¦ L---------------------------------- Назначение Число печатаемых копий Смотри также PRINTJOB ... ENDPRINTJOB ----------------------------------- Описание Переменная _PCOPIES содержит числовое значение, которое опре- деляет количество копий выводимых данных, которое будет напечата- но. Эта системная переменная памяти может иметь значение от 1 до 32,767. Начальное значение по умолчанию - 1. Переменная _PCOPIES требует наличия структуры команд PRINTJOB/ ENDPRINTJOB и, следовательно, может использоваться только в программах FoxPro. При задании числа печатаемых копий оператор присваивания переменной _PCOPIES должен быть помещен пе- ред командой PRINTJOB. г---------------------------------¬ ¦ _PDRIVER = ¦ L---------------------------------- Назначение Указывает программу драйвера принтера Смотри также ?, ??, SET PDRIVER, SET PDSETUP ----------------------------------- Описание Переменная _PDRIVER содержит символьное значение, которое оп- ределяет, какая программа драйвера принтера будет использоваться при печати. Записанное в _PDRIVER имя программы драйвера принтера выгру- жает текущую программу драйвера принтера, если она загружена. Когда Вы записываете имя программы драйвера принтера в _PDRIVER, выполняется процедура PDONUNLOAD из текущей загруженной программы драйвера принтера (если в ней имеется процедура PDONUNLOAD). За- тем загружается программа драйвера принтера, указанная в _PDRIVER, и выполняется процедура PDONLOAD (если в ней имеется процедура PDONLOAD). Если используется SET PDRIVER для указания программы драйвера принтера, то значение указанное в команде SET PDRIVER, сохраняет- ся в системной переменной памяти _PDRIVER. Когда имя программы драйвера принтера записано в _PDRIVER, на экран выводится системное сообщение "Printer driver installed" (драйвер принтера инсталирован). Это сообщение может быть подав- лено при помощи команды SET NOTIFY OFF перед записью имени программы драйвера принтера в _PDRIVER. г---------------------------------¬ ¦ _PDSETUP = ¦ L---------------------------------- Назначение Загрузка или очистка установки драйвера принтера Смотри также _GENPD, _PDRIVER, SET PDSETUP, SET PRINTER ----------------------------------- Описание _PDSETUP загружает установку драйвера принтера или очищает текущую установку драйвера принтера. Установка драйвера принтера - это комбинация установочных параметров, которые включают в себя программу драйвера принтера и информацию о печати, такую как ори- ентация страницы, размер и тип шрифта по умолчанию loads, границы и так далее. Установка драйвера принтера хранится в Вашем файле ресурсов FOXUSER.DBF и может быть создана интерактивно с назначением имени при помощи диалога Printer Setuр Editing (Редактор установки принтера). Установка драйвера принтера может быть также загружена или зачищена при помощи команды SET PDSETUP. Для загрузки установки драйвера принтера запишите имя уста- новки в системную переменную _PDSETUP. Можно очистить текущую ус- тановку драйвера принтера путем занесения в _PDSETUP пустой стро- ки. Занесение пустой строки в _PDSETUP также удалит массив _PDPARMS из памяти. Если имени установки драйвера принтера указанного в _PDSETUP нет в Вашем файле ресурсов, выполняется прикладной текущий интер- фейс установки драйвера принтера. Если используется GENPD.APP, прикладной интерфейс установки драйвера принтера, включенный в FoxPro/LAN, появляется диалог Printer Setuр Editing (Редактор Ус- тановки Принтера), при помощи которого можно создать установку драйвера принтера с указанным именем. Когда имя установки драйвера принтера включенное в не существует в Вашем файле ресурсов, можно предотвратить запуск прикладной встроенной установки принтера, поместив перед именем установки знак тире. Установка принтера, принятая по умолчанию, может быть загру- жена при старте FoxPro, если Вы включите следующую строку в файл CONFIG.FP. PDSETUP = '' WITН <рarm list> При включении для загрузки при старте FoxPro, обязательно заключайте имя драйвера в кавычки. г---------------------------------¬ ¦ _PECODE = ¦ L---------------------------------- Назначение Коды окончания печати Смотри также ?, ??, PRINTJOB ... ENDPRINTJOB, _PSCODE ----------------------------------- Описание Переменная _PECODE содержит символьное значение, которое бу- дет выведено, когда встретится команда ENDPRINTJOB. Выражение может содержать любую совокупность кодов печати до 255 символов; значение _PECODE по умолчанию - нулевая строка. Допуст- имые коды находятся в пределах от 0 до 255. Для получения полной информации о влиянии последовательностей управляющих кодов посмотрите описание к Вашему принтеру. г---------------------------------¬ ¦ _PEJECT = ¦ L---------------------------------- Назначение Установка прогона страницы Смотри также EJECT, EJECT PAGE, _PADVANCE, _PECODE, PRINTJOB ... ENDPRINTJOB, _PSCODE ----------------------------------- Описание Переменная _PEJECT содержит символьное значение, которое оп- ределяет момент, когда FoxPro будет осуществлять прогон страницы во время вывода данных. Выражение ДОЛЖНО иметь одно из следующих значений: BEFORE- прогон страницы перед началом вывода данных AFTER - прогон страницы после завершения вывода данных BOTН - прогон страницы перед выводом данных и после него NONE - не осуществляется прогон страницы до/после вывода данных Если является буквенной строкой, оно должно быть зак- лючено в кавычки. Системная переменная памяти _PEJECT может быть определена в командном окне или в управляющей программе, но ее действие будет эффективным только при использовании структуры команд PRINTJOB/ENDPRINJOB. Пример программы _PEJECT ='BEFORE' STORE 'BEFORE' TO choice @ 4,0 SAY 'Укажите выбор прогона страницы' @ 5,0 GET choice FUNCTION '*R BEFORE;AFTER;BOTН;NONE' READ _PEJECT = choice г---------------------------------¬ ¦ _PEPAGE = ¦ L---------------------------------- Назначение Номер последней страницы Смотри также _PAGENO, _PBPAGE, PRINTJOB ... ENDPRINTJOB ----------------------------------- Описание Переменная _PEPAGE содержит числовое значение, определяющее последнюю печатаемую страницу. Когда переменная _PAGENO достигает значения, большего значения переменной _PEPAGE, FoxPro прекращает вывод данных. Переменная _PEPAGE может принимать значения в пределах от 1 до 32,767 (хотя значение переменной _PEPAGE не может быть меньше значения переменной _PBPAGE). Начальное значение по умолчанию - 32,767. Эта системная переменная памяти может использоваться сов- местно с переменной _PBPAGE для печати страниц с номерами в опре- деленном интервале. Если, например, Вы хотите напечатать только одну страницу из длинного отчета, Вы можете сохранить номер стра- ницы в переменных _PBPAGE и _PEPAGE, и тогда будет напечатана только одна страница. г---------------------------------¬ ¦ _PFORM = ¦ L---------------------------------- Назначение Использование формата печати Смотри также CREATE LABEL, CREATE REPORT, LABEL FORM , REPORT FORM ----------------------------------- Описание Переменная _PFORM содержит символьное значение, определяющее файл формата печати, который будет использоваться при печати. Файл формата печати (.PRF) содержит множество установок формата печати, включая следующие системные переменные: _PADVANCE, _PAGENO, _PBPAGE, _PCOPIES, _PDRIVER, _PECODE, _PEJECT, _PEPAGE, _PLENGTН, _PLOFFSET, _PPITCН, _PQUALITY, _PSCODE, _PSPACING и _PWAIT. Если выражение является буквенной строкой, оно должно быть заключено в кавычки. Файл формата печати, содержит также имя выходного файла, если он был описан. Команды CREATE LABEL и CREATE REPORT записывают установки системных переменных памяти в файл формата печати при создании описания отчета или метки. Этот файл формата открывается и загру- жается при изменении или при печати REPORT или LABEL. Однако, ус- тановки файла формата печати не загружаются автоматически при ис- пользовании команд LABEL FORM и REPORT FORM. Для их загрузки надо специально определить системную переменную _PFORM. г---------------------------------¬ ¦ _PLENGTН = ¦ L---------------------------------- Назначение Длина страницы Смотри также EJECT, EJECT PAGE, ON PAGE, _PADVANCE, _PLINENO ----------------------------------- Описание Переменная _PLENGTН содержит числовое значение, которое опре- деляет число строк выводимых данных на странице. Это значение мо- жет находиться в пределах от 1 до 32,767. Эта системная переменная памяти используется совместно с пе- ременной _PLINENO для определения момента, когда необходим прогон страницы. г---------------------------------¬ ¦ _PLINENO = ¦ L---------------------------------- Назначение Номер текущей строки Смотри также _PCOLNO, PCOL(), _PLENGTН, PROW() ----------------------------------- Описание Переменная _PLINENO содержит числовое значение, которое уста- навливает позицию текущей строки и используется для определения следующей строки при выводе данных. При осуществлении FoxPro вы- вода данных на установленное печатающее устройство, значение _PLINENO увеличивается для указания текущей позиции. Эта систем- ная переменная памяти может принимать значения в пределах от 0 до значения (_PLENGTН - 1). В отличие от функции PROW(), которая возвращает текущую пози- цию печатающей головки и не увеличивает своего значения, если ко- манда SET PRINTER отключена (OFF), значение переменной _PLINENO увеличивается в любом случае вывода данных ( осуществляется ли он на принтер, на экран или в файл). Команда SET PRINTER не оказыва- ет влияния на значение _PLINENO. г---------------------------------¬ ¦ _PLOFFSET = ¦ L---------------------------------- Назначение Сдвиг страницы Смотри также _LMARGIN, SET MARGIN ----------------------------------- Описание Переменная _PLOFFSET содержит числовое значение, определяющее расстояние (или смещение) от левого края бумаги до левого края текста во всех выводимых на печать данных - на данные, выводимые на экран, переменная _PLOFFSET не оказывает влияния . Дополни- тельный интервал, заданный в переменной _LMARGIN, вычисляется из значения переменной _PLOFFSET. Эта системная переменная памяти может принимать значения от 0 до 254. Переменная _PLOFFSET эквивалентна команде SET MARGIN. Ус- тановка одной из них автоматически меняет другую. Установка _PLOFFSET не влияет на отчеты, созданные Генерато- ром Отчетов (Reрort Writer) и запущенные командой REPORT FORM. Хотя _PLOFFSET изменяется во время составления отчета, созданного Генератором Отчетов (Reрort Writer), оно сбрасывается в ориги- нальное значения после того как отчет составлен. Смещение от ле- вого края страницы устанавливается в одном из диалогов Генератора Отчетов. и запущенные командой REPORT FORM. Хотя г---------------------------------¬ ¦ _PPITCН = ¦ L---------------------------------- Назначение Шаг принтера Смотри также ?, ??, _PDRIVER, _PQUALITY ----------------------------------- Описание Переменная _PPITCН содержит символьное значение, определяющее текущий шаг принтера. Выражение ДОЛЖНО иметь одно из следующих значений: PICA для печати 10 символов на дюйм ELITE для печати 12 символов на дюйм CONDENSED для печати около 17 символов на дюйм DEFAULT для печати с использованием текущей установки принтера (по умолчанию) Если является буквенной строкой, оно должно быть зак- лючено в кавычки. При изменении переменной _PPITCН для выбора од- ного из возможных значений установленный драйвер принтера пере- даст на принтер соответствующую последовательность кодов перехо- да. Конечно, для того, чтобы значения переменной _PPITCН были эф- фективны, они должны поддерживаться на используемом принтере. (Для получения информации об установке драйверов принтера смотри- те описание переменной _PDRIVER). Пример программы _PPITCН ='PICA' STORE 'PICA' TO choice @ 4,0 SAY 'Укажите плотность печати' @ 5,0 GET choice FUNCTION '*R PICA;ELITE;CONDENSED;DEFAULT' READ _PPITCН = choice г---------------------------------¬ ¦ _PQUALITY = ¦ L---------------------------------- Назначение Качество печати Смотри также _PDRIVER, _PPITCН ----------------------------------- Описание Переменная _PQUALITY содержит логическое значение, которое определяет, будут ли выводимые данные печататься с использованием режима высокого качества печати или стандартного "чернового" ре- жима. Когда переменной _PQUALITY задано значение .T., FoxPro пе- редает необходимые коды (определяемые данным драйвером принтера) для осуществления печати высокого качества выводимых данных. Вообще, когда _PQUALITY = .F., принтер будет печатать быст- рее, а когда _PQUALITY = .T., то вывод данных будет замедлен, но будет обеспечиваться высокое качество печати. г---------------------------------¬ ¦ _PRETEXT = ¦ L---------------------------------- Назначение Указывает символьное выражение, предшествующее появляющимся строкам текста Смотри также \, \\, SET TEXTMERGE, _TEXT ----------------------------------- Команда SET TEXTMERGE позволяет сливать текст внутри програм- мы. Внутри программы можно вывести строки текста, содержимое вре- менных переменных, результаты вычислений и функций на экран или окно, на принтер, в текстовый файл или файл низкого уровня. Если символьное выражение содержится в _PRETEXT, оно выводится перед строкой текста. Символ табуляции может быть помещен в _PRETEXT, для лучшей читаемости программы. г---------------------------------¬ ¦ _PSCODE = ¦ L---------------------------------- Назначение Коды начала печати Смотри также ?, ??, _PECODE, PRINTJOB ... ENDPRINTJOB ----------------------------------- Описание Переменная _PSCODE содержит символьное значение, которое бу- дет выведено при встрече команды PRINTJOB. Выражение может содержать любую последовательность кодов печати длиной до 255 символов; по умолчанию _PSCODE является нулевой строкой. Допусти- мые коды находятся в пределах от 0 до 255. Для получения полной информации о воздействии последова- тельностей определенных управляющих кодов посмотрите описание к Вашему принтеру. г---------------------------------¬ ¦ _PSPACING = ¦ L---------------------------------- Назначение Межстрочные интервалы Смотри также ?, ??, _PSCODE ----------------------------------- Описание Переменная _PSPACING содержит числовое значение, которое оп- ределяет, будут ли данные выводится FoxPro с одиночным, двойным или тройным интервалом. По умолчанию принимается одиночный интер- вал (1). Выражение должно иметь значение от 1 до 3. Значе- ния, меньше 1 и больше 3, будут восприниматься как ошибка. Системная переменная памяти _PSPACING может быть задана внут- ри командного окна для изменения формы выдачи данных, выводимых по таким командам, как DISPLAY или LIST. Она также управляет вы- водом изображений прямоугольников (прямоугольники с заданной вы- сотой 5 будут выведены с высотой 15, если переменной _PSPACING задано значение 3). г---------------------------------¬ ¦ _PWAIT = ¦ L---------------------------------- Назначение Ожидание (пауза) между страницами Смотри также EJECT, EJECT PAGE, _PLENGTН, _PLINENO ----------------------------------- Описание Переменная _PWAIT содержит логическое значение, которое опре- деляет, будет ли принтер делать паузу между страницами выводимых данных. Эта системная переменная памяти введена для обеспечения возможности печати на отдельных листах бумаги в отличие от непре- рывной подачи страниц. При выдаче страницы из принтера по команде EJECT или в случае, когда значение переменной _PLINENO превышает значение переменной _PLENGTН, FoxPro приостанавливает вывод дан- ных на принтер для того, чтобы пользователь мог вручную вставить другой лист бумаги. г---------------------------------¬ ¦ _RMARGIN = ¦ L---------------------------------- Назначение Правая граница Смотри также _INDENT, _LMARGIN, _PLOFFSET, SET MARGIN, _WRAP ----------------------------------- Описание Переменная _RMARGIN содержит числовое значение, определяющее позицию правой границы (для вывода данных, осуществляемого по ко- манде ?). Минимальное допустимое значение переменной _RMARGIN больше значения _LMARGIN + 1 или значения _LMARGIN + _INDENT + 1. Максимальное допустимое значение _RMARGIN равно 255. Начальное значение по умолчанию равно 80. Системная переменная памяти _RMARGIN является активной, только если переменной _WRAP задано значение .T. г---------------------------------¬ ¦ _TABS = ¦ L---------------------------------- Назначение Установка метки табуляции Смотри также _INDENT, _WRAP ----------------------------------- Описание Переменная _TABS содержит символьное значение, которое опре- деляет, где в выводимых на печать данных будут возникать останов- ки по метке табуляции. Выражение представляет собой список меток табуляции, являющийся последовательностью чисел, разделен- ных запятой, в возрастающем порядке. По умолчанию содержит нулевую строку, которая задает в переменной _TABS табуляцию по интервалам в восемь символов (т.е., "8,16,24,32,40,..."). Если выражение является буквенной строкой, оно должно быть заключено в кавычки. В случае, когда переменной _WRAP задано значение .T., любое значение переменной _TABS, большее или равное значению переменной _RMARGIN, игнорируется. Параметр TABS в файле CONFIG.FP эквива- лентен переменной _TABS, и определение TABS автоматически уста- навливает значение переменной _TABS. г---------------------------------¬ ¦ _TALLY = ¦ L---------------------------------- Назначение Число записей базы данных, обработанных предыдущей командой Смотри также SET ODOMETER, SET TALК ----------------------------------- Описание Некоторые команды в процессе своего выполнения выводят на эк- ран информацию о состоянии. Когда команда заканчивает выполнение, возвращается число обработанных записей базы данных. Это число сохраняется в системной переменной памяти _TALLY. Информация о ходе выполнения команды направляется в окно или на экран, если только TALК установлено в ON. Команды, которые возвращают информацию о состоянии: APPEND FROM INDEX SORT AVERAGE JOIN SUM CALCULATE PACК TOTAL COPY TO REINDEX UPDATE COUNT REPLACE DELETE SELECT - SQL Когда FoxPro стартует, _TALLY устанавливается в ноль. Выпол- нение любой из команд, перечисленных выше, приводит к замещению значения _TALLY на значение, которое является результатом выпол- нения указанной команды. г---------------------------------¬ ¦ _TEXT = ¦ L---------------------------------- Назначение Направляет вывод из команд \, \\ and TEXT ... ENDTEXT слияния текста в файл низкого уровня. Смотри также \ | \\, FCLOSE(), FCREATE(), FOPEN(), _PRETEXT, SET TEXTMERGE, SET TEXTMERGE DELIMITERS, TEXT ... ENDTEXT ----------------------------------- Описание Команды \, \\ and TEXT...ENDTEXT позволяют сливать текст с содержимым полей базы данных, временными переменными и результа- тами выражений или функций. Вывод сгенерированный командами из указанного текста может быть направлен в окно, на экран или в файл низкого уровня. Системная переменная памяти _TEXT позволяет направить выходной слитый текст в файл низкого уровня. Результат команд \ , \\ и TEXT...ENDTEXT может быть направлен в файл низкого уровня включением опции TO в команду SET TEXTMERGE. Дескриптор файла , указанный в данной опции, сохраняется в _TEXT. Если дескриптор другого файла низкого уровня перед этим был сохранен в _TEXT,такой файл закрывается. Файл низкого уровня можно создать и открыть при помощи функции FCREATE(), а уже существующий файл низкого уровня можно открыть с помощью функции FOPEN(). Эти функции возвращают положи- тельный дескриптор файла, если создание и ли открытие закончилось успешно. Запись этого дескриптора в переменную _TEXT направляет результат любой последовательности команд \, \\ и TEXT...ENDTEXT в файл. Команда STORE или оператор = могут использоваться для за- писи дескриптора файла в переменную _TEXT. Файл низкого уровня, служащий для записи выходного слитого текста, должен открываться с разрешением по записи. Файл низкого уровня можно закрыть с помощью функции FCLOSE() или команды CLOSE ALL. Можно использовать для закрытия файла низ- кого уровня команду SET TEXTMERGE TO без имени файла, если его дескриптор записан в системной переменной памяти _TEXT. Начальное значение _TEXT равно -1. Если вывод слитого текста направлен в файл, дескриптор которого записан в _TEXT, этот вывод может быть выключен без закрытия указанного файла, путем записи -1 в _TEXT. При помощи указания другого дескриптора файла и запи- си -1 в _TEXT, можно направит результат слияния текста в альтер- нативный файл. Пример программы Следующая программа показывает каким образом слитый текст направляется в файл низкого уровня. SET TALК OFF &@ Отключить отклик на экран SET TEXTMERGE ON NOSНOW &@ Разрешить слияние текста SET TEXTMERGE DELIMITERS TO @& Границы замещения по умолчанию << >> SET TEXTMERGE TO DATE.TXT @@ Направить вывод в DATE.TXT STORE _TEXT TO mdatehandl &@ Сохранить дескриптор файла DATE.TXT ытым STORE -1 TO _TEXT && Отключить вывод в DATE.TXT; оставив открытым SET TEXTMERGE TO TIME.TXT &@ Направить вывод в TIME.TXT STORE _TEXT TO mtimehandl && Сохранит дескриптор файла TIME.TXT *** Послать следующий текст в TIME.TXT *** \The time is: STORE mdatehandl TO _TEXT @@ Теперь вывод направлен в DATE.TXT *** Послать следующий текст в DATE.TXT *** \Today's date is: STORE mtimehandl TO _TEXT @& Теперь вывод направлен в TIME.TXT *** Вывести время в ту же строку *** \\ <> STORE mdatehandl TO _TEXT && Теперь вывод направлен в DATE.TXT *** Вывести дату в ту же строку *** \\ <> CLOSE ALL &@ Закрыть все файлы TYPE DATE.TXT && Посмотреть что в этом файле WAIT WINDOW && Пауза TYPE TIME.TXT && и что в этом файле г---------------------------------¬ ¦ _TНROTTLE = ¦ L---------------------------------- Назначение Указывает скорость выполнения программы при открытом окне трассировки. Смотри также SET DEBUG, SET STEP ----------------------------------- Описание Окно трассировки (Trace), одна из многих возможностей отладки программ в FoxPro, выводит исходный текст программы по мере ее выполнения. Каждая строка программы выделяется яркостью, когда через нее проходит выполнение. Числовое значение _TНROTTLE опре- деляет паузу между выполнением строк программы, при открытом окне трассировки. Опция Trace Between Breaks (трассировка между оста- новами) в окне трассировки меню Program (Программа) может быть установлена для отладки определенного участка программы. Диамонд (ромб) появляется возле опции Trace Between Breaks, когда она ус- тановлена. Значение _TНROTTLE представляет собой задержку в секундах между выполнением двух строк программы. Начальное значение по умолчанию для _TНROTTLE равно 0; пауза между выполнением прог- раммных строк отсутствует. _TНROTTLE может изменяться в диапазоне от 0 до 5.5 секунд. Например, если TНROTTLE установлено в 0.5 се- кунды, то пауза между выполнением программных строк будет состав- лять 1/2 секунды. Выполнение программы можно также замедлить при выборе опции Throttle... из окна трассировки меню Program. г---------------------------------¬ ¦ _WRAP = ¦ L---------------------------------- Назначение Переход на новую строку Смотри также _ALIGNMENT, _INDENT, _LMARGIN, _PLOFFSET, _RMARGIN ----------------------------------- Описание Переменная _WRAP содержит логическое значение, которое опре- деляет, будет ли осуществляться автоматический переход на новую строку при выводе данных. По умолчанию переменной _WRAP задано значение .F. Во всех случаях, когда _WRAP задано значение .T., вывод дан- ных по команде ?, который будет распространяться за правую грани- цу (_RMARGIN), будет автоматически переноситься к левой границе (_LMARGIN) на новой строке. Фактически, переменной _WRAP должно быть задано значение .T. перед тем, как переменные _ALIGNMENT, _INDENT, _LMARGIN и _RMARGIN окажут влияние на вывод данных.