Программирование >>  Разработка пользовательского интерфейса 

1 ... 73 74 75 [ 76 ] 77 78 79 ... 147


ft--

aca>unl lDcal viiDW {Road On)

3ELECT Accouni:. ; FEOH auto ilOcc lijccnunt , auto acort tatlDii*r


Рис. 7.4. Генерируемый в представлении код SQL запроса

Cтраница Fields служит для выбора полей из представлений и таблиц, участвующих в создании нашего представления. Можно выбрать поля другими способами, например, дважды щелкнув мышью на названии нужного вам поля или, что более эффектно, просто перетащив графический образ этого поля с образа таблицы в список Selected Output, который присутствует на страницах Fields и Selection Criteria. У визуального способа есть одно ограничение. В случае, если вам необходимо иметь в выборке не данные из поля, а, например, выражение, то вам придется воспользоваться комбинированным списком Functions/Expressions. К этому же списку вам придется обратиться в случае, если вы захотите дать колонкам свои имена с помощью опции AS.

Если вы внимательно читали параграф о SQL командах, то помните, что в команде SELECT-SQL есть предложение ORDER BY, которое позволяет вам упорядочить данные по определенным полям. Для этого служит страница Order by в Конструкторах представлений и запросов.

В случае использования функций агрегирования вам придется обратиться к странице Group by для группировки данных.

Последняя страница называется Update Criteria. Именно на этой странице мы можем выбрать поля, редактирование которых в курсоре представления будет отображаться в исходных таблицах. На этой странице в списке Field Name отображаются поля из таблиц, к которым обращается запрос представления. При этом отображать можно как одновременно все поля из всех таблиц, так и только из одной таблицы, выбрав соответствующее значение в раскрывающемся списке Table (см. рис. 7.2).

Далее для каждой таблицы необходимо выбрать ключевые поля. Обратите внимание, что рядом со значком, изображающим ключ над списком Field Name, появится значок, изображающий карандаш, и вертикальная полоска ниже этого изображения. Теперь мы можем пометить поля как модифицируемые. Ключевое поле может быть одновременно и модифицируемым. Если есть необходимость отключить ключевые поля, то нажмите кнопку Reset. Когда вы хотите сделать сразу все поля модифицируемыми, нажмите кнопку Update All. При этом поля, которые вы укажете как ключевые, помечены не будут. Затем необходимо включить переключатель SendUpdates, так как только после этого исходные таблицы будут модифицироваться. Теперь с помощью кнопок выбора SQL WHERE clause includes необходимо выбрать одно из четырех значений WhereType. Оно будет определять, каким образом станет происходить поиск записи в исходной таблице:

При выборе значения Key Fields only данные будут обновляться в соответствии с изменением значений ключевых полей. Поэтому не забудьте, что если в выбранном для представления ключевом поле или полях не гарантируется уникальность значения, то данные могут быть изменены вместо одной сразу в нескольких записях. Значение Key And Updatable Fields приводит к поиску записи по тем полям, которые вы пометите как модифицируемые или разрешенные для изменений и по ключевым полям. Значение Key And Modified Fields обеспечивает поиск по ключевым и фактически измененным полям.

Значение Key and Timestamp для локальных представлений не поддерживается.



.i. Options

File Locations View

Forms General

Projects Edit

Cortrols I ln:erna:ional Data !....P!]n°b.D3ta

-RenoteViewDefaultsr-~ Share Connection

Fetch Memo SQL Updates:

Criteria: Keu and Modified FijJ -

Method:[sQL Update

Records to Fetch at a Time: MaimLTi Records to Fetch: Uss Memo for Fieds Rtuuidi tu EdtuhUpUdte.

31 All

3 IAII

!:efautsr-

-Connedion

I Asijnnhrr nni js £yen jl nn Г Dispbi;\yarnings EatcT Pr Kesshg R Automati Show Loin:

Connection imeoLit (?ec): idle Tinreout (min) QL-eriJ Timeout (sec): Onl/WheiN= J Wait Time (ms):

;TrarsactiDiis

Se: as DefatJt

j Cancel I Help

-Глобальная yqiaHopKcepfttT-

i.i-Ddat? Type

Hio 6 ал ь H a я ycTs H oe Ejg и ra VVTi e nelyi: e

Рис. 7.5. Установка параметров обновления данных

Мы уже говорили, что создать представление можно программным путем с помощью команды CREATE SQL VIEW. Свойства, с помощью которых регулируются данные в исходных таблицах, устанавливаются также программным путем с помощью функций DBSETPROP() и CURSORSETPROP(). Узнать значения установленных свойств можно с помощью функций с похожими названиями: DBGETPROP() и CURSORGETPROP(). Отличие их в том, что функции CURSORGETPROP() и CURSORSETPROP() работают с представлениями, которые в данный момент используются в какой-либо из рабочих областей. Функции DBGETPROP() и DBSETPROP() устанавливают свойства для любого представления, которое содержится в текущей базе данных. В приводимой ниже табл. 7.1 обратите внимание на то, что многие свойства можно установить только программным путем. Свойства, которые приводятся в табл. 7.1, относятся к полям представления. То есть вторым аргументом функции DBSETPROP() или функции DBGETPROP() будет FIELD . Например:

DBSETPROP( account and customer.account , FIELD , comment ,; Используйте это поле для ввода номера счета )

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

Свойства WhereType и UpdateType можно установить глобально для всего Visual FoxPro, используя диалоговое окно Options на странице Remote Data. Там есть два раскрывающихся списка, объединенных общим заголовком SQL Updates, - Criteria и Method, как это показано на рис. 7.5.



Таблица Свойство

Caption

Comment DataType

Default value KeyField

RuleExpression C

RuleText

Updatable

UpdateName

7.1 Свойства полей представлений Тип Описание

C Заголовок поля. Доступно для чтения и записи.

С Комментарий поля. Доступно для чтения и записи.

С Данное свойство игнорируется для локальных представлений. Доступно для чтения-записи при работе с внешними представлениями.

С Значение по умолчанию для поля. Доступно для чтения и записи.

L Содержит .T. если поле указано как ключевое индексное выражение. Данное свойство можно установить визуально в Конструкторе представлений на странице Update Criteria. Доступно для чтения и записи.

Правило проверки ввода уровня поля. Доступно для чтения и записи.

C Сообщение, выводимое на экран в случае нарушении правил проверки ввода уровня поля. Доступно для чтения и записи.

L Содержит истину (.T.) если поле доступно для изменений. Это свойство можно установить визуально с помощью Конструктора представлений на странице Update Criteria. Доступно для чтения и записи.

C Название поля, которое используется, когда поле модифицируется на таблице внешнего формата. По умолчанию совпадает с именем поля во внешней таблице. Доступно для чтения и записи.

В следующей таблице приводятся некоторые свойства представления, которые можно использовать как для локальных, так и внешних представлений. Для их чтения и изменения необходимо использовать функции DBGETPROP() и DBSETPROP() со вторым аргументом VIEW. В следующем примере мы устанавливаем свойство Comment для всего представления, а затем выводим его на экран:

=DBSETPROP( account and customer , view , Comment ,

Предназначено для корректировки поставок по счетам ) ? DBGETPROP( account and customer , view , Comment )

Таблица 7.2. Свойства полей для представлений Свойство Тип Описание

Comment C Текст комментария представления. Доступно для

чтения и записи.

FetchMemo L Равняется .T., если данные из полей примечаний или типа General выбираются с результатами представления. Имеет смысл ставить значение

Обратите особое внимание, что название поля приводится вместе с названием представления account and customer.account . В противном случае Visual FoxPro не сможет найти это поле.



1 ... 73 74 75 [ 76 ] 77 78 79 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.003
При копировании материалов приветствуются ссылки.
Яндекс.Метрика