Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Команда 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 fox90001.gif имена полей выбранной в данное время таблицы.

Список полей предложения 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 fox90001.gif "ложь" (.F.), введенные данные считаются некорректными, курсор остается в по е и выдается сообщение. Если значение lExpression1 равно 0, введенные данные считаются некорректными и курсор остается в поле, о сообщение об ошибке не выдается.

По умолчанию значение lExpression1 вычисляется только при изменении поля. Чтобы принудительно выполнять прове ку, задайте опцию :F.

Вы можете выдавать собственное сообщение об ошибке, задав опцию :E (см. ниже). Опция проверки не действует для memo-полей.

:F

Указывает, должно ли вычисляться выражение проверки при выводе курсора за пре елы поля или при активизации другого окна. Если :F не задано, значение lExpression1 вычисляется только при внесении изменений в поле. Если :F задано, lExpression1 вычисляется даже в том случае, если поле не модифицируется.

:E = cMessageText

Если значение выражения :V = lExpression1 есть "истина", курсор выходит из поля. Если значение выражения fox90001.gif "ложь", курсор остается в поле и Visual FoxPro выдает сообщение об ошибке

Если задана опция ошибки (:E), то вместо системного сообщения об ошибке появится cMessageText. Сообщение cMessageText выдается только в том случае, если командой SET NOTIFY установлено значение ON. Если включена установка SET BELL ON, раздается звуковой сигнал.

Если значение :V = lExpression1 равно 0, никакие сообщения не выдаются и курсор остается в проверяемом поле. Это дает вм возможность формировать собственные сообщения об ошибках в прог аммах проверки достоверности.

В следующем примере открывается таблица products и на экране появляются поля product_id и prod_name. Поле product_id fox90001.gif числовое поле, которое может принять до пяти чисел. В данном примере 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 fox90001.gif "истина" (.T.), курсор можно ввести в поле. В выражении lExpression2 допускаются функции, определенные пользователем.

Если курсор запрещено вводить во все поля, текущая запись помечается атрибутом "только для чтение". Это произойдет только в том случае, если для каждого поля указано предложение WHEN, дающее значение "ложь".

FONT cFontName [, nFontSize]

Задает шрифт окна просмотра и размер шрифта. Символьное выражение cFontName определяет имя шрифта, а числовое выражение nFontSize fox90001.gif его размер. Например, приведенное ниже предложение задает 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. Приведенная ниже информация извлекается из файла формата и п именяется для оформления окна просмотра:

fox90000.gif Список полей для просмотра

fox90000.gif Все предложения VALID

fox90000.gif Все предложения WHEN

fox90000.gif Все предложения RANGE

fox90000.gif Размеры полей (определенные в предложениях PICTURE)

fox90000.gif Все выражения SAY (заданные как вычисляемые поля BROWSE)

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

В первой строке создается поле BROWSE (cust_id) шириной в пять символов и обеспечивается ввод только букв и цифр. Во второй строке создается поле BROWSE (company), в котором запрещены пустые значения и которое может содержать не более 20 уквенных символов.

В третьей строке создается поле BROWSE (contact), в которое можно вводить данные, только когда оно пусто. В последней строке создается вычисляемое поле (используется команда @ ... SAY), где в 20-символь ом формате отображается содержимое полей city и country с удаленными пробелами.

Ниже приводится содержимое файла формата CUSTENTR.FMT, который используется д я проверки достоверности данных, введенных в таблицу customer:

@ 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

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

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

Если выдать команду 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 не изменяет размера полей в таблице fox90001.gif изменяется только способ их отображения в окне просмотра. Если для какого-ли о поля с помощью предложения 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 fox90001.gif основной цвет сетки.

Комментарии

Окно просмотра дает возможность просматривать записи в таблице, редактировать их и присоединять дополнительные записи. В Visual FoxPro одновременно можно иметь несколько окон просмотра.

Если вы нажимаете клавишу Esc, чтобы выйти из окна просмотра, изменения, внесе ные в последнее модифицированное поле, не аннулируются. Однако если вы после модификации поля перешли в другую запись, внесенные в поле изменения сохраняются.

О том, как ориентироваться в окне просмотра и как редактировать и сохранять записи, см. тему Перемещение по таблице и главу 3 "Создание таблиц" Руководства пользователя.

Поддержка команды SET SKIP

Команда SET SKIP позволяет установить многозначное отношение между двумя таб ицами. Каждой записи родительской таблицы могут быть сопоставлены несколько связанных с ней записей в дочерней таблице. Если вы создали отношение один-ко-м огим, с помощью команды BROWSE можно просматривать записи как в родительской таб ице, так и в дочерней.

Родительская запись отображается один раз, вместе с первой соответствующей ей записью из дочерней таблицы. Остальные связанные записи отображаются в строках, следующих за родительской записью и первой дочерней записью.

В FoxPro для MS-DOS во всех столбцах, содержащих информацию из родительской та лицы, вне первой соответствующей записи отображаются затененные блоки.

В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh вид символа-запол ителя для повторяющейся родительской информации зависит от текущего шрифта окна просмотра.

Если указатель записи установлен на родительской записи, его можно передвигать на другие родительские записи, нажимая клавиши CTRL+СТРЕЛКА ВНИЗ (переход к следующей родительской записи) или CTRL+СТРЕЛКА ВВЕРХ (переход к предыдущей родительской записи). Подробнее о создании отношений оди -ко-многим см. описание команды SET SKIP.

Ниже приведен пример использования команды SET SKIP для создания отношения оди -ко-многим между двумя таблицами. В родительской таблице (customer) имеется одна запись. В дочерней таблице (orders) содержится по нескольку записей для каждой записи родительской таблицы. Пос е создания отношения открывается окно просмотра, содержащее записи и из родите ьской, и из дочерней таблиц.

Список полей в предложении FIELDS включает записи как из родительской, так и из дочерней таблиц. Имена полей предваряются псевдонимом соответствующей таблицы (orders или customer) и точкой.

CLEAR

CLOSE DATABASES

OPEN DATABASE (HOME( ) + 'samples\data\testdata')

USE customer ORDER cust_id IN 0 && Parent table

USE orders ORDER cust_id IN 0 && Child table

SELECT customer && Back to parent work area

SET RELATION TO cust_id INTO orders && Establish relationship

SET SKIP TO orders && One-to-many relationship

WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT

BROWSE FIELDS customer.cust_id :H='Customer Number', ;

customer.city :H='Customer City', orders.shipped_on

Рекомендуемые функции

Ряд функций Visual FoxPro возвращают полезную информацию об окне просмотра.

Функция
Описание
VARREAD( )
Возвращает имя поля, содержащего курсор, для активного окна просмотра.
RECNO( )
Возвращает номер выбранной записи в активном окне просмотра.
ROW( )
Возвращает позицию курсора по строкам в активном окне просмотра.
COL( )
Возвращает позицию курсора по столбцам в активном окне просмотра.



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.