Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка (турфирма).docx
Скачиваний:
113
Добавлен:
12.03.2015
Размер:
1.48 Mб
Скачать

1.4.5. Подбор путевки по параметрам.

Этот пункт меню позволяет провести анализ всех имеющихся туристических маршрутов и вывести в таблицу только те, цена которых находится в заданных пределах.

Выбор страны для подбора маршрута производится из ниспадающего списка. Нижняя и верхняя границы цен вводятся в текстовые поля. При нажатии кнопки ОК вызывается процедура модуля данных, которая инициирует выполнение соответствующего запроса.

//процедура главной формы

procedure TForm2.btOKClick(Sender: TObject);

begin

DataModule1.SelectPass(edMinPrice.text, edMaxPrice.text,

AnsiUpperCase(countryname.Text));

end;

//процедура модуля данных

procedure TDataModule1.SelectPass(MinPrice, MaxPrice:STRING; countryname: string);

begin

qSelectPass.Active:=False;

qSelectPass.ParamByName

('CountryName').AsString := countryname;

qSelectPass.ParamByName

('MinPrice').AsInteger:= sTRtOiNT(MinPrice);

qSelectPass.ParamByName

('MaxPrice').AsInteger:= StrToInt(MaxPrice);

DataModule1.qSelectPass.Active:= True;

end;

Код SQL-запроса:

select routecode,duration, route.price, hotel.name as HotelName, sity

from route join country on route.COUNTRYCODE=country.COUNTRYCODE

join hotel on route.HOTELCODE=hotel.HOTELCODE

where country.name = :countryname and route.price between :minprice and :maxprice

Результат выполнения:

1.4.6.Анализ работы фирмы.

Анализ работы фирмы включает две возможности: расчет динамики доходов фирмы и анализ продаж. Вкладка для расчета динамики доходов имеет следующий вид:

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

//процедура главной формы

procedure TForm2.btOKanalisClick(Sender: TObject);

begin

with Chart1.Series[0] do

begin

clear;

DataModule1.ProfitDinamic(edYear.text);

DataModule1.qProfitDinamic.First;

while not (DataModule1.qProfitDinamic.Eof) do

begin

AddY(StrToFloat(DataModule1.qProfitDinamic.FieldValues['profit'],

DataModule1.qProfitDinamic.FieldValues['mesyac']);

DataModule1.qProfitDinamic.Next;

end;

end;

end;

//процедура модуля данных

procedure TDataModule1.ProfitDinamic (yearAnalysis: string);

begin

qProfitDinamic.Active:=False;

qProfitDinamic.ParamByName ('YearAnalysis').AsInteger := StrToInt(yearAnalysis);

DataModule1.qProfitDinamic.Active:=True;

end;

Код SQL-запроса:

select extract(month from DATEOFSAIL) mesyac, sum (Profit) profit

from PROFIT

where extract (year from dateofsail)=:yearAnalysis

group by extract(month from DATEOFSAIL)

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

//процедура главной формы

procedure TForm2.btOKanalisClick(Sender: TObject);

begin

with Chart1.Series[0] do

begin

clear;

DataModule1.ProfitDinamic(edYear.text);

DataModule1.qProfitDinamic.First;

while not (DataModule1.qProfitDinamic.Eof) do

begin

AddY(StrToFloat(DataModule1.qProfitDinamic.FieldValues['profit'],

DataModule1.qProfitDinamic.FieldValues['mesyac']);

DataModule1.qProfitDinamic.Next;

end;

end;

end;

//процедура модуля данных

procedure TDataModule1.ProfitDinamic (yearAnalysis: string);

begin

qProfitDinamic.Active:=False;

qProfitDinamic.ParamByName ('YearAnalysis').AsInteger := StrToInt(yearAnalysis);

DataModule1.qProfitDinamic.Active:=True;

end;

Код SQL-запроса:

select extract(month from DATEOFSAIL) mesyac, sum (Profit) profit

from PROFIT

where extract (year from dateofsail)=:yearAnalysis

group by extract(month from DATEOFSAIL)

Пункт меню «Анализ продаж» позволяет оценить размер накопленной каждым клиентом стоимости. Выполнение этой функции доступно в двух вариантах: вывод данных в таблицу и формирование отчета. Общий вид вкладки для этого пункта меню представлен ниже.

В текстовом поле нужно задать год, за который будут выведены продажи. При нажатии на кнопку ОК полученные данные будут сформированы в таблицу, при нажатии на кнопку Напечатать отчет данные будут выведены в виде отчета.

//процедура главной формы для кнопки ОК

procedure TForm2.btOKReportClick(Sender: TObject);

begin

DataModule1.SailAnalysis(edYearReport.Text);

end;

//процедура главной формы для кнопки Напечатать отчет

procedure TForm2.btPrintReportClick(Sender: TObject);

begin

DataModule1.SailAnalysis(edYearReport.Text);

Form1.QRLabel3.Caption := edYearReport.Text;

Form1.QuickRep1.Preview;

end;

//процедура модуля данных

procedure TDataModule1.SailAnalysis (YearCode:string);

begin

qSailAnalysis.Active := False;

qSailAnalysis.ParamByName('YearCode').AsInteger := StrToInt(YearCode);

DataModule1.qSailAnalysis.Active := True;

end;

Код SQL-запроса:

select FIO, sum(QUANTITY)quantity, sum(COST)cost

from PASS join client on pass.CLIENTCODE=client.CLIENTCODE

join profit on pass.CODEOFPASS=profit.CODEOFPASS

where extract(year from DATEOFSAIL) = :YearCode

group by fio

Запрос позволяет выбрать данные для построения отчета: ФИО клиента, количество купленных этим клиентом путевок и их общая стоимость. Анализ данных производится за год. Анализируемый год :YearCode запрос получает из приложения.

Вид отчета в режиме конструктора:

Результат выполнения:

Пример построения отчета: