Команда BROWSE

Открывает окно просмотра.

Синтаксис:

BROWSE
	[FIELDS FieldList]
	[FONT cFontName [, nFontSize]]
	[STYLE cFontStyle]
	[FOR lExpression1 [REST]]
	[FORMAT]
	[FREEZE FieldName]
	[KEY eExpression1 [, eExpression2]]
	[LAST | NOINIT]
	[LOCK nNumberOfFields]
	[LPARTITION]
	[NAME ObjectName]
	[NOAPPEND]
	[NOCLEAR]
	[NODELETE]
	[NOEDIT | NOMODIFY]
	[NOLGRID] [NORGRID]
	[NOLINK]
	[NOMENU]
	[NOOPTIMIZE]
	[NOREFRESH]
	[NORMAL]
	[NOWAIT]
	[PARTITION nColumnNumber [LEDIT] [REDIT]]
	[PREFERENCE PreferenceName]
	[SAVE]
	[TIMEOUT nSeconds]
	[TITLE cTitleText]
	[VALID [:F] lExpression2 [ERROR cMessageText]]
	[WHEN lExpression3]
	[WIDTH nFieldWidth]
	[[WINDOW WindowName1]
	[IN [WINDOW] WindowName2 | IN SCREEN | IN MACDESKTOP]]
	[COLOR SCHEME nSchemeNumber
	| COLOR ColorPairList]

Параметры:
FIELDS FieldList
Задает поля, которые следует отобразить в окне просмотра. Поля выводятся в том порядке, в котором они приведены в списке FieldList. В список можно включать поля из других связанных таблиц. Перед именем такого поля нужно ставить псевдоним соответствующей таблицы с точкой.
Если предложение FIELDS опущено, будут отображены все поля таблицы в том порядке, в каком они расположены в рамках табличной структуры.
В списке полей можно указать любую комбинацию полей или вычисляемых полей.
Синтаксис списка полей:

FieldName1 
	[:R] 
	[:nColumnWidth]
	[:V = lExpression1 [:F] [:E = cMessageText]]
	[:P = cFormatCodes] 
	[:B = eLowerBound, eUpperBound [:F]]
	[:H = cHeadingText]
	[:W = lExpression2]
	[, FieldName2 [:R]...]

Вычисляемые поля:
В список полей могут входить операторы создания вычисляемых полей. Вычисляемое поле содержит данные в режиме "только для чтения", созданные с помощью выражения. Это выражение может носить произвольную форму, но непременно должно быть допустимым выражением Visual FoxPro.
Формат оператора, используемого для создания вычисляемого поля:
CalculatedFieldName = eExpression
В следующем примере создается вычисляемое поле location:

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE FIELD location = ALLTRIM(city) + ', ' + country

Здесь city и country имена полей выбранной в данное время таблицы.
Список полей предложения FIELDS включает опции, которые обеспечивают специальные виды обработки полей, отображаемых в окне просмотра:
:R
Устанавливает, что поле доступно только для чтения. Содержащиеся в нем данные можно будет просматривать, но не редактировать.
В следующем примере открывается окно просмотра с полями cust_id и company. Для поля cust_id установлен режим "только чтение", и это поле нельзя изменять.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE FIELD cust_id:R, company

:nColumnWidth
Задает размер отображения поля в столбцах. Значение параметра :nColumnWidth не влияет на размер поля в таблице; он только определяет внешний вид поля в окне просмотра.

:V = lExpression1 [:F] [:E = cMessageText]

Опция проверки (:V) позволяет выполнять в окне просмотра проверку достоверности данных на уровне поля. Если при выведении курсора из поля значение выражения lExpression1 есть "истина" (.T.), то помещенные в него данные считаются корректными и курсор переходит в следующее поле.
Если значение lExpression1 "ложь" (.F.), введенные данные считаются некорректными, курсор остается в поле и выдается сообщение. Если значение lExpression1 равно 0, введенные данные считаются некорректными и курсор остается в поле, но сообщение об ошибке не выдается.
По умолчанию значение lExpression1 вычисляется только при изменении поля. Чтобы принудительно выполнять проверку, задайте опцию :F.
Вы можете выдавать собственное сообщение об ошибке, задав опцию :E (см. ниже). Опция проверки не действует для memo-полей.
:F
Указывает, должно ли вычисляться выражение проверки при выводе курсора за пределы поля или при активизации другого окна. Если :F не задано, значение lExpression1 вычисляется только при внесении изменений в поле. Если :F задано, lExpression1 вычисляется даже в том случае, если поле не модифицируется.
:E = cMessageText
Если значение выражения :V = lExpression1 есть "истина", курсор выходит из поля. Если значение выражения "ложь", курсор остается в поле и Visual FoxPro выдает сообщение об ошибке
Если задана опция ошибки (:E), то вместо системного сообщения об ошибке появится cMessageText. Сообщение cMessageText выдается только в том случае, если командой SET NOTIFY установлено значение ON. Если включена установка SET BELL ON, раздается звуковой сигнал.
Если значение :V = lExpression1 равно 0, никакие сообщения не выдаются и курсор остается в проверяемом поле. Это дает вм возможность формировать собственные сообщения об ошибках в программах проверки достоверности
В следующем примере открывается таблица products и на экране появляются поля product_id и prod_name. Поле product_id числовое поле, которое может принять до пяти чисел. В данном примере product_id, превышающий 100, считается недопустимым.
Опция :V задает критерий проверки достоверности. Опция :F форсирует выполнение процерки достоверности независимо от того, изменялись данные или нет. Опция :E замещает системное сообщение об ошибке Visual FoxPro пользовательским сообщением об ошибке. В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh сообщение об ошибке появляется в строке состояния внизу основного окна Visual FoxPro.
Чтобы закрыть окно просмотра, нажмите клавишу Esc.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE products	&& Open products table
IF _WINDOWS OR _MAC
	SET STATUS BAR ON
ENDIF
USE products
BROWSE FIELDS in_stock :V = in_stock < 100 ;
	:F ;
	:E = 'The stock amount must be less than 100'

:P = cFormatCodes
Если используется предложение FIELDS, для каждого поля списка можно задать и опцию шаблона (:P). Эта опция позволяет создавать список кодов, контролирующих отображение и ввод данных для каждого поля в окне просмотра. cFormatCodes представляет собой список кодов.
Подробнее об использовании форматирующих кодов шаблонов см. описание команд @ ... GET и @ ... SAY. За исключением кода M, в предложениях PICTURE и FUNCTION можно использовать все функциональные форматирующие коды и коды шаблонов, предусмотренные командами @ ... GET и @ ... SAY.
В следующем примере применение опции шаблона позволяет обеспечить ввод в поле unit_price только числовых данных определенного формата:

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE products  && Open products table
BROWSE FIELDS unit_price :P = '99,999.99'

:B = eLowerBound, eUpperBound [:F]
Задает набор диапазонов, в которые должны попадать данные в поле. Граничные выражения eLowerBound и eUpperBound должны соответствовать типу данных поля и не могут быть функциями, определенными пользователем. Если введенные данные не попадают в интервал между eLowerBound и eUpperBound, выдается системное сообщение об ошибке, в котором приводится допустимый диапазон для данных.
По умолчанию вводимые данные проверяются на соответствие граничным условиям только в том случае, если в содержимое поля вносится изменение. Чтобы форсировать проверку граничных условий, задайте опцию форсирования проверки достоверности (:F).
В следующем примере данные поля in_stock должны попадать в диапазон от 1 до 100. Чтобы закрыть окно просмотра, нажмите клавишу Esc.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE products  && Open products table
BROWSE FIELDS in_stock :B = 1, 100 	:F

:H = cHeadingText
Замещает принимаемые по умолчанию имена полей названиями, которые вы задаете с помощью аргумента cHeadingText. По умолчанию в качестве заголовков столбцов в окне просмотра используются имена полей.
В следующем примере для отображенных полей предоставляются заголовки, определяемые пользователем.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE products  && Open products table
BROWSE FIELDS prod_name :H = 'Product Name:', ;
	unit_price :H = 'Price per Unit:'

:W = lExpression2
Вы можете запретить перемещение курсора в поле в зависимости от значения логического выражения lExpression2. Если значение lExpression2 есть "ложь" (.F.), перемещать курсор в поле запрещается. Если значение lExpression2 "истина" (.T.), курсор можно ввести в поле. В выражении lExpression2 допускаются функции, определенные пользователем.
Если курсор запрещено вводить во все поля, текущая запись помечается атрибутом "только для чтение". Это произойдет только в том случае, если для каждого поля указано предложение WHEN, дающее значение "ложь".
FONT cFontName [, nFontSize]
Задает шрифт окна просмотра и размер шрифта. Символьное выражение cFontName определяет имя шрифта, а числовое выражение nFontSize его размер. Например, приведенное ниже предложение задает 16-пунктовый шрифт Courier для полей в окне просмотра:

FONT 'Courier',16 

Если в предложении FONT не указан размер шрифта nFontSize, в окне просмотра используется шрифт размером в 10 пунктов. В Visual FoxPro и FoxPro для Windows используется 8-пунктовый шрифт MS Sans Serif, если предложение FONT опущено. В FoxPro для Macintosh используется 10-пунктовый шрифт Geneva.
В Visual FoxPro и FoxPro для Windows, если заданный шрифт отсутствует, его заменяет шрифт с похожими характеристиками.
В FoxPro для Macintosh, если заданный шрифт отсутствует, используется шрифт Chicago.
В FoxPro для MS-DOS предложение FONT игнорируется.
STYLE cFontStyle
Задает стиль шрифта окна просмотра в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh. Если опустить предложение STYLE, используется стиль Normal (Нормальный).
В Visual FoxPro, если заданный стиль шрифта отсутствует, его заменяет стиль с похожими характеристиками.
В FoxPro для Macintosh, если заданный стиль шрифта отсутствует, используется стиль Normal (Нормальный).
Предложение STYLE игнорируется в FoxPro для MS-DOS.

Символ	Стиль шрифта
B	Bold (Полужирный)
C	Condense (Уплотненный; только в FoxPro для Macintosh)
E	Extend (Расширенный; только в FoxPro для Macintosh)
I	Italic (Курсив)
N	Normal (Нормальный)
O	Outline (Контурный)
Q	Opaque (Непрозрачный)
S	Shadow (Затененный)
-	Strikeout (Перечеркнутый; только в Visual FoxPro и FoxPro для Windows)
T	Transparent (Прозрачный)
U	Underline (Подчеркнутый)

Можно задать комбинацию стилей шрифтов, указав несколько символов сразу. В следующем примере открывается окно просмотра и используется шрифт с подчеркиванием:

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
IF _WINDOWS
	BROWSE FIELDS contact FONT 'System', 15  STYLE 'NU'
ENDIF
IF _MAC
	BROWSE FIELDS contact FONT 'Geneva', 14  STYLE 'NU'
ENDIF

FOR lExpression1
Задает условие отображения в окне просмотра: отображаются только те записи, для которых значение выражения lExpression1 есть "истина".
Технология Rushmore оптимизирует запрос, выполняемый командой BROWSE FOR, если lExpression1 представляет собой оптимизируемое выражение. Для повышения производительности пользуйтесь в предложениях FOR только оптимизируемыми выражениями. Подробнее о выражениях, оптимизируемых по технологии Rushmore, см. темы SET OPTIMIZE и Основы технологии Rushmore или главу 17 "Оптимизация приложений" Руководства разработчика.
Предложение FOR позволяет подвести указатель записи к первой записи, удовлетворяющей условию. С помощью предложения REST указатель записи сохраняется в текущей позиции.
REST
Предотвращает перемещение указателя записи из текущей позиции к началу таблицы, когда окно просмотра открывается с предложением FOR. В противном случае команда BROWSE по умолчанию устанавливает указатель записи в начало таблицы.
FORMAT
Задает использование файла формата для контроля формата отображения и ввода данных в окне просмотра. Файл формата нужно предварительно открыть с помощью команды SET FORMAT. Приведенная ниже информация извлекается из файла формата и применяется для оформления окна просмотра:

Список полей для просмотра
Все предложения VALID
Все предложения WHEN
Все предложения RANGE
Размеры полей (определенные в предложениях PICTURE)
Все выражения SAY (заданные как вычисляемые поля BROWSE)

В следующем примере файл формата используется для проверки достоверности данных, введенных в окно просмотра. Позиции, заданные командой @ ... GET, игнорируются.

@ 3,0 GET cust_id PICTURE 'NNNNN'
@ 3,0 GET company VALID company != SPACE(40) ;
	PICTURE 'AAAAAAAAAAAAAAAAAAAA'
@ 3,0 GET contact WHEN contact = SPACE(40)

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
SET FORMAT TO custentr.fmt
BROWSE FORMAT

FREEZE FieldName

Разрешает вносить изменения только в одно поле в окне просмотра. Это поле задается аргументом FieldName. Остальные поля только отображаются и не могут редактироваться.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE FIELDS phone :H = 'Phone Number:' , ;
	company :H = 'Company:' ;
	FREEZE phone

В первой строке создается поле BROWSE (cust_id) шириной в пять символов и обеспечивается ввод только букв и цифр. Во второй строке создается поле BROWSE (company), в котором запрещены пустые значения и которое может содержать не более 20 буквенных символов.
В третьей строке создается поле BROWSE (contact), в которое можно вводить данные, только когда оно пусто. В последней строке создается вычисляемое поле (используется команда @ ... SAY), где в 20-символьном формате отображается содержимое полей city и country с удаленными пробелами.
KEY eExpression1 [, eExpression2]
Ограничивает диапазон записей, отображаемых в окне просмотра. Предложение KEY позволяет задать значение ключа индекса (eExpression1) или диапазон значений ключа (eExpression1, eExpression2) для записей, отображаемых в окне просмотра. Просматриваемая таблица должна быть индексирована, а значение (значения) ключа индекса, указанное в предложении KEY, должно иметь тот же тип данных, что и индексное выражение главного файла индекса или тега.
Например, таблица customer включает символьное поле, содержащее почтовые коды. Если таблица индексирована по полю почтового кода, можно задать диапазон почтовых кодов в предложении KEY.
Следующий пример показывает, как отобразить в окне просмотра только те записи, почтовые коды которых попадают в диапазон от 10000 до 30000:

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
SET ORDER TO postalcode
BROWSE KEY '10000', '30000'

LAST | NOINIT
Сохраняет все конфигурационные изменения, внесенные в оформление окна просмотра. Эти изменения сохраняются в файле FOXUSER и могут затрагивать список полей, размер каждого поля, а также расположение и размер окна просмотра.
Если выдать команду BROWSE с предложением LAST или NOINIT, окно просмотра откроется в той же конфигурации, что была сохранена в последний раз в файле FOXUSER, при условии, что действует установка SET RESOURCE ON. Тем самым восстанавливается предыдущая конфигурация окна просмотра, созданная последней командой BROWSE. Если последняя команда BROWSE, выданная в окне команд, включала длинный список предложений, выдайте команду BROWSE с опцией LAST или NOINIT и вам не понадобится заново набирать всю команду. Подробнее о файле FOXUSER см. тему SET RESOURCE.
Если последнее окно просмотра было открыто по команде BROWSE с предложением PREFERENCE, то команда BROWSE LAST не будет восстанавливать эти настройки.
Никакие изменения конфигурации окна просмотра, внесенные в ходе текущего сеанса, не будут сохранены, если для выхода из BROWSE были нажаты клавиши Ctrl+Q.
Предложения LAST и NOINIT идентичны; NOINIT предусмотрено для совместимости с dBASE.
LOCK nNumberOfFields
Задает количество полей, которые можно увидеть в левом разделе окна просмотра без табулирования или прокрутки. Размер левого раздела автоматически устанавливается таким, чтобы отобразить заданное число полей.
LPARTITION
Указывает, что курсор помещается в первом поле левого раздела окна просмотра. По умолчанию при открытии окна просмотра курсор помещается в первое поле правого раздела.
NAME ObjectName
Допустимо только в Visual FoxPro.
Создает ссылку на окно просмотра как на объект, что позволяет манипулировать окном просмотра, используя объектно-ориентированные свойства элемента управления Grid. Подробнее об объектно-ориентированном программировании в Visual FoxPro см. главу 3 "Объектно-ориентированное программирование" Руководства разработчика. Подробнее о свойствах элемента управления Grid, которые можно задать для окна просмотра, созданного с помощью предложения NAME, см. тему Элемент управления Grid.
NOAPPEND
Запрещает пользователю добавлять записи в таблицу нажатием клавиш Ctrl+Y в Visual FoxPro, Ctrl+N в ранних версиях FoxPro или выбором команды Append Record из меню Table в Visual FoxPro или Browse в ранних версиях FoxPro.
Важное замечание. Предложение NOAPPEND не помешает вам добавить запись в подпрограмме (созданной командами VALID, WHEN или ON KEY LABEL) во время работы в окне просмотра.
NOCLEAR
В FoxPro для MS-DOS оставляет на экране изображение окна просмотра после его закрытия. Это изображение не является активным окном просмотра. Чтобы удалить его, воспользуйтесь командой CLEAR.
В Visual FoxPro, FoxPro для Windows, FoxPro для Macintosh предложение NOCLEAR игнорируется.
NODELETE
Запрещает помечать записи на удаление в окне просмотра. По умолчанию, чтобы пометить запись на удаление, нужно нажать клавиши Ctrl+T, выбрать команду Toggle Delete в меню Table в Visual FoxPro или в меню Browse в ранних версиях FoxPro или щелкнуть самый левый столбец удаляемой записи.
Важное замечание. Предложение NODELETE не помешает вам пометить запись на удаление в подпрограмме (созданной командами VALID, WHEN или ON KEY LABEL) во время работы в окне просмотра.
NOEDIT | NOMODIFY
Не позволяет пользователю модифицировать таблицу. Предложения NOEDIT и NOMODIFY идентичны. Если задано любое из них, вы можете просматривать таблицу или вести в ней поиск, но не редактировать. Впрочем, можно также добавлять и удалять записи.
NOLGRID
Удаляет линии сетки полей в левом разделе окна просмотра.
NORGRID
Удаляет линии сетки полей в правом разделе окна просмотра.
NOLINK
Разъединяет разделы окна просмотра. По умолчанию левый и правый разделы окна просмотра связаны между собой, так что при прокручивании одного раздела вместе с ним прокручивается и другой раздел.
NOMENU
Удаляет заголовок меню Table в Visual FoxPro или Browse в ранних версиях FoxPro из системной строки меню, закрывая доступ к меню Browse.
NOOPTIMIZE
Блокирует оптимизацию команды BROWSE по технологии Rushmore. Подробнее об этом см. темы SET OPTIMIZE, Основы технологии Rushmore или главу 17 "Оптимизация приложений" Руководства разработчика.
NOREFRESH
Запрещает регенерацию окна просмотра. Окна просмотра регенерируются с частотой, устанавливаемой командой SET REFRESH. Опция NOREFRESH используется при работе с файлами в режиме "только чтение" и повышает производительность.
NORMAL
Открывает окно просмотра с его стандартными установками, принимаемыми по умолчанию, такими как цвета, размер, позиция, заголовок, управляющие опции (GROW, FLOAT, ZOOM и т.д.). Если предложение NORMAL опущено, а текущее окно вывода определено пользователем со своими собственными установками, окно просмотра также принимает эти установки, определенные пользователем.
NOWAIT
Продолжает выполнение программы сразу после открытия окна просмотра. Программа не ждет, когда окно просмотра будет закрыто, а продолжает выполняться со строки, непосредственно следующей за строкой с командой BROWSE NOWAIT. Если при выдаче BROWSE в программе предложение NOWAIT опущено, окно просмотра откроется и выполнение программы будет приостановлено до закрытия окна просмотра.
Предложение NOWAIT можно задавать только в программе. Включение NOWAIT при выдаче BROWSE в окне команд останется без последствий.
PARTITION nColumnNumber
Разбивает окно просмотра на левый и правый разделы, причем nColumnNumber задает номер столбца линии разбиения. Например, если nColumnNumber равен 20, линия разбиения пройдет по столбцу 20 окна просмотра.
LEDIT
Задает для левого раздела окна просмотра режим редактирования.
REDIT
Задает для правого раздела окна просмотра режим редактирования. В следующем примере окно просмотра открывается с линией разбиения в столбце 20 и с правым разделом в режиме редактирования.
Чтобы открыть оба раздела в режиме редактирования, нужно указать оба ключевых слова.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE PARTITION 20 REDIT

PREFERENCE PreferenceName
Сохраняет атрибуты и опции окна просмотра для дальнейшего использования. В отличие от предложения LAST, восстанавливающего окно просмотра в том виде, какой оно имело в ходе предыдущего сеанса, PREFERENCE сохраняет атрибуты окна просмотра в файле ресурсов FOXUSER на неопределенное время. Настройки можно восстановить в любой момент.
Когда команда BROWSE выдается в первый раз с данным именем настройки, в файле FOXUSER создается элемент, сохраняющий конфигурацию окна просмотра. Впоследствии при выдаче BROWSE с тем же именем настройки окно просмотра будет восстанавливаться согласно этой настройке. При закрытии окна просмотра настройка обновляется.
Имена настройки могут быть длиной до 10 символов, должны начинаться с буквы или символа подчеркивания и могут содержать буквы, цифры и символы подчеркивания в любом сочетании.
Создав желаемую настройку, можно сделать так, чтобы она не изменялась. Закройте окно просмотра, выдайте команду SET RESOURCE OFF, откройте файл FOXUSER как таблицу и измените запись, содержащую настройку на "только чтение", установив для логического поля.
READONLY значение "истина" (.T.).
Подробнее о файле ресурсов FOXUSER см. тему SET RESOURCE.
Если выйти из окна просмотра, нажав клавиши Ctrl+Q, никакие изменения окна просмотра не будут сохранены в файле ресурсов.
REST
Запрещает перемещение указателя записи с текущей позиции в начало таблицы. По умолчанию команда BROWSE устанавливает указатель записи на начало таблицы.
SAVE
Сохраняет окно просмотра и все окна редактирования текста memo-полей активными и видимыми (открытыми). Вы можете вернуться в окно просмотра, пройдя в цикле по цепочке открытых окон с помощью клавиатуры или мыши.
Предложение SAVE можно задавать только в программе. Если выдать команду BROWSE с предложением SAVE в окне команд, это не даст никакого эффекта, поскольку состояние BROWSE SAVE в интерактивном режиме всегда принимается по умолчанию.
TIMEOUT nSeconds
Определяет, как долго окно просмотра ждет ввода. Числовое выражение nSeconds задает, сколько секунд окно просмотра может ждать ввода данных, пока не закроется автоматически.
Опцию TIMEOUT можно задавать только в программе; если указать ее при выдаче BROWSE в окне команд, это не даст никакого эффекта. В следующем примере окно просмотра закрывается, если ввод не поступает в течение 10 секунд.

DEFINE WINDOW wBrowse FROM 1,1 TO 24,40 ;
	CLOSE ;
	GROW ;
	COLOR SCHEME 10
CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE WINDOW wBrowse ;
	FIELDS phone :H = 'Phone Number:' , ;
	company :H = 'Company:' ;
	TIMEOUT 10
RELEASE WINDOW wBrowse

TITLE cTitleText
Заменяет принимаемые по умолчанию имя или псевдоним таблицы, появляющиеся в строке заголовка окна просмотра, на заголовок, заданный текстом c TitleText. Иначе в строке заголовка появится имя или псевдоним просматриваемой таблицы.
Если выдать команду BROWSE WINDOW, чтобы поместить окно просмотра в окно, определенное пользователем, заголовок пользовательского окна будет заменен заголовком окна просмотра.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
BROWSE;
	TITLE 'My Browse Window' ;
	FIELDS phone :H = 'Phone Number' , ;
	company :H = 'Company:'

VALID lExpression2
Выполняет в окне просмотра проверку достоверности на уровне записи. Предложение VALID выполняется только в том случае, если в запись внесено изменение, а вы пытаетесь перевести курсор в другую запись. Предложение VALID не выполняется, если изменение внесено только в memo-поле.
Если VALID возвращает значение "истина" (.T.), пользователь может перевести курсор в другую запись. Если VALID возвращает "ложь" (.F.), курсор остается в текущем поле и Visual FoxPro выдает сообщение об ошибке. Если VALID возвращает 0, курсор остается в текущем поле и сообщение об ошибке не выдается.
Предложение VALID не следует путать с опцией верификации (:V), которая осуществляет проверку достоверности на уровне поля.
:F
Форсирует выполнение предложения VALID до того, как пользователь переведет курсор в следующую запись. В этом случае VALID выполняется даже тогда, когда запись не изменялась.
ERROR cMessageText
Задает текст сообщения об ошибке, отменяющего сообщение, принятое в системе по умолчанию. Visual FoxPro отображает сообщение cMessageText, когда предложение VALID возвращает значение "ложь" (.F.).
WHEN lExpression3
Проверяет данное условие при переводе курсора в другую запись. Если значением выражения lExpression3 оказывается "истина" (.T.), пользователь может модифицировать запись, в которую он перешел. Если значение lExpression3 есть "ложь" (.F.) или 0, запись, в которую произошел переход, становится доступной только для чтения и не может быть модифицирована.
Предложение WHEN не выполняется, когда активизируется еще одно окно.
WIDTH nFieldWidth
Устанавливает верхнюю границу общего количества символов, отображаемых в поле окна просмотра, равной nFieldWidth. Содержимое поля можно прокручивать в горизонтальном направлении с помощью клавиш стрелка влево и стрелка вправо, а также используя горизонтальную линейку прокрутки. Включение предложения WIDTH не изменяет размера полей в таблице ѕ изменяется только способ их отображения в окне просмотра. Если для какого-либо поля с помощью предложения FIELDS задана индивидуальная ширина, она отменяет для этого поля значение ширины, определенной предложением WIDTH.
WINDOW WindowName1
Задает определенное пользователем окно, характеристики которого принимает окно просмотра. Например, если пользовательское окно создано с указанием предложения FLOAT, окно просмотра можно перемещать. Заданное окно не обязательно должно быть активным или видимым, но его нужно определить. Если в FoxPro для MS-DOS окно определено с нижним колонтитулом, он не будет показан: его место занимает линейка прокрутки окна просмотра.
IN [WINDOW] WindowName2
Задает родительское окно, внутри которого открывается окно просмотра. Окно просмотра не принимает характеристики родительского окна. Окно просмотра, активизируемое в родительском окне, нельзя переместить за пределы последнего. Если передвигать родительское окно, вместе с ним перемещается и окно просмотра.
Чтобы получить доступ к окну просмотра, сначала нужно определить родительское окно с помощью команды DEFINE WINDOW и сделать его активным и видимым.
IN SCREEN
Явно помещает окно просмотра в основное окно Visual FoxPro, когда активно окно, определенное пользователем.
IN MACDESKTOP
Доступно только в FoxPro для Macintosh.
Помещает окно просмотра в основное окно Macintosh. Окно просмотра располагается на том же уровне, что и основное окно FoxPro. Окно просмотра можно вынести из основного окна FoxPro, а последнее можно перевести на передний план поверх окна просмотра. Если задано предложение MACDESKTOP, окно просмотра будет вести себя точно так же, как окна просмотра в FoxBASE+для Macintosh.
Предложение MACDESKTOP отменяет текущую установку SET MACDESKTOP. Эта установка определяет, должны окна просмотра размещаться в основном окне FoxPro или на "рабочем столе" Macintosh в тех случаях, когда предложения SCREEN или MACDESKTOP не заданы. Подробнее о размещении окон просмотра в основном окне FoxPro или на "рабочем столе" Macintosh см. тему SET MACDESKTOP.
COLOR SCHEME nSchemeNumber
Определяет номер цветовой схемы, используемой в окне просмотра. В FoxPro для MS-DOS окно просмотра по умолчанию использует цвета, заданные цветовой схемой 10 (Browse).
В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh в окне просмотра действует цветовая схема, установленная на панели управления цветами Windows.
COLOR ColorPairList
Задает набор цветовых пар, используемых в окне просмотра. Ниже приводится таблица, в которой показывается, какой элемент контролирует каждая цветовая пара в FoxPro для MS-DOS.

Номер цветовой пары	Элемент окна просмотра
1			Другие записи
2			Текущее поле
3			Рамка
4			Цвет заголовка активного окна просмотра
5			Цвет заголовка, когда активно другое окно
6			Выделенный текст
7			Текущая запись
8			Затенение

В FoxPro для MS-DOS второй цвет цветовой пары 1 определяет цвет фона прямоугольной сетки, а второй цвет пары 3 основной цвет сетки.

Комментарии
Окно просмотра дает возможность просматривать записи в таблице, редактировать их и присоединять дополнительные записи. В Visual FoxPro одновременно можно иметь несколько окон просмотра.
Если вы нажимаете клавишу Esc, чтобы выйти из окна просмотра, изменения, внесенные в последнее модифицированное поле, не аннулируются. Однако если вы после модификации поля перешли в другую запись, внесенные в поле изменения сохраняются.
О том, как ориентироваться в окне просмотра и как редактировать и сохранять записи, см. тему Перемещение по таблице и главу 3 "Создание таблиц" Руководства пользователя.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.