Разрешает или запрещает вычисление значения полей, переменных, элементов массивов, функций и выражений, которые заключены в разделители, определяющие границы для слияния текста, а также определяет, куда направлять вывод результатов слияния текста.
SET TEXTMERGE [ON | OFF] [TO [FileName] MEMVAR VarName [ADDITIVE]] |
Параметры
- ON
- Определяет, что поля, переменные, элементы массивов, функции и выражения, заключенные в разделители, задающие границы слияния текста вычисляются и выводятся, если они помещены в строках после символов \ или \\, либо в строках, находящихся между командами TEXT и ENDTEXT. Следующий короткий пример программы показывает, как содержимое переменной
gcTodayDate
и значения, возвращаемые функциями DATE( ) и TIME( ) вычисляются, когда командой SET TEXTMERGE задана установка ON. ПеременнаяgcTodayDate
, функции DATE( ) и TIME( ) вычисляются потому, что они заключены в разделители, задающие границы текстового слияния и команда SET TEXTMERGE задает установку ON.Скопировать код CLEAR
SET TALK OFF
STORE 'Сегодня: ' TO gcTodayDate
SET TEXTMERGE ON
\<<gcTodayDate>>
\\<<DATE( )>>
\Время:
\\ <<TIME( )>>Скопировать код Сегодня: 01/01/98
Время: 10:55:19
- OFF
- (По умолчанию) Определяет, что поля, переменные, элементы массивов, функции и выражения выводятся так, как они записаны вместе с окружающими их разделителями, задающими границы слияния текста. Отметьте разницу в выводе результатов по сравнению с предыдущим примером когда командой SET TEXTMERGE задана установка OFF:
Скопировать код CLEAR
SET TALK OFF
STORE 'Сегодня: ' TO gcTodayDate
SET TEXTMERGE OFF
\<<gcTodayDate>>
\\<<DATE( )>>
\Время:
\\ <<TIME( )>>Скопировать код <<gcTodayDate>><<DATE( )>>
Время: <<TIME( )>>
- TO [ FileName]
- Определяет что вывод из строк, начинающихся символами \, \\ или находящихся между командами TEXT ... ENDTEXT направляется в текстовый файл. Помимо основного окна Visual FoxPro, куда текст по умолчанию направляется всегда, вы также можете направить вывод в текстовый файл, указав его имя в FileName. Если файл с указанным именем не существует, будет создан новый файл. Если файл с таким именем уже имеется и командой SET SAFETY задана установка ON, вы получите возможность перезаписать существующий файл. Текстовый файл открывается на низком уровне (low-level) и его дескриптор (handle) запоминается в системной переменной _TEXT. Вы можете закрыть файл, использовав команду SET TEXTMERGE TO без дополнительных аргументов. Если в системной переменной _TEXT ранее был запомнен дескриптор другого файла, этот файл будет закрыт.
- MEMVAR VarName
- Определяет имя переменной, в которую направляются результаты, получаемые при выводе посредством TEXTMERGE. Поскольку команда SET TEXTMERGE имеет глобальный диапазон действия и может распространяться на несколько процедур или методов, переменная, указанная в MEMVAR VarName может оказаться в некоторых из них недоступной. Но и в этом случае команда будет выполняться, ничего не направляя на вывод. Вы можете управлять видимостью MEMVAR VarName, объявляя переменную как PUBLIC или PRIVATE (а также LOCAL - прим. переводчика). Эта фраза может также приводить к рекурсии, которую вы можете предотвратить при помощи команды SET TEXTMERGE TO, как показано в в следующем примере:
Скопировать код USE LABELS
STORE "" to myVar, myVar2
SET TEXTMERGE ON TO MEMVAR myVar && Выполнение TEXTMERGE начинается со следующей строки
\Hey Now
\<<date()>>
SCAN
\ <<name>>
ENDSCAN
* Удалите комментарий со строки, содержащей SET TEXTMERGE TO предотвращая ошибку рекурсии
* с переменными myVar и myVar2.
* SET TEXTMERGE TO
TEXT TO myVar2
<b> Здесь кое-что на HTML. </b>
Это HTML
<<date()>>
ENDTEXT
SET TEXTMERGE OFF
USE
CLEAR
? myVar && Результат TEXTMERGE помещен в переменные
? myVar2
- ADDITIVE
- WINDOW WindowName
- Определяет что вывод из строк, начинающихся символами \, \\ или находящихся между командами TEXT ... ENDTEXT направляется в определенное пользователем окно, а не в главное окно Visual FoxPro, как это принято по умолчанию. WindowName определяет имя окна, в которое направляется вывод. Окно должно быть создано командой DEFINE WINDOW перед тем, как в него будет направлен вывод. Окно обязательно должно быть активным или видимым.
- SHOW | NOSHOW
- (По умолчанию) SHOW делает видимым вывод результатов текстового слияния. NOSHOW подавляет вывод результатов. По умолчанию вывод, формируемый командами \, \\ и TEXT ... ENDTEXT посылается в главное окно Visual FoxPro или активное окно, определенное пользователем.
Замечания
Команды \, \\ и TEXT ... ENDTEXT используются для слияния текста с содержимым таблиц, переменных, элементов массивов, значений, возвращаемых функциями и выражений. Если поле, переменная, элемент массива, функция или выражение заключено в ограничители, определяющие текстовое слияние (по умолчанию << и >>), оно может быть вычислено и слито с текстом. Эта возможность позволяет вам создавать письма, программы и шаблоны для создания программ.
Коменда SET TEXTMERGE определяет, как вычисляются поля, переменные, элементы массива, функции или выражения, заключенные в ограничители, определяющие текстовое слияние. Она также позволяет вам направлять вывод в главное окно Visual FoxPro, окно, определенное пользователем или в файл.
Поля типа memo также могут служить источником для текстового слияния. Если поле memo содержит имена полей, переменных, элементов массива, функций или выражений, заключенных в ограничители, определяющие текстовое слияние, их значения вычисляются и результат сливается с содержимым поля типа memo. Само поле типа memo также должно быть заключено в ограничители, определяющие текстовое слияние.
См.также
Системная переменная _PRETEXT
Команда SET TEXTMERGE DELIMITERS
Функция TEXTMERGE( )
Команда TEXT ... ENDTEXT
Команды
Справка по языку