ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 20

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є   Системные переменные памяти   є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Системные переменные  памяти - это "встроенные" переменные памяти,
которые FoxPro создает и сохраняет автоматически.  Эти переменные  со-
держат информацию, которая определяет формат вывода результатов работы
FoxPro и управляет выводом этих данных - как на экран,  так и на прин-
тер.  Системные переменные памяти не влияют на вывод данных,  осущест-
вляемый по командам @ ... SAY/GET и @ ... TO.
    Некоторые переменные  памяти  (_CALCMEM,  _CALVALUE  и _DIARYDATE)
позволяют возвращать или инициализировать значения,  которые использу-
ются Калькулятором  или  Календарем (аксессуарами FoxPro).  При помощи
переменной _DBLCLICK можно задавать временной интервал между  двойными
или тройными нажатиями кнопки мыши. Переменная _CLIPTEXT позволяет по-
мещать текст в буфер и возвращать его обратно.
Системные переменные являются PUBLIC по умолчанию; они могут быть объ-
явлены как PRIVATE.
    Ниже приведена таблица всех системных переменных памяти,  их тип и
значения по умолчанию.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Переменная          Тип        Значение по умолчанию
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
_ALIGNMENT           C             LEFT
_BOX                 L             .T.
_CALCMEM             N             0.0
_CALCVALUE           N             0.0
_CLIPTEXT            C             Пустая строка
_CUROBJ              N            -1
_DBCLICK             N             0.5
_DIARYDATE           D             Текущая дата
_GENGRAPH            C             GENGRAPH.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             Пустая строка
_PLENGTH             N             66
_PLINENO             N             0
_PLOFFSET            N             0
_PPITCH              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             Пустая строка
_THROTTLE            N             0
_WRAP                L             .F.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є      _ALIGNMENT =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Выравнивание текста между границами
    Смотри также
    @ ... SAY/GET, _LMARGIN, _RMARGIN, _WRAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _ALIGNMENT содержит символьное значение,  которое опре-
деляет,  каким образом выводимые данные будут выравнены между текущими
границами.
    Выражение  ДОЛЖНО иметь одно из следующих значений:
    LEFT       для выравнивания выводимых данных по левой границе
    CENTERED   для центрирования выводимых данных
    RIGHT      для выравнивания выводимых данных по правой границе
    Если  является буквенной строкой,  оно должно быть заключено
в кавычки.
    Системная переменная  памяти _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 =           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Изображение прямоугольников
    Смотри также
    @ ... BOX, @ ... TO, DEFINE BOX
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _BOX содержит логическое значение,  которое определяет,
будут или нет изображены прямоугольники (в соответствии с их описанием
командой DEFINE BOX) вокруг текстовых строк. Если переменная _BOX име-
ет значение .T.,  по умолчанию, тогда прямоугольники будут изображены,
иначе - не будут.
    Эта системная  переменная  применима только к тем прямоугольникам,
которые будут созданы командой DEFINE BOX.
    Прямоугольники могут  быть нарисованы на экране или в окне при по-
мощи команды @ ... TO.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _CALCMEM =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращение или инициализация значения памяти Калькулятора.
    Смотри также
    STORE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _CALCMEM содержит числовое значение,  которое  хранится  в  памяти
Калькулятора. Результат  вычислений может быть сохранен в памяти Каль-
кулятора и возвращен в программу,  кроме того Вы можете поместить  ука-
занное значение в память Калькулятора перед его использованием.
    Для помещения значения в память Калькулятора, присвойте это значе-
ние переменной _CALCMEM используя оператор "=" или команду STORE. Ког-
да Калькулятор высветится, указанное значение будет записано в его па-
мять.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    В следующем  примере  числовая константа "Пи" записывается в пере-
менную _CALCMEM. Затем высвечивается Калькулятор и в буфер клавиатуры
заносится буква R.  Это приводит к тому,  что высвечивается содержимое
памяти Калькулятора.

STORE PI() TO _CALCMEM
ACTIVATE WINDOW calculator
CLEAR TYPEAHEAD
KEYBOARD CHR(82)


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є       _CALCVALUE =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращение или инициализация значения выведенное на Калькуляторе.
    Смотри также
    STORE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _CALCVALUE содержит числовое значение,  которое выводится на Каль-
куляторе. Результат вычислений может быть возвращен в программу, кроме
того  Вы можете поместить указанное значение на экран Калькулятора пе-
ред его использованием.
    Для помещения значения на экран Калькулятора, присвойте это значе-
ние переменной _CALCVALUE используя оператор "="  или  команду  STORE.
Когда Калькулятор высветится, указанное значение будет выведено на его
экране.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    В следующем  примере  числовое  значение  2.7183  записывается   в
_CALCVALUE.  На  экране Калькулятора появится значение,  которое перед
этим было присвоено переменной, 2.7183.

STORE 2.7183 TO _CALCVALUE
ACTIVATE WINDOW calculator



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _CLIPTEXT =       є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает или инициализирует содержимое буфера клавиатуры.
    Смотри также
    PUBLIC, PRIVATE, STORE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Буфер клавиатуры - это временная область для хранения текста. Ког-
да текст копируется или извлекается из области редактирования,  он по-
мещается в буфер клавиатуры.  Содержимое буфера можно затем вытолкнуть
в другой области редактирования текста.  При помощи системной перемен-
ной памяти _CLIPTEXT можно возвратить  содержимое  буфера  клавиатуры,
или записать символьное выражение в буфер клавиатуры.
    Некоторые примеры того где применяется  копирование  текста  через
буфер клавиатуры: текстовый редактор FoxPro, окна редактирования полей
примечаний,  окна просмотра (Browse)  или  отладки  (Debug),  диалоги,
построители   выражений   и  активные  GET.  При  помощи  Перехватчика
(Capture) экранов,  любой высвеченный на экране дисплея или окна текст
может быть помещен в буфер клавиатуры.
    _CLIPTEXT хранит содержимое  буфера  клавиатуры.  Можно  поместить
символьное  выражение    в  буфер  клавиатуры при помощи команды
STORE или оператора присваивания "=".  _CLIPTEXT по умолчанию является
PUBLIC переменной; она может быть объявлена как PRIVATE.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Следующий пример программы выводит на экран  25  линий  из  буфера
клавиатуры в перемещаемое окно, расположенное вверху экрана. Создается
окно, в котором буфер клавиатуры выведенный из других окон прокручива-
ется  вверх  или  вниз.  Дополнительные строки буфера клавиатуры могут
быть показаны на экране при нажатии клавиш "вверх" и "вниз",  окно мо-
жет  быть убрано с экрана на 5 секунд,  нажатием кнопки мыши или любой
клавиши.
    Окно буфера клавиатуры может быть выведено на экран в любой момент
работы FoxPro или программы FoxPro при помощи команды  ON  KEY  LABLE.
Например, если  Ваша  программа называется ShowClip,  буфер клавиатуры
можно высветить командой ON KEY LABEL F10 DO ShowClip или ON KEY LABEL
RIGHTMOUSE DO ShowClip. Если будет нажата клавиша F10 или правая кноп-
ка мыши, будет высвечен буфер клавиатуры.

*** Пример вывода на экран буфера клавиатуры ***

*** Инициализация переменных & Определение окон ***

SET TALK OFF
STORE 1 TO windtop
STORE _CLIPTEXT TO ctext

IF LEN(ctext) > 2100    && Сделать буфер размером с окно
   STORE SUBSTR(ctext, 1, 2100) TO ctext
ENDIF

STORE STRTRAN(ctext,  CHR(9), SPACE(4), 1) to ctext && Вставка табуляторов

*** Определить окно для вывода буфера клавиатуры ***

DEFINE WINDOW outline FROM 21,-1 to 25,80;
        TITLE " Clipboard " CLOSE

DEFINE WINDOW clipwind FROM -1,-1 TO 25,80

ACTIVATE WINDOW outline
ACTIVATE WINDOW clipwind IN outline    && Поместить в окно outline

*** Высветить буфер в окне ***

IF EMPTY(ctext)                        && Буфер клавиатуры пустой
   @ 0,0 SAY "Clipboard is empty!"
ELSE
   IF AT(chr(13),ctext) = 0            && Возврат (CR)
      @ 0,0 SAY ctext                  && Показать буфер клавиатуры
   ELSE
      STORE AT(CHR(13), ctext, 1) to crpos1              && 1-ая CR

      *** Показать первую строку буфера ***

      @ 0,0 SAY SUBSTR(SUBSTR(ctext, 1, crpos1 - 1), 1, 80)

      FOR lineno = 1 to 24
          STORE AT(CHR(13), ctext, lineno + 1) to crpos2  && Следующая CR
          *** Показать следующую строк буфера клавиатуры ***
          @ lineno,0 SAY SUBSTR(SUBSTR(ctext, crpos1 + 1, ;
                     (crpos2 - crpos1) - 1),1,80)
          STORE crpos2 to crpos1

      NEXT                  Цикл для следующей строки буфера клавиатуры
   ENDIF                    Тест на 0 или (CR)
ENDIF                       Тест на пустой буфер

DO WHILE .T. && Тест на нажатие вверх/вниз, нажатие кнопки мыши, любой клавиши
   keyval = INKEY(5,"MH")   && Перехват нажатия клавиши, кнопки мыши
                            && или 5 секунд

   IF keyval = 24 AND BETWEEN(windtop,1,23)  && Стрелка вниз
      MOVE WINDOW clipwind BY -1,0           && Сместить буфер вверх
      windtop = windtop + 1
   ENDIF
   IF keyval = 5 AND BETWEEN(windtop,2,24)   && Стрелка вверх
      MOVE WINDOW clipwind BY 1,0            && Сместить буфер вниз
      windtop = windtop - 1
   ENDIF
   IF keyval <> 5 AND keyval <> 24           && Другой ключ, выход
      CLEAR WINDOWS
      SET TALK ON
      EXIT
    ENDIF
ENDDO



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _CUROBJ =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Текущий номер GET объекта
    Смотри также
    @ ... SAY/GET, OBJNUM(), READ, SHOW GET, SHOW OBJECT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _CUROBJ содержит номер текущего выбранного GET объекта . GET
объект создается командами @ ... GET и содержит поля, управляющие рам-
ки, текстовые и невидимые кнопки,  всплывающие меню,  списки и области
редактирования текста. _CUROBJ последовательно запрашивается или изме-
няется в  вызовах UDF опциями VALID или WHEN,  либо опциями в READ и @
... GET.
    Можно возвратить значение из _CUROBJ для определения, какой объект
выбран в настоящий  момент,  кроме  того  можно  записать  значение  в
_CUROBJ для выбора указанного GET объекта.
    Номер GET объекта определяется порядком выдачи команды GET. Каждая
Отдельная кнопка в наборе текстовых, селективных или невидимых кнопок
Представляет собой отдельный объект.
    Значение _CUROBJ  может  изменяться при переходе курсора на другой
GET объект. Это обычно устанавливается подпрограммами VALID и WHEN.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Следующий пример  показывает каким образом нумеруются GET объекты,
и как _CUROBJ может использоваться для получения номера текуще выбран-
ного объекта. Нажмите Tab или ключи управления курсором для выбора те-
кущего объекта.  Нажав F2 получите номер выбранного в настоящий момент
объекта.
CLEAR
SET TALK OFF
STORE 1 to x, y, z

ON KEY LABEL F2 @ 14,2 SAY 'Object # ' + LTRIM(STR(_CUROBJ))
@ 4,2 GET x  PICTURE '@*R \       є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает интервал  между  нажатиями  в  двойном и тройном нажатии
кнопки мыши.
    Смотри также
    INKEY()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Cистемная переменная _DBLCLICK содержит численное значение,  кото-
рое определяет временной интервал, используемый FoxPro для определения
одиночного,  двойного или тройного нажатия кнопки мыши. Интервал между
нажатиями и определяет переменная _DBLCLICK. Например, если установить
_DBLCLICK  равной  0.5 секунды,  то для двойного нажатия вам отводится
0.5 секунды, а для тройного - 1 секунда.
    Чем больше  значение _DBLCLICK,  тем дольше вы можете делать паузу
между двумя нажатиями,  чтобы FoxPro интерпретировал их как парное на-
жатие кнопки мыши.  Если для переменной _DBLCLICK установить очень ма-
ленькое значение,  то даже быстрое двойное (или тройное нажатие) может
быть воспринято как два (или три) отдельных нажатия кнопки мыши.
    Временной интервал для _DBLCLICK выражается в  секундах.  Заметим,
что внутренние часы FoxPro работают в тактах, которые составляют около
1/18 секунды. При записи в переменную _DBLCLICK целого или десятичного
значения  ей может быть присвоено немного другая величина из-за округ-
ления при переводе в такты.  По  умолчанию  для  переменной  _DBLCLICK
устанавливается значение, равное 0.5 секунды. Ее содержимое может быть
в диапазоне от 0.05 до 5.5 секунд (от 1 до 100 тактов).
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Этот пример демонстрирует как можно распознать одиночное и двойное
нажатие кнопки мыши.

*** Пример распознания двойного нажатия кнопки мыши ***
*** Среда окружения программы ***
SET TALK OFF
SET ESCAPE OFF
CLEAR
*** Создать и открыть окно ***
DEFINE WINDOW MOUSECHK FROM 4,4 TO 20,75 DOUBLE
ACTIVATE WINDOW MOUSECHK
@ 6,16 SAY "Нажмите клавишу или кнопку мыши для начала"
@ 8,16 SAY "      или Esc для выхода"
INVAL1 = 0                  && Инициализация временной переменной
*** Цикл программы ***
DO WHILE .T.
   INVAL1 = INKEY(.06,"HM") && Получить INKEY(), скрыть курсор, проверить мышь
   IF INVAL1 = 0            && Нет нажатия
      LOOP
   ENDIF                    && Esc нажат, выход из цикла программы
   IF INVAL1 = 27
      EXIT
   ENDIFIF INVAL1 = 151     && Одиночное нажатие кнопки мыши
      ROW = MROW()          && Получить позицию указателя мыши
      COL = MCOL()
      TIMELIMIT = SECONDS() + _DBLCLICK  && Время для двойного нажатия
      INVAL2 = 0
      DO WHILE SECONDS() < TIMELIMIT     && Проверка на двойное нажатие
         INVAL2 = INKEY("HM")

         *** Указатель мыши внутри окна, двойное нажатие  ***
         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) && Допустимое CHR() значение
      CLEAR
      @ 7,18 SAY "Character typed:"
      ?? " " + CHR(INVAL1) + ", ASCII code " + ALLTRIM(STR(INVAL1))
   ENDIF
ENDDO          Конец цикла
*** Восстановление оригинального окружения среды ***
SET TALK ON
SET ESCAPE ON
CLEAR WINDOWS
*** Конец программы ***


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є       _DIARYDATE =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает или инициализирует дату календаря/дневника
    Смотри также
    STORE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _DIARYDATE содержит текущую дату календаря/дневника.  Можно высве-
тить календарь/дневник с указанной датой,  или возвратить дату указан-
ную в календаре/дневнике.
    По умолчанию в _DIARYDATE хранится текущая дата. Когда открывается
календарь/дневник выбирается текущая дата,  для выбора другой даты не-
обходимо указать ее в переменной _DIARYDATE и тогда  календарь/дневник
откроется с указанной датой.
    Выбор даты отличной от текущей пока календарь/дневник открыт  при-
водит к  тому,  что  в _DIARYDATE сохраняется новая дата.  Если кален-
дарь/дневник закрывается, _DIARYDATE будет содержать последнюю выбран-
ную дату.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    В этом  примере  календарь/дневник  открывается с датой 31 Октября
2001 года и выводится это значение _DIARYDATE.  Функция DATE() исполь-
зуется  для выбора текущей даты,  после чего высвечивается _DIARYDATE.
Затем 4 Июля 1776 года сохраняется в _DIARYDATE,  и  _DIARYDATE  снова
высвечивается.

CLEAR
SET TALK 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


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є   _GENGRAPH =     є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу, куда RQBE направляет результаты
    Смотри также
    CREATE QUERY, _GENXTAB, SELECT - SQL
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _GENGRAPH позволяет указать программу (и ее расположение), которую
FoxPro  использует для передачи FoxGraph результатов запроса RQBE.  По
умолчанию _GENGRAPH использует GENGRAPH.PRG.  Можно указать полное имя
программы вмести с путем доступа.
    Запросы создаются в окне RQBE. В окне RQBE можно указать куда нап-
равляется  результат  запроса.  Результат запроса может быть направлен
для создания диаграмм при помощи FoxGraph, необязательному графическо-
му пакету. Для получения дополнительной информации о создании запросов
в окне RQBE смотри описание команды CREATE QUERY в данном руководстве.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є    _GENMENU =     є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу генератор меню
    Смотри также
    CREATE MENU, _GENSCRN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _GENMENU Позволяет указать программу,  которую FoxPro использует в
качестве  генератора  кода  меню  из  базы  данных .MNX.  По умолчанию
_GENMENU использует GENMENU.PRG.
    Можно указать полное имя программы вмести с путем доступа.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _GENPD =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу интерфейса драйвера принтера
    Смотри также
    _PDRIVER, _PDSETUP, SET PDSETUP, SET PRINTER
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Системная переменная _GENPD содержит имя текущей программы  интер-
фейса драйвера принтера. По умолчанию, этой программой является прило-
жение написанное на FoxPro, GENPD.APP.
    Программа чье  имя  хранится в _GENPD выполняется в каждом из пяти
ниже приведенных случае :

     Выбрана управляющая рамка Printer Driver Setup (Установка  драй-
вера принтера) в диалоге Printer Setup... (Установка принтера ...)
     Выбрана управляющая рамка Printer Driver Setup (Установка  драй-
вера принтера)  в диалогах Report Page Layout (Оформление страницы от-
чета) или Label Environment (Окружение этикетки).
     Подана команда SET PDSETUP
     Название программы установки драйвера принтера сохранено в
      _PDSETUP
     Указана установка драйвера принтера по умолчанию и FoxPro запущен

    Если указать имя собственной программы установки драйвера принтера
в _GENPD,  Ваша программа будет выполняться в каждом из выше приведен-
ных случаев.
    Если не включать расширение программы установки драйвера принтера в
_GENPD, FoxPro ищет и выполняет одну из версий программы  в  следующем
порядке:
     Выполнимую (.EXE) версию программы
     Прикладную (.APP) версию программы
     Компилированную (.FXP) версию программы
     Программу (.PRG)
    Программа интерфейса драйвера принтера указанная  в  _GENPD  может
строится   по  любой  схеме,  но  обязательно  должна  иметь  оператор
PARAMETERS в первой строке.  Два  параметра  передаются  программе  их
FoxPro.  Первый из них числовой.  0 передается программе, если она за-
пускается управляющей рамкой Printer Driver Setup (Установка  драйвера
принтера) В диалоге Printer Setup (Установка принтера), подана команда
SET PDSETUP или Имя установки драйвера принтера сохранено в  _PDSETUP.
2  передается  программе,  если  управляющая  рамка Set Printer Driver
(Установка драйвера принтера) выбрана в  диалоге  Report  (Отчет)  или
Label (Этикетка).
    Можно проверить какой  числовой  параметр  был  передан  программе
установки драйвера принтера на предыдущем шаге.  Например, Вы записали
имя программы в _PDRIVER, это выполнимая процедура PDONLOAD в програм-
ме драйвера принтера. Ваша процедура Your PDONLOAD запустит прикладной
интерфейс установки драйвера принтера и передаст ему значение 1.
    Прикладной интерфейс установки драйвера принтера проверит передан-
ное ему числовое значение.  Если оно равно 1,  имя программы  драйвера
принтера не будет сохранятся в _PDRIVER в программе. Если, в этом слу-
чае,  имя программы драйвера  принтера  будет  сохранено  в  _PDRIVER,
PDONLOAD будет выполнена снова,  программа установки драйвера принтера
опять стартует и так будет создан бесконечный цикл.
    Второй параметр передаваемый программе установки драйвера принтера
- имя установки драйвера принтера, указанное в команде SET PDSETUP или
записанное в _PDSETUP.  Если программа установки драйвера принтера за-
пускается управляющей рамкой Printer Driver Setup (Установка  драйвера
принтера)  в  диалоге  Printer Setup (Установка принтера),  в качестве
второго параметра в программу,  указанную в _GENPD,  передается символ
вопроса (?).


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є     _GENSCRN =    є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу генератора экранов
    Смотри также
    CREATE SCREEN, _GENMENU
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _GENSCRN Позволяет указать имя программы, которую FoxPro использует
для генерации кодов экрана из .SCX базы данных. По умолчанию, _GENSCRN
использует GENSCRN.PRG.
    Можно указать полное имя программы вмести с путем доступа.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є     _GENXTAB =    є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу,  которая используется для передачи результата
запроса RQBE в FoxGraph
    Смотри также
    CREATE QUERY, _GENGRAPH, SELECT - SQL
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _GENXTAB Позволяет указать программу и ее расположение, которую
FoxPro использует для вывода RQBE результата в FoxGraph,  в виде формы
отчета или таблицы в перекрестно табличном формате.
    По умолчанию, _GENXTAB использует программу GENXTAB.PRG.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _INDENT =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Смещение первой строки
    Смотри также
    _LMARGIN, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _INDENT  содержит числовое значение,  которое указывает
FoxPro на смещение вправо (или влево) первой строки каждого  параграфа
на определенное число символов от левой границы. Команда ? определяет,
когда FoxPro начнет новый параграф  и  будет  использовать  переменную
_INDENT.
    Значение переменной _INDENT может находиться в пределах от отрица-
тельного  значения  переменной _LMARGIN до значения длины строки минус
один ((_RMARGIN - _LMARGIN) - 1).  Положительные  значения  переменной
_INDENT будут указывать на то, что выводимая строка должна быть смеще-
на вправо.  Отрицательные значения будут указывать на смещение  строки
влево. По умолчанию переменная _INDENT имеет значение 0.
    Системная переменная памяти _INDENT является активной только в том
случае, когда переменная _WRAP имеет значение .T.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _LMARGIN =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Задание левой границы
    Смотри также
    ?, _INDENT, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _LMARGIN содержит числовое значение, которое определяет
позицию левой границы в случае,  когда вывод данных осуществляется при
помощи команды ?.  Допустимые значения переменной _LMARGIN находятся в
пределах от 0 до 254.
    Если вывод данных осуществляется на принтер,  значение  переменной
_LMARGIN представляет собой число дополнительных пробелов, которые бу-
дут выведены между левым краем  страницы  и  непосредственно  текстом.
Этот  сдвиг  страницы  определен переменной _PLOFFSET или командой SET
MARGIN.
    Системная переменная  памяти  _LMARGIN  является активной только в
том случае, когда переменная _WRAP имеет значение .T.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _MLINE =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Смещение поля примечаний функции MLINE()
    Смотри также
    MEMLINES(), MLINE(), SET MEMOWIDTH
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция MLINE()  используется для возврата строк из полей примеча-
ний.  Когда вызывается функция MLINE(),  MLINE()  сохраняет  положение
смещения соответствующего поля примечания в системной переменной памя-
ти _MLINE.  _MLINE может использоваться в качестве  второго  числового
аргумента функции MLINE() для увеличения представления MLINE().
    Начальное значение по умолчанию для  _MLINE  есть  0.  Обязательно
сбросьте  _MLINE  в  0,  перед  новым использованием вместе ы функцией
MLINE().
    Для получения  дополнительной информации по использованию _MLINE и
примера ее использования смотрите описание функции  MLINE()  в  данном
руководстве.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PADVANCE =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Метод продвижения страницы
    Смотри также
    EJECT, _PEJECT, _PLENGTH, _PLINENO, PROW()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PADVANCE содержит символьное значение, которое опреде-
ляет, будет FoxPro осуществлять продвижение к началу страницы, исполь-
зуя символ прогона страницы или используя перевод строки.
    Выражение  должно иметь одно из следующих значений:

    FORMFEED         для  передачи  символа  прогона страницы при
                     продвижении  страницы (задано по умолчанию).
                     Этот параметр использует внутренние указате-
                     ли начала страницы принтера.

    LINEFEED         для передачи на принтер вычисленного количес-
                     тва символов перевода строки  при продвижении
                     страницы. Этот  параметр обеспечивает переход
                     на начало новой строки посредством внутренне-
                     го вычисления количества необходимых  перево-
                     дов строки и  выполнение перехода посредством
                     непрерывного перевода строк.

    Если  является буквенной строкой,  оно должно быть заключено
в кавычки.
    При вычислении необходимого числа переводов строк FoxPro использу-
ет формулу (_PLENGTH - _PLINENO) в следующих случаях:
    * Когда команда EJECT PAGE запущена без драйвера ON PAGE.
    * Когда команда EJECT PAGE запущена с драйвером ON PAGE и значение
позиции строки больше строкового значения в ON PAGE.
    * Когда команды PRINTJOB или ENDPRINTJOB задают переменную _PEJECT
для прогона страницы на принтере.

    Формула (_PLENGTH - MOD(PROW(),_PLENGTH)) используется в случаях:
    * Когда используется команда EJECT.
    * Когда  используется команда SET DEVICE TO PRINTER,  и последова-
тельности @ ... SAY/GET пропускаются.
    Вопреки установке  значения  переменной  _PADVANCE Вы можете также
послать символ  перевода  строки  на  принтер  путем  вывода  значения
CHR(12).
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
_PADVANCE ='FORMFEED'
STORE 'FORMFEED' TO choice
@ 4,0 SAY 'Укажите метод продвижения страницы'
@ 5,0 GET choice FUNCTION '*R FORMFEED;LINEFEED'
READ
_PADVANCE = choice

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PAGENO =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Номер текущей страницы
    Смотри также
    ON PAGE, _PBPAGE, _PEPAGE, _PLENGTH, _PLINENO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PAGENO содержит числовое значение,  которое определяет
номер текущей страницы. Начальное значение по умолчанию принимается 1.
Эта вводимая системная переменная памяти позволяет Вам печатать номера
страниц в потоке выводимых данных  без  определения,  инициализации  и
увеличения  переменной памяти для этой цели - FoxPro сохраняет для Вас
данные о номере текущей страницы.
    Эта системная переменная памяти,  как и все остальные,  может быть
переустановлена при задании значения в пределах от 1  до  32,767.  За-
метьте,  что  переменные  _PAGENO,  _PBPAGE и _PEPAGE работают в соот-
ветствии друг с другом. Если значение переменой _PAGENO переустановле-
но (или увеличено) так, что оно выходит за рамки диапазона от значения
переменной _PBPAGE до значения переменной _PEPAGE,  то FoxPro не будет
осуществлять печать страниц вообще.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PBPAGE =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Первая страница, выводимая на печать
    Смотри также
    _PAGENO, _PEPAGE, PRINTJOB ... ENDPRINTJOB
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PBPAGE содержит числовое значение,  которое определяет
номер первой страницы,  выводимой на печать.  Пока значение переменной
_PBPAGE больше значения переменной _PAGENO, FoxPro не осуществляет пе-
чать. Вместо этого, страницы создаются внутри системы, и увеличиваются
значения переменной _PAGENO и других системных переменных памяти. Ког-
да значение _PAGENO достигает (или превышает) значения _PBPAGE,  начи-
нается печать.
    Значения переменной  _PBPAGE  могут  находиться в пределах от 1 до
32,767.  Начальное значение по умолчанию принимается 1. Значение пере-
менной  _PBPAGE  может  быть  больше  или  равно  значению  переменной
_PEPAGE.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PCOLNO =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Номер текущего столбца
    Смотри также
    ?, ??, 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 =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Число печатаемых копий
    Смотри также
    PRINTJOB ... ENDPRINTJOB
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PCOPIES содержит числовое значение, которое определяет
количество копий  выводимых  данных,  которое  будет  напечатано.  Эта
системная  переменная памяти может иметь значение от 1 до 32,767.  На-
чальное значение по умолчанию - 1.
    Переменная _PCOPIES  требует  наличия  структуры  команд PRINTJOB/
ENDPRINTJOB и, следовательно, может использоваться только в программах
FoxPro. При задании числа печатаемых копий оператор присваивания пере-
менной _PCOPIES должен быть помещен перед командой PRINTJOB.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PDRIVER =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает программу драйвера принтера
    Смотри также
    ?, ??, 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 =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Загрузка или очистка установки драйвера принтера
    Смотри также
   _GENPD, _PDRIVER, SET PDSETUP, SET PRINTER
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    _PDSETUP загружает установку драйвера принтера или очищает текущую
установку драйвера принтера.  Установка драйвера принтера - это комби-
нация установочных параметров, которые включают в себя программу драй-
вера принтера и информацию о печати,  такую как  ориентация  страницы,
размер и тип шрифта по умолчанию loads, границы и так далее.
    Установка драйвера  принтера  хранится  в  Вашем  файле   ресурсов
FOXUSER.DBF  и может быть создана интерактивно с назначением имени при
помощи диалога Printer Setup Editing (Редактор установки принтера).
    Установка драйвера принтера может быть также загружена или зачище-
на при помощи команды SET PDSETUP.
    Для загрузки  установки драйвера принтера запишите имя установки в
системную переменную _PDSETUP.  Можно очистить текущую установку драй-
вера  принтера  путем  занесения  в _PDSETUP пустой строки.  Занесение
пустой строки в _PDSETUP также удалит массив _PDPARMS из памяти.
    Если имени установки драйвера принтера указанного в _PDSETUP нет в
Вашем файле ресурсов,  выполняется прикладной текущий интерфейс  уста-
новки драйвера принтера.  Если используется GENPD.APP,  прикладной ин-
терфейс установки драйвера принтера,  включенный в FoxPro/LAN, появля-
ется  диалог Printer Setup Editing (Редактор Установки Принтера),  при
помощи которого можно создать установку драйвера принтера с  указанным
именем.
    Когда имя установки драйвера принтера включенное в   не  су-
ществует в Вашем файле ресурсов, можно предотвратить запуск прикладной
встроенной установки принтера,  поместив перед именем  установки  знак
тире.
    Установка принтера,  принятая по умолчанию,  может быть  загружена
при старте FoxPro, если Вы включите следующую строку в файл CONFIG.FP.
PDSETUP = '' WITH 
    При включении  для загрузки при старте FoxPro,  обяза-
тельно заключайте имя драйвера в кавычки.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PECODE =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Коды окончания печати
    Смотри также
    ?, ??, PRINTJOB ... ENDPRINTJOB, _PSCODE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PECODE содержит символьное значение, которое будет вы-
ведено,  когда встретится команда ENDPRINTJOB.  Выражение  может
содержать  любую  совокупность кодов печати до 255 символов;  значение
_PECODE по умолчанию - нулевая строка.  Допустимые  коды  находятся  в
пределах от 0 до 255.
    Для получения полной информации о влиянии последовательностей  уп-
равляющих кодов посмотрите описание к Вашему принтеру.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PEJECT =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Установка прогона страницы
    Смотри также
    EJECT, EJECT PAGE, _PADVANCE, _PECODE, PRINTJOB ... ENDPRINTJOB,
    _PSCODE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PEJECT содержит символьное значение, которое определя-
ет  момент,  когда  FoxPro будет осуществлять прогон страницы во время
вывода данных.
    Выражение  ДОЛЖНО иметь одно из следующих значений:

    BEFORE- прогон страницы перед началом вывода данных
    AFTER - прогон страницы после завершения вывода данных
    BOTH  - прогон страницы перед выводом данных и после него
    NONE  - не осуществляется прогон страницы до/после вывода данных

    Если  является буквенной строкой,  оно должно быть заключено
в кавычки.
    Системная переменная памяти _PEJECT может быть  определена  в  ко-
мандном окне или в управляющей программе,  но ее действие будет эффек-
тивным только при использовании структуры команд PRINTJOB/ENDPRINJOB.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
_PEJECT ='BEFORE'
STORE 'BEFORE' TO choice
@ 4,0 SAY 'Укажите выбор прогона страницы'
@ 5,0 GET choice FUNCTION '*R BEFORE;AFTER;BOTH;NONE'
READ
_PEJECT = choice


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PEPAGE =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Номер последней страницы
    Смотри также
    _PAGENO, _PBPAGE, PRINTJOB ... ENDPRINTJOB
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PEPAGE   содержит   числовое   значение,  определяющее
последнюю печатаемую страницу. Когда переменная _PAGENO достигает зна-
чения,  большего значения переменной _PEPAGE,  FoxPro прекращает вывод
данных.
    Переменная _PEPAGE  может  принимать  значения  в пределах от 1 до
32,767 (хотя значение переменной _PEPAGE не может быть меньше значения
переменной  _PBPAGE).  Начальное  значение по умолчанию - 32,767.  Эта
системная переменная памяти может использоваться совместно с  перемен-
ной  _PBPAGE  для  печати страниц с номерами в определенном интервале.
Если,  например, Вы хотите напечатать только одну страницу из длинного
отчета,  Вы  можете  сохранить  номер  страницы в переменных _PBPAGE и
_PEPAGE, и тогда будет напечатана только одна страница.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PFORM  =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Использование формата печати
    Смотри также
    CREATE LABEL, CREATE REPORT, LABEL FORM , REPORT FORM
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PFORM содержит символьное значение,  определяющее файл
формата печати,  который будет использоваться при печати. Файл формата
печати (.PRF) содержит множество  установок  формата  печати,  включая
следующие системные переменные: _PADVANCE, _PAGENO, _PBPAGE, _PCOPIES,
_PDRIVER,  _PECODE,  _PEJECT,  _PEPAGE,  _PLENGTH, _PLOFFSET, _PPITCH,
_PQUALITY, _PSCODE, _PSPACING и _PWAIT.
    Если выражение  является буквенной строкой,  оно должно быть
заключено в кавычки.
    Файл формата печати,  содержит также имя выходного файла,  если он
был описан.
    Команды CREATE LABEL и CREATE REPORT записывают установки  систем-
ных  переменных памяти в файл формата печати при создании описания от-
чета или метки.  Этот файл формата открывается и загружается при изме-
нении или при печати REPORT или LABEL. Однако, установки файла формата
печати не загружаются автоматически  при  использовании  команд  LABEL
FORM и REPORT FORM. Для их загрузки надо специально определить систем-
ную переменную _PFORM.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PLENGTH =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Длина страницы
    Смотри также
    EJECT, EJECT PAGE, ON PAGE, _PADVANCE, _PLINENO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PLENGTH содержит числовое значение, которое определяет
число  строк  выводимых  данных на странице.  Это значение может нахо-
диться в пределах от 1 до 32,767.
    Эта системная  переменная памяти используется совместно с перемен-
ной _PLINENO для определения момента, когда необходим прогон страницы.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PLINENO =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Номер текущей строки
    Смотри также
    _PCOLNO, PCOL(), _PLENGTH, PROW()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PLINENO содержит числовое значение, которое устанавли-
вает  позицию  текущей строки и используется для определения следующей
строки при выводе данных.  При осуществлении FoxPro вывода  данных  на
установленное  печатающее устройство,  значение _PLINENO увеличивается
для указания текущей позиции.  Эта системная переменная  памяти  может
принимать значения в пределах от 0 до значения (_PLENGTH - 1).
    В отличие от функции PROW(),  которая возвращает  текущую  позицию
печатающей головки и не увеличивает своего значения,  если команда SET
PRINTER отключена (OFF),  значение переменной _PLINENO увеличивается в
любом случае вывода данных ( осуществляется ли он на принтер, на экран
или в файл).  Команда SET PRINTER не  оказывает  влияния  на  значение
_PLINENO.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PLOFFSET =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Сдвиг страницы
    Смотри также
    _LMARGIN, SET MARGIN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PLOFFSET   содержит  числовое  значение,  определяющее
расстояние (или смещение) от левого края бумаги до левого края  текста
во  всех  выводимых на печать данных - на данные,  выводимые на экран,
переменная _PLOFFSET не оказывает влияния .  Дополнительный  интервал,
заданный  в  переменной  _LMARGIN,  вычисляется из значения переменной
_PLOFFSET.
    Эта системная  переменная  памяти может принимать значения от 0 до
254.  Переменная _PLOFFSET эквивалентна команде SET MARGIN.  Установка
одной из них автоматически меняет другую.
    Установка _PLOFFSET не влияет на отчеты, созданные Генератором От-
четов   (Report  Writer)  и  запущенные  командой  REPORT  FORM.  Хотя
_PLOFFSET изменяется во время составления отчета, созданного Генерато-
ром Отчетов (Report Writer),  оно сбрасывается в оригинальное значения
после того как отчет составлен. Смещение от левого края страницы уста-
навливается в одном из диалогов Генератора Отчетов.
и  запущенные  командой  REPORT  FORM.  Хотя

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PPITCH =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Шаг принтера
    Смотри также
    ?, ??, _PDRIVER, _PQUALITY
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PPITCH содержит символьное значение,  определяющее те-
кущий шаг принтера.
    Выражение  ДОЛЖНО иметь одно из следующих значений:

    PICA          для печати 10 символов на дюйм
    ELITE         для печати 12 символов на дюйм
    CONDENSED     для печати около 17 символов на дюйм
    DEFAULT       для печати с использованием текущей установки
                  принтера (по умолчанию)

    Если  является буквенной строкой,  оно должно быть заключено
в кавычки.  При изменении переменной _PPITCH для выбора одного из воз-
можных значений установленный драйвер  принтера  передаст  на  принтер
соответствующую последовательность кодов перехода.  Конечно, для того,
чтобы значения переменной _PPITCH были эффективны,  они должны поддер-
живаться на используемом принтере.  (Для получения информации об уста-
новке драйверов принтера смотрите описание переменной _PDRIVER).
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
_PPITCH ='PICA'
STORE 'PICA' TO choice
@ 4,0 SAY 'Укажите плотность печати'
@ 5,0 GET choice FUNCTION '*R PICA;ELITE;CONDENSED;DEFAULT'
READ
_PPITCH = choice


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PQUALITY =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Качество печати
    Смотри также
    _PDRIVER, _PPITCH
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PQUALITY содержит логическое значение, которое опреде-
ляет,  будут ли выводимые данные печататься  с  использованием  режима
высокого  качества  печати или стандартного "чернового" режима.  Когда
переменной _PQUALITY задано значение .T.,  FoxPro передает необходимые
коды (определяемые данным драйвером принтера) для осуществления печати
высокого качества выводимых данных.
    Вообще, когда _PQUALITY = .F.,  принтер будет печатать быстрее,  а
когда _PQUALITY = .T.,  то  вывод  данных  будет  замедлен,  но  будет
обеспечиваться высокое качество печати.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PRETEXT =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает символьное выражение,  предшествующее появляющимся стро-
кам текста
    Смотри также
    \, \\, SET TEXTMERGE, _TEXT
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Команда SET  TEXTMERGE  позволяет  сливать текст внутри программы.
Внутри программы можно вывести строки текста, содержимое временных пе-
ременных,  результаты вычислений и функций на экран или окно, на прин-
тер, в текстовый файл или файл низкого уровня. Если символьное выраже-
ние содержится в _PRETEXT,  оно выводится перед строкой текста. Символ
табуляции может быть помещен в _PRETEXT,  для лучшей читаемости  прог-
раммы.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PSCODE =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Коды начала печати
    Смотри также
    ?, ??, _PECODE,  PRINTJOB ... ENDPRINTJOB
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PSCODE содержит символьное значение, которое будет вы-
ведено при встрече команды PRINTJOB.  Выражение  может содержать
любую последовательность кодов печати длиной до 255 символов; по умол-
чанию  _PSCODE  является нулевой строкой.  Допустимые коды находятся в
пределах от 0 до 255.
    Для получения  полной информации о воздействии последовательностей
определенных управляющих кодов посмотрите описание к Вашему принтеру.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _PSPACING =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Межстрочные интервалы
    Смотри также
    ?, ??, _PSCODE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PSPACING содержит числовое значение, которое определя-
ет,  будут ли данные выводится FoxPro с одиночным, двойным или тройным
интервалом. По умолчанию принимается одиночный интервал (1). Выражение
 должно иметь значение от 1 до 3. Значения, меньше 1 и больше 3,
будут восприниматься как ошибка.
    Системная переменная памяти _PSPACING может быть задана внутри ко-
мандного  окна  для изменения формы выдачи данных,  выводимых по таким
командам,  как DISPLAY или LIST. Она также управляет выводом изображе-
ний прямоугольников (прямоугольники с заданной высотой 5 будут выведе-
ны с высотой 15, если переменной _PSPACING задано значение 3).


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _PWAIT =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Ожидание (пауза) между страницами
    Смотри также
    EJECT, EJECT PAGE, _PLENGTH, _PLINENO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _PWAIT содержит логическое значение,  которое определя-
ет,  будет  ли принтер делать паузу между страницами выводимых данных.
Эта системная переменная памяти введена  для  обеспечения  возможности
печати  на  отдельных  листах  бумаги  в отличие от непрерывной подачи
страниц.  При выдаче страницы из принтера по команде EJECT или в  слу-
чае,  когда значение переменной _PLINENO превышает значение переменной
_PLENGTH,  FoxPro приостанавливает вывод данных на принтер  для  того,
чтобы пользователь мог вручную вставить другой лист бумаги.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _RMARGIN =         є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Правая граница
    Смотри также
    _INDENT, _LMARGIN, _PLOFFSET, SET MARGIN, _WRAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _RMARGIN содержит числовое значение, определяющее пози-
цию правой границы (для вывода данных,  осуществляемого по команде ?).
Минимальное  допустимое  значение  переменной _RMARGIN больше значения
_LMARGIN + 1 или значения _LMARGIN + _INDENT  +  1.  Максимальное  до-
пустимое значение _RMARGIN равно 255.  Начальное значение по умолчанию
равно 80.
    Системная переменная  памяти  _RMARGIN  является активной,  только
если переменной _WRAP задано значение .T.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          _TABS =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Установка метки табуляции
    Смотри также
    _INDENT, _WRAP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _TABS содержит символьное значение, которое определяет,
где  в  выводимых  на печать данных будут возникать остановки по метке
табуляции. Выражение  представляет собой список меток табуляции,
являющийся последовательностью чисел, разделенных запятой, в возраста-
ющем порядке. По умолчанию  содержит нулевую строку, которая за-
дает  в  переменной  _TABS  табуляцию  по интервалам в восемь символов
(т.е., "8,16,24,32,40,...").
    Если выражение  является буквенной строкой,  оно должно быть
заключено в кавычки.
    В случае, когда переменной _WRAP задано значение .T., любое значе-
ние переменной _TABS, большее или равное значению переменной _RMARGIN,
игнорируется.  Параметр TABS в файле CONFIG.FP эквивалентен переменной
_TABS,  и определение TABS автоматически устанавливает значение  пере-
менной _TABS.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         _TALLY =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Число записей базы данных, обработанных предыдущей командой
    Смотри также
    SET ODOMETER, SET TALK
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Некоторые команды  в  процессе  своего выполнения выводят на экран
информацию о состоянии.  Когда команда заканчивает выполнение, возвра-
щается число обработанных записей базы данных. Это число сохраняется в
системной переменной памяти _TALLY.  Информация о ходе выполнения  ко-
манды направляется в окно или на экран, если только TALK установлено в
ON.
    Команды, которые возвращают информацию о состоянии:

APPEND FROM    INDEX          SORT
AVERAGE        JOIN           SUM
CALCULATE      PACK           TOTAL
COPY TO        REINDEX        UPDATE
COUNT          REPLACE
DELETE         SELECT - SQL

    Когда FoxPro стартует,  _TALLY устанавливается в ноль.  Выполнение
любой из команд, перечисленных выше, приводит к замещению значения
_TALLY на значение,  которое является результатом выполнения указанной
команды.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          _TEXT =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Направляет вывод из команд \,  \\ 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 TALK OFF                && Отключить отклик на экран

SET TEXTMERGE ON NOSHOW     && Разрешить слияние текста
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               && и что в этом файле



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є        _THROTTLE =        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Указывает скорость  выполнения программы при открытом окне трасси-
ровки.
    Смотри также
    SET DEBUG, SET STEP
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Окно трассировки  (Trace),  одна  из  многих  возможностей отладки
программ в FoxPro,  выводит исходный текст программы по мере ее выпол-
нения.  Каждая  строка программы выделяется яркостью,  когда через нее
проходит выполнение. Числовое значение _THROTTLE определяет паузу меж-
ду выполнением строк программы,  при открытом окне трассировки.  Опция
Trace Between Breaks (трассировка между остановами) в окне трассировки
меню Program (Программа) может быть установлена для отладки определен-
ного участка программы.  Диамонд (ромб) появляется возле  опции  Trace
Between Breaks, когда она установлена.
    Значение _THROTTLE представляет собой задержку  в  секундах  между
выполнением двух строк программы.  Начальное значение по умолчанию для
_THROTTLE  равно  0;  пауза  между   выполнением   программных   строк
отсутствует.  _THROTTLE  может  изменяться в диапазоне от 0 до 5.5 се-
кунд. Например, если THROTTLE установлено в 0.5 секунды, то пауза меж-
ду выполнением программных строк будет составлять 1/2 секунды.
    Выполнение программы можно также замедлить при выборе опции
Throttle... из окна трассировки меню Program.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є          _WRAP =          є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Переход на новую строку
    Смотри также
    _ALIGNMENT, _INDENT, _LMARGIN, _PLOFFSET, _RMARGIN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Переменная _WRAP содержит логическое значение, которое определяет,
будет ли осуществляться автоматический переход на новую строку при вы-
воде данных. По умолчанию переменной _WRAP задано значение .F.
    Во всех случаях,  когда _WRAP задано значение .T., вывод данных по
команде  ?,  который  будет   распространяться   за   правую   границу
(_RMARGIN),   будет   автоматически   переноситься   к  левой  границе
(_LMARGIN) на новой строке.  Фактически,  переменной _WRAP должно быть
задано  значение .T.  перед тем,  как переменные _ALIGNMENT,  _INDENT,
_LMARGIN и _RMARGIN окажут влияние на вывод данных.



?????? ???????????