/i>where number>=colгде col - количество единиц продукцииЗапрос 7 -Выводит информацию о максимальном количестве продукции, проданной за 1 заявку:select Production_name, MAX (number) as МАХfrom Salegroup by Production_nameЗапрос 8 - Выводит список организаций и наименования продукции с наибольшими партиями закупок:select distinct Organization_name, Production_name, MAX (number) as МАХfrom Salegroup by Production_name,Organization_name6. Руководство пользователюПри запуске приложения открывается главное окно программы с активной вкладкой "Организации" (рисунок 3). Оно содержит главное меню и четыре вкладки: "Организации", "Продукция", "Продажа" и "Запросы". Каждая вкладка имеет соответствующую названию вкладки таблицу и компонент манипулирования этой таблицей. Для необходимо можно выделить нужную организацию (признаком выделенности является черный треугольник напротив организации, на рисунке выделенным организацией является "Building").Рисунок 3 - Главное окно программыПри нажатии на вкладке "Продукция" появится таблица со списком продукций и соответствующей им информацией. Аналогично, если щелкнуть по вкладке "Продажа" - перед пользователем появится таблица с информацией о продажах. Рисунок 4 - Окно программы со списком запросов Четвертая вкладка содержит список запросов (Рисунок 4). Здесь пользователь может выбрать из списка один из предложенных запросов, либо в списке запросов выбрать "создать запрос…", либо в меню Action выбрать Make query. В результате появится диалоговое окно (Рисунок 5), где можно ввести нужные критерии запроса и нажать "ОК". Результат запросов отображается в таблице на вкладке "Запросы". Рисунок 5 - Окно создания запроса В меню Action есть команда Show report, после нажатия которой появится окно отчета по запросу (Рисунок 6). Отчет будет содержать информацию запроса, который выбран в списке запросов. Команда Show report доступна не всегда. Отчет предоставляется лишь следующим запросам: список организаций (указать вид деятельности) список организаций (указать город и вид деятельности) максимальные заявки на продукцию организации с макс числом куп продукции Рисунок 6 - Окно отчета Для получения справки об использовании программы пользователю необходимо в меню About выбрать Program…. Появится окно справки программы (Рисунок 7). Рисунок 7 - Окно справки программы ЗаключениеРезультатом данного курсового проекта является разработанная база данных "Отдел сбыта", которая включает в себя основную необходимую информацию об организациях, продукции и продажах. Эта информация была упорядочена в таблицы. Система выполняет следующие функции: хранение, добавление, удаление и изменение данных.Разработанная база данных проста и легка в использовании. Ее применение позволит уменьшить бумажной волокиты и сократит время сотрудников завода, работающих в отделе сбыта продукции.Клиент-серверная технология SQL позволит организовать централизованное хранение информации и возможность обращения к ней физически удаленных сотрудников.Список используемых источников1. Мартин Груббер, "Понимание SQL", Москва, 2003 г 2. Т. Карпова - Базы данных: модели, разработка, реализация. Питер, 2001 3. Курс лекций по разработке баз данных, Терлецкая А.М., 2007 г ПриложенияПриложение А Концептуальная модель данных Приложение Б. Листинг программного кода Unit1 procedure TForm1. TabControl1Change (Sender: TObject); begin case Tabcontrol1. TabIndex of 0: // управление вкладками begin DBGrid1. Visible: =true; DBNavigator1. Visible: =true; DBGrid2. Visible: =false; DBNavigator2. Visible: =false; DBGrid3. Visible: =false; DBNavigator3. Visible: =false; DBGrid4. Visible: =false; ComboBox1. Visible: =false; end; 1: begin DBGrid1. Visible: =false; DBNavigator1. Visible: =false; DBGrid2. Visible: =true; DBNavigator2. Visible: =true; DBGrid3. Visible: =false; DBNavigator3. Visible: =false; DBGrid4. Visible: =false; ComboBox1. Visible: =false; end; 2: begin DBGrid1. Visible: =false; DBNavigator1. Visible: =false; DBGrid2. Visible: =false; DBNavigator2. Visible: =false; DBGrid3. Visible: =true; DBNavigator3. Visible: =true; DBGrid4. Visible: =false; ComboBox1. Visible: =false; end; 3: begin DBGrid1. Visible: =false; DBNavigator1. Visible: =false; DBGrid2. Visible: =false; DBNavigator2. Visible: =false; DBGrid3. Visible: =false; DBNavigator3. Visible: =false; DBGrid4. Visible: =true; ComboBox1. Visible: =true; end; end; end; procedure TForm1. Exit1Click (Sender: TObject); begin Close; закрытие программы end; procedure TForm1.comboBox1Change (Sender: TObject); var town: string; prod: string; price: string; aktiv: string; begin case ComboBox1. ItemIndex of 0: // первый запрос begin ADOQuery1. Active: = false; aktiv: =InputBox ('Введите','Вид деятельности предприятия',aktiv); aktiv: =Edit1. Text+aktiv+Edit1. Text; if aktiv<>'' then ADOQuery1. SQL. Text: = 'select * from Organizations where Activity='+aktiv; ADOQuery1. Active: = true; // ------------------report---------------------------------------------- N2. Enabled: =true; Form3. QRLabel2. Caption: ='Организации'; Form3. QRLabel4. Caption: ='Адрес'; Form3. QRLabel5. Caption: ='Деятельность'; Form3. QRLabel6. Caption: ='Телефон'; Form3. QRLabel7. Caption: ='E-mail'; end; 1: // второй запрос begin ADOQuery1. Active: = false; price: =InputBox ('Введите','Цена за единицу продукции',price); if (price<>'') or (StrToInt (price) >=1000) then ADOQuery1. SQL. Text: = 'select * from Productions where Price_for_one>='+price+' order by Production_name'; ADOQuery1. Active: = true; N2. Enabled: =false; end; 2: // третий запрос begin ADOQuery1. Active: = false; prod: =InputBox ('Введите','Наименование продукции',prod); prod: =Edit1. Text+prod+Edit1. Text; if prod<>'' then aktiv: =InputBox ('Введите','Количество проданной продукции',aktiv); if (aktiv<>'') or (StrToInt (aktiv) >0) then ADOQuery1. SQL. Text: = 'select * from Sale where Production_name='+prod+' and number>='+aktiv; ADOQuery1. Active: = true; N2. Enabled: =false; end; 3: // четвертый запрос begin ADOQuery1. Active: = false; prod: =InputBox ('Введите','Наименование продукции',prod); prod: =Edit1. Text+prod+Edit1. Text; if prod<>'' then ADOQuery1. SQL. Text: = 'select Production_name, Sum (number) as Number_saled from Sale where Production_name='+prod+' group by Production_name'; ADOQuery1. Active: = true; N2. Enabled: =false; end; 4: // пятый запрос begin ADOQuery1. Active: = false; town: =InputBox ('Введите','Название города',town); town: =Edit1. Text+town+Edit1. Text; if town<>'' then aktiv: =InputBox ('Введите','Вид деятельности предприятия',aktiv); aktiv: =Edit1. Text+aktiv+Edit1. Text; if aktiv<>'' then ADOQuery1. SQL. Text: = 'select * from Organizations where (Address='+town+') and Activity='+aktiv; ADOQuery1. Active: = true; // -------------------------------отчет-------------------------- N2. Enabled: =true; Form3. QRLabel2. Caption: ='Организации'; Form3. QRLabel4. Caption: ='Адрес'; Form3. QRLabel5. Caption: ='Деятельность'; Form3. QRLabel6. Caption: ='Телефон'; Form3. QRLabel7. Caption: ='E-mail'; end; 5: // шестой запрос begin ADOQuery1. Active: = false; aktiv: =InputBox ('Введите','Количество прод. продукции за одну заявку >=',aktiv); if aktiv<>'' then ADOQuery1. SQL. Text: = 'select * from Sale where number>='+aktiv; ADOQuery1. Active: = true; N2. Enabled: =false; end; 6: // седьмой запрос begin ADOQuery1. Active: = false; ADOQuery1. SQL. Text: = 'select Production_name, MAX (number) as MAX from Sale group by Production_name'; ADOQuery1. Active: = true; // ---------------------------отчет------------------------------------ N2. Enabled: =true; Form3. QRLabel2. Caption: =''; Form3. QRLabel4. Caption: ='Продукция'; Form3. QRLabel5. Caption: ='МАХ'; Form3. QRLabel6. Caption: =''; Form3. QRLabel7. Caption: =''; end; 7: // восьмой запрос begin ADOQuery1. Active: = false; ADOQuery1. SQL. Text: = 'select distinct Organization_name,Production_name, MAX (number) as MAX from Sale group by Production_name,Organization_name'; ADOQuery1. Active: = true; // ----------------------------------отчет-------------------------- N2. Enabled: =true; Form3. QRLabel2. Caption: ='Организации'; Form3. QRLabel4. Caption: ='Продукция'; Form3. QRLabel5. Caption: ='МАХ'; Form3. QRLabel6. Caption: =''; Form3. QRLabel7. Caption: =''; end; 8: begin Form2. Visible: =true; // создать запрос end; end; end; procedure TForm1. N6Click (Sender: TObject); begin Form2. Visible: =true; // вызов окна создания запросов end; procedure TForm1. DataBase1Click (Sender: TObject); begin winhelp (Form1. Handle,'Справка. hlp',HELP_Context,1); end; procedure TForm1. N2Click (Sender: TObject); begin Form3. QuickRep1. Preview; // вызов отчета end; end. Unit 2. // -----------------------------------создание запросов------------------------------- procedure TForm2. Button1Click (Sender: TObject); var name, sel, from, where: string; having, group, order: string; num: integer; begin if (Edit1. Text='') or (Edit2. Text='') or (Edit3. Text='') then ShowMessage ('Заполните поля, отмеченные звездочкой! ') else begin name: =Edit1. Text; sel: =Edit2. Text; from: =Edit3. Text; where: =Edit4. Text; group: =Edit5. Text; order: =Edit6. Text; having: =Edit7. Text; Form1. ADOQuery1. Active: = false; if (where='') and (group='') and (order='') then Form1. ADOQuery1. SQL. Text: = 'select '+sel+' from '+from else if (group='') and (order='') then begin Form1. ADOQuery1. SQL. Text: = 'select '+sel+' from '+from+' where '+where; end else if (having='') and (order='') then begin Form1. ADOQuery1. SQL. Text: = 'select '+sel+' from '+from+' where '+where+ ' group by '+group; end else if order='' then begin Form1. ADOQuery1. SQL. Text: = 'select '+sel+' from '+from+' where '+where+ ' group by '+group+' having '+having; end else begin Form1. ADOQuery1. SQL. Text: = 'select '+sel+' from '+from+' where '+where+ ' group by '+group+' having '+having+' order by '+order; end; Form1. ADOQuery1. Active: = true; Form2. Visible: =false; end; end; // --------------------------------------------------------------------- procedure TForm2. Edit5Change (Sender: TObject); begin Memo1. Lines [8]: =' Group by '+Edit5. Text; if Edit5. Text<>'' then begin Label7. Enabled: =true; Edit7. Enabled: =true; end else begin Label7. Enabled: =false; Edit7. Enabled: =false; end; end; procedure TForm2. Edit2Change (Sender: TObject); // управление Мемо begin Memo1. Lines [2]: =' Select '+Edit2. Text; end; procedure TForm2. Edit3Change (Sender: TObject); begin Memo1. Lines [4]: =' From '+Edit3. Text; end; procedure TForm2. Edit4Change (Sender: TObject); begin Memo1. Lines [6]: =' Where '+Edit4. Text; end; procedure TForm2. Edit7Change (Sender: TObject); begin Memo1. Lines [10]: =' Having '+Edit7. Text; end; procedure TForm2. Edit6Change (Sender: TObject); begin Memo1. Lines [12]: =' Order by '+Edit6. Text; end; procedure TForm2. Button2Click (Sender: TObject); begin Form2. Visible: =false; end; procedure TForm2. Edit1Change (Sender: TObject); begin Memo1. Lines [0]: ='Запрос - '+Edit1. Text; end; end.
Страницы: 1, 2
|