Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РиЭ УБД(4к1с).docx
Скачиваний:
0
Добавлен:
25.04.2019
Размер:
57.01 Кб
Скачать

Поиск данных по содержимому

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

Пример:

В форму справочник поставщиков добавить в поле ввода критерий поиска и кнопку

Панель (поиск)

Text box

Label поиск

Edit1

Buttom1 по фамилии

Buttom2 по адресу

Buttom3 сброс

Обрабатываем кнопки:

Кнопка по фамилии:

begin

If length(edit1.text)>0 then

Datebd.adopostavchik.filtered:=true

Else datebd.adopostavchik.filtered:=false;

Datebd.adopostavchik.filter:=’fam=’’’+edit1.text+’’’’;

End;

Кнопка по адресу:

Begin

If length(edit1.text)>0 then

Datebd.adopostavchik.filtered:=true

Else dateb.adopostavchik.filtered:=false;

Datebd.adopostavchik.filter:=’address=’’’+edit1.text+’’’’;

End;

Кнопка Сброс:

datebd.adopostavhik.filtered:=false;

edt1.text:='';

edt2.text:='';

edt3.text:='';

Примечание:

На практике для поиска записей при помощи фильтрации создается отдельная форма поиска, которая вызывается из формы, где производится поиск.

Сохранить

Unitpostpoisk

Form style - mdi child

Caption - поиск

Name - formpostpoisk

Position - top center

Project – option вправо

Cafree;

В справочник поставщиков добавляем кнопку поиск

Application.createform(TFormpostpoisk, formpostpoisk))

Use unit

Label по фамилии

Label по имени

Label по адресу

Label по отчеству

Добавляем 4 Edit и 6 Buttom (3*поиск, сброс, закрыть)

Textbox edit

Сложные формы

В БД «комбинат» таблица «товар» является дочерней по отношению к таблице «вид товара»

Поэтому при создании формы «справочник товаров» необходимо учитывать данное условие. То есть при заполнении таблицы «Товар» будет происходить только при наличии заполненной связи kod (id_vid). Такое заполнение можно организовать при помощи раскрывающегося списка dblookupcombobox

Пример: создать сложную форму справочника товаров.

  1. Создаем новую форму.

Save as unittovar.

Caption – справочник товаров

Name FormTovar

FormStyle MDIChild

Position DefaultPosOnly

Project -> option перевести вправо

Use unit -> unit bd

Events -> OnClose -> FormClose -> action:=caFree;

Вызвать данный справочник из пункта главного меню

Заходим в главную форму, меню, справочник товаров.

  1. В модуль DateBD располагаем компоненты связи с таблицами Товар и вид товара

Для таблицы товар:

ADOTable свойства:

Name ADOTovar

Connection ADOCombinat

Tablename – Tovar

Active – true

DateSource свойства:

Name DateTovar

DataSet ADOTovar

Для таблицы Вид товара:

ADOTable свойства:

Name ADOVidTovar

Connection ADOCombinat

Tablename – Vid_Tovar

Active – true

DateSource свойства:

Name DateVidTovar

DataSet ADOVidTovar

  1. Отредактировать поля вывода в компоненте ADOTovar -> щелкнуть два раза -> добаляем все поля. Все ключевые поля – невидимы (visible –false).

Поле name:

DisplayLabel – наименование

DisplayWhit - 15

Поле EdIzm:

DisplayLabel – единица измерения

DisplayWhit – 15

Поле PriceStat:

DisplayLabel – начальная цена

DisplayWhit - 19

Carrency – true

Поле Priceitog:

DisplayLabel – итоговая цена

DisplayWhit - 19

Carrency – true

Поле Nal (логическое):

DisplayLabel – наличие

DisplayValues – да;нет

  1. Добавить в таблицу Товар поле Наличие

  2. Создаем интерфейс справочнику товаров

Вид товара: [dblookupcombobox]

DBGrid

Кнопки: Добавить, Сохранить, Удалить, Поиск, Закрыть.

BDGrid DataSource -> DateTovar

  1. Dblookupcombobox свойства:

ListSource – DateBD.DateVidTovar (таблица из которой берут сведения)

ListField – name (поле из таблицы, которое отобразится в списке)

KeyField – id

DataSource – DateBD.DateTovar (таблица, куда заносят товар)

DataField - id_vid (заполняемое поле)

DropDownRod – количество строк в открывающемся списке

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

В таблице товаров есть ограниченный список – единицы измерения. Для создания списка раскрывающегося списка в таблице DBGrid надо:

Вызвать контекстное меню таблицы DBGrid (правая кнопка мыши) и выбрать первую команду (редактор столбцов).

Вызвать контекстное меню редактора и добавить все поля (add all).

Ключевые поля переопределить в невидимые.

Выделить поле Единицы измерения и в свойстве PickList прописать строки раскрывающегося списка. OK

  1. Кнопка добавить должна вызвать дополнительную форму «Новые записи»

Выполняем стандартный набор действий, свойств

UnitTovarDob

FormTovarDob

  1. label наименование DBEdit1

label единица измерения DBComboBox

label цена начальная DBEdit2

label цена итоговая DBedit3

DBCheckBox

  • DBEdit1 DataSource – DateTovar

DataField – name

  • DBComboBox DataSource – DateTovar

DateField – ed_izm

Items – 2 щелчка – вписать вручную

Style – DropDownList

  • DBEdit2 DataSource – DateTovar

DataField – price_start

  • DBCheckBox свойства:

DataSource – DataTovar

DataField – nal

Alignvent – можно выбрать

Caption – Наличие

Вкладка additional – bitbtn

Kind – bkclose

  1. Доработать кнопку добавить на форме Справочник товаров

DataBD.ADOTovar .Append;

application.CreateForm(TFormTovarDob, FormTovarDob);

DBGrid.SetFocus;

  1. Кнопка сохранить

DateBD.ADOTovar.Post;

  1. Кнопка удалить

If Application.messagebox(Pchar (‘вы действительно…?’), ‘внимание!!!’,MB_OkCancel)=id_ok then datebd.adOTovar.delete;

  1. Обработка кнопки поиск

Кнопка поиск вызывает дополнительное окно «поиск записей»