20172

Методы, связанные с командой READ

Лекция

Информатика, кибернетика и программирование

В Visual FoxPro форма выводится на экран методом Show а для обновления данных нужно использовать метод Refresh следующим образом: Form1. Поля записываются только при перемещении показателя текущей записи 2Optimistic записи блокируются только при попытке записи данных. Другими словами представления позволяют пользователям сосредоточить внимание и возможно логически реструктурировать только ту часть базы данных которая их интересует и игнорировать остальные данные. Для скрытых данных обеспечивается автоматическая защита.

Русский

2013-07-25

57.5 KB

3 чел.

Методы, связанные с командой READ

Команда READ теперь встроена в конструкторы форм и меню.

После создания формы ее нужно только выполнять с помощью команды DO FORM. Все опции, которые раньше были связаны с командой READ, стали теперь методами формы. Команда READ, тем не менее, остается в Visual FoxPro для совместимости с предыдущими версиями. Ее можно также использовать в рамках объектно-ориентированного подхода,  употребив опцию EVENTS.

Опция ЕVENTS включает контроль за событиями. После этого управление остается на операторе READ и события обрабатываются до тех пор, пока в одном из них не встретится команда CLEAR EVENTS. Тогда выполнение продолжается с оператора, следующего за READ EVENTS.

Опишем реализацию в формах каждой из опций команды READ.

CYCLE: позволяет пользователю переключаться циклически по всем объектам формы, возвращаясь с последнего на первый. Нажатие Shift+Tab вызывает перемещение с первого на последний объект. При выполнении формы управления циклически перемещается между объектами до тех пор, пока не встретится оператор CLEAR EVENTS или свойство TerminateRead не будет  установлено в (.Т.).

ACTIVATE: служит для изменения активного окна. Подобное действие выполняется и методом Activate , который имеется у каждой формы. Процедура этого метода может определить, является ли форма активной, и убрать с нее ненужные объекты перед тем  как  команда REAL начнет следить за событиями.

Возвращаемое методом Activate значение игнорируется, поэтому нельзя определить была ли форма активизирована командой ACTIVATE EVENTS или другим способом. Пользователи обычно активизируют форму путем нажатия на ее пиктограмму или путем вызова метода формы Show. Таким образом, при различных способах активизации формы выполняются разные ее методы.

DEACTIVATE: выполняется при попытке перейти в другое окно. Вызываемая при этом процедура должна произвести различные проверки и возвратить логическое значение. Значение (.Т.) вызывает прекращение выполнения оператора READ.

Все объекты формы имеют свой метод Deactivate, который, однако, вызывается только при перемещении между окнами текущего приложения. Для того чтобы действительно деактивизировать форму, то есть удалить ее с экрана и из памяти , нужно вызвать метод  формы Release. А если вызвать метод Hide, который изменяет значение свойства формы Visible на (.F.), то форма исчезнет с экрана, но останется в памяти и ее можно будет вновь вывести на экран, установив Visible=(.Т.).

MODAL и WITH:  эти две команды работают вместе и определяют какие окна могут быть активизированы пользователем. Например, если открыто одно окно с использованием команды MODAL , то пользователь не сможет перейти в другое окно, нажав на него. Он должен будет выйти из текущего окна, вызвав его метод CLOSE или QUIT . Поэтому если нужно открыть несколько окон, их надо перечислить после фразы WITH.

Метод формы Show используется для одновременного открытия формы и определения возможности выхода из ее окна. Команда Form1.Show(0) открывает форму с возможностью перехода в другие окна, причем выполнение программы при этом продолжается.

Команда Form1.Show(1) открывает форму без возможности выхода: при этом пользователь не может переключиться в другое окно, а выполнение программы приостанавливается до закрытия формы.

Если аргумент метода Show опущен, то вместо него используется значение свойства формы WindowType.

Замечание. Аргумент метода Show перекрывает значение свойства WindowTipe, а значение свойства WindowTipe набора форм, в свою очередь, перекрывает свойства WindowTipe отдельных форм этого набора.

SHOW: В первых версиях FoxPro функция, указанная после READ SHOW, вызывалась при дальнейшем выполнении команды SHOW GETS и могла служить для перевывода полей ввода. В Visual FoxPro форма выводится на экран методом Show, а для обновления данных нужно использовать метод  Refresh следующим образом: Form1.Refresh

Эта команда вызывает перевывод всех объектов формы и значений полей ввода. Однако, если изменяется значение только одного объекта, можно не делать перевывод всей формы, поскольку это занимает слишком много времени. Лучше вызвать метод Refresh конкретного объекта, например : Form1.SumPrise.Refresh 

Формы в Visual FoxPro не имеют методов, аналогичных фразам WHEN и VALID , но соответствующие проверки можно поместить в метод Activate. Для предотвращения выполнения формы можно прямо в методе Activate выполнять команду FORM. RELEASE.

OBJECT: раньше эта фраза использовалась для определения объекта, который получал управление. Теперь для передачи управления любому объекту на экране следует использовать следующий формат команды: _CurObj = OBJNUM(LastName)

Это же действие выполняется методом SetFocus , который есть у всех объектов, допускающих взаимодействие с пользователем. Для перехода к любому объекту без клавиши Tab необходима следующая команда:  ThisForm.Spinner1.SetFocus

Эта команда передает управление объекту Spiner1.

TIMEOUT : ограничивает время выполнения команды READ при отсутствии действий пользователя. По истечении заданного времени выполнение команды READ прерывается.

Объекты Visual FoxPro  не имеют прямого эквивалента этой команды, но есть объект Timer, с помощью которого можно эмулировать  выполнение команды  TIMEOUT .

NOMOUSE: раньше эта опция применялась для запрещения перехода по полям с помощью мыши. Основным ее назначением было заставить пользователя вводить данные или делать выборы в определенной последовательности. Поскольку объектно-ориентированное программирование предусматривает свободу пользователя в управлении программой, эквивалента опции NOMOUSE в Visual FoxPro  нет.

SAVE: как и в случае с NOMOUSE эквивалента не имеет.

LOCK: при использовании этой фразы делается попытка заблокировать все записи, которые редактируются на экране. Объекты Visual FoxPro  имеют свойство BufferMode, определяющее когда следует блокировать записи. Возможные значения свойства приведены в таблице

COLOR SCHEME  и COLOR : свойства всей формы не позволяют определять ее палитру, но позволяют устанавливать цвета фона, изображения и заливки. С другой стороны, отдельные объекты поддерживают как цвета фона и изображения, так и палитру и источники цветов.

Формы в VFP не имеют методов, аналогичным фразам When и Valid , но соответствующие проверки можно поместить в метод Activate

OBJECT - эта опция использовалась для определения объекта, который получал управление. Теперь это действие выполняется методом SetFocus ( устанавливает фокус в элементе управления и весь ввод пользователя направляется в этот элемент управления, который есть у всех объектов, допускающих взаимодействие с пользователем.

Например: This form.Spinnes1.SetFocus эта команда передает управление текущей формы Spinnes1 

TIMEOUT -ограничивает выполнение READ при отсутствии действий пользователя. По истечении заданного времени выполнение READ прерывается. Объекты VFP не имеют прямого эквивалента этой команды, но есть объект Times, с помощью которого можно эмулировать выполнение  команды TIMEOUT  

NOMOUSE- эта опция раньше применялась для запрещения перехода по полям с помощью мыши. Так как объектно-ориентированное программирование  предусматривает свободу пользователя в управлении программой, эквивалента опции в VFP нет.

SAVE -ранее сохраняла все определения объектов ввода для использования в последующих командах READ. В VFP эквивалента нет.

LOCK- блокирование записей, которые редактируются на экране. Объекты VFP имеют свойство Buffer Mode , определяющие когда следует блокировать записи: значение функции= None блокируются все редактируемые записи, а поля записываются по мере их редактирования.

1-Pessimistic- блокировки записи происходит в начале редактирования любого ее поля. Поля записываются только при перемещении показателя текущей записи

2-Optimistic- записи блокируются только при попытке записи данных.

Создание и использование представлений.

Из данного множества таблиц реляционные выражения позволяют получить множество других, например путем соединения двух таблиц. Исходные таблицы называются базовыми таблицами, а таблицы, полученные из них путем выполнения каких-либо реляционных выражений, называются производными. Поэтому базовые таблицы существуют независимо, в то время как производные таблицы зависят от базовых. базовые таблицы, конечно, должны быть именованными (т.е. их имена указываются в операторах создания). Большинство производных таблиц, наоборот, неименованные. Однако реляционные системы обычно поддерживают один определенный вид производных таблиц, называемый представлением, которое имеет имя. Таким образом, представление – это именованная таблица, которая, в отличие от базовой, не может существовать сама по себе, а определяется в терминах одной или нескольких именованных таблиц (базовых таблиц или других представлений).

Преимущества представлений:

  1.  Представления позволяют разным пользователям различными способами просматривать одни и те же данные в одно и то же время. Другими словами, представления позволяют пользователям сосредоточить внимание и, возможно, логически реструктурировать только ту часть базы данных, которая их интересует, и игнорировать остальные данные.
  2.  Представления обеспечивают пользователей механизмом сокращений, или «макросов».  В СУБД представления играют роль, аналогичную роли роли макросов с системах программирования, а хорошо известные преимущества и возможности макросов характерны и для представлений. В частности, использование представлений не приводит к дополнительным затратам производительности на этапе выполнения приложений - небольшие затраты производительности наблюдаются только на этапе определения представлений.
  3.  Для скрытых данных обеспечивается автоматическая защита. Под скрытыми данными здесь понимают данные, которые не видны в определенном представлении. Таки образом, пользователи вынуждены получать доступ к базе данных через представления; это простой и эффективный механизм контроля доступа и аутентификации.

Практически все приложения, разрабатываемы в настоящее время, проектируются как многопользовательские. Это значит, что данное приложение либо сразу помещается на сетевой сервер, либо в ближайшем будущем должно быть доработано и перенесено с среду клиент/сервер. Проводимые Microsoft исследования показывают, что 65% всех приложений VFP будут в ближайшее время модернизироваться именно в этих целях. Независимо от перспектив использования данного приложения имеет смысл сразу же создавать его с учетом подобных требований. При построении многопользовательских приложений весьма важно создать представления, которые отвечают требованиям, предъявляемым к вводу и выводу данных.

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

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

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

Если в форме вы используете представления, у вас появляются дополнительные возможности:

  •  выбор в таблице некоторой порции записей (фильтры)
  •  выбор некоторой порции записей на основе свойств данных в связанных ключах (объединение типов)
  •  контроль числа или процента записей, возвращаемых из набора данных
  •  обратная запись данных из представления в локальную или удаленную таблицу с возможностью управления тем, какие поля будут модифицированы
  •  сохранение определения представления в базе данных как некоторого выражения

Для создания локального представления можно выбрать одно из перечисленных средств:

  •  Команду CREATE LOCAL VIEW
  •  Средство View Designer (конструктор представлений)
  •  Мастер Local View Wizard

Удалить представление можно командами DELETE VIEW или DROP VIEW. Переименовать представление можно с помощью команды RENAME VIEW.

Типы представлений.

Многотабличные представления.

Предположим, необходимо разделить в б.д. все запииси о продажах на некоторое количество частей. Это может потребоваться в том случае, если вам необходимо (из соображений защиты информации), чтобы каждое торговое отделение могло вводить и просматривать информацию о продажах только своего региона, ане всех остальных. В подобной ситуации необходима область описания данных с возможностью выборки только некоторого набора записей. Реализовать это требование можно с помощью создания многотабличного представления, которое определяется командой Select с  соответствующим предложением Where.

SELECT * FROM sales WHERE customer.region=’Астрахань

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

Если поместить ограничения (в приведенном примере для регионов) в отдельные представления, то такой вариант будет работоспособен, но необходимо определить и хранить множество представлений – для каждого региона, где осуществляются торговые операции. Не самый лучший подход для работы с базами данных! В данном случае следует использовать параметризованные представления, которые мы рассмотрим позднее.

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

Inner joins (внутреннее соединение). Возвращаются только те записи из обеих таблиц, которые отвечают условиям сравнения двух полей в соединении.

Left outer joins (левое внешнее соединение). Возвращаются все записи из таблицы, находящейся слева от ключевого слова JOIN, и любые записи из второй таблицы, которые отвечают условиям сравнения двух полей.

Right outer joins (правое внешнее соединение). Возвращаются все записи из таблицы, находящейся справа от ключевого слова JOIN, и любые записи второй таблицы, которые отвечают условиям сравнения двух полей.

Full outer joins (полное внешнее соединение). Возвращаются все записи обеих таблиц, вне зависимости от того, соответствуют они условиям сравнения или нет.

Представления с параметрами.

С помощью параметризованных представлений можно определить помещаемые в представлении данные. В этих представлениях предложение Where содержит параметр ?<имя_поля>.

SELECT * FROM sales WHERE customer.region=?cregion

При выполнении этой команды появится диалоговое окно Параметры представления, в котором нужно указать значение для cregion. Кроме того, можно определить значение парметра представления, например, закрепив это значение за положением переключателя, либо за элементом списка, либо присвоив параметру значение в к-либо методе формы или методе объекта.

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

Представления с обновлением данных.

В конструкторе представлений можно определять методы, используемые для обновления существующих и внесения новых записей. Для этого служит вкладка Update Criteria. Любое из полей в списке Field name можно сделать доступным только для чтения посредством удаления флажка, расположенного перед именем поля в столбце с пиктограммой карандаша. Кроме того, можно указать ключевые поля, однозначно идентифицирующие каждую строку представления. Для этого необходимо поместить флажок в столбец с пиктограммой ключа. Если определить поле как ключевое, то аноситьв него изменения можно только при создании новых записей. Для уже существующих записей модифицировать значения в этих полях будет невозможно.

Опция Send SQL updates является основной для разрешения обновления данных в представлении.


 

А также другие работы, которые могут Вас заинтересовать

20782. Калорифер воздушный распылительной сушильной установки 1.05 MB
  Поверхностные теплообменные аппараты, в свою очередь, делятся на рекуперативные и регенеративные. В рекуперативных аппаратах теплообмен между различными теплоносителями происходит через разделительные стенки.
20783. ПСИХОМЕТРИЧЕСКАЯ ОЦЕНКА МЕТОДИКИ ДИАГНОСТИКИ РАБОТОГОЛЬНОЙ ЗАВИСИМОСТИ Б.КИЛЛИНЖЕР 364 KB
  Диагностика работогольной зависимости с помощью альтернативных методик (метод экспертных оценок, опросник Б.Киллинжер), адаптация и создание психометрического паспорта опросника Б.Килинжер: определение валидности опросника Б.Киллинжер; проведение процедуры point analysis (выявление дифференциальной силы каждого из утверждений опросника Б.Киллинжер)...
20784. Показатели вариации 930.28 KB
  Различие индивидуальных значений признака внутри изучаемой совокупности в статистике называется вариацией признака. Средняя величина это абстрактная обобщающая характеристика признака изучаемой совокупности но она не показывает строения совокупности которое весьма существенно для ее познания. Средняя величина не дает представления о том как отдельные значения изучаемого признака группируются вокруг средней сосредоточены ли они вблизи или значительно отклоняются от нее. В некоторых случаях отдельные значения признака близко...
20785. Физико-химические процессы протекающие в воде 1 контура и основы водного режима реакторов ВВЭР 166 KB
  б уметь: показать влияние примесей в воде 1 контура на скорость коррозии конструкционных материалах; обосновать ведение калийаммиачного водного режима 1 контура при борном регулировании. Задание на самостоятельную подготовку: самостоятельно проработать вопросы классификации коррозионных процессов показатели коррозионной стойкости коррозии стали в паре. Введение ВХР АС должен обеспечивать работу основного и вспомогательного теплоэнергетического оборудования без повреждений и снижения экономичности и при...
20786. Системы реагентного хозяйства и «чистого» конденсата 361 KB
  Целевая установка: В результате изучения материала лекции студенты должны: а знать: назначение состав принцип действия и основы эксплуатации систем боросодержащей воды и борного концентрата; назначение состав принцип действия и основы эксплуатации узла реагентов реакторного отделения ТВ20; назначение состав принцип действия и основы эксплуатации системы чистого конденсата дистиллята. Назначение состав принцип действия и основы...
20787. Организация ВХР 1 контура 486 KB
  Целевая установка: В результате изучения материала лекции студенты должны: а знать: назначение ведения ВХР 1 контура; назначение средств обеспечения ВХР 1 контура; нормы качества теплоносителя 1 контура при работе энергоблока на энергетическом уровне мощности; нормы качества подпиточной воды воды подаваемой на уплотнения ГЦН и растворов хим.реагентов; ограничения по эксплуатации РУ при отклонении нормируемых показателей; характерные причины отклонения ВХР 1 контура и методы их устранения; диагностические...
20788. Вводная лекция по дисциплине «Водный режим контуров АЭС» 117.5 KB
  Основные понятия физики и химии воды. Виды и показатели качества воды. Выводы по лекции.
20789. Подготовка воды для заполнения и подпитки контуров 302 KB
  Целевая установка: В результате изучения материала лекции студенты должны: а знать: технологию предварительной очистки природных вод; основные методы опреснения и обессоливания воды; использование очистки воды методом дистилляции на АЭС; принципы ионного обмена между смолами и водными растворами; основные показатели качества ионитов; основные методы очистки воды от растворенных газов применяемых на АЭС;...
20790. Работа с приложением Ansys 3.4 MB
  Цель работы – Придумать и реализовать 2 проекта при помощи приложения Ansys, предоставить развернутое описание своих действий в помощь те, кто будет заниматься этим в дальнейшем, основываясь на достигнутых мною результатах. В этой работе мы рассмотрим общие сведения об Ansys и его возможностях, а так же пронаблюдаем процесс создания модели, задания различных данных и работы с получившимися результатами на примере двух несложных проектов.