Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_Тюнин / poyasnitelnaya_zapiska_1.doc
Скачиваний:
28
Добавлен:
20.03.2016
Размер:
1.99 Mб
Скачать

2.6 Разработка отчетов

Для создания отчета необходимо запустить Oracle Reports Builder. Для того чтобы отобразить один документ в отчете нужно передать его номер в отчет для этого используется User Parameter (пользовательские параметры). Затем щелкнуть мышью по узлу в Object Navigator по Data Model, выделить пункт User Parameter и нажать кнопку "+" в Object Navigator, в результате будет создан параметр с именем «P_1», переименованный в «D_AKT».

Теперь нужно построить SQL запросы для получения данных из БД, для этого необходимо в Object Navigator выбрать пункт Report Editor, в результате чего появится окно Report Editor.

Далее необходимо нажать на кнопку Data Model для построения модели данных и выполнить следующие операции:

Построить запрос для шапки документа, для этого необходимо нажать кнопку SQL и щелкнуть курсором мыши по рабочему полю Report Editor в результате чего появится окно для построения запроса, куда вводится следующий код:

select nomer, (select naim from s_orgs where kod=s_org_kod),(select okpo from s_orgs where kod=s_org_kod),(select naim_p from s_pods where kod_p=s_pod_kod_p),data_sost, kod_v_d,vid_d,kod_a_y,sch from d_akt1 where kod1=:P_kod;

В результате после нажатия на кнопку ОК в рабочей области Report Editor появится запрос (рис. 13).

2. Аналогичным образом строятся запросы для табличных частей документа из таблиц D_AKT2 и D_AKT3. Код запросов:

  • для D_AKT2:

select (select naim_pr from s_predmets where kod_pr=s_predmet_kod_pr),(select nom_n from s_predmets where kod_pr=s_predmet_kod_pr),(select inv_n from s_predmets where kod_pr=s_predmet_kod_pr),(select kod_ed from s_predmets where kod_pr=s_predmet_kod_pr),(select naim_ed from s_predmets where kod_pr=s_predmet_kod_pr),kolvo,datapost,cena,srok,pr_sp_naim,pr_sp_kod,n_pasp from d_akt2 where d_akt1_kod1=:P_kod;

  • для D_AKT3:

select kod_v_op, vid_d2,(select naim_p from s_pods where kod_p=s_pod_kod_p),yt_naim,yt_nom_n,ed_kod,ed_naim,kolvo2,cena2,por_nom from d_akt3 where D_akt1_kod1=:P_kod;

Рис. 13 – Модель данных в Reports Builder

На первом этапе рисуется шапка документа, для этого создается повторяющийся фрейм в верхней части листа. Далее необходимо выделить фрейм и в окне свойств установить значение «Source» на G_NOMER.

Теперь необходимо расположить поля данных шапки в созданном фрейме. Для создания поля данных во фрейме во фрейм добавляется компонент Field, для которого устанавливаются свойства «Source» в соответствии с вызываемым полем из таблицы запроса и добавляется подпись к полю с помощью компонента Text. Для данного документа таким образом были созданы следующие поля: Акт № (F_1), наименование организации(F_3), наименование структурного подразделения(F_2, F_7), дата составления (F_5), код вида операции (F_6), вид деятельности(F_8),код ОКПО(F_4), счет, субсчет(F_9), код аналитического учета (F_10). Аналогичным образом созданы поля данных из таблиц D_AKT2 и D_AKT3, расположенные в повторяющихся фреймах.

Для расчета суммы были добавлены поля с помощью компонента Formula Column. Для созданного поля устанавливаются следующие свойства:

«CF_1»: Column Type – Formula, PL/SQL Formula - return (:KOLVO*:cena-0.18*(:KOLVO*:cena));

«CF_3»: Column Type – Formula, PL/SQL Formula - return (:KOLVO2*:CENA2);

Так как в табличной части документа необходимо выводить общее количество предметов, утиля (лома), а также общую сумму, то необходимо создать элементы Summary Column. Для этого необходимо перейти в окно Data Model, выбрать компонент Summary Column и щелкнуть мышью по рабочему полю Report Editor. В результате появится еще одно поле для которого необходимо выставить следующие свойства «Function» - «Sum», «Source» - «CF1». Аналогичным образом создаются поля CS2(«Function» - «Sum», «Source» - «KOLVO »), CS3(«Function» - «Sum», «Source» - «KOLVO2 »), CS4(«Function» - «Sum», «Source» - «CF3»).

Для вывода общего количества предметов прописью было добавлено поле «CF_2», для которого были установлены свойства:Column Type – Formula, PL/SQL Formula - return number2word(:CS_2,0). Код функции приведен в приложении 2.

В результате проделанных операций мы получим отчет, приведенный на рис.14.

Рис. 14 – Отчет «Акт на списание малоценных и быстроизнашивающихся предметов»

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