Студопедия — if DataModule1.BookTable.Modified then
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

if DataModule1.BookTable.Modified then






DataModule1.BookTable.Post;

Close;

end;

В першому рядку здійснюється перевірка, якщо таблиця була змінена (DataModule1.BookTable. Modified дорівнює true), то прийняти зміни DataModule1.BookTable.Post.

Тепер перейдіть в головну форму та по натисканню пункту меню «Добавить запись» напишіть наступне:

DataModule1.BookTable.Insert;

EditRecordForm.ShowModal;

Тут в першому рядку я вставляю в головну таблицю новий рядок. В другому рядку я відображаю вікно редагування даних.

По натисканню пункта меню «Редактировать запись» напишіть просто код відображення вікна редагування - EditRecordForm.ShowModal;.

Тепер запустимо програму. Створіть новий запис. На рис. 1.11 можна побачити параметри, які були занесені для прикладу.

 

Рис. 1.11 Вікно редагування даних

 

В полі «Город» було обране значення «Ростов-на-Дону». Після натискання кнопки «Сохранить» вікно зачинеться. Подивись на сітку. В полі «Город» нового рядка можна побачити цифру 3. Це значить, що в довіднику міст є запис зі значенням в полі Key1, яке дорівнює 3 та в поле «Название города» вказана назва, яка була обрана. Відчиніть таблицю через Access та подивіться.

 

Вдосконалений приклад з пошуковими полями

Перед тим як рухатися далі, треба спочатку зробити обробник для меню «Удалить запись». По цій події треба вивести запит на підтвердження знищення та якщо відповідь є позитивною, то можна знищувати.

Створіть такий обробник та напишіть в ньому наступне:

Begin

if Application.MessageBox(PChar('Ты действительно хочешь удалить '

+DataModule1.BookTableDSDesigner.AsString), 'Внимание!!!',

MB_OKCANCEL)=id_OK then

DataModule1.BookTable.Delete;

end;

Тут виводиться повідомлення за допомогою функції MessageBox. В першому параметрі (текст повідомлення) пишеться текст 'Ты действительно хочешь удалить ' плюс значення поля «Фамилия» обраного рядка - DataModule1.BookTableDSDesigner.AsString. Саме складне тут - DataModule1.BookTableDSDesigner.AsString. Щоб зрозуміти цю конструкцію треба перейти в модуль DataModule. Тут двічи натиснути по компоненту BookTable, де у нас підключений основний довідник, а потім по полю «Фамилия». Подивитися в об’єктному інспекторе ім’я цього поля, воно повинне бути BookTableDSDesigner. Зараз зрозуміло? Я пишу ім’я модуля даних (DataModule1), потім через крапку ім’я поля (BookTableDSDesigner) та метод AsString, який повертає значення поля у вигляді рядка.

Можете піднятися в розділ type модулю DataModule1 та впевнитися, що всередині нашего об’єкту TDataModule1 є оголошення властивості BookTableDSDesigner типу TWideStringField.

Сподіваюсь, що з першим рядком все зрозуміло. Якщо ні, то запусти приклад та подивись, що відбудеться якщо спробувати знищити рядок.

В другому рядку я просто знищую поточний рядок за допомогою виклику методу Delete таблиці - DataModule1.BookTable.Delete.

Зараз приклад практично готовий. Єдиний недолік – в сітці перегляду даних замість назви міста відображається індекс рядка в довіднику. Це дуже незручно, тому треба виправити цей недолік.

Перейди в модуль DataModule1, та виділи компонент BookTable. Зроби його неактивним – в властивості Active встановіть false. Зараз двічі натисніть по цьому компоненту та перед тобою відчинеться вже знайомий редактор полів. Створимо нове поле, яке буде містити текстову назву міста для рядків таблиці. Для цього натисніть всередині вікна редактору та в меню, яке з’явиться, оберіть пункт New Field. Відчинеться вікно, яке зображене на рисунке 1.12:

 

Рис. 1.12 Вікно створення нового поля

Створення нового поля можливе лише при неактивній таблиці, тому ми й виставили в властивості Active значення false.

Заповніть поля цього вікна наступним чином:

В полі Name введіть «Town»

В полі Type вкажіть тип String – рядок.

В полі FieldType оберіть Lookup – пошукове поле.

В полі KeyField (ключеве поле) оберіть поле «Город». Це поле головної таблиці,

по значенню якого треба буде відшукувати текст в іншій таблиці.

В полі DataSet треба вказати TownTable – це таблиця-довідник міст, де треба шукати.

В полі Lookup Keys вкажіть Key1 – це поле в таблиці довіднику, за яким треба здійснювати пошук.

В полі Result Field вкажіть поле «Название города» - це поле, текст якого буде підставлятися. Зараз нажміть ОК.

В вікні редактору полів з’явиться ново поле з іменем Town. В самій БД такого поля не буде, тому що воно динамічне та існує лише в пам’яті машини, коли програма є запущеною. Перетащіть його мишкою вище, ближче до поля Город (рис. 1.13):

 

Рис. 1.13

 

Знову зроби таблицю BookTable активною та спробуй зараз запустити програму. Подивись на поле Town та ти побачишь зараз там тестову назву міста (рис. 1.14).

 

Рис. 1.14 Результат роботи програми

Зараз програма виглядає більш красивою та цікавою. Єдине – можна зробити поле «Город» невидимим, для того щоб користувач не бачив ці незрозумілі числа, а над полем Town написати надпис «Город». Для цього двічі натисніть по компоненту BookTable, виділіть поле «Город» та встановіть в властивості Visible значенне false. Тепер виділіть поле Town та в властивості DisplayLabel напишіть «Город».







Дата добавления: 2015-10-12; просмотров: 360. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

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

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Studopedia.info - Студопедия - 2014-2024 год . (0.033 сек.) русская версия | украинская версия