Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая / Lab_3_5_filtratsia

.doc
Скачиваний:
7
Добавлен:
19.02.2016
Размер:
237.57 Кб
Скачать

Лабораторная работа № 3.5.

Тема: Фильтрация данных по двум полям при помощи использования компонент DBLookupComboBox, ADOQuery , DataSource

1. Данная лабораторная работа выполняется на базе лабораторной работы № 3.4. Использую программу Navicat, заполните позиции: отдел, вид, поставщик, наименование товара не менее чем для 15 строк. Запустите С++Builder и откройте готовое приложение из лабораторной работы № 3.4. Откомпилируйте его и заполните 15 строк. Значения Отдел, Вид, Поставщик, Наименование товар выбираем из выпадающего меню, а Цена, Кол-во проставляем сами. Таблица будет иметь следующий вид:

2. С помощью компонент Label из закладки Standard и DBLookupComboBox из закладки Data Controls готовим інтерфейс для нашей формы как показано на рисунке ниже. Мы будем фильтровать данные нашей базы п Переменные для компонент DBLookupComboBox1 и DBLookupComboBox2 назовем cbOtd и cbPost соответственно.

о двум параметрам: по отделу и поставщику.

4. Для установления связи DBLookupComboBox с нашей базой данных наносим на форму по две компоненты ADOQuery из заклкадки ADO и DataSource из закладки DataAccess. Одна пара компонент для связи с полем Отдел, вторая – Поставщик.

Назовем их qrOtd и qrPost drOtd, drPost компонент ADOQuery и drOtd, drPost для DataSource соответственно. Для DataSource в свойстве DataSet устанавливаем тоже соответственно qrOtd и qrPost .

5. В окне Object Inspector для ADOQuery устанавливаем значение Connection. Двойным нажатием на свойство SQL, вызываем окно String List Editor и прописываем связи. Для qrOtd select * from otdel и для qrPost select * from postavshik

6. С помощью двойного нажатия мышью на наши компоненты ADOQuery вызываем окно Form1. На нем нажимаем правой кнопкой мышки и выбираем позицию Add all fields. В Object Inspector свойство Active устанавливаем в true. Проделываем эту операцию для qrOtd и qrPost.

7. Теперь для компонент DBLookupComboBox1 и DBLookupComboBox2 в окне Object Inspector устанавливаем свойства, показанные на рисунке ниже. (Соответственно для Отдела и Поставщика)

8. Для этих же компонент в окне Object Inspector переходим на закладку Events, выбираем OnCloseUp, делаем двойной щелчок мышкой и в появившемся окне пишем программу для выполнения нашего задания – фильтрации данный по двум полям: Отделу и Поставщику.

9. Программа будет иметь следующий вид:

#include <vcl.h>

#pragma hdrstop

#include "Main.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::qrTovarCalcFields(TDataSet *DataSet)

{

qrTovarSuma->Value = qrTovarkolichestvo->Value * qrTovarprice->Value;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::cbOtdelCloseUp(TObject *Sender)

{

String S;

if(cbPost->Text=="") S="";

else S=" and id_postav="+qrPostid_postavshik->AsString;

qrTovar->SQL->Clear();

qrTovar->SQL->Add("select * from tovar where id_otdel ="+qrOtdid_otdel->AsString + S);

qrTovar->Open();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::cbPostCloseUp(TObject *Sender)

{

String S;

if(cbPost->Text=="") S="";

else S=" and id_otdel="+qrOtdid_otdel->AsString;

qrTovar->SQL->Clear();

qrTovar->SQL->Add("select * from tovar where id_postav="+qrPostid_postavshik->AsString+S);

qrTovar->Open();

}

//---------------------------------------------------------------------------

10. Компилируем наше приложение, устраняем ошибки и запускаем нашу программу на выполнение. Приложение готово.

Соседние файлы в папке Курсовая