Новости



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

Команда EDIT

См. также Пример

Отображает поля для редактирования.

Синтаксис

EDIT
[FIELDS FieldList]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[FREEZE FieldName]
[KEY eExpression1 [, eExpression2]]
[LAST | NOINIT]
[LPARTITION]
[NAME ObjectName]
[NOAPPEND]
[NOCLEAR]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLINK]
[NOMENU]
[NOOPTIMIZE]
[NORMAL]
[NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName]
[REST]
[SAVE]
[TIMEOUT nSeconds]
[TITLE cTitleText]
[VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4]
[WIDTH nFieldWidth]
[[WINDOW WindowName1]
[IN [WINDOW] WindowNam2 | 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

EDIT FIELD location = ALLTRIM(city) + ', ' + country

В состав списка полей предложения FIELDS может входить восемь опций, которые о еспечивают специальные виды обработки для полей, отображаемых в окне редакти ования.

:nColumnWidth

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

:R

В следующем примере открывается окно редактирования с полями cust_id и company. Поле cust_id доступно только для чтения и не может быть изменено.

CLOSE DATABASES

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

USE customer && Open customer table

EDIT FIELD cust_id:R, company

:V = lExpression1

Задает опцию проверки, в соответствии с которой в окне редактирования выпол яется проверка достоверности данных на уровне поля. Если выражение lExpression1 имеет значение "истина" (.T.) в момент выведения курсора из данного поля, то анные, записанные в это поле, считаются правильными и курсор переходит в сле ующее поле.

Если выражение lExpression1 имеет значение "ложь" (.F.), введенные данные считаются некорректными, курсор остается в поле и выдается сообщение об ошибке. Если значение lExpression1 равно 0, введенные данные также считаются некорректными и курсор остается в поле, но сообщение об ошибке не выдается.

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

Опция :E позволяет вам выдавать собственное сообщение об ошибке.

Опция проверки не действует для memo-полей.

:F

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

:E = cMessageText

Отображает сообщение об ошибке cMessageText вместо системного сообщения, выдаваемого по умолчанию.

Если выражение проверки достоверности :V = lExpression1 имеет значение "истина" (.T.), курсор выходит из поля без проблем. Если это в ражение имеет значение "ложь" (.F.), курсор остается в поле и выдается сообще ие об ошибке.

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

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

В следующем примере открывается таблица products и отображаются поля product_id и prod_name. Чтобы выполнить проверку достоверности поля 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

EDIT FIELDS in_stock :V = in_stock < 100 ;

:F ;

:E = 'The stock amount must be less than 100'

:P = cFormatCodes

Задает опцию шаблона, которая позволяет создать шаблон редактирования в виде кодов cFormatCodes, управляющих отображением и вводом данных для каждого поля в окне редактирова ия.

Подробнее о применении шаблонов с кодами редактирования см. описание команд @ ... GET и @ ... SAY. В предложениях PICTURE и FUNCTION можно использовать все функциональные коды и коды шаблонов, допустимые для команд @ ... GET и @ ... SAY, за исключением кода M.

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

CLOSE DATABASES

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

USE products && Open products table

EDIT FIELDS unit_price :P = '99,999.99'

:B = eLowerBound, eUpperBound [:F]

Задает набор граничных значений для данных. Выражения границ eLowerBound и eUpperBound должны иметь тот же тип, что и поле; в качестве этих выражений нельзя за авать пользовательские функции. Если введенные данные не попадают в диапазон между eLowerBound и eUpperBound, выдается системное сообщение, содержащее диапазон, который следует соблюдать.

По умолчанию введенные данные проверяются на нарушение граничных значений то ько при внесении изменений в содержимое поля. Чтобы форсировать проверку соблюде ия граничных значений, задайте опцию принудительной проверки достоверности (:F).

В следующем примере определяется допустимый диапазон значений в поле in_stock : от 1 до 100. Введите в это поле значение, меньшее 1, чтобы выполнить прове ку граничных значений. Чтобы закрыть окно редактирования, нажмите клавишу Esc.

CLOSE DATABASES

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

USE products && Open products table

EDIT FIELDS in_stock :B = 1, 100 :F

:H = cHeadingText

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

В следующем примере для отображаемых полей задаются заголовки, определяемые по ьзователем.

CLOSE DATABASES

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

USE products

EDIT FIELDS prod_name :H = 'Product Name:', ;

unit_price :H = 'Price per Unit:'

:W = lExpression2

Задает опцию WHEN, с помощью которой можно запретить вводить курсор в поле, в зависимости от значения логического выражения lExpression2. Опция (:W) вычисляет значение lExpression2. Если lExpression2 имеет значение "ложь" (.F.), вы не сможете вводить курсор в поле. Если lExpression2 имеет значение "истина" (.T.), курсор можно вводить в поле. Выражение lExpression2 поддерживает пользовательские функции.

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

Scope

Задает диапазон записей, отображаемых в окне редактирования. Диапазон опреде яется следующими предложениями: ALL, NEXT nRecords, RECORD nRecordNumber и REST. Подробнее о предложениях диапазона см. тему Предложения диапазона или главу 2 "Overview of the Language" Руководства разработчика. Команды, использующие предложение Scope, воздействуют только на таблицу в активной рабочей области.

По умолчанию областью действия команды EDIT являются все записи (предложение ALL).

FOR lExpression1

Задает отображение в окне редактирования только записей, удовлетворяющих огическому условию lExpression1. Это позволяет отфильтровывать ненужные записи.

Технология Rushmore оптимизирует запрос EDIT FOR, если lExpression1 является оптимизируемым выражением. В целях достижения наилучшей производите ьности используйте в предложении FOR оптимизируемое выражение. О выражениях, опускающих оптимизацию по технологии Rushmore, см. темы SET OPTIMIZE и Основы технологии Rushmore и главу 17 "Оптимизация приложений" Руководства разработчика.

WHILE lExpression2

Задает условие, в соответствии с которым записи отображаются в окне редакти ования, пока логическое выражение lExpression2 остается истинным (.T.).

FONT cFontName [, nFontSize]

Задает шрифт окна редактирования и размер шрифта. Символьное выражение cFontName содержит имя шрифта, а числовое выражение nFontSize задает размер шрифта. Например, следующее предложение задает 16-пунктовый ш ифт Courier для полей, отображенных в окне редактирования:

FONT 'Courier',16

Если вы задали предложение FONT, опустив размер шрифта nFontSize, в окне редактирования используется размер 10 пунктов.

Если в Visual FoxPro и FoxPro для Windows предложение FONT опущено, испо ьзуется 8-пунктовый шрифт MS Sans Serif. Если заданный шрифт отсутствует, его заме яет шрифт с похожими характеристиками.

В FoxPro для Macintosh используется 10-пунктовый шрифт Geneva. Если заданный ш ифт отсутствует, используется шрифт Chicago.

В FoxPro для MS-DOS предложение FONT игнорируется.

STYLE cFontStyle

Задает стиль шрифта для окна редактирования в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh. Если предложение STYLE опущено, используется стиль Normal (нормальный).

Если в Visual FoxPro и FoxPro для Windows заданный стиль шрифта отсутствует, его заменяет стиль с похожими характеристиками.

Если в FoxPro для Macintosh заданный стиль отсутствует, используется стиль Normal (нормальный).

В FoxPro для MS-DOS предложение STYLE игнорируется.

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

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

CLOSE DATABASES

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

USE customer && Opens customer table

IF _WINDOWS

EDIT FIELDS contact FONT 'System', 15 STYLE 'NU'

ENDIF

IF _MAC

EDIT FIELDS contact FONT 'Geneva', 14 STYLE 'NU'

ENDIF

FREEZE FieldName

Разрешает вносить изменения только в одно поле в окне редактирования fox90001.gif в поле FieldName. Остальные поля только отображаются, их нельзя редактировать.

KEY eExpression1 [, eExpression2]

Ограничивает диапазон записей, отображаемых в окне редактирования. В предложе ии KEY можно задать значение ключа индекса (eExpression1) или диапазон значений ключа (eExpression1, eExpression2) для записей, отображаемых в окне редактирования. Таблица должна быть индекси ована, и значение (или значения) ключа индекса, указанное в предложении KEY, олжно быть того же типа, что и выражение индекса в главном файле индекса или в главном теге.

В следующем примере задано отображение в окне редактирования только тех записей, для которых почтовые коды попадают в диапазон от 10,000 до 30,000 :

CLOSE DATABASES

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

USE customer && Open customer table

SET ORDER TO postalcode

EDIT KEY '10000', '30000'

LAST | NOINIT

Сохраняет все изменения, внесенные в конфигурацию окна редактирования. Сюда от осятся изменения в списке полей, в размерах каждого поля, в позиции и размерах окна редактирования; все эти изменения записываются в файл FOXUSER. Подробнее об этом файле см. команду SET RESOURCE.

Если команда EDIT выдана с предложением LAST, окно редактирования открывается в той конфигурации, которая была сохранена последней в файле FOXUSER. Тем самым восстанавливается предыдущая конфигурация окна редактирования, созданная после ней командой EDIT. Если последний раз вы выдавали команду EDIT из окна команд с длинным списком предложений, то, чтобы не набирать все это еще раз, выдайте EDIT LAST.

Если вы выходите из сеанса редактирования, нажав клавиши CTRL+Q, то все изменения, внесенные в конфигурацию окна редактирования в ходе текущего сеанса, будут потеряны.

LPARTITION

Помещает курсор в первое поле левого раздела окна редактирования. Окно редакти ования можно с помощью предложения PARTITION разбить на два раздела fox90001.gif левый и правый. По умолчанию курсор при открытии окна редактирования помещается в первое поле правого раздела.

Если указать опцию LPARTITION, не задав предложение PARTITION, курсор будет помещен в первое поле правого раздела окна редактирования.

NAME ObjectName

Допустимо только в Visual FoxPro.

Создает ссылку на окно редактирования как на объект, что позволяет манипули овать этим окном, используя объектно-ориентированные свойства элемента управления Grid. Подробнее об объектно-ориентированном программировании в Visual FoxPro см. главу 3 "Объектно-ориентированное программирование" Руководства разработчика. Подробнее о свойствах элемента управления Grid, которые можно задать для ок а редактирования, созданного с помощью предложения NAME, см. тему Элемент управления Grid.

NOAPPEND

Запрещает пользователю добавлять записи в таблицу, нажимая клавиши CTRL+Y или выбирая команды Append Mode из меню View.

Важное замечание Предложение NOAPPEND не помешает добавлять запись из программы (созданной с помощью предложений VALID, WHEN или команды ON KEY LABEL), когда вы находитесь в окне редактирования.

NOCLEAR

Допустимо только в FoxPro для MS-DOS.

Указывает, что изображение окна редактирования остается на экране даже после его закрытия. Это изображение не является активным окном редактирования. Чтобы у алить изображение окна редактирования, выдайте команду CLEAR.

В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh предложение NOCLEAR игнорируется.

NODELETE

Не разрешает помечать записи на удаление в окне редактирования. По умолчанию запись можно пометить на удаление, нажав клавиши CTRL+T, выбрав в меню Table команду Toggle Deletion Mark или щелкнув самый левый сто бец этой записи.

Важное замечание Предложение NODELETE не помешает пометить запись на удаление в программе (созданной с помощью предложений VALID, WHEN или команды ON KEY LABEL), когда вы аходитесь в окне редактирования.

NOEDIT | NOMODIFY

Не разрешает пользователю модифицировать таблицу. Предложения NOEDIT и NOMODIFY идентичны. Если вы задали какое-либо из них, вы можете просматривать таблицу и вести в ней поиск, но не редактировать. Впрочем, вы также можете добавлять и удалять записи.

NOLINK

Отсоединяет друг от друга разделы окна редактирования. По умолчанию левый и п авый разделы окна редактирования связаны: когда вы прокручиваете один из них, д угой раздел также прокручивается.

NOMENU

Удаляет заголовок меню Table в Visual FoxPro и заголовок меню Browse в преды ущих версиях FoxPro из системной строки меню, блокируя доступ к меню Edit.

NOOPTIMIZE

Блокирует оптимизацию команды EDIT по технологии Rushmore. Подробнее см. тему SET OPTIMIZE или главу 17 "Объектно-ориентированное программирование" Руководства разработчика.

NORMAL

Открывает окно редактирования с обычными установками, принимаемыми по умолча ию, такими как цвета, размеры, позиция, заголовок и управляющие опции (GROW, FLOAT, ZOOM и т.д.). Если предложение NORMAL опущено и текущим окном вывода оказ вается пользовательское окно с собственными установками, в окне редактирования тоже принимаются эти пользовательские установки.

NOWAIT

Продолжает выполнение программы сразу после открытия окна редактирования. Прог амма не ждет закрытия окна редактирования, а продолжает выполняться со строки, непосредственно следующей за строкой с командой EDIT NOWAIT. Если предложение NOWAIT опущено, то когда команда EDIT выдается в программе, окно редактирования открывается и выполнение программы приостанавливается до тех пор, пока окно ре актирования не закроется.

Опция NOWAIT доступна только в рамках программы. Если задать NOWAIT при выдаче команды EDIT из окна команд, это никак не повлияет на ход работы.

PARTITION nColumnNumber

Разбивает окно редактирования на левый и правый разделы; nColumnNumber задает номер столбца, по которому проходит линия разбиения. Например, если з ачение nColumnNumber равно 20, линия разбиения находится в столбце 20 окна редактирования.

LEDIT

Указывает, что левый раздел окна редактирования будет находиться в режиме Browse (режиме просмотра).

REDIT

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

Чтобы оба раздела были открыты в режиме Browse, задайте оба ключевых слова.

CLOSE DATABASES

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

USE customer && Opens customer table

EDIT PARTITION 30 REDIT

PREFERENCE PreferenceName

Сохраняет атрибуты и опции окна редактирования для использования в будущем. В отличие от предложения LAST, которое восстанавливает окно редактирования в том виде, в каком оно выглядело в предыдущем сеансе, предложение PREFERENCE сохра яет атрибуты окна редактирования в файле ресурсов FOXUSER на неопределенный с ок. Эти установки могут быть извлечены в любой момент. Подробнее о файле ресурсов FOXUSER см. SET RESOURCE.

Если выдать команду EDIT, задав при этом имя набора установок PreferenceName, то в первый раз в файле FOXUSER будет создан элемент, хранящий конфигурацию окна редактирования. Если впоследствии снова выдать EDIT с тем же именем набора установок, окно редактирования будет восстановлено в этом виде. При закрытии окна редактирования конфигурация установок обновляется.

Имя установки может состоять не более чем из 10 символов, должно начинаться с уквы или символа подчеркивания и может содержать любую комбинацию букв, цифр и символов подчеркивания.

Настроив вид окна наиболее подходящим для вас способом, вы можете предотв атить возможность изменения этих установок. Закройте окно редактирования, выдайте команду SET RESOURCE OFF, откройте файл FOXUSER в виде таблицы и сделайте поле с установками доступным только для чтения, задав в логическом поле READONLY з ачение "истина" (.T.).

Подробнее о файле ресурсов FOXUSER см. тему SET RESOURCE.

REST

Запрещает перемещать указатель записи из текущей позиции в начало таблицы. По умолчанию команда EDIT устанавливает указатель записи в начало таблицы.

SAVE

Сохраняет окно редактирования и все его области редактирования memo-полей активными и видимыми (открытыми). Пройдя в цикле по всем остальным открытым окнам с помощью клавиатуры или мыши, вы сможете вернуться в окно редактирования.

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

TIMEOUT nSeconds

Задает интервал времени, в течение которого окно редактирования может ждать ввода. Числовое выражение nSeconds определяет, сколько секунд может пройти, прежде чем окно редактирования автоматически закроется, не дождавшись введенных данных.

Опция TIMEOUT доступна только в рамках программы; если ее задать в окне коман , это никак не отразится на ходе работы. В следующем примере окно редактирова ия закрывается, если в течение 10 секунд в него не были введены данные.

DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ;

CLOSE ;

GROW ;

COLOR SCHEME 10

CLOSE DATABASES

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

USE customer && Open customer table

EDIT WINDOW wEdit ;

FIELDS phone :H = 'Phone Number:' , ;

company :H = 'Company:' ;

TIMEOUT 10

RELEASE WINDOW wEdit

TITLE cTitleText

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

Если вы выдали команду EDIT WINDOW, чтобы поместить окно редактирования в по ьзовательское окно, заголовок пользовательского окна заменяется заголовком окна едактирования.

CLOSE DATABASES

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

USE customer && Open customer table

EDIT;

TITLE 'My Edit Window' ;

FIELDS phone :H = 'Phone Number' , ;

company :H = 'Company:'

VALID lExpression3

Выполняет в окне редактирования проверку достоверности на уровне записи. Пред ожение VALID выполняется только в том случае, если в запись вносится изменение и вы перемещаете курсор к другой записи. Предложение VALID не выполняется, если изменение вносится только в memo-поле.

Если VALID возвращает значение "истина" (.T.), вы можете перемещать курсор к д угой записи. Если VALID возвращает "ложь" (.F.), курсор остается в текущем по е и Visual FoxPro выдает сообщение об ошибке. Используя предложение ERROR, вы можете выдавать собственное сообщение об ошибке в случае, когда VALID возвращает "ложь". Символьное выражение cMessageText определяет текст этого сообщения. Если VALID возвращает 0, курсор остается в текущем поле, но сообщение об ошибке не выдается.

Предложение VALID не следует смешивать с опцией проверки (:V), которая о еспечивает проверку достоверности на уровне поля.

:F

Форсирует выполнение предложения VALID перед тем, как пользователь переводит курсор к следующей записи. В этом случае VALID выполняется даже тогда, когда запись не изменилась.

ERROR cMessageText

Задает сообщение об ошибке с текстом cMessageText: оно заменяет системное сообщение, используемое по умолчанию. Visual FoxPro в дает это сообщение, когда VALID возвращает "ложь" (.F.).

WHEN lExpression4

Проверяет условие, когда пользователь переводит курсор к другой записи. Если lExpression4 имеет значение "истина" (.T.), пользователь может модифицировать запись, к которой он перешел. Если lExpression4 имеет значение "ложь" (.F.) или 0, запись, к которой перешел пользователь, становится доступной только для чтения и не может быть модифицирована.

Предложение WHEN не выполняется, когда активизируется другое окно.

WIDTH nFieldWidth

Ограничивает значением nFieldWidth количество символов, отображаемых для каждого поля тему окна редактирования. Задавая предложение WIDTH, вы не изменяете размер полей в таблице; изменяется ишь способ их отображения в окне редактирования. Если для какого-либо поля с помощью предложения FIELDS была задана своя ширина, она заменяет значение, задан ое для этого поля предложением WIDTH.

WINDOW WindowName1

Задает пользовательское окно, характеристики которого перенимает окно редакти ования. Например, если пользовательское окно создано с помощью предложения FLOAT, окно редактирования можно будет перемещать. Заданное окно не обязательно до жно быть активным или видимым, но оно должно быть определено. Если в FoxPro для MS-DOS окно определено с нижним колонтитулом, он не появится на экране fox90001.gif его место занимает линейка прокрутки окна редактирования.

IN [WINDOW] WindowName2

Задает родительское окно WindowName2, внутри которого открывается окно редактирования. Окно редактирования не пере имает характеристики родительского окна. Окно редактирования, активизируемое в утри родительского окна, нельзя выдвинуть за его пределы. Если перемещать ро ительское окно, окно редактирования будет передвигаться вместе с ним.

Чтобы получить доступ к окну редактирования, нужно предварительно сделать его активным и видимым и определить его родительское окно с помощью команды DEFINE WINDOW.

IN SCREEN

Принудительно помещает окно редактирования в основное окно Visual FoxPro, ког а активно пользовательское окно.

IN MACDESKTOP

Допустимо только в FoxPro для Macintosh.

Помещает окно редактирования в основное окно Macintosh. Окно редактирования аходится на одном уровне с основным окном FoxPro; его можно сдвинуть за пределы основного окна FoxPro и скрыть за ним, выведя основное окно FoxPro на передний план. Когда задано предложение MACDESKTOP, окно редактирования ведет себя ана огично окнам редактирования в FoxBASE+для Macintosh.

При использовании предложения MACDESKTOP отменяется текущая установка SET MACDESKTOP. Эта установка определяет, где размещаются окна редактирования в случае отсутствия предложений SCREEN и MACDESKTOP fox90001.gif в основном окне FoxPro или в основном окне Macintosh. Подробнее о размещении окон редактирования в основном окне FoxPro и в основном окне Macintosh см. тему SET MACDESKTOP.

COLOR SCHEME nSchemeNumber

Задает номер цветовой схемы, используемой для определения цветов окна редакти ования. В FoxPro для MS-DOS в окне редактирования по умолчанию принимаются цвета, заданные цветовой схемой COLOR SCHEME 10 (Browse).

В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh окно редактирования принимает цветовую схему, установленную в диалоговом окне Color на Панели уп авления.

COLOR ColorPairList

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

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

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

Комментарии

Команда EDIT позволяет редактировать в окне выбранную таблицу. EDIT работает точно так же, как CHANGE.

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

В программе с помощью команды DEACTIVATE WINDOW можно сохранить внесенные изме ения и закрыть окно редактирования. При этом в команде DEACTIVATE WINDOW нужно задать имя окна редактирования. Подробнее об именах окон редактирования см. тему WTITLE( ).

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

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

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

Подробнее о создании многозначных отношений см. тему SET SKIP.

Поддержка функций COL( ) и ROW( )

Функции COL( ) и ROW( ) используются для получения текущей позиции курсора по строкам и столбцам в окне редактирования. Если окно редактирования открыто в ос овном окне Visual FoxPro, возвращаемая позиция курсора выражается относительно основного окна Visual FoxPro, а не самого окна редактирования. Если окно ре актирования открыто в пользовательском окне, функции COL( ) и ROW( ) возвращают позицию курсора относительно пользовательского окна.



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

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

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

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

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