Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора.



Рекламаций

procedure TfrmBook.sbFindClick(Sender: TObject);

var where: string;

begin

DM.qBook.DisableControls;

DM.qBook.Close;

 

where:='';

if edD1.text <> '' then

wher:='Year>=:d1'

if edD2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Year’<=:d2';

end;

 

if edM1.text <> '' then

where:='Month>=:m1'

if edM2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Month’<=:m2';

end;

 

if edMod.text<>'' then

begin

if where<>'' then

where:=where +' and ';

where:=where+ 'Kod_mod in(select Kod_mod from Kniga_recl where Naim LIKE:mod)';

end;

 

if edC1.text <> '' then

where:='Price>=:c1'

if edC2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Price’<=:c2';

end;

 

if edP1.text <> '' then

where:='Prodeno>=:p1'

if edP2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Prodano’<=:p2';

end;

 

if edKr1.text <> '' then

where:='Kol_recl>=:Kr1'

if edKr2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Kol_recl<=:Kr2';

end;

 

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM Kniga_recl ');

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Year, Month ');

 

if edD1.text<>'' then

DM.qBook.Parameters.ParamByName('d1').Value:=StrToInt(edN1.text);

if edD2.text<>'' then

DM.qBook.Parameters.ParamByName('d2').Value:=StrToInt(edN2.text);

 

if edM1.text<>'' then

DM.qBook.Parameters.ParamByName('m1').Value:=StrToInt(edD1.text);

if edM2.text<>'' then

DM.qBook.Parameters.ParamByName('m2').Value:=StrToInt(edD2.text);

 

if edmod.text<>'' then

DM.qBook.Parameters.ParamByName('mod').Value:='%'+edmod.Text+'%';

 

if edC1.Text<>'' then

DM.qBook.Parameters.ParamByName('c1').Value:=StrToInt(edC1.text);

if edC2.Text<>'' then

DM.qBook.Parameters.ParamByName('c2').Value:=StrToInt(edC2.text);

 

if edP1.Text<>'' then

DM.qBook.Parameters.ParamByName('p1').Value:=StrToInt(edC1.text);

if edP2.Text<>'' then

DM.qBook.Parameters.ParamByName('p2').Value:=StrToInt(edC2.text);

 

if edKr1.Text<>'' then

DM.qBook.Parameters.ParamByName('Kr1').Value:=StrToInt(edC1.text);

if edKr2.Text<>'' then

DM.qBook.Parameters.ParamByName('Kr2').Value:=StrToInt(edC2.text);

 

DM.qBook.Open;

DM.qBook.EnableControls;

end;

15 баллов из 30

 

 

Таблица Bookrekl (Книга рекламаций) включает поля: Год, месяц, модель компьютера, цена, количество проданных компьютеров, количество рекламаций (возвратов)

 

20.Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора Таблица Bookuch (Книга учета) включает поля: Номер поезда, номер вагона, дата, код проводника, число жалоб, число благодарностей.

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (25 из 30)

Отбор данных: Необходимо отобрать записи по заданному диапазону номеров поездов, номеров вагонов, дате, кодам проводника, числу жалоб.

Добавим на панель 10 меток TLabel для задания диапазонов номеров поездов, номеров вагонов, дат, кодов проводника, числу жалоб.

-Текстовое поле ed1 будет использоваться для задания начального номера поезда

-Текстовое поле ed2 будет использоваться для задания конечного номера поезда

-Текстовое поле ed3 будет использоваться для задания начального номера вагона

-Текстовое поле ed4 будет использоваться для задания конечного номера вагона

-Текстовое поле ed5 будет использоваться для задания начальной даты

-Текстовое поле ed6 будет использоваться для задания конечной даты

-Текстовое поле ed7 будет использоваться для задания начального кода проводника

-Текстовое поле ed8 будет использоваться для задания конечного кода проводника

-Текстовое поле ed9 будет использоваться для задания начального числа жалоб

-Текстовое поле ed10 будет использоваться для задания конечного числа жалоб

 

procedure TfrmBook.sbFindClick(Sender: TObject);

var where: string; begin

DM.qBook.DisableControls;

DM.qBook.Close;

where:='';

if ed1.text<>'' then

where:='Nomer_poezda>=:p1';

if ed2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Nomer_poezda’<=:p2';

end;

if ed3.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Nomer_vagona’>=:p3';

end;

if ed4.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Nomer_vagona’ <=:p4’;

end;

if ed5.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Dat’ >=:p5';

end;

if ed6.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Dat’ <=:p6’;

end;

if ed7.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Kod_prov’ >=:p7';

end;

if ed8.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Kod_prov’ <=:p8’;

end;

if ed9.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Count_g’ >=:p9';

end;

if ed10.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+’Count_g’ <=:p10’;

end;

 

 

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM Bookuch ');

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Nomer_poezda asc, Nomer_vagona asc');

 

if ed1.text<>'' then

DM.qBook.Parameters.ParamByName('p1').Value:=StrToInt(ed1.text);

if ed2.text<>'' then

DM.qBook.Parameters.ParamByName('p2').Value:=StrToInt(ed2.text);

if ed3.text<>'' then

DM.qBook.Parameters.ParamByName('p3').Value:=StrToInt(ed3.text);

if ed4.text<>'' then

DM.qBook.Parameters.ParamByName('p4').Value:=StrToInt(ed4.text);

if ed5.text<>'' then

DM.qBook.Parameters.ParamByName('p5').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(ed5.text));

if ed6.text<>'' then

DM.qBook.Parameters.ParamByName('p6').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(ed6.text));

if ed7.text<>'' then

DM.qBook.Parameters.ParamByName('p7').Value:=StrToInt(ed7.text);

if ed8.text<>'' then

DM.qBook.Parameters.ParamByName('p8').Value:=StrToInt(ed8.text);

if ed9.text<>'' then

DM.qBook.Parameters.ParamByName('p9').Value:=StrToInt(ed9.text);

if ed10.text<>'' then

DM.qBook.Parameters.ParamByName('p10').Value:=StrToInt(ed10.text);

 

DM.qBook.Open;

DM.qBook.EnableControls;

end;

25 из 30

 

Другой ответ

Текст метода расчета вычисляемого поля:

procedure TDM.qBookCalcFields(DataSet: TDataSet);

begin

qBookPM.AsInteger:= qBookChislo_blagodarn.AsInteger-qBookChislo_zhalob.AsInteger;

end;

 

Текст события открытия формы (onShow):

procedure TfrmBook.FormShow(Sender: TObject);

begin

if not DM.qProv.Active then

DM.qProv.Open;

if not DM.qBook.Active then

DM.qBook.Open;

end;

 

 

Текст обработчика пункта меню вызова формы просмотра основной таблицы:

procedure TfrmMain.ProvNClick(Sender: TObject);

begin

with TfrmBook.Create(application) do

try

ShowModal;

finally

Free;

end;

end;

 

Текст события нажатия кнопки Отмена:

procedure TfrmBook.sbClearClick(Sender: TObject);

begin

DM.qBook.DisableControls;

edN1.Clear;

edN2.Clear;

edD1.Clear;

edD2.Clear;

edFIO.Clear;

DM.qBook.Close;

DM.qBook.SQL.Text:= 'SELECT * FROM Kniga_ycheta ORDER BY Number_vagona';

DM.qBook.Open;

DM.qBook.EnableControls;

end;

 

Текст обработчика отбора данных:

procedure TfrmBook.sbFindClick(Sender: TObject);

begin

DM.qBook.DisableControls; // Отключаем видимый компонент от НД

DM.qBook.Close; // Закрываем НД

where:=''; // строка составного условия

 

// Первый проход - формирование составного условия

if edN1.text<>'' then

where:='Number_vagona>=:n1';

if edN2.text<>'' then

begin

if where<>'' then

where:=where+' and ';

where:=where+'Number_vagona<=:n2';

end;

 

if edD1.Text<>'' then

begin

if where<>'' then

where:=where+' and ';

where:=where+'Date_otpr>=:d1';

end;

if edD2.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'Date_otpr<=:d2';

 end;

 

if edFIO.text<>'' then

begin

if where<>'' then

where:=where+' and ';

where:=where+'Kod_provod in (select Kod_provod from Spravochnik_provodnikov where FIO LIKE:FI)';

end;

 

// формирование свойства SQL

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM Kniga_ycheta ');

 

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Date_otpr desc,Number_vagona desc');

 

// Второй проход - подстановка значений параметров

if edN1.text<>'' then

DM.qBook.Parameters.ParamByName('n1').Value:=StrToInt(edN1.text);

if edN2.text<>'' then

DM.qBook.Parameters.ParamByName('n2').Value:=StrToInt(edN2.text);

 

if edD1.text<>'' then

DM.qBook.Parameters.ParamByName('d1').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(edD1.text));

if edD2.text<>'' then

DM.qBook.Parameters.ParamByName('d2').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(edD2.text));

 

if edFIO.text<>'' then

DM.qBook.Parameters.ParamByName('FI').Value:='%'+edFIO.Text+'%';

 

DM.qBook.Open; // Открываем НД

DM.qBook.EnableControls; // Подключаем видимый компонент к НД

end;

23 из 30.

20.Дано описание таблицы БД. Реализовать отбор данных. Указать перечень, полей, перечень компонентов и написать метод отбора данных. Использовать не менее 5 полей для условий отбора Таблица Bookusp (Книга успеваемости) включает поля: Факультет, номер группы, код предмета, ФИО студента, срок сдачи задолженности, дата сдачи задолженности

ЭТОТ ОТВЕТ СЧИТАЕТСЯ ХОРОШИМ (24 из 30)

Таблица содержит следующие поля: Факультет(fakult),номер группы(nomgroup),код предмета(kod_predm),ФИО студента(FIO),срок сдачи задолженности(srok_zdach), дата сдачи задолженности(data_sdach)

Форма содержит компоненты:

DBGrid1-для вывода таблицы с данными

Компоненты TEdit

edfakult=текстовое поле для вывода Факультета

edNGr=текстовое поле для вывода Номера группы

edKod=текстовое поле для вывода кода предмета

edFIO=текстовое поле для вывода ФИО студента

edSrok=текстовое поле для вывода срока сдачи задолженности

eddatasdach=текстовое поле для вывода датs сдачи задолженности

 

Добавим 2 элемента SpeedButton для действий -

1. Поиск

2. Отмена

Элементы Label для вывода текста? описывающего поле ввода

procedure TfrmBook.sbFindClick(Sender: TObject);

var where: string;

begin

DM.qBook.DisableControls;

DM.qBook.Close;

 

where:='';

if edNGr.text <> '' then

if where <> '' then

where:=where +'and';

where: = where + 'NomGroup LIKE:nom';

end;

 

if edKod.text<>'' then

where:='Kod_predm>=:kod';

 

if edFIO.text<>'' then

begin

if where<>'' then

where:=where+' and ';

where:=where+'FIO_stud<=:fio';

end;

 

if edSrok.Text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'dat>=:srok';

end;

 

if edDataSdach.text<>'' then begin

if where<>'' then

where:=where+' and ';

where:=where+'dat<=:data';

end;

 

DM.qBook.SQL.clear;

DM.qBook.SQL.add('SELECT * FROM Bookuch ');

if where<>'' then

DM.qBook.SQL.add('WHERE '+where);

DM.qBook.SQL.add('ORDER BY Id_book_uch,fakult ');

 

if edNGr.text<>'' then

DM.qBook.Parameters.ParamByName('nom').Value:StrToInt(edNGr.text);

 

if edKod.text<>'' then

DM.qBook.Parameters.ParamByName('kod').Value:=StrToInt(edKod.text);

if edFIO.text<>'' then

DM.qBook.Parameters.ParamByName('fio').Value:=StrToInt(edFIO.text);

 

if edSrok.text<>'' then

DM.qBook.Parameters.ParamByName('srok').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(edSrok.text));

if eddatasdach.text<>'' then

DM.qBook.Parameters.ParamByName('data').Value:=

FormatDateTime('yyyy-mm-dd',StrToDate(eddatasdach.text));

DM.qBook.Open;

DM.qBook.EnableControls;

end;

 



Поделиться:


Последнее изменение этой страницы: 2020-12-17; просмотров: 108; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.71.237 (0.046 с.)