Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 81; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.255.127 (0.004 с.) |