Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Створення полів, що обчисляютьсяСодержание книги Поиск на нашем сайте
Для створення поля, що обчисляється за значеннями інших полів, необхідно: 1 У редакторі полів створити нове поле, помітивши його як Calculated. Для цього потрібно за допомогою миші зробити поточним необхідний НД, натиснути праву кнопку миші, вибрати в меню Field Editor, знову натиснути праву кнопку миші і вибрати в меню New Field. Потім у вікні діалогу необхідно зазначити ім'я поля, його тип (Type) і для текстових полів - довжину (Size). Для нового поля буде створений компонент TField, доступ до якого можна здійснювати в редакторі полів. 2 Для компонента НД, до якого належить поле, що обчисляється, необхідно визначити оброблювач події OnCalcFields. Наприклад, необхідно занести в поле Vychosl НД Table1 значення 'Так', якщо в полі Present цього запису міститься значення True. У противному випадку в поле Table1Vychosl занести порожнє значення.
procedure TGridForm. TablelCalcFields(DataSet: TDataSet); begin if Table1Present. Value then Table1Vychosl.AsString:= 'Так' else Table1Vychosl.AsString:= "; end;
Подія OnCalcFields виникає щоразу, коли курсор (покажчик запису) переміщується в НД від запису до запису. Вона виникає і при ініціалізації НД (після відкриття), а також після фільтрації записів у НД, що також пов'язано зі зміною положення покажчика запису. Крім того, якщо властивість набору даних AutoCalcFields встановлена в True, подія OnCalcFields наступає також і при модифікації значень інших полів у режимах dslnsert і dsEdit даного НД або НД, реляційно з ним пов'язаного (коли обмеження цілісності явно встановлені в самій ТБД.). Процедура-оброблювач події OnCalcFields реалізує алгоритм обчислення значення поля або групи полів. У цьому оброблювачі значення може бути присвоєно тільки полю, що обчислюється, але не полю, визначеному в структурі таблиці БД.
Створення полів вибору даних (lookup - полів).
Поля вибору даних одного НД містять значення поля (полів) з іншого НД. НД-джерело поля вибору зв’язується по ключу з НД-власником поля вибору даних. Поле вибору даних доступне тільки для читання. Звичайно НД-джерело і НД-власник поля вибору даних зв’язані реляційним відношенням “один-до-багатьох“, рідше “один-до-одного“. Для визначення поля вибору даних необхідно створити нове поле в редакторі полів, зразу ж встановивши радіо-групу FieldType в значення Lookup. Далі встановлюються значення властивостей: DataSet – ім’я НД-джерела значень для поля вибору даних; KeyFields – індексні поля НД-власника поля вибору даних. За цими полями НД-власник з’єднується з НД-джерелом значень поля вибору даних. Якщо в індексі є декілька полів, вони перераховуються через крапку з комою; LookupKeys – індексні поля НД-джерела значень для поля вибору. За значеннями цих індексних полів встановлюється зв’язок набору-джерела зі значеннями індексних полів НД-власника поля вибору (вони вказані в параметрі KeyFields). Якщо в індексі є декілька полів, вони перераховуються через крапку з комою; Result Field – поле НД-джерела, що повертається в якості результату. Необхідно, щоб тип поля, що створюється, співпадав з типом поля результату. Аналогічним за наслідками буде встановлення відповідних властивостей в інспекторі об’єктів для поля, що додається. Поля вибору даних часто використовуються для автоматичного занесення інформації в дану ТДБ з іншої ТДБ. Значення параметрів поля вибору в цьому випадку можна читати так: “Виходячи з реляційного зв’язку по полю (полях), вказаному у властивості KeyField (розглядаємо НД-власника) і по полю (полях), вказаному у властивості LookupKeys (НД-джерела, зазначеного у властивості DataSet) заповнювати поле (поля), вказане в KeyFields значенням (значеннями), взятими з запису, що буде вибраний з меню”. В меню показується тільки те поле НД-джерела, що вказане у властивості ResultField. Властивість property LookupCache: Boolean; визначає, чи будуть значення полів вибору даних зберігатися в кеш-пам’яті (True) чи ні (False).
Приклад.
Практична робота № 5
Тема: Використання контейнера TDataModule Мета: Набуття практичних навиків створення модулів даних у Delphi. Аналіз стану НД
Завдання.
1 Для заданого предметного середовища розробити застосування, який включає модуль даних, форму перегляду даних і форму редагування даних. 2 Проаналізувати стан НД при роботі з ним. Обов'язкові засоби: TDataModule, TDataBase, TDBGrid, TDBEdit, TDBLookupComboBox, TButton, TLabel.
Зміст звіту.
1 Опис створеного модуля даних. 2 Опис форм додатку з зазначенням встановлених значень властивостей компонентів. 3 Лістинги розроблених процедур та їх аналіз. 4 Висновки по роботі.
Порядок виконання роботи Стани наборів даних
Набором даних у Delphi називають групу записів з однієї або декількох ТБД, доступних для використання через компоненти TTable або TQuery. З можливих станів НД розглянемо такі: dsInactive – НД закритий; dsBrowse – стан за замовчуванням для відкритого НД. Показує, що записи переглядаються, але в даний момент не змінюються; dsEdit – НД знаходиться у стані редагування поточного запису (після явно або неявно викликаного методу Edit); dsInsert – НД знаходиться у стані додавання нового запису (після явно або неявно викликаного методу Insert або Append). Одержати поточний стан НД можна, використовуючи метод State. Він повертає такі константи: dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter.
Наприклад: IF Table1. State = dslnactive THEN Table1. Active:= True; Подія OnStateChange (компонент DataSource) настає щоразу при зміні стану НД. Для відображення на екрані (у компоненті Label1) повідомлення про поточний стан НД використовуємо процедуру: procedure TForm1.DataSource1StateChange(Sender: TObject); var S: String; begin CASE Table1. State OF Dslnactive:S:= 'He активна'; DsBrowse:S:= 'Перегляд'; dsEdit:S:= 'Редагування'; dslnsert:S:= 'Вставка'; END; {case} Label1.Caption:= S; end;
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 145; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |