- •Содержание
- •Введение
- •1. Анализ документа «акт на списание малоценных и быстроизнашивающихся предметов» и существующих систем автоматизации
- •Структура и информационные потоки документа «Акт на списание малоценных и быстроизнашивающихся предметов»
- •Анализ существующих систем автоматизации
- •Требования к разрабатываемой информационной системе и постановка задачи
- •2. Разработка информационной системы акт на списание малоценных и быстроизнашивающихся предметов
- •2.1 Выбор средства реализации
- •2.2 Моделирование предметной области информационной системы
- •2.3 Моделирование структуры данных
- •2.4 Создание структуры базы данных
- •2.5 Разработка форм ввода и вывода информации
- •2.6 Разработка отчетов
- •2.7 Формирование программного обеспечения информационной системы
- •3. Технология работы с информационной системой
- •3.1 Подготовка системы к работе. Требование к оборудованию и программному обеспечению
- •3.2 Описание работы с системой
- •Заключение
- •Список использованной литературы
- •Приложение 1. Бланк «Акт на списание малоценных и быстроизнашивающихся предметов»
- •Приложение 2. Код функции number2word
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 – Отчет «Акт на списание малоценных и быстроизнашивающихся предметов»