Разработка автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО 'РЖД'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,06 Мб
  • Опубликовано:
    2013-10-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО 'РЖД'

Аннотация

 

В данном дипломном проекте разрабатывалась автоматизированная система контроля процессов обслуживания кредитовых ведомств (воинских министерств) ОАО «РЖД».

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

Во второй главе описаны этапы разработки задачи, такие как: выбор источников данных, определение наборов входных и выходных данных. Посредством UML диаграмм вариантов использования, классов, последовательностей и кооперации описаны все функции подсистемы. Основная логика работы системы представлена через диаграммы деятельности. Сформирована объектно-ориентированная БД. Обоснован выбор программного обеспечения для разработки, и описана структурная часть программной разработки. Представлены основные формы отчётов результирующей информации, и проведён анализ результатов, полученных разработанной автоматизированной системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД».

В третьей главе проведён анализ пользовательских требований к структуре и технологии подготовки отчётов и предложения по организации пользовательского интерфейса.

В четвёртой главе произведён расчёт временных характеристик, приведено подтверждение соответствия выдвинутым требованиям.

В пятой главе произведён расчёт экономической эффективности разрабатываемой системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД».

В приложении приведены:

·  описание вариантов использования;

·        основные классы, участвующие в реализации вариантов использования;

·        определение обязанностей, атрибутов и ассоциаций классов;

·        подробное описание сущностей БД АСККВ;

·        формы отчётов;

·  исходный код программы;

·        руководство пользователей по работе с разработанной системой.

Оглавление

 

ВВЕДЕНИЕ

. АНАЛИЗ СУЩЕСТВУЮЩЕЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ КОНТРОЛЯ ПРОЦЕССОВ ОБСЛУЖИВАНИЯ КРЕДИТОВЫХ ВЕДОМСТВ (ВОИНСКИХ МИНИСТЕРСТВ) ОАО «РЖД»

.1 Цель разработки

.2 Постановка задачи

.3 Объект автоматизации

.3.1 Технические средства и показатели системы АСУ «Экспресс-3»

.3.2 Информационное обеспечение системы АСУ «Экспресс-3»

.3.3 Таблицы АБД

.3.4 Таблицы КОЗРВ

.4 Существующая система контроля процессов обслуживания кредитовых ведомств (воинских министерств) в среде ОАО «РЖД» с использованием данных КОЗРВ

.4.1 Расчёт среднего времени обслуживания запроса в системе

.4.2 Основные достоинства и недостатки системы контроля процессов обслуживания кредитовых ведомств (воинских министерств) в среде ОАО «РЖД» с использованием данных КОЗРВ

.5 Обоснование целесообразности разработки

.6 Требования к системе

.6.1 Требования к системе в целом

.6.2 Требования к функциям (задачам), выполняемым системой

.6.3 Требования к архитектуре системы

.6.4 Требования к видам обеспечения

. РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ КОНТРОЛЯ ПРОЦЕССОВ ОБСЛУЖИВАНИЯ КРЕДИТОВЫХ ВЕДОМСТВ ОАО «РЖД»

.1 Выбор источников данных

.2 Выделение исходных данных

.2.1 Определение входных данных

.2.2 Выделение выходных данных

.3 Анализ разрабатываемой АСККВ с использованием технологии RUP

.3.1 Моделирование бизнес-процессов (Business UseCase Model)

.3.2 Модель вариантов использования

.3.3 Описание вариантов использования

.3.4 Создание диаграммы вариантов использования

.3.5 Соглашение по моделированию

.3.6 Идентификация ключевых абстракций

.3.7 Анализ вариантов использования

.3.8 Модель бизнес-анализа

.3.9 Проектирование БД

.4. Среда разработки и язык программирования

.5 Структура программной части АСККВ и формы вывода результирующей информации

.6 Анализ результатов, полученных автоматизированной системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

. Анализ пользовательских требований к структуре и технологии подготовки отчётов и предложения по организации пользовательского интерфейса

.1 Предложения по организации рабочего места пользователя автоматизированной системы контроля процессов обслуживания кредитовых ведомств

.1.1 Описание технологии проведения экспертного опроса

.1.2 Обработка результатов опроса

.1.3 Конкретизация результатов опроса экспертов

.1.4 Вывод

.2 Основные категорий пользователей

.3 Обоснование компоновки Web-страницы

.4 Компоновка Web-страницы

.5 Заключение

. Системотехнические расчёты

. Экономическая часть

.1 Постановка экономической задачи

.2 Расчёт затрат, связанных с разработкой автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

.3 Расчёт затрат по эксплуатации автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

.4 Определение эффективности проекта

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ГЛОССАРИЙ

Приложение А. Описание вариантов использования АСККВ

А.1 Авторизация пользователя

А.2 Формирование запроса к системе

А.3 Получение результирующей информации

А.4 Администрирование

Приложение B. Основные классы, участвующие в реализации вариантов использования

Приложение C. Определение обязанностей, атрибутов и ассоциаций классов

Приложение D. Подробное описание сущностей БД АСККВ

Приложение E. Формы отчётов

Приложение F. Код программы

Приложение G. Руководство пользователей по работе с системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

 

ВВЕДЕНИЕ


Железнодорожный комплекс имеет особое стратегическое значение для России. Он является связующим звеном единой экономической системы, обеспечивает стабильную деятельность промышленных предприятий, своевременный подвоз жизненно важных грузов в самые отдаленные уголки страны, а также является самым доступным транспортом для миллионов граждан.

Российские железные дороги (РЖД) являются ведущим элементом транспортной системы, их доля в обеспечении пассажирских и грузовых перевозок составляет более 40 процентов от всего транспорта страны. Однако сейчас пассажирские перевозки, будучи убыточными, требуют более современных методов управления, чтобы сохранить устойчивое функционирование на рынке транспортных услуг с одновременным снижением эксплуатационных затрат и привлечением дополнительных доходов. Поэтому информатизации отводится ведущая роль в стратегии управления железнодорожным транспортом и во внедрении передовых технологий в подразделения пассажирского хозяйства. Информатизация рассматривается как важнейший механизм, обеспечивающий решение основных проблем, связанных с увеличением объёмов перевозок и сокращением транспортных издержек. Необходимость информатизации управления пассажирскими перевозками вызывается, прежде всего, тем, что технологические процессы пассажирских перевозок неразрывно связаны с массовым обслуживанием населения и требуют значительного числа оперативно обрабатываемых исходных данных для их анализа. При этом вся деятельность управления сводится к установлению оптимального соотношения между потребностью населения в перевозках и имеющимися транспортными средствами в условиях колебания пассажиропотоков.

Для эффективного управления пассажирскими перевозками на базе информатизации технологических процессов должен быть создан оперативный механизм управления, который бы автоматизировал сбор, обработку и выдачу необходимой информации для принятия оперативных решений по регулированию перевозок, снижению затрат и получению дополнительных доходов. В российских железных дорогах таким механизмом является система «Экспресс-3», которая представляет собой вычислительную сеть по обслуживанию пассажиров для автоматизации продажи билетов и резервирования мест в поездах и оперативного управления пассажирскими перевозками.

Задачей данного дипломного проекта является разработка автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» (АСККВ):

·  разработка системы, обеспечивающая выдачу информации по дорожным счётчикам кредитовых ведомств агрегированных таблиц АБД (Аналитической Базы Данных) с разбивкой по дорогам, агентам, перевозчикам и кредитовым ведомствам.

1. АНАЛИЗ СУЩЕСТВУЮЩЕЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ КОНТРОЛЯ ПРОЦЕССОВ ОБСЛУЖИВАНИЯ КРЕДИТОВЫХ ВЕДОМСТВ (ВОИНСКИХ МИНИСТЕРСТВ) ОАО «РЖД»

 

1.1 Цель разработки


Основной целью данного дипломного проектирования является разработка автоматизированной системы контроля процессов обслуживания кредитовых ведомств, обеспечивающей выдачу информации по дорожным счётчикам кредитовых ведомств агрегированных таблиц АБД (Аналитической Базы Данных) с разбивкой по дорогам, агентам, перевозчикам и кредитовым ведомствам. Также в ходе дипломного проекта будет достигнута вспомогательная цель: анализ зависимости стоимостных и количественных результатов, полученных в данной системе по кредитовым ведомствам, от временных характеристик для принятия решения и предоставления отчёта дирекциям по обслуживанию пассажиров.

 

1.2 Постановка задачи


Система контроля процессов обслуживания кредитовых ведомств должна обеспечивать:

·  сбор показателей из источников, находящихся в таблицах в АБД DB/2 (таблицы «Информация о счётчиках» (DOHODV), «Дороги» (DOR), «Государства» (GOS), «Агенты и перевозчики» (SOBPER), «Льготы» (LGOT));

·  выдача показателей в виде таблиц-отчётов в зависимости от набора параметров, введённых пользователем;

В системе контроля процессов обслуживания должны быть автоматизированы следующие функции:

·        контроль доступа пользователя к системе;

·  пользовательский интерфейс по вводу исходных данных;

·        основные формы отражения информации по кредитовым ведомствам с разбивкой по дорогам и ведомствам, с разбивкой по ведомствам, с разбивкой по ведомствам и агентам, с разбивкой по ведомствам и перевозчикам;

·        основную форму отражения итоговой суммы показателей по всем дорогам России по всем ведомствам;

·        возможность передачи полученных данных в MS Excel для дальнейшего формирования отчёта;

·        контроль доступа для пользователей по дорогам;

·        контроль доступа для пользователей по кодам агента и перевозчика.

 

1.3 Объект автоматизации


Объектом автоматизации в дипломном проекте выбрана АСУ «Экспресс-3». В пассажирском хозяйстве сети железных дорог система «Экспресс-3», являясь базой информатизации, обеспечивает решение основных стратегических задач по увеличению объемов перевозок пассажиров и сокращению транспортных расходов. С помощью системы «Экспресс-3» осуществляется сбор и обработка информации, необходимой для принятия оперативных решений по регулированию перевозок, снижению затрат и получению дополнительных доходов.

Система «Экспресс-3»:

·  работает в реальном масштабе времени с большим числом абонентов (в т.ч. билетными кассами),

·        охватывает с помощью линий связи всю территорию сети железных дорог,

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

Многофункциональная система «Экспресс-3» охватывает через сети связи все железные дороги, а также другие виды транспорта. Это позволяет централизованно управлять пассажирскими перевозками на уровне дорог и министерства путем создания центров управления перевозками, взаимодействующих между собой. Таким образом, «Экспресс-3» в пассажирском хозяйстве является не только системой продажи билетов и резервирования мест, но и механизмом, с помощью которого можно решать самые разнообразные проблемы в области управления пассажирскими перевозками.

Целями создания «Экспресс-3» являются:

·        повышение эффективности перевозочного процесса за счёт организации оперативного управления;

·        улучшение уровня обслуживания и предоставления различных сервисных услуг пассажирам;

·        рост рентабельности пассажирских перевозок и производительности труда работников на железной дороге;

·        реализация механизма автоматизации взаиморасчётов за перевозки;

·        создание информационной базы для маркетинговой деятельности и гибкой тарифной политики в целях увеличения доходов от пассажирских перевозок и автоматизированного получения основных показателей по перевозкам.

Система «Экспресс-3» базируется:

·        на использовании современных средств вычислительной техники, телекоммуникаций и передачи данных, а также СУБД и баз данных пассажирских перевозок с применением перспективных инструментальных средств разработки программного обеспечения;

·        на обеспечении защиты информации от несанкционированного доступа;

·        на автоматизированном взаимодействии с другими аналогичными системами железных дорог и разных видов транспорта.

 

1.3.1 Технические средства и показатели системы АСУ «Экспресс-3»

В структурном плане технические средства системы «Экспресс-3» состоят из 4-х основных частей:

·  вычислительный комплекс: 2 центра обработки данных (HOST-ЭВМ) - IBM z10, z990;

·        периферийное оборудование - кассовые терминалы, специализированные АРМ, специализированные принтеры для печати билетов и багажных ярлыков, технологические принтеры, сканеры машиночитаемых документов, информационно-справочные установки, визуальные системы коллективного пользования;

·        сетевое оборудование - сети TCP;

·        средства обеспечения информационной безопасности на основе VipNet.

Основные технические характеристики АСУ «Экспресс-3», которые относятся ко всем системам, устанавливаемым на дорогах России, СНГ и Балтии, приведены в табл. 1.1.

Таблица 1.1 - Основные технические характеристики АСУ «Экспресс-3»

№ п/п

Показатель

Величина

1.

Надежность работы ВК (вычислительного комплекса)

99,98 - 99,99 %

2.

Протоколы обмена:  - для связи с терминалами - для связи с системами

IBM-3270 (BSC-3)Х-25, SDLC IBM-2780 (BSC-1)Х-25, SDLC, Х-75

3.

Время реакции системы

Не более 5 сек. в 95 % случаев

4.

Продолжительность работы

Круглосуточно, безостановочно

5.

Электропитание

Бесперебойное по нескольким фидерам

6.

Срок резервирования мест

60 дней

7.

Региональных центров в РЖД

6

8.

Максимальная фактическая нагрузка

380 транзакций в секунду

9.

Максимальное число обслуживаемых касс

27648 шт. (Фактически сейчас около 10000)

10.

Количество абонентов АБД

3000

11.

Операционная система ВК

z/OS v1.8

12.

СУБД

DB/2 v9

13.

Программное обеспечение

MQSeries, WEBSphere

14.

Прикладное ПО

1) специализированный структурный макроАссемблер 2) JAVA

 

1.3.2 Информационное обеспечение системы АСУ «Экспресс-3»

Концепция информатизации железнодорожного транспорта предусматривает формирование информационной среды для обеспечения функционирования новых информационных технологий.

Основой информационной среды является система баз данных управления перевозочным процессом и ее составная часть - база данных для управления пассажирскими перевозками. Ядром базы данных управления пассажирскими перевозками является база данных, необходимая для функционирования системы управления резервированием мест и продажей железнодорожных билетов «Экспресс-3».

Система предъявляет к базе данных взаимоисключающие требования:

·        высокая производительность при оперативном выполнении множества заявок в режиме реального времени;

·        универсальная структура данных, пригодная для справочно-аналитической работы;

·        постоянно обновляющиеся данные, отражающие текущее состояние управления пассажирскими перевозками;

·        возможность выполнения ряда аналитических запросов над одним и тем же зафиксированным состоянием данных для последующего сопоставления результатов.

Из общей теории обработки данных известно решение, позволяющее удовлетворить всем вышеперечисленным требованиям. Поэтому организованы следующие базы данных различной технологической и информационной специализации:

·        КОЗРВ (Комплекс обработки заказов реального времени) - оперативная база данных, содержащая информацию об оперативном обслуживании пассажиров;

·        АБД (Аналитическая база данных) - единая аналитическая база данных ОАО «РЖД», в которую поступают все проездные документы и информация об исполненных рейсах поездов и вагонов. В АБД поступают данные о перевозках ОАО «РЖД» из всех действующих систем «Экспресс-3». АБД обеспечивает хранение агрегированной информации не менее 3-х лет.

Использование АБД в практической деятельности железных дорог позволяет на качественно новом уровне планировать работу пассажирского комплекса и осуществлять контроль за эффективностью использования подвижного состава.

На основе АБД разработаны и внедрены на РЖД программно-аналитические комплексы, обеспечивающие проведение:

·  маркетинговых исследований рынка пассажирских перевозок;

·        оперативного отслеживания финансовых результатов работы пассажирского подвижного состава;

·        контроля качества использования пассажирских вагонов;

·        прогноза объемов перевозок.

 

.3.3 Таблицы АБД

Аналитическая база данных хранит в себе следующие таблицы:

)        первичная информация (документы) ;

)        накопительные таблицы;

)        результаты работы поездов;

)        нормативно-справочная информация;

)        служебные таблицы;

)        отдельные подсистемы.

Таблицы «первичная информация» и «накопительные таблицы» разделяются на 2 группы:

)        заполняемые в реальном режиме времени;

)        заполняемые ежесуточно.

Таблицы «результаты работы поездов» и «нормативно-справочная информация» разделяются на 2 группы:

)        ежесуточно;

)        ежемесячно.

Первичная информация, формируемая в реальном режиме времени:

·        проездные документы (бланки, места, паспорта, стоимость, возврат) ;

·        запросы (запросы, тексты документов, выданных терминалом, запросы по Р06) ;

·        групповые заявки и заявки по паролю;

·        утерянные транспортные и воинские требования, попытки оформления по утерянным требованиям;

·        опоздания поездов;

·        перевозочные документы;

·        пригородные документы.

Первичная информация, формируемая ежесуточно

·        рейсы поездов и вагонов, норма мест, предложенная к продаже (RNIT, RMRT, NMRVAG, NBRVAG);

·        маршруты поездов и календари (NIT, MRT, KALEND);

·        суточные финансовые отчёты по терминалам (DOHOD, DOHODV);

·        характеристики терминалов (TERM).

Накопительные таблицы, формируемые в реальном режиме времени

·        корреспонденции пассажиропотоков с учётом поезда, вагона, категории поездки, категории пассажира, даты продажи и отправления, станции продажи, доходных поступлений (RMEST);

·        багажные отправки (BAGOTP);

·        багажные отправки по государствам следования (BAGGOS).

Накопительные таблицы, формируемые ежесуточно

·        корреспонденции пассажиропотоков по поездам, вагонам, категориям поездки и пассажиров, станции продажи, дате отправления (IRMEST);

·        постанционное отправление (по категориям поездов и вагонов) - S3960;

·        багажные отправки за месяц (MBAGOTP);

·        багажные отправки по государствам следования за месяц (MBAGGOS).

Результаты работы поездов - посуточные

Формируются ежесуточно по законченным рейсам поездов

За каждый рейс поезда:

·  пассажирские поезда - PZDP;

·  маршруты групп вагонов - DVMRT;

·  результаты по группам вагонов - REZVAG;

·  результаты по дорогам следования - REZMRT.

Результаты работы поездов - месячные

Формируется ежесуточно по накоплению с начала месяца - по категориям поездов и вагонов - NMREZD, NMSREZD

Формируются 6-го числа месяца

За каждый рейс поезда:

·  пассажирские поезда - MPZDP;

·  маршруты групп вагонов - MDVMRT;

·  результаты по группам вагонов - MREZVAG;

·  результаты по дорогам следования - MREZMRT.

НСИ, обновляемая ежесуточно:

·  вагонные предприятия (LINPR);

·  валютные курсы (VKURS);

·  сервисные услуги (TARIFS);

·  константы сервисных услуг (TARIFK).

НСИ, обновляемая при изменении:

·        станции - STAN;

·        линии - LINES;

·        льготы - LGOT;

·        города - GOR;

·        дороги (DOR) и государства (GOS);

·        перевозчики (SOBPER);

·        классы обслуживания (KLOV).

Служебные таблицы:

·  регистрация пользователей (пользователи, их IP адреса, приложения, допуск пользователей к приложениям);

·        статистка работы пользователей;

·        журнал запросов пользователей к таблицам с информацией о пассажирах;

·        контроль заполнения первичных и накопительных таблиц;

·        профили пользователей в конкретных АРМ.

АРМ’ы могут вносить изменения только в служебные таблицы.

Сроки хранения информации в АБД:

·  первичные документы - 13 месяцев;

·        накопительные таблицы и результаты работы поездов - текущий и 2 предыдущих года;

·        архивная база - основные таблицы с корреспонденцией пассажиропотоков и результатами работы поездов.

 

1.3.4 Таблицы КОЗРВ

Комплекс обработки заказов реального времени хранит в себе следующие таблицы:

)        программные таблицы;

)        таблицы ОП;

)        таблицы DB2;

)        массивы ОП;

)        НСИ - условно постоянная информация;

)        НСИ - переменная информация;

)        переменная информация - изменяющаяся при обработке заказов пользователей;

)        вторичные таблицы;

)        временная информация.

Таблицы ОП:

·        таблица поездов (TPZ);

·        параметры системы (PARM);

·        таблица городов (TGOR).

Программные таблицы:

·        дороги, ж.д.администрации, государства (TSNG);

·        льготы и виды проездных документов (TLGOT);

·  классы обслуживания (TKL);

·        перевозчики (TOWN).

Таблицы DB2:

·        станции (STANV) и линии (LIN);

·        эталонный файл поездов (FPZ);

·        эталонный файл вагонов (CARSE).

Язык общения с системой «Экспресс-3»

·        Ключ (латинская буква) - значение;

·        вид работы (Р);

·        D - дата D1505;

·        N - номер поезда N104M;

·        С - станция (код или название);

·        X - документ;

·        G, R - подвид работы;

·        B - вагон (категория, номер, класс обслуживания);

·        W - номер заказа, документа (штрихкод).

Основные виды работ:

·        P01 - отчет кассира;

·        P10 - продажа проездных документов;

·        P62 - справочная информация;

·        P20 - возврат проездных документов;

·        P25 - гашение проездных документов;

·        P38 - справка о билетах, купленных через Интернет;

·        P22 R010 - выдача проездных документов, купленных через Интернет;

·        P22 R022 - выдача дубликатов проездных документов;

·        P22 - частичный возврат проездных документов.

Виды работ:

·  P17 - резервирование и продажа групповых проездных документов;

·        P12 - продажа проездных документов через бюро заказов;

·        P14 - продажа через диспетчерский терминал;

·        P23 - переоформление билетов;

·        P24 - прерывание поездки и остановка в пути следования;

·        P28 - электронная регистрация проездного документа;

·        P36 G1530 - Ведомость электронных билетов;

·        P36 G1400 - Схема состава поезда;

·        P36 G1510 - Занятые поездки в вагоне;

·        P36 G1520 - Cвободные поездки в вагоне;

·        P06 - Ввод и оперативная корректировка нормативно - справочной информации;

·        P71 - Оформление багажа, грузобагажа и почты;

·        P64 - Оформление пригородных проездных документов;

·        P02 - Оформление квитанций добровольного страхования;

·        P52 и P30 - Выдача оперативной финансовой отчетности;

·        P41 - P47 - Оформление проездных документов в дальнее зарубежье;

·        P63 - Справка о тарифах в пригородном сообщении.- справочная информация:

·  G11 - расписание между 2-мя станциями;

·        G15 - номера поездов;

·        G18 - расписание поезда по маршруту;

·        G19 - расписание поездов по станции;

·        G30 - стоимость проезда;

·        G31 - стоимость проезда льготных пасс;

·        G32 - курсы валют;

·        G40 - даты курсирования поезда;

·        G46 - схема состава поезда;

·        G50 - опоздание поезда по станции;

·        G51 - список опаздывающих поездов;

·        G53 - опоздания поезда по маршруту;

·        G60 - наличие мест от станций Украины;

·        G61 - наличие мест по поезду от Украины

·        G62 - наличие мест и стоимость проезда по поезду (группе поездов);

·        G63 - наличие мест и стоимость проезда между заданными станциями;

·        G69 - наличие мест для табло коллективного пользования;

·        G72-77 - правила перевозки пассажиров;

·        G90 - стоимость перевозки багажа и грузобагажа.

 

1.4 Существующая система контроля процессов обслуживания кредитовых ведомств (воинских министерств) в среде ОАО «РЖД» с использованием данных КОЗРВ


Существующая система контроля процессов обслуживания кредитовых ведомств с использованием данных КОЗРВ имеет модель двухуровневой клиент-серверной архитектурой, в которой пользовательские сервисы реализованы на клиентских неинтеллектуальных терминалах, а данные централизованно хранятся на сервере.

Процесс разработки отчёта технологом по запросу «Выдача информации о дорожных счётчиках кредитовых ведомств» (P52R37) включает следующие подсистемы:

)        подсистема ввода текста запроса на терминале (среднее время выполнения данной операции 2 минуты);R37- выдача информации о дорожных счётчиках по кредитовым ведомствам:

·        G100М - за 5-тидневку;

·        G200М - за месяц.

)        подсистема обработки запроса автоматизированной системой «Экспресс-3» и получение ответа в виде строки данных (доступ к данным, хранящимся в КОЗРВ);

Результат, полученный в виде строки данных в существующей системе:

 


1.4.1 Расчёт среднего времени обслуживания запроса в системе

 

.4.1.1 Постановка условий по существующей системе

Процесс разработки отчёта технологом по запросу «Выдача информации о дорожных счётчиках кредитовых ведомств» (P52R37) в существующей системе включает следующие действия:

1) написание текста запроса - среднее время выполнения данной операции 2 минуты;

2)      обработка запроса автоматизированной системой «Экспресс-3» и получение ответа в виде строки данных (доступ к данным, хранящимся в КОЗРВ);

)        формирование отчёта в формате Excel по полученным данным - норма времени для данной операции 9 минут.

Известно, что в 25% случаях обработка запроса напрасна, поскольку инженер-технолог вводит некорректный запрос, либо у него нет прав на данный вид запроса и система выводит соответствующее сообщение.

Поток запросов на получения информации для отчёта - простейший с интенсивностью λ=126 (1/мес.).

 

1.4.1.2 Постановка условий по проектируемой системе

Процесс получения отчёта инженер-технологом в проектируемой системе контроля процессов обслуживания кредитовых ведомств будет включать следующие действия:

1) выбор необходимых для запроса параметров (среднее время выполнения данной операции - 12 сек);

2) обработка запроса АСККВ и получение ответа в виде html-страницы (доступ к данным, хранящимся в АБД АСУ «Экспресс-3»);

3)      формирование отчёта в формате Excel.

Поток запросов на получения информации для отчёта - простейший с интенсивностью λ=126 (1/мес.).

1.4.1.3 Постановка задачи

1) рассчитать среднее время обслуживания в существующей системе;

2)      рассчитать среднее время обслуживания в проектируемой системе;

3) рассчитать предельный эффект и относительный предельный эффект перехода к системе контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» с использованием АРМ (Автоматизированного Рабочего Места);

4) обосновать целесообразность получения необходимого отчёта с помощью АРМ сокращением среднего времени написания запроса и сокращением нормы времени формирования отчёта;

 

1.4.1.4 Расчёт среднего времени обслуживания в существующей системе

λ=126 (1/мес.) - интенсивность поступления заявок за 1 рабочий месяц

раб.мес. = 21 раб.день

раб. день = 8 часам

λ=6 (1/день)=0,0125 (1/мин)

Интенсивность обслуживания потока заявок

µ=1/mx,                                                                                          (1.1)

где mx - среднее время обработки, мин.

Рисунок 1.6 - Модель процесса получения результирующего отчёта в существующей системе

1)      среднее время написания запроса

x=2 мин

µ1=1/m1x=0,5 (1/мин) - интенсивность обслуживания потока заявок

) норма времени формирования отчёта в формате Excelx=9 мин

µ3=1/m3x=0,11 (1/мин) - интенсивность формирования отчёта в формиате Excel

) среднее время обслуживания в существующей системе

обслуж = m1T + m2T + m3T ,                                                      (1.2)

где m1T, m2T, m3T среднее время обработки операции

Передача запроса технологом с терминала на центральную ЭВМ осуществляется по каналам связи, число которых, а также пропускную способность определяют при проектировании. Поэтому мы можем пренебречь временами обработки запроса и получения ответа в виде строки данных, т.е. для расчёта не учитываем m2T.

обслуж = m1T + m3T ,                                                                  (1.3)

где m1T , m3T среднее время обработки операции.

) среднее время пребывания заявки в существующей системе

T= m1Х + m1W ,                                                                 (1.4)

где m1Х - среднее время обработки заявки в системе;W - среднее время ожидания заявки в очереди.

Среднее время пребывания в существующей одноканальной системе:

T=( µ1- λ)-1 ,                                                                                  (1.5)

где µ1 - интенсивность обслуживания потока заявок;

λ - интенсивность поступления заявок.T=2,04 минT=9 мин - т.к. норма времени выполнения операции включает в себя время ожидания в очередиобслуж=2,04+9=11,04 мин - среднее время обслуживания в существующей системе.

 

1.4.1.5 Расчёт среднего времени обслуживания в проектируемой системе

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

λ=126 (1/мес.) - интенсивность поступления заявок за 1 рабочий месяц

раб.мес. = 21 раб.день

раб. день = 8 часам

λ=6 (1/день)=0,0125 (1/мин)

Рисунок 1.7 - Модель процесса получения результирующего отчёта в проектируемой системе с использованием АРМ

)        среднее время написания запросаx=12 сек = 0,2 мин

µ1=1/m1x=5 (1/мин) - интенсивность обслуживания потока заявок

) среднее время обслуживания в существующей системе

* обслуж = m1T + m2T + m3T

Передача запроса инженер-технологом с персонального компьютера, подключенного к СПД ОАО «РЖД» на центральную ЭВМ осуществляется по каналам связи, число которых, а также пропускную способность определяют при проектировании. Поэтому, оценивая предельный эффект, мы можем пренебречь временами обработки запроса и получением ответа, т.е. для расчёта не учитываем m2T.

Формирование отчёта будет происходить автоматическим экспортированием системой полученных данных в Excel. Пользователю необходимо будет только нажать на кнопку «Передать в Excel», поэтому мы пренебрегаем m3T

* обслуж = m1TT=( µ1- λ)-1 - среднее время пребывания в существующей одноканальной системе

T=(5-0,0125)-1 = 1,25 мин*обслуж = 1,25 мин - среднее время обслуживания в системе с использованием АРМа

 

1.4.1.6 Расчёт предельного эффекта и относительного предельного эффекта перехода к системе контроля процессов обслуживания кредитовых ведомств с использованием АРМ

Предельный эффект перехода:

Э*= mT обслуж - mT *обслуж ,                                                   (1.6)

где mT обслуж - среднее время обслуживания в существующей системе;*обслуж - среднее время обслуживания в системе с использованием АРМа

Э*=11,04-1,25=9,79 мин

Относительный предельный эффект перехода:

Э*относит = Э* * 100% / mT обслуж ,                                        (1.7)

где Э* - предельный эффект перехода;обслуж - среднее время обслуживания в существующей системе.

Э*относит = 9,79*100% / 11,04 = 0,89 *100% = 89%

 


1.4.2 Основные достоинства и недостатки системы контроля процессов обслуживания кредитовых ведомств (воинских министерств) в среде ОАО «РЖД» с использованием данных КОЗРВ

Достоинства системы:

·  имеется возможность оперативного получения информации об оперативном обслуживании пассажиров;

·        сниженные требования к техническим характеристикам терминалов.

Недостатки системы:

·  увеличенная нагрузка на HOST-ЭВМ, обрабатывающая запросы с данными КОЗРВ;

·        процесс получения результирующей информации требует наличие терминала;

·        ограниченный круг пользователей, т.к. общение с КОЗРВ требует определённых навыков обращения с терминалом;

·        отсутствие возможности расширения запроса, т.е. получение информации с детализацией по дорогам, агентам и перевозчикам;

·        отсутствие автоматизированной процедуры получения отчёта по результирующей информации;

·        отсутствие возможности регулирования временных периодов для получения результирующей информации;

·        содержание выходной результирующей информации неудобочитаемое.

 

.5 Обоснование целесообразности разработки


На основании проведённых расчётов и анализа основных достоинств и недостатков системы контроля процессов обслуживания кредитовых ведомств (воинских министерств) с использованием данных КОЗРВ можно сделать вывод о том, что при переходе на систему с использованием АРМ предельный эффект составит 9,79 мин. и относительный предельный эффект составит 89%. В результате разработки система будет обеспечивать выдачу информации по дорожным кредитовым ведомствам агрегированных таблиц АБД (Аналитической Базы Данных) с разбивкой по дорогам, агентам, перевозчикам и кредитовым ведомствам.

Разрабатываемое приложение будет доступно для пользователя посредством web-браузера ПК через сеть передачи данных (СПД) ОАО «РЖД». Использование архитектуры «клиент-сервер» даёт ряд преимуществ по сравнению с моделью распределённого представления данных:

·  масштабируемость;

·        конфигурируемость - изолированность уровней друг от друга позволяет (при правильном развертывании архитектуры) быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней;

·        высокая безопасность;

·        высокая надёжность;

·        низкие требования к скорости канала (сети) между терминалами и сервером приложений;

·        низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости;

·        компьютер пользователя выступает в роли «тонкого клиента».

Таким образом, разрабатываемая система позволит решить большинство недостатков существующей системы. В частности, уменьшит время, затрачиваемое на процесс получения результирующей информации, интерфейс станет более эргономичным, увеличится функциональность системы.

1.6 Требования к системе

 

.6.1 Требования к системе в целом

 

.6.1.1 Требования к структуре и функционированию системы

 
.6.1.1.1 Перечень подсистем, их назначение и основные характеристики

1) Подсистема сбора входных данных пользователя:

предназначена для контроля доступа пользователя к системе и для сбора параметров, введённых пользователем при работе с системой АСККВ.

2)  Подсистема обработки данных:

предназначена для формирования и обработки запроса по дорожным счётчикам к агрегированным таблицам АБД.

) Подсистема вывода результата:

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

4)  Подсистема формирования отчёта:

предназначена для автоматического экспорта полученных данных в MS Excel и формирования отчёта;

) Подсистема анализа результатов:

предназначена для анализа зависимости стоимостных и количественных результатов, полученных в данной системе по кредитовым ведомствам, от временных и предоставления отчёта по процессу обслуживания кредитовых ведомств

 
1.6.1.1.2 Требования к характеристикам взаимосвязей разрабатываемой системы со смежными системами
АСККВ должна использовать данные АБД смежной АСУ «Экспресс-3»

·        АСККВ должна использовать среду СПД ОАО «РЖД» для информационного обмена с пользователями, информационными исходными данными АБД АСУ «Экспресс-3»;

·  в качестве базового протокола сетевого и межсетевого взаимодействия должен использоваться TCP/IP;

·        средством организации информационного обмена со стороны пользователя должен быть стандартный Интернет-браузер (Internet Explorer 7.0 и выше).

 
1.6.1.1.3 Требования к режимам функционирования системы

Разрабатываемая АСККВ должна функционировать в следующих режимах:

·        основной режим;

·        тестовый режим;

·        профилактический режим.

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

·        первоначальная загрузка или реконфигурация программных средств;

·        модернизация аппаратных и программных средств.

3)      В тестовом режиме работы будет проводиться отладка системы разработчиком с использованием тестовых данных по тестовому алгоритму. Также будет проводиться проверка работоспособности и взаимодействия всех подсистем.

1.6.1.2 Требования к численности и квалификации персонала системы

Для эксплуатации АСККВ определены следующие роли (категории пользователей):

1) Администраторы: модернизация, настройка и мониторинг работоспособности системы, ведение учетных записей пользователей системы, (рекомендуемая численность - 2 штатных единицы);

2)      Пользователи системы (численность персонала определяется количеством дирекций по обслуживанию пассажиров ОАО «РЖД»):

·  уровень Региональной дирекции (РД) (возможен доступ к данным по своему региону);

·        уровень Центральной дирекции (ЦД) (возможен доступ к данным по всем регионам).

При заданных технических характеристиках рекомендуемое максимальное количество одновременных пользовательских сеансов должно быть не более 1000.

Администраторы должны иметь соответствующую квалификацию в области работы с вычислительной техникой и информационными системами.

Пользователи системы должны иметь опыт работы с персональным компьютером в операционных системах Microsoft Windows на уровне квалифицированного пользователя и свободно осуществлять базовые операции.

Диаграмма вариантов использования отражает функциональные требования к системе и пользователей системы в общем виде:

 

1.6.1.3 Требования к защите информации от несанкционированного доступа

Необходимо предусмотреть разграничение прав доступа к информационной системе.

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

·  администратор информационной системы;

По доступу к дорогам:

·  пользователь с доступом к информации по всем дорогам России (сетевой уровень);

·        пользователь с доступом к информации по определённой дороге;

·        администратор с доступом к информации по всем дорогам России и странам СНГ.

По доступу к кодам агентов и перевозчиков:

·  пользователь с доступом к информации по определённому коду перевозчика;

·        пользователь с доступом к информации по определённому коду агента;

·        пользователь с доступом к информации по определённым кодам агента и перевозчика;

·        администратор с доступом к информации по всем кодам агентов и перевозчиков.

 

1.6.2 Требования к функциям (задачам), выполняемым системой

1) Перечень функциональных подсистем АСККВ указан в пункте 1.6.1.1.1

2) Подсистема сбора входных данных пользователя:

предназначена для контроля доступа пользователя к системе и для сбора параметров, введённых пользователем при работе с системой АСККВ.

Подсистема сбора входных данных должна:

·        иметь 4 возможности заполнения поля «дата»:

o    день, месяц и год;

o   отчётная дата (вчерашняя дата);

o   интервал дней (пятидневка), месяц и год;

o   месяц и год.

·        иметь 3 возможности заполнения поля «дорога»:

o    все дороги сети (выдача информации по всем дорогам сети с разбивкой по дорогам и кредитовым ведомствам);

o    определённая дорога из приведённого списка (выдача информации по выбранной дороге с разбивкой по ведомствам);

o    сумма по дорогам России (выдача итоговой суммы показателей счётчиков по всем дорогам России и по ведомствам);

·  обеспечивать контроль доступа для пользователей по дорогам;

·  обеспечивать контроль доступа для пользователей по кодам агента и перевозчика.

3)       Подсистема обработки данных:

предназначена для формирования запроса по дорожным счётчикам к агрегированным таблицам АБД.

Подсистема обработки данных должна:

·  формировать запрос к агрегированным таблицам АБД системы на основе введённых пользователем данных;

·        обрабатывать запрос на стороне АБД;

·        выполнять сбор показателей из источников, находящихся в виде таблиц в БД DB/2 (таблицы «Информация о счётчиках» (DOHODV), «Дороги» (DOR), «Государства» (GOS), «Агенты и перевозчики» (SOBPER), «Льготы» (LGOT));

·        формировать результат, необходимый для выдачи отчёта.

4) Подсистема вывода результата:

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

Подсистема вывода результата должна:

·  обеспечивать выдачу информации по определённой дороге или сумме по дорогам России с разбивкой по ведомствам и агентам или по ведомствам и перевозчикам;

·        обеспечивать выдачу итоговой суммы показателей по всем дорогам России по всем ведомствам;

5) Подсистема формирования отчёта:

предназначена для автоматического экспорта полученных данных в MS Excel и формирования отчёта;

) Подсистема анализа результатов:

предназначена для анализа зависимости стоимостных и количественных результатов, полученных в данной системе по кредитовым ведомствам, от временных характеристик и предоставления отчёта по процессу обслуживания кредитовых ведомств

 

1.6.3 Требования к архитектуре системы

Для повышения эффективности информационная система должна иметь трёхуровневую архитектуру «тонкий» клиент, которая позволяет добиться дополнительной гибкости. Трехзвенная модель информационной системы подразумевает логическое деление прикладной системы на три звена - презентационная логика, бизнес-логика и логика доступа к данным, т.е. должна включать в себя следующие компоненты:

·        сервер баз данных;

·        сервер приложений;

·        клиентское программное обеспечение.

Рисунок 1.9 - Трехзвенная архитектура "клиент-сервер" с сервером приложений и сервером БД на одном интегрированном сервере (IBM Z800)

Сервер баз данных служит центральным хранилищем информации для всех дорожных счётчиков кредитовых ведомств.

На сервере приложений будет работать АСККВ.

 

1.6.4 Требования к видам обеспечения

 

.6.4.1 Требования к информационному обеспечению

Сервер системы должен быть подключен к сети передачи данных (СПД) ОАО «РЖД» для периодической синхронизации с АСУ «Экспресс-3».

Для хранения всех информационных массивов должна использоваться единая система управления базами данных (далее - СУБД), отвечающая следующим требованиям:

·  поддержка реляционной или объектно-реляционной модели базы данных;

·  поддержка технологии клиент-сервер.

 

.6.4.2 Требования к программному обеспечению

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

Пользовательские Web-приложения должны быть разработаны с использованием Web-технологий (студия Rational Application Developer ver 7.0.0.4 и Java) с учётом эксплуатации операционной системы MS Windows XP/Vista и браузера MS Internet Explorer версии 7.0 или выше.

Программным обеспечением на стороне сервера является сервер приложений IBM WebSphere Application Server ver.6.0 (WAS) и СУБД.

Для соединения сервера приложений с СУБД требуется Java DataBase Connectivity (JDBC) драйвер. JDBC драйвер доступен для СУБД DB2 ver.9.

Операционной системой сервера является z/OS ver.1.8.

1.6.4.3 Требования к аппаратному обеспечению

Минимальные системные требования к персональному компьютеру клиента определяются требованиями операционной системы и установленного браузера, так как дополнительное программное обеспечение клиенту не требуется:

·        процессор Intel Pentium 500МГц (или аналогичный);

·        128 МБ оперативной памяти;

·        5 ГБ дискового пространства;

·        наличие доступа к СПД ОАО «РЖД»;

·        наличие монитора с разрешением не ниже 1024*768;

·        клавиатура и мышь.

Рекомендуемые аппаратные требования к серверу, призванные обеспечить бесперебойную работу необходимого программного обеспечения (операционная система, сервер приложений, СУБД), таковы:

·        4 ГБ оперативная память;

·        от 15 ГБ дискового пространства;

·        наличие канала сети передачи данных от 100 Мбит/сек.

 

2. РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ КОНТРОЛЯ ПРОЦЕССОВ ОБСЛУЖИВАНИЯ КРЕДИТОВЫХ ВЕДОМСТВ ОАО «РЖД»

 

2.1 Выбор источников данных


Для функционирования АСККВ будут использоваться данные, хранящиеся в АБД АСУ «Экспресс-3», а также:

·        отчёт о работе автоматизированных рабочих мест АБД АСУ «Экспресс-3»;

·        инструкция пользователей автоматизированных систем управления;

·        отчёт по структуре АБД (DBKLAS);

·        отчёт по структуре АБД (EXPBD);

·        презентационный материал «Аналитическая база данных «Экспресс-3». Принципы формирования информации, информационные потоки, классификация информации и прикладных задач».

 

2.2 Выделение исходных данных

 

.2.1 Определение входных данных

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

Таблица 2.1 - Перечень входных данных

Название показателя

Обозначение

Тип данных

Описание показателя

дорога пользователя

dorUser

String

символьный код дороги, к которой принадлежит пользователь

государство пользователя

gosUser

String

символьный код государства, к которой принадлежит пользователь

перевозчик пользователя

skpUser

smallint

код перевозчика для пользователя

агент пользователя

agentUser

smallint

код агента для пользователя

отчётная дата

odata

Date

отчётная дата (отчётная дата=текущая дата-1)

месяц

month

int

месяц по выбору пользователя

день

day

int

день по выбору месяца

год

year

int

год по выбору пользователя

код дороги

dor

String

код дороги по выбору пользователя

код агента

agent

smallint

код агента по выбору пользователя

код перевозчика

per

smallint

код перевозчика по выбору пользователя

код ведомства

min

decimal

код ведомства по выбору пользователя


2.2.2 Выделение выходных данных

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

Таблица 2.2 - Перечень дорожных счётчиков

Название показателя

Обозначение

Тип данных

Описание показателя

сумма от проданных документов в дальнем сообщении

sumpd

int (руб)

доход, получаемый ОАО «РЖД» от оформления документов кредитовым ведомствам в дальнем сообщении

количество оформленных пассажиров в дальнем сообщении

kolpas

int

количество оформленных документов дальнего сообщения для кредитовых ведомств

сумма пригородных

sumpr

int (руб)

доход, получаемый ОАО «РЖД» от оформления документов кредитовым ведомствам в пригородном сообщении

количество пригородных пассажиров

kolpr

int

количество оформленных документов в пригородном сообщении для кредитовых ведомств

сумма от оформленных багажных документов

sumbag

int (руб)

доход, получаемый ОАО «РЖД» от оформления багажных документов кредитовых ведомств

количество оформленных багажных документов

kolbag

int

количество оформленных багажных документов для кредитовых ведомств

комсбор от продажи при возврате

komsbv

int (руб)

сумма денег, получаемая ОАО «РЖД» при возврате кредитовым ведомством оформленного документа

количество документов по кредитовым ведомствам

kolv

int

общее количество документов, оформленных ОАО «РЖД» по кредитовым ведомствам


2.3 Анализ разрабатываемой АСККВ с использованием технологии RUP


Для детального изучения предметной области был применен объектно-ориентированный подход. Целесообразность использования этой концепции объясняется тем, что появляется возможность описать процессы и объекты на интуитивно понятном уровне, так как проводится параллель с реальным миром. При этом в процессе объектной декомпозиции статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы - в терминах сообщений между этими объектами. Одним из преимуществ объектно-ориентированного подхода является то, что выделенные классы объединяют в себе данные и операции над этими данными, что делает объектно-ориентированную систему более открытой и гибкой к изменениям.Unified Process (RUP) - одна из лучших методологий разработки информационных систем, созданная компанией IBM Rational Software. В технологии RUP реализован один из вариантов объектно-ориентированного подхода (ООП) к проектированию ИС.технология позволяет:

·        разрабатывать ИС на основе итерационного подхода;

·        проектировать систему с помощью визуальных средств;

·        управлять требованиями наиболее эффективными способами;

·        использовать компонентный подход;

·        гарантировать качество создаваемых продуктов;

·        контролировать любые изменения в ходе проекта.технология использует в качестве визуального средства моделирования язык UML (Unified Modeling Language). UML представляет разработчикам чёткую нотацию, позволяющую отображать модели общепринятыми и понятными каждому участнику проекта графическими элементами.

 

2.3.1 Моделирование бизнес-процессов (Business UseCase Model)

Цель создания системы - разработка автоматизированной системы формирования показателей в виде таблиц-отчётов и графиков в зависимости от набора параметров, введённых пользователем.

Задание состоит из следующих шагов:

1)   Построить бизнес-модель вариантов использования (Business UseCase Model):

·        выделить действующие лица (актёры) системы;

·        выделить варианты использования;

·        построить и описать диаграммы вариантов использования.

)        Выполнить анализ вариантов использования:

·  идентификация классов, участвующих в потоках событий вариантов использования (Class Diagram);

·        распределение поведения между классами реализуемого варианта использования;

·        создание диаграмм взаимодействия (Sequence Diagram, Collaboration Diagram);

·        определение обязанностей, атрибутов и ассоциаций классов в формате:

o   диаграммы классов с операциями «анализа»;

o   классы с операциями «анализа» и атрибутами;

o   диаграммы классов сущностей;

o   полная диаграмма классов для вариантов использования;

o   интегрированная диаграмма классов для проекта системы.

3)   Создать модель бизнес-анализа (в терминах «Business Worker» и «Business Entity»):

·  построение диаграммы классов модели бизнес-анализа (Class Diagram);

·        построение диаграмм взаимодействия (Sequence Diagram, Collaboration Diagram);

·        построение диаграмм деятельности и состояния (Activity Diagram, Statechart Diagram).

)        Выполнить проектирование базы данных (БД) (Используя специальный инструмент Rational SoftWare - Data Modeler) на основании моделей бизнес-анализа.

 

2.3.2 Модель вариантов использования

 

.3.2.1 Выделение актёров

Исходя из требований к системе, выделены следующие действующие лица, представленные на рис. 2.1:

·        администратор (administrator) - администратор системы, служит для модернизации и мониторинга работоспособности системы, для ведения учётных записей пользователей системы;

·        пользователь (user) - пользователь системы, служит для входа в систему и для ввода входных параметров. Является обобщением для следующих действующих лиц:

o   дирекция (directorate) - пользователь системы, заинтересованный в получении результирующей информации. Является обобщением для:

o   пользователя уровня региональная дирекция (directorate_region);

o   пользователя уровня центральная дирекция (directorate_central).

 

2.3.2.2 Выделение вариантов использования

Исходя из потребностей актёров, выделяются следующие варианты использования, представленные на рис.2.2:

)        Запуск приложения

·        Авторизация пользователя;

)        Формирование запроса к системе

·        Модуль ввода параметров;

)        Передача запроса для обработки

·        Модуль получения результирующей информации;

)        Получение результатов

·        Модуль получения результирующей информации;

)        Администрирование

·        Модуль администрирование;

 

.3.3 Описание вариантов использования

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

 

2.3.4 Создание диаграммы вариантов использования

Диаграммы вариантов использования, представленные на рис.2.3, рис.2.4, рис.2.5, рис.2.6, отражают функциональные требования к системе в общем виде:

Рисунок 2.3 - Диаграмма вариантов использования для системы

«Выдача инфомации о дорожных счётчиках кредитовых ведомств»

Рисунок 2.4 - Диаграмма вариантов использования для «Модуля ввода параметров»

Рисунок 2.5 - Диаграмма вариантов использования для «Модуля получения результирующей информации»

Рисунок 2.6 - Диаграмма вариантов использования для «Модуля администрирования»

 

2.3.5 Соглашение по моделированию

1)  имена вариантов использования должны быть глагольными фразами;

2)      для каждого варианта использования должна быть создана его реализация;

3)  имена классов должны быть существительными, соответствующими понятиям предметной области;

4)      имена классов должны начинаться с заглавной буквы;

)        имена атрибутов и операций должны начинаться со строчной буквы;

)        составные имена должны быть сплошными, без подчёркиваний, каждое отдельное слово должно начинаться с заглавной буквы.

 

2.3.6 Идентификация ключевых абстракций

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

Рисунок.2.7 - Ключевые абстракции системы «Выдача информации о дорожных счётчиках кредитовых ведомств»

 

2.3.7 Анализ вариантов использования

Выделяются классы трёх типов:

·        граничные (boundary)  - посредники при взаимодействии внешних объектов и системы;

·        управляющие (control)  - обеспечивают координацию поведения объектов в системе;

·        классы-сущности (entity)  - ключевые абстракции разрабатываемой системы.

Основные классы, участвующие в реализации вариантов использования представлены на рис.B.1, рис.B.2, рис.B.3, рис.B.4 приложения B.

 


2.3.7.1 Распределение поведения, реализуемого вариантом использования, между классами (диаграммы взаимодействия)

Реализуется с помощью диаграмм взаимодействия (диаграмм последовательности и кооперативных диаграмм). Эти диаграммы показывают поток сообщений между объектами и описывают связи между ними. Диаграммы последовательности отражают временную последовательность событий в рамках варианта использования. Диаграммы кооперации концентрируют внимание на связях между объектами.

 

.3.7.2 Определение обязанностей, атрибутов и ассоциаций классов

Обязанность - действие, которое объект обязан выполнить по запросу других объектов. Обязанность преобразуется в одну или более операций класса на шаге проектирования. Обязанности определяются, исходя из сообщений на диаграммах взаимодействия.

Атрибут - это именованное свойство класса, включающее описание множества значений, которые могут принимать экземпляры этого класса. Атрибуты классов определяются, исходя из знаний о предметной области, требований к системе и глоссария (рис.C.1, рис.C.2, рис.C.3, рис.C.4 приложения С).

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

 

2.3.8 Модель бизнес-анализа

Для каждого Business UC строится модель бизнес-анализа (Business Analysis Model) - объектная модель, описывающая реализацию бизнес-процесса в терминах взаимодействующих объектов (Business Object), принадлежащих к двум классам - Business Worker и Business Entity.Worker (исполнитель) - активный класс, представляющий собой абстракцию исполнителя, выполняющую некоторые действия в рамках бизнес-процессов. Исполнители взаимодействуют между собой и манипулируют различными сущностями, участвуя в реализациях сценариев Business Use Case.Entity (сущность) - пассивный класс, не инициирующий никаких взаимодействий. Объект такого класса может участвовать в реализациях различных Business UC.

Сущность является объектом различных действий со стороны исполнителей.

Понятие Business Entity (стереотип <<businessEntity>>) аналогично понятию сущности в ER-модели, за исключением того, что в ER-модели не определяется поведение сущности, а в объектной модели сущность может иметь набор обязанностей.

Модель бизнес-анализа может состоять из диаграмм разных типов. В состав модели обязательно должна входить диаграмма классов, содержащая исполнителей и сущности (рис.2.19, рис.2.20, рис.2.21, рис.2.22) и диаграмм активности (рис.2.23, рис.2.24).

Для диаграммы классов ассоциации между Business Worker отражают наличие взаимодействия между реальными исполнителями. Ассоциации между классами исполнителями и классами-сущностями показывают, какими именно объектами манипулируют конкретные исполнители.

2.3.8.1 Диаграммы классов модели бизнес-анализа


Рисунок 2.19 - Диаграмма классов «Запуск приложения»

Рисунок 2.20 - Диаграмма классов «Ввод первоначальных параметров»

Рисунок 2.21. Диаграмма классов «Получение результирующей информации»

Рисунок 2.22 - Диаграмма классов «Обработка данных»

 

.3.8.2 Диаграммы активности модели бизнес-анализа


Рисунок 2.23 - Диаграмма активности «Запуск приложения»

Рисунок 2.24 - Диаграмма активности «Ввод первоначальных параметров»

 

2.3.9 Проектирование БД

Проектирование баз данных выполняется с использованием средства Data Modeler.

Для формирования отчёта по дорожным счётчикам кредитовых ведомств ведётся сбор показателей из источников, находящихся в таблицах в АБД DB/2 (таблицы «Информация о счётчиках» (DOHODV), «Дороги» (DOR), «Государства» (GOS), «Вычислительные центры» (VC), «Агенты» (SOBPER_AGN), «Перевозчики» (SOBPER_SKP), «Льготы» (LGOT), «Валюта» (VALUT), «Государство сервера» (SERV).

Используемая схема базы данных представлена на рис.2.25.

Рис.2.25. Объектно-ориентированная база данных. Диаграмма «сущность-связь»

Подробнее каждая сущность рассматривается в приложении D.

 

2.4 Среда разработки и язык программирования


АСУ «Экспресс-3» базируется на современных вычислительных техниках и современной цифровой связи. В ней применены перспективные инструментальные средства создания программного обеспечения.

В настоящее время в системе используются ЭВМ типа IBM z10, z990, операционная система z/OS ver.1.8 и реляционная система управления базами данных DB/2 ver.9. Для создания корпоративных приложений используется программное обеспечение WebSphere и язык программирования Java.

В соответствии со сформулированными требованиями для разработки автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» был использован мощный инструмент на платформе IBM WebSphere Rational Application Developer (RAD) с использованием языка программирования Java.

В числе основных достоинств RAD, по достоинству оцененных сообществом профессиональных программистов, можно отметить следующие моменты:

1)      быстрое создание высококачественных приложений.

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

IBM Rational Application Developer for WebSphere Software - это всеобъемлющая интегрированная среда разработки, обеспечивающая полную поддержку модели программирования J2EE, включая Web, Java, веб-службы и EJB, которая позволяет значительно ускорить разработку приложений. Application Developer включает в себя интегрированные средства визуального редактирования UML, анализа кода, автоматизированного тестирования и развертывания - все, что необходимо разработчикам для производительной работы и для того, чтобы полученный код был хорошо спроектирован, масштабируем и готов к работе в производственной среде.

2)  Полная поддержка модели программирования J2EE.

Параллельная поддержка проектов J2EE версий 1.2, 1.3 и 1.4, включая полную поддержку следующих средств: Enterprise JavaBeans, веб-архивы (WAR) и корпоративные архивы (EAR). Включает в себя среды тестирования модулей для нескольких конфигураций IBM WebSphere Application Server, чтобы обеспечить поддержку проектов с различными тестовыми средами.

3)  Расширение возможностей программирования Java.

Application Developer включает в себя большой набор инструментов для создания приложений Java и поддерживает Java Development Kit версии 1.4.2. Visual Editor for Java позволяет разрабатывать GUI для Java методом перетаскивания и вставки.

)        Создание приложений на основе баз данных.Developer содержит интегрированные инструменты для создания приложений БД из запросов, элементов Beans и EJB. Мастер соединений с базой данных упрощает создание соединения Java Database Connectivity (JDBC) с СУБД IBM DB2. Мастер запросов SQL и построитель запросов SQL предоставляют визуальный интерфейс для создания и выполнения операторов SQL. Можно создать простой запрос с помощью мастера запросов SQL или использовать построитель запросов SQL, который поддерживает более широкий набор операторов.

)        Упрощение веб-разработки и управления веб-сайтами.

Простые инструменты объединяют практически все аспекты веб-разработки (HTML, JSP, JSF и сервлеты) в единый интерфейс и позволяют разработчикам с различным характером технической подготовки и даже тем, кто не знаком с Java, строить многофункциональные приложения для работы с данными.

)        Автоматизация сборки приложений.Developer автоматизирует сборку EAR и генерирует дескрипторы развертывания для новых приложений, экономя время пользователя.

)        Повышение качества кода.

В состав Application Developer входят инструменты, которые помогают разработчикам повысить качество кода. Функция автоматизированного анализа кода применяет более 200 стандартов и практических рекомендаций кодирования J2EE к коду приложения, помечая нарушения и подсказывая варианты устранения ошибок - включая вносимые одним щелчком быстрые исправления.

)        Оптимизация тестирования модулей и систем.

Интегрированные среды тестирования модулей поддерживают тестирование и отладку локального и серверного кода на IBM WebSphere Application Server, WebSphere Application Server Express и др. Специалисты могут создавать и настраивать экземпляры серверов с помощью мастеров, выполнять пошаговую трассировку приложений, задавать точки останова и даже модифицировать код во время отладки, не перезапуская сервер тестирования модуля.

 

2.5 Структура программной части АСККВ и формы вывода результирующей информации


Разрабатываемая система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» представляет собой сервлет - это Java программа, которую расширяет web-сервер, ориентированный на системы запрос-ответ.

Для динамического управления запросами и конструирования ответов пользователю используются классы Java, так называемые сервлеты.страницы представляют собой текстовые документы. Они содержат два типа текста: статичные шаблонные данные, которые могут быть представлены в любом текстовом формате, таком как HTML, WML и XML, а также JSP-элементы, которые определяют способ построения динамичного содержимого страницы.

Рассмотрим подробнее структуру программной части АСККВ.java

При запуске системы класс запрашивает у пользователя логин и пароль. По окончанию ввода StartAction.java формирует права доступа клиента к системе по дорогам, агентам и перевозчикам. Далее формируется и обрабатывается запрос к БД по выводу списка дорог, агентов, перевозчиков и кредитовых ведомств с учётом прав доступа пользователя.

В случае успешной обработки запросов управление переходит index3.jsp.

В случае неудачной обработки запросов управление переходит error.jsp..jsp

Вызывается в случае неудачного завершения StartAction.java и формирует сообщения об ошибке следующего рода:

·        «Пользователь с логином и паролем не имеет доступа к системе»;

·        «Связь с базой данных не установлена»..jsp

Вызывается в случае успешного завершения StartAction.java и формирует интерфейс с всплывающими списками параметров, необходимых пользователю для формирования запроса.

На главной странице АСККВ пользователь вводит необходимые параметры и при нажатии на кнопку «Выполнить запрос» управление переходит VoinAction.java.java.java принимает параметры, введённые пользователем и на их основе формирует несколько запросов к системе в зависимости от введённых пользователем параметров:

·   получение по государству пользователя наименование валюты и коэффициент валюты относительно валюты России;

·        получение значений количественных показателе и доходных поступлений из таблицы DOHODV за определённую дату;

·        получение значений количественных показателей и доходных поступлений из таблицы DOHODV за интервал даты;

·        получение значений дорожных показателей из таблицы DOHODV при детализации по агентам;

·        получение значений дорожных показателей из таблицы DOHODV при детализации по перевозчикам.

Также данный класс формирует строку «ИТОГО» с общими результатами по каждой дороге по всем кредитовым ведомствам и строку «ВСЕГО» с общими результатами по всем дорогам, по всем кредитовым ведомствам..java включает в себя функции IntegerFormat и MainFormat, которые преобразовывают данные, полученные из таблицы DOHODV в формат, удобочитаемый для пользователя.

В случае неудачного завершения VoinAction.java управление передаётся det_not.jsp и success_not_null.jsp.

В случае удачного завершения VoinAction.java и в зависимости от набора введённых пользователем данных управление передаётся следующим jsp-страницам: index2.jsp, index4.jsp, det_dor.jsp, index2_f.jsp, index4_f.jsp, det_dor_f.jsp..jsp

Вызывается в случае успешного завершения VoinAction.java.

Если пользователь вводит следующий наборов параметров:

)        режим «вся сеть» или конкретная дорога из всплывающего списка;

)        коды агентов находятся не в режиме «детализация»;

)        коды перевозчиков находятся не в режиме «детализация»;

)        код ведомства находится в режиме «детализация»,

то форма вывода результирующей информации будет иметь вид, представленный в табл.E.1 приложения E.

Если пользователь вводит следующий наборов параметров:

1)   конкретная дата или отчётная дата;

2)      режим «вся сеть»;

)        коды агентов находятся не в режиме «детализация»;

)        коды перевозчиков находятся не в режиме «детализация»;

)        код ведомства не находится в режиме «детализация», а принимает конкретное значение,

то форма вывода результирующей информации будет иметь следующий вид, представленный в табл.E.2 приложения E..jsp

Вызывается в случае успешного завершения VoinAction.java и при вводе пользователем следующих наборов параметров:

)        конкретная дата или отчётная дата;

)        выбор режима «Сумма по всем дорогам России»;

)        коды агентов находятся не в режиме «детализация»;

)        коды перевозчиков находятся не в режиме «детализация»;

Форма вывода результирующей информации будет иметь вид, представленный в табл.E.3 приложения E._dor.jsp

Вызывается в случае успешного завершения VoinAction.java.

Если пользователь вводит следующий наборов параметров:

1)   конкретная дата или отчётная дата;

2)      выбор режима «Сумма по всем дорогам России» или выбор определённой дороги;

)        коды агентов находятся в режиме «детализация», а код перевозчика не находится в режиме «детализация»;

)        коды перевозчиков находятся в режиме «детализация», а код агента не находится в режиме «детализация»;

)        код ведомства находится в режиме «детализация»,

то формы вывода результирующей информации будут иметь вид, представленные в табл.E.4 и табл.E.5 приложения E.

Если пользователь вводит следующий наборов параметров:

1)   конкретная дата или отчётная дата;

2)      выбор режима «Сумма по всем дорогам России» или выбор определённой дороги;

)        коды агентов находятся в режиме «детализация», а код перевозчика не находится в режиме «детализация»;

)        коды перевозчиков находятся в режиме «детализация», а код агента не находится в режиме «детализация»;

)        код ведомства не находится в режиме «детализация», а принимает конкретное значение,

то формы вывода результирующей информации будут иметь вид, представленные в табл.E.6 и табл.E.7 приложения E._f.jsp

Вызывается в случае успешного завершения VoinAction.java.

Если пользователь вводит следующий наборов параметров:

)        интервал дат или выбор режима ввода месяца и года;

)        режим «вся сеть» или конкретная дорога из всплывающего списка;

)        коды агентов находятся не в режиме «детализация»;

)        коды перевозчиков находятся не в режиме «детализация»,

то форма вывода результирующей информации будет иметь вид, представленный в табл.E.8 приложения E._f.jsp

Вызывается в случае успешного завершения VoinAction.java и при вводе пользователем следующих наборов параметров:

)        интервал дат или выбор режима ввода месяца и года;

)        выбор режима «Сумма по всем дорогам России»;

)        коды агентов находятся не в режиме «детализация»;

)        коды перевозчиков находятся не в режиме «детализация»;

Форма вывода результирующей информации будет иметь вид, представленный в табл.E.9 приложения E._dor_f.jsp

Вызывается в случае успешного завершения VoinAction.java.

Если пользователь вводит следующий наборов параметров:

1)   интервал дат или выбор режима ввода месяца и года;

2)      выбор режима «Сумма по всем дорогам России» или выбор определённой дороги;

)        коды агентов находятся в режиме «детализация», а код перевозчика не находится в режиме «детализация»;

)        коды перевозчиков находятся в режиме «детализация», а код агента не находится в режиме «детализация»;

)        код ведомства находится в режиме «детализация»,

то формы вывода результирующей информации будут иметь вид, представленный в табл.E.10 и табл.E.11 приложения E.

Если пользователь вводит следующий наборов параметров:

1)   конкретная дата или отчётная дата;

2)      выбор режима «Сумма по всем дорогам России» или выбор определённой дороги;

)        коды агентов находятся в режиме «детализация», а код перевозчика не находится в режиме «детализация»;

)        коды перевозчиков находятся в режиме «детализация», а код агента не находится в режиме «детализация»;

)        код ведомства не находится в режиме «детализация», а принимает конкретное значение,

то формы вывода результирующей информации будут иметь вид, представленные в табл.E.12 и табл.E.13 приложения E._not.jsp

Вызывается в случае неудачного завершения VoinAction.java и формирует сообщения об ошибке следующего рода:

·  невозможен выбор детализации по агентам при просмотре всех дорог сети;

·        невозможен выбор детализации по перевозчику при просмотре всех дорог сети;

·        невозможен выбор детализации по перевозчику и агенту при просмотре всех дорог сети;

·        невозможен выбор детализации по перевозчику и агенту при просмотре суммы по дорогам России;

·        невозможен выбор детализации по перевозчику и агенту при просмотре информации по дороге;_not_null.jsp

Вызывается в случае неудачного завершения VoinAction.java и формирует сообщения об ошибке следующего рода:

·        учёт нулевых строк возможен при детализации ведомства.

На jsp-страницах, содержащих результирующую информацию по дорожным счётчикам кредитовых ведомств, имеется возможность импортирования данных в Excel. Форма отчёта соответствует исходной таблице, и названия jsp-страниц соответствуют названию исходной jsp-страницы, но имеют дополнительную метку «Ex».

Реализация программной части автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» представлена в приложении F.

2.6 Анализ результатов, полученных автоматизированной системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»


Руководство пользователей по работе с системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» представлено в приложении G.

Проведем анализ основных показателей контроля процессов обслуживания кредитовых ведомств, построим графические изображения, иллюстрирующие динамику:

Таблица 2.3 - Изменение значений основных показателей процессов обслуживания кредитовых ведомств по московской дороге за каждый месяц 2010 года по всем кредитовым ведомствам

Месяц

К оплате

Сумма от проданных документов в дальнем сообщении

Кол-во оформл. пас. в дальнем сообщении

Сумма пригор.

Кол-во пригор. пас.

Сумма от оформл. багажных док.

Кол-во оформл. багажных док.









январь

0,0

0,0

0,0

0,0

0,0

0,00

0,0

февраль

-4910,0

-4910,0

-2,0

0,0

0,0

0,00

0,0

март

33339518,7

33035670,3

11940,0

107274,9

133,0

196573,50

9,0

июль

0,0

0,0

0,0

0,0

0,0

0,00

0,0

август

193076327,5

190443973,1

58004,0

875348,2

1451,0

1757006,20

55,0

сентябрь

94407885,0

92181340,1

34731,0

251318,3

736,0

1975226,60

83,0

октябрь

77908631,4

75988147,2

40581,0

285143,7

829,0

1635340,50

99,0

ноябрь

99658597,7

3383,6

6,0

0,0

0,0

0,00

0,0

декабрь

93586102,0

90238972,2

52440,0

331129,2

964,0

3016000,60

74,0

По отчетным данным видно, что на Московской дороге в августе 2010 года было перевезено максимальное количество пассажиров как в дальнем, так и в пригородном сообщении. Соответственно, в этом месяце наблюдалось максимальное значение показателя «к оплате».

·  значения показателя «К оплате» по московской дороге за декабрь месяц 2010 года по каждому кредитовому ведомству (табл.2.4,);

Таблица 4.2. Изменение показателя «К оплате»

Кредитовое ведомство

К оплате

МО

55769977,90

МВД

14416473,60

ФПС

2927085,80

ФСБ

4800930,00

ГФС

8955994,00

ВО

9725,10

МЧС

2367358,40

АСТ

2808435,60

ГУИН

1527008,00

ГПР

3113,60

Итого

93586102,00


В декабре 2010 года максимальное значение показателя «К оплате» - у Министерства обороны, что связано с большими и частыми перевозками пассажиров, как в дальнем, так и в пригородном сообщении.

Информация, полученная АСККВ, служит для формирования отчёта, необходимого при принятии решения вышестоящими руководителями и для формирования счёта, предъявляемого представителям кредитовых ведомств.

3. Анализ пользовательских требований к структуре и технологии подготовки отчётов и предложения по организации пользовательского интерфейса

 

.1 Предложения по организации рабочего места пользователя автоматизированной системы контроля процессов обслуживания кредитовых ведомств

 

.1.1 Описание технологии проведения экспертного опроса

Рекомендуемый браузер для просмотра веб-страниц был выбран на основе данных, полученных методом экспертных оценок. В экспертную группу вошли 5 пользователей АСУ «Экспресс-3». Опрос проводился анкетированием, при этом использовался метод прямого ранжирования по убыванию, который предполагает расположение оценок показателей в порядке убывания их значимости.

 

3.1.2 Обработка результатов опроса

 

.1.2.1 Обобщение информации, полученной от экспертов

Рассмотрим 4 браузера: Opera, Internet Explorer, Mozilla Firefox, Google Chrome. В этот список попали наиболее часто используемые браузеры.

Выбор лучшего осуществляется по 4 критериям: поддержка веб-технологий (Java, JavaScript), общее удобство использования (usability), качество получающихся изображений, лёгкость освоения при работе с новой ИС. В табл.3.1 представлены оценки браузеров по указанным критериям.

Таблица 3.1 - Оценки браузеров по критериям, выставленные экспертами

Критерии

Opera

Internet Explorer

Mozilla Firefox

Google Chrome

1

0.7

0.5

0.5

0.7

2

0.7

1

0.7

1

3

0.5

1

0.7

0.5

4

0.5

0.7

0.5

0.7


Для оценки важности критериев 5 экспертов проранжировали их.

Таблица 3.2 - Ранжировка критериев экспертами

Эксперт

Критерии


1

2

3

4

1

2

3

1

4

2

4

2

1

3

3

2

1

4

3

4

1

3

2

4

5

2

3

1

4


С целью получения оценок важности показателей вычисляются суммарные ранги показателей по формуле:

,                                                                               (3.1)

где i - порядковый номер эксперта;- количество экспертов;- ранг, присвоенный экспертом для критерия и браузера.

Полученные значения суммарных рангов представлены в табл.3.2.

Таблица 3.2 - Обработанные результаты экспертного опроса

Эксперт

Критерии


1

2

3

4

1

2

3

1

4

2

4

2

1

3

3

4

1

2

3

4

3

1

2

4

5

3

2

1

4

xij

16

9

7

18

dj

12.25

12.25

30.25

30.25


3.1.2.2 Проверка согласованности мнений экспертов

Согласованность мнений экспертов можно оценить с помощью распределения χ2 . Для этого вычислим коэффициент конкордации K0:

·   определим среднеарифметическую сумму рангов:

,                                          (3.2)

где m - количество экспертов;количество критериев;

xij - ранг, присвоенный экспертом для критерия и браузера;

·   определим сумму квадратов отклонений сумм рангов, полученных всеми задачами, от среднеарифметической суммы рангов:

,                                                                          (3.3)

где - сумма рангов после нормализации;

 - среднеарифметическая сумма рангов;

·   определим общее число повторений в ранжировке i-ого эксперта:

 = 0,                                                                       (3.4)

где  - число повторений l-ого ранга в ранжировке i-ого эксперта.

Согласованность экспертов при ранжировании объектов оценивается коэффициентом конкордации (согласия):

,                           (3.5)

где S - сумма квадратов отклонений сумм рангов, полученных всеми задачами, от среднеарифметической суммы рангов;- число экспертов;- число критериев;- общее число повторений в ранжировке i-ого эксперта.

Определим значение статистики X:

,                                                       (3.6)

Примем уровень значимости α=0.1, число степеней свободы υ=n-1=3.

По таблице распределения χ2 рассчитаем χ 1-α,υ 2= χ 0.9,3 2=6.25

Сравнивая полученное нами значение X со занчением χ 0.9,3 2 делаем вывод, что мнение экспертов согласовано (коэффициент конкордации считается значимым) и гипотеза о случайной постановке рангов отклоняется.

 

3.1.2.3 Вычисление коэффициентов важности показателей

Информация о важности показателей содержится в суммарных рангах xj. Чем выше важность показателя, тем больше число экспертов будут ставить его на первые места в ранжировках, влияя тем самым на суммарный ранг. Коэффициент важности βj при этом рассчитывается по формуле:

 ,                                                           (3.7)

где m - число экспертов;- количество характеристик;

- сумма рангов после нормализации.

Значения коэффициента важности меняется от 0 до 1, большее значение свидетельствует большей важности показателя. Рассчитанные значения коэффициентов важности представлены в табл.3.3.

Таблица 3.3 - Коэффициенты важности показателей

Критерии

β

Браузеры



Opera

Internet Explorer

Mozilla Firefox

Google Chrome

1

0.18

0.7

0.5

0.5

0.7

2

0.36

0.7

1

0.7

1

3

0.32

0.5

1

0.7

0.5

4

0.14

0.5

0.7

0.5

0.7

 

3.1.2.4 Оценка средств разработки по каждому из выбранных показателей и расчёт суммарной оценки по совокупности показателей

Выбор осуществляется по совокупности 3 характеристик, приведённых в таблице, в которой указаны коэффициенты важности, и оценки четырёх браузеров для использования АСККВ. Рассчитаем коэффициент предпочтительности вариантов решения γμ (важности) μ-ого варианта по формуле:

,                                                                                 (3.8)

 - оценка μ-ого продукта по i-ому показателю.

Наиболее предпочтительный вариант с наибольшим значением .

1)  Коэффициент предпочтительности для Opera:

2)  коэффициент предпочтительности для Internet Explorer:

3)  коэффициент предпочтительности для Mozilla Firefox:

4)  коэффициент предпочтительности для Google Chrome:


3.1.3 Конкретизация результатов опроса экспертов

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

Экспертами были те же 5 пользователей, и им задавался вопрос: «Что Вы понимаете под термином «usability» автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»?». Варианты ответов представлены в табл.3.4.

Таблица 3.4 - Варианты ответов экспертов

Эксперт

Вариант ответа эксперта

1

быстрое обучение нового пользователя

2

известная компоновка интерфейса

3

известный способ получения результирующей информации

4

сведения должны быть представлены четко, кратко, без излишней детализации;

5

информация должна излагаться доступно, в форме, обеспечивающей ее правильное понимание и непосредственное использование без расшифровки, преобразования, пересчета и перекодирования;


3.1.4 Вывод

В результате проведённых расчётов были получены следующие коэффициенты предпочтительности браузеров для использования АСККВ:                                0.601Explorer               0.868Firefox                 0.636Chrome                0.714

Сравнивая коэффициенты значимости браузеров, делаем выводы, что пользователи предпочитают для использования АСККВ и для формирования отчёта по АСККВ использовать браузер Internet Explorer. Зная распределение предпочтений пользовательских браузеров, можно предположить уровень квалификации пользователей в области ИТ. Профессионалы в области информационных технологий при прочих равных условиях чаще (примерно в 80% случаев) выбирают браузер Opera, активные пользователи, но не программисты чаще (примерно в 60 - 70% случаев в разных профессиональных группах) предпочитают FireFox, а Ineternet Explorer обычно выбирают пользователи с минимальной компьютерной грамотностью.

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

 

3.2 Основные категорий пользователей


Для эксплуатации автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» с использованием данных АБД АСУ «Экспресс-3» заказчиком определены следующие основные категории пользователей региональных и центральной дирекций по обслуживанию пассажиров (рис.3.1):

1)   начальник отдела,

2)      зам. начальника отдела,

)        ведущий специалист,

)        инженер-технолог,

)        администратор информационной системы нескольких уровней.

В системе функционируют роли, соответствующие следующим группам пользователей для доступа к ИС и устанавливающиеся администратором ИС:

·    администратор информационной системы

По доступу к дорогам:

·    пользователь с доступом к информации по всем дорогам России (сетевой уровень);

·        пользователь с доступом к информации по определённой дороге;

·        администратор с доступом к информации по всем дорогам России и стран СНГ

По доступу к кодам агентов и перевозчиков:

·    пользователь с доступом к информации по определённому коду перевозчика;

·        пользователь с доступом к информации по определённому коду агента;

·        пользователь с доступом к информации по определённым кодам агента и перевозчика;

·        администратор с доступом к информации по всем кодам агентов и перевозчиков;

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

Инженер-технолог

Функции:

·  запуск системы;

·        ввод необходимых данных в систему для получения результирующей информации;

·        формирование и распечатывание отчёта с результирующей информацией;

·        передача отчёта ведущему специалисту;

Основная функция инженер-технолога в данной системе состоит в формировании отчёта с результирующей информацией, т.е. ввод необходимых данных в систему. При этом набор входных данных ему передаёт ведущий специалист, который анализирует требования вышестоящих руководителей.

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

Требования:

·  знание ПК на уровне начинающего пользователя:

- умение включать/выключать ПК;

умение находить необходимые программы и запускать их работу;

умение использовать печатающие устройства, подключенные к ПК;

Более сложные знания ПК не потребуются, так как для эксплуатации АСККВ не потребуются навыки программирования;

·  навыки работы с офисным пакетом приложений Microsoft Office:

- Microsoft Office Word: создание документа, редактирование документа, проверка правописания, вставка рисунков и таблиц, форматирование текста (шрифт, абзац, автозамена, сохранение, параметры печати);

Microsoft Office Excel: заполнение таблицы, выполнение расчётов, оформление таблиц, построение диаграмм и графиков;

Microsoft Office Outlook: просмотр писем входящих, исходящих, отправленных и черновиков; приём писем; отправка писем; использование адресной книги.

Более глубокие знания Microsoft Office, такие как, к примеру, создание макросов не потребуются, потому что для использования АСККВ и для создания отчёта по данной системе навыков программирования не требуется.

·  навыки работы с Internet Explorer для просмотра веб-страниц:

- умение запустить браузер;

- открытие сайта АСУ «Экспресс-3» и выбор необходимой системы для формирования отчёта по адресу <#"656464.files/image037.gif">

Рисунок 4.1 - Модель АСККВ в терминах СМО

Для данной модели введём следующие допущения:

1) поток заявок - простейший;

2)      время обработки одной заявки - случайная величина;

)        времена обработки заявок распределены по экспоненциальному закону;

)        интенсивность поступления заявок постоянны;

)        интенсивность входного потока меньше пропускной способности СМО;

Доступ к АСККВ возможен от N персональных компьютеров, подключенных к СПД ОАО «РЖД». Работа пользователя осуществляется путём формирования запросов к системе, отличающихся наборами входных параметров, необходимых для получения того или иного вида отчёта. Среднее время между запросами имеет случайное экспоненциальное распределение с параметром λ (интенсивность λ зависит от количества изменённых входных параметров и может составлять от  до ), интенсивность обработки запросов АСККВ составляет µ=80.

Согласно техническим характеристикам АСУ «Экспресс-3» и требованиям к разработке, среднее время реакции системы не должно превышать 5 сек., т.е.

I.  Методика расчёта среднего времени реакции системы:

1. Граф состояний СМО


2.      Найдём вероятности  нахождения запросов пользователей в системе по формулам:

;    (4.1)

; (4.2)

; (4.3)

;    (4.4)

;         (4.5)

,  (4.6)

где

 - число терминалов;- вероятность состояния в стационарном режиме

3. Среднее время ожидания обслуживания

,                                                                     (4.7)

4. Среднее время реакции системы

   (4.8)

II.      Расчет вероятностей при N = 2,

1. Граф состояний сети


.   Рассчитаем вероятность того, что в системе не будет ни одного запроса пользователя, по формуле (4.1)

!

.        Рассчитаем вероятность того, что в системе будет один запрос пользователей, по формуле (4.2)


.        Рассчитаем среднее время ожидания обслуживания по формуле (4.7)


5. Рассчитаем среднее время реакции системы по формуле (4.8)

III. Аналогично рассчитаем среднее время реакции для трёх терминалов (N = 3):


1. Рассчитаем вероятность того, что в системе не будет ни одной заявки, по формуле (4.1)


2. Рассчитаем вероятность того, что в системе будет одна заявка, по формуле (4.2)


3. Рассчитаем вероятность того, что в системе будут две заявки, по формуле (4.3)

4. Рассчитаем среднее время ожидания обслуживания по формуле (4.7)


5. Рассчитаем среднее время реакции системы по формуле (4.8)


IV. С учётом формул (4.1)-(4.6) представляется возможным упростить расчёт времени реакции системы, сократив числитель и знаменатель слагаемых на P0 (в этом случае P0 считать не требуется). В среде Microsoft Excel произведем расчет времен реакции системы для 5, 50, 100, 200, 400, 600, … 3000 терминалов. Пример расчёта для 50 терминалов приведён в табл. 4.2.

Таблица 4.1 - Исходные данные для примерного расчёта времени реакции АСККВ

μ

λ

N

ρ

80

0,20

50

0,0025


Таблица 4.2 - Пример расчёта времени реакции АСККВ для N=50 в среде Microsoft Excel

A

B

C

D

E

F

G

H

1

i

N-i

i!

Pi

Pi*(N-i)*i

Pi знам

Pi знам*(N-i)

2

0

50

1

1

0

1

50

3

1

49

1

0,0025

0,1225

0,0025

0,1225

4

2

48

2

0,0000125

0,0012

0,0000125

0,0006

5

3

47

6

9,375E-08

1,32188E-05

9,375E-08

4,40625E-06

6

4

46

24

9,375E-10

1,725E-07

9,375E-10

4,3125E-08

7

5

45

120

1,17188E-11

2,63672E-09

1,17188E-11

5,27344E-10

8

6

44

720

1,75781E-13

4,64063E-11

1,75781E-13

7,73438E-12

9

7

43

5040

3,07617E-15

9,25928E-13

3,07617E-15

1,32275E-13

10

8

42

40320

6,15234E-17

2,06719E-14

6,15234E-17

2,58398E-15

11

9

41

362880

1,38428E-18

5,10798E-16

1,38428E-18

5,67554E-17

12

10

40

3628800

3,46069E-20

1,38428E-17

3,46069E-20

1,38428E-18

13

11

39

39916800

9,51691E-22

4,08275E-19

9,51691E-22

3,71159E-20

14

12

38

479001600

2,85507E-23

1,30191E-20

2,85507E-23

1,08493E-21

15

13

37

6227020800

9,27898E-25

4,46319E-22

9,27898E-25

3,43322E-23

16

14

36

87178291200

3,24764E-26

1,63681E-23

3,24764E-26

1,16915E-24

17

15

35

1,30767E+12

1,21787E-27

6,3938E-25

1,21787E-27

4,26253E-26

18

16

34

2,09228E+13

4,87147E-29

2,65008E-26

4,87147E-29

1,6563E-27

19

17

33

3,55687E+14

2,07037E-30

1,16148E-27

2,07037E-30

6,83223E-29

20

18

32

6,40237E+15

9,31668E-32

5,36641E-29

9,31668E-32

2,98134E-30

21

19

31

1,21645E+17

4,42542E-33

2,60657E-30

4,42542E-33

1,37188E-31

22

20

30

2,4329E+18

2,21271E-34

1,32763E-31

2,21271E-34

6,63813E-33

23

21

29

5,10909E+19

1,16167E-35

7,07459E-33

1,16167E-35

3,36885E-34

24

22

28

1,124E+21

6,3892E-37

3,93575E-34

6,3892E-37

1,78898E-35

25

23

27

2,5852E+22

3,67379E-38

2,28143E-35

3,67379E-38

9,91924E-37

26

24

26

6,20448E+23

2,20428E-39

1,37547E-36

2,20428E-39

5,73112E-38

27

25

1,55112E+25

1,37767E-40

8,61045E-38

1,37767E-40

3,44418E-39

28

26

24

4,03291E+26

8,95487E-42

5,58784E-39

8,95487E-42

2,14917E-40

29

27

23

1,08889E+28

6,04454E-43

3,75366E-40

6,04454E-43

1,39024E-41

30

28

22

3,04888E+29

4,23118E-44

2,6064E-41

4,23118E-44

9,30859E-43

31

29

21

8,84176E+30

3,0676E-45

1,86817E-42

3,0676E-45

6,44197E-44

32

30

20

2,65253E+32

2,3007E-46

1,38042E-43

2,3007E-46

4,6014E-45

33

31

19

8,22284E+33

1,78304E-47

1,05021E-44

1,78304E-47

3,38778E-46

34

32

18

2,63131E+35

1,42644E-48

8,21627E-46

1,42644E-48

2,56758E-47

35

33

17

8,68332E+36

1,17681E-49

6,6019E-47

1,17681E-49

2,00058E-48

36

34

16

2,95233E+38

1,00029E-50

5,44156E-48

1,00029E-50

1,60046E-49

37

35

15

1,03331E+40

8,75252E-52

4,59507E-49

8,75252E-52

1,31288E-50

38

36

14

3,71993E+41

7,87727E-53

3,97014E-50

7,87727E-53

1,10282E-51

39

37

13

1,37638E+43

7,28647E-54

3,50479E-51

7,28647E-54

9,47241E-53

40

38

12

5,23023E+44

6,92215E-55

3,1565E-52

6,92215E-55

8,30658E-54

41

39

11

2,03979E+46

6,74909E-56

2,89536E-53

6,74909E-56

7,424E-55

42

40

10

8,15915E+47

6,74909E-57

2,69964E-54

6,74909E-57

6,74909E-56

43

41

9

3,34525E+49

6,91782E-58

2,55268E-55

6,91782E-58

6,22604E-57

44

42

8

1,40501E+51

7,26371E-59

2,44061E-56

7,26371E-59

5,81097E-58

45

43

7

6,04153E+52

7,80849E-60

2,35036E-57

7,80849E-60

5,46594E-59

46

44

6

2,65827E+54

8,58934E-61

2,26759E-58

8,58934E-61

5,1536E-60

47

45

5

1,19622E+56

9,66301E-62

2,17418E-59

9,66301E-62

4,8315E-61

48

46

4

5,50262E+57

1,11125E-62

2,04469E-60

1,11125E-62

4,44498E-62

49

47

3

2,58623E+59

1,30571E-63

1,84106E-61

1,30571E-63

3,91714E-63

50

48

2

1,24139E+61

1,56686E-64

1,50418E-62

1,56686E-64

3,13371E-64

51

49

1

6,08282E+62

1,9194E-65

9,40506E-64

1,9194E-65

1,9194E-65

52

50

0

3,04141E+64

2,39925E-66

0

2,39925E-66

0

53



ΣPi*(N-i)*i

ΣPi знам*(N-i)

ΣPi знам*(N-i)*µ

mw

mt

54



0,123713394

50,12310445

4009,848356

0,000031

0,012530852


Для расчета времени реакции АСККВ использовались стандартные функции Microsoft Excel, а именно:

1)   С2=50-B2;

2)      D2=ФАКТР(B2);

)        E2=(0,0025^B2)*D2;

)        F2=E2*C2*B2;

)        G2=(0,0025^B2)*D2;

)        H2=G2*C2;

)        D54=СУММ(F2:F52);

)        E54=СУММ(H2:H52);

)        F54=E54*80;

10) G54=D54/F54;

11)    H54=СУММ(G54;1/80).

Используя стандартные функции Microsoft Excel, рассчитаем также времена реакции АСККВ для оставшихся количеств терминалов (табл.4.3).

Таблица 4.3 - Время реакции АСККВ при различных значениях количества терминалов N и интенсивности пользовательских запросов λ

N

mT, сек.





5

0,012489

0,012523

0,012527

0,012525

50

0,012538

0,012635

0,012768

0,012530

100

0,012625

0,012775

0,013041

0,013608

200

0,012745

0,013043

0,013637

0,014968

400

0,013034

0,013654

0,015051

0,019163

600

0,013254

0,014297

0,016715

0,025785

800

0,013735

0,014999

0,018735

0,037034

1000

0,013941

0,015801

0,021502

0,080916

1200

0,014257

0,016684

0,025194

0,578625

1400

0,014615

0,017598

0,029202

2,117601

1600

0,014987

0,018763

0,037986

4,000093

1800

0,015363

0,019999

0,049445

7,400079

2000

0,015769

0,021444

0,076184

9,500000

2200

0,016205

0,023116

0,169263

11,800000

2400

0,016648

0,025067

0,887137

14,200000

2600

0,017139

0,027299

2,502052

16,200000

2800

0,017627

0,029951

5,000009

19,800000

3000

0,018174

0,033357

7,500006

21,300000


V.  Построим график зависимости времени реакции системы от количества пользователей по вычисленным значениям mT (рис.4.2).

Рисунок 4.2 - График зависимости времени реакции АСККВ mT от числа терминалов N при различных значениях интенсивности пользовательских запросов λ

По данному анализу можно сделать выводы, что нарушение требований по времени реакции системы происходит при одновременной работе более 1600 пользователей (в наихудшем случае, когда интенсивность пользовательских запросов λ=).

Пользователями автоматизированной системы контроля процессов обслуживания кредитовых ведомств являются представители дирекций по обслуживанию пассажиров ОАО «РЖД», и их максимальное количество составляет 150 человек, что означает - требования по времени реакции выполнены.

 

5. Экономическая часть

 

.1 Постановка экономической задачи


В дипломном проекте разрабатывается автоматизированная система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД», предназначенная для выдачи информации по дорожным кредитовым ведомствам агрегированных таблиц АБД (Аналитической Базы Данных) с разбивкой по дорогам, агентам, перевозчикам и кредитовым ведомствам.

В результате внедрения разрабатываемой информационной системы будут достигнуты:

·  оптимизация процесса получения отчёта по результирующей информации;

·        уменьшение времени, затрачиваемого на работу с системой;

С точки зрения расчета экономического эффекта разрабатываемая автоматизированная система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» решает прямую задачу, так как исходя из расчётов среднего времени обслуживания запроса в системе известно, что предельный эффект перехода к системе с использованием АРМа будет составлять 9,79 мин, соответственно относительный предельный эффект перехода составит 89%.

По масштабности разрабатываемое приложение относится к сетевым инновационным проектам, т.е. будет доступно пользователям дирекций по обслуживанию пассажиров посредством web-браузера ПК через сеть передачи данных (СПД) ОАО «РЖД».

Получение результирующей информации требует затрат, необходимых для приобретения персонального компьютера с учётом эксплуатации лицензионной операционной системы MS Windows XP/Vista и браузера MS Internet Explorer версии 7.0 или выше и подключения его к СПД ОАО «РЖД».

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

Основными показателями эффективности разработки являются:

·  изменение нерационального способа ввода данных пользователем для получения результирующей информации, что соответствует сокращению времени написания запроса на 1,8 мин.;

·        увеличение типов запросов к системе (т.е. получение информации с детализацией по дорогам, агентам и перевозчикам по различным временным периодам);

·        увеличение круга пользователей (т.е. разрабатываемой системой будут пользоваться не только технологи, имеющие обращения с терминалами, но и представители дирекций по обслуживанию пассажиров);

·        уменьшение времени, затрачиваемого на формирование отчёта по результирующей информации, на 7 минут.

 

5.2 Расчёт затрат, связанных с разработкой автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»


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

Затраты на техническое обеспечение:

·  стоимость вычислительной техники, необходимой для разработки АСККВ представлена в табл.5.1:

Таблица 5.1 - Стоимость вычислительной техники

Наименование элемента ТО

Количество

Назначение

Цена, USD

Цена, руб.

Сервер IBM z10

1

операционная среда для автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

600000

28,51

17,106 млн.

ПК

1

для разработки АСККВ и доступа к системе по СПД ОАО «РЖД»

736,6

28,51

21 000


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

,  (5.1)

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

 - время в течение года, когда проект автоматизации занимает имеющееся оборудование;

 - временной ресурс имеющегося оборудования.

Для сервера IBM z10:

Автоматизированная система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» будет использоваться всеми региональными дирекциями России по обслуживанию пассажиров. Так как Россия охватывает 10 часовых поясов, то целесообразно предположить, что АСККВ должна круглосуточно выдавать пользователям информацию по дорожным счётчикам с разбивкой по дорогам, агентам, перевозчикам и ведомствам. Операции по получению результирующей информации и отчёта занимают 1,21 м./раз в расчёте на одного пользователя, что соответствует 0,02 ч/раз. При максимальном числе пользователей 150 человек и максимальном количестве запуска 126 раз./месяц t = 0,02 * 126 * 150 * 12 = 4536 ч. в год система занимает ресурсы сервера.

Сервер функционирует в режиме 24 часа в сутки, 7 дней в неделю, поэтому его временной ресурс ч.в год


Для ПК:

Для доступа к АСККВ в процессе функционирования требуется 150 ПК:

Временной ресурс ПК:



·  Затраты на настройку Rational Application Developer ver.7.0.0.4 и IBM Personal Communication

Настройка производилась разработчиком системы, поэтому примем их равными 0.

Общая стоимость технического обеспечения:

Затраты на разработку программного обеспечения:

Процесс разработки АСККВ включает следующие виды работ:

Таблица 5.2 - Этапы проектирования программного обеспечения

№ этапа проектирования

Работа

Продолжительность (дни)

Продолжительность (час)

1

Получение задания на проектирование и постановка задачи

1

8

2

Изучение задания

2

16

3

Изучение научно-технической литературы и выделение исходных данных

2

16

4

Разработка технологии решения задачи

2

16

5

Словесное описание алгоритма

2

16

6

Построение блок-схемы программы

3

24

7

Кодирование

11

88

8

Отладка

5

40

9

Первичное тестирование системы

2

16

10

Анализ полученных результатов

2

16

11

Корректировка программы

2

16

12

Составление инструкции пользователя

2

16

Итого


36 дней

288часа


Чтобы оценить стоимость ПО в денежном выражении () необходимо рассчитать зарплату в час (), электроэнергию () и амортизацию в час (), а также накладные расходы в час ():

                                                                     (5.2)

Исполнителем всех перечисленных работ по проекту является дипломник-разработчик (оклад разработчика составляет 21 500 руб), работы выполняются последовательно.

Зарплата с единым социальным налогом (0,34 от зарплаты) рассчитывается по формуле:


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


При расчете стоимости электроэнергии, потребляемой в час в процессе проектирования (Эч), будем считать, что 1 компьютер потребляет ≈ 0,6 кВт/час, а цену примем равной 1,5 руб./кВт. Одна стойка сервера потребляет ≈ 30 кВт/час, значит затраты на электроэнергию в час составят:

Часовая амортизация зависит от цены компьютера и режима его работы. Для режима работы ПК, соответствующему наличию выходных и праздничных дней и 8-и часовому рабочему дню, можно считать часовую амортизацию по формуле:

                                                                                 (5.3)

где  - цена ЭВМ (для учета амортизации только в процессе работы АСККВ возьмём стоимость, рассчитанную выше);

0,11 - норма амортизации в год;

- норма работы часов в месяц.

Для ПК:

Для сервера IBM z10:

Сервер IBM z10 при разработке приложения использовался только на этапах первичного тестирования системы и анализа полученных результатов.

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

Для дипломного проектирования можно учесть эти расходы, равными расходам на электрическую энергию и амортизацию в час.

Суммарные затраты на разработку программного обеспечения зависят от продолжительности этапа, а так же от того, используется ли на этом этапе компьютер.

Суммарные расходы на разработку программного обеспечения:

Затраты на организационное обеспечение:

Затраты на организационное обеспечение включают расходы на написание инструкции пользователю

Таблица 5.3 - Затраты на организационное обеспечение

Этап проектирования

Трудоемкость, час

Исполнитель

ЗП + ЕСН в час

Эл. энергия и амортизация в час

Накладные расходы в час

∑затраты



Должность

Оклад





Составление инструкций пользователя

8

Студент - дипломник, инженер-программист ОАО «НИИАС»

21500+1700 (стипендия) = 23200 руб.

176,3 руб.

47руб.

47руб.

2162,4руб.


Затраты на организационное обеспечение:

Затраты на информационное обеспечение:

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

·        IBM Personal Communication;

·        Studio Rational Application Development;

Стоимость представлена в таблице 5.4.

Таблица 5.4 - Стоимость ПО

Название

Стоимость


USD

курс

руб.

IBM Personal Communication

9500

28,51

270845

Studio Rational Application Development (ver7.0.0.4)

11900

28,51

339269

ИТОГО:


610114


Т.к. операционная система напрямую с разработкой не связана, то её стоимость не входит в затраты.

Данные лицензионные продукты используются в течение 5 лет, следовательно, удельная стоимость будет равна:

Итоговые затраты

Суммарные затраты на разработку системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» составляют:


5.3 Расчёт затрат по эксплуатации автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

Годовые текущие затраты, связанные с внедрением АСККВ, будут сопровождаться следующими затратами:

1) оплата труда (исходя из количества работников, осуществляющих решение задачи, их разряда и тарифной ставки, заработной платы и примерных размеров премий) - 12 месяцев * количество работников * среднюю месячную заработную плату;

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

2) прочие начисления (очередной отпуск, оплата за непроработанное время, расходы по командировкам, техника безопасности и др.) составляют 2% от оплаты труда:

3) единый социальный налог, составляющий 34% от суммы оплаты труда и прочих начислений:

4) материалы (по примерной оценке - 5% от стоимости оборудования рабочих мест). В процессе эксплуатации системы используется рабочее место администратора и рабочее место пользователей - ПК (максимальное число пользователей 150):

5) электроэнергия;

Для ПК (по нормам для работы 8 часов в сутки при пятидневной рабочей неделе для 150 пользователей):

Для доступа к АСККВ в процессе функционирования требуется 150 ПК:

Для сервера IBM z10:

Так как АСККВ реализуется на уже имеющемся оборудовании и использует часть свободного ресурса, рассчитаем удельную стоимость электроэнергии, приходящуюся на работу модуля, по формуле:

,   (5.4)

где:  - потребление электроэнергии сервером (≈ 30 кВт/час);

 - время в течение года, когда модуль занимает имеющееся оборудование, ч.



6) прочие материальные затраты (оплаты работ и услуг сторонних организаций) - в проекте не предусмотрены;

7)      амортизационные отчисления (исходя из стоимости системы и норм амортизации, а при отсутствии таковых - исходя из нормативного или предполагаемого срока службы технических средств, включаемых в систему); 10% от стоимости оборудования:

8) прочие затраты, (налог на имущество, уплата процентов за кредит, плата за аренду в случае аренды отдельных объектов и др.) - 10% от суммы выше перечисленных затрат:

Определим сумму текущих расходов:

 

5.4 Определение эффективности проекта


Основная эффективность в использовании системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» заключается в:

·  изменении нерационального способа ввода данных пользователем для получения результирующей информации, что соответствует сокращению времени написания запроса к системе на 1,8 мин.

Определим экономию текущих расходов (максимальное число пользователей 150, максимальное количество запуска системы 126 раз в месяц):

·  увеличении типов запросов к системе (в существующей системе N1=2, в разрабатываемой системе N2=15, где N1,N2 - количество типов запросов к системе).

Определим эффективность увеличения типов запросов:


·  уменьшении времени, затрачиваемого на формирование отчёта по результирующей информации, на 7 мин.

Определим экономию текущих расходов:

Анализируя результаты, полученные в ходе расчётов, можно сделать вывод о том, что затраты на разработку и создание системы контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» меньше экономии затрат на её эксплуатацию.

ЗАКЛЮЧЕНИЕ


В данном дипломном проекте разработана система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД».

Проведен анализ существующей системы получения результирующей информации по дорожным счётчикам кредитовых ведомств, выявлены ее недостатки и обоснована целесообразность разработки задачи.

Проведено проектирование и разработка программного обеспечения в соответствии со всеми поставленными требованиями к информационному, техническому, программному обеспечению, к функциям, выполняемым системой.

Данная система позволит:

·  изменить нерациональный способ ввода данных пользователем для получения результирующей информации, что соответствует сокращению времени написания запроса на 1,8 мин.;

·        увеличить типы запросов к системе (т.е. получение информации с детализацией по дорогам, агентам и перевозчикам по различным временным периодам);

·        увеличить круг пользователей (т.е. разрабатываемой системой будут пользоваться не только технологи, имеющие обращения с терминалами, но и представители дирекций по обслуживанию пассажиров);

·        уменьшить время, затрачиваемое на формирование отчёта по результирующей информации, на 7 мин.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ


1.   Берёзка М.П., Презентационный материал «Аналитическая база данных «Экспресс-3». Принципы формирования информации, информационные потоки, классификация информации и прикладных задач», 2009.

2.      Берёзка М.П., Презентационный материал Система управления пассажирскими перевозками «Экспресс-3», 2009.

3.      Брюс У. Перри <#"656464.files/image123.gif">

Рисунок B.1- Классы, участвующие в реализации варианта использования «Запуск приложения»

Рисунок B.2 - Классы, участвующие в реализации варианта использования «Ввод параметров»

Рисунок B.3 - Классы, участвующие в реализации варианта использования «Получение результирующей информации»

Рисунок B.4 - Классы, участвующие в реализации варианта использования «Обработка данных»

Приложение C

 

Определение обязанностей, атрибутов и ассоциаций классов


Рисунок С.1 - Классы с операциями и атрибутами «Запуск приложения»

Рисунок С.2 - Классы с операциями и атрибутами «Ввод параметров»

Рисунок С.3 - Классы с операциями и атрибутами «Получение результирующей информации»

Рисунок С.4 - Классы с операциями и атрибутами «Обработка данных»

Приложение D

 

Подробное описание сущностей БД АСККВ

1)  GOS - представляет собой справочник государств.

Таблица D.1 - Сущность «GOS»

Имя

Тип

Примечание

KODGOS

CHAR (2)

код страны (2 цифры)

DATAN

DATE

дата начала

DATAK

DATE

дата окончания

SNAZVG

CHAR(5)

сокращённое наименование государства

SNAZVNDE

CHAR(5)

сокращённое название нац. валюты

NAZVG

CHAR(15)

название страны

NAZVNDE

CHAR(10)

полное название нац. валюты


2)  DOR - представляет собой справочник дорог

Таблица D.2 - Сущность «DOR»

ИмяТипПримечание



KODD

CHAR(2)

код дороги

DATAND

DATE

дата начала

DATAKD

DATE

дата окончания

VC

CHAR(2)

шифр ВЦ

KODG

CHAR(2)

код государства

SNAZVD

CHAR(2)

сокращённое название дороги

NAZVD

CHAR(15)

название дороги

CHASRAZ

DEC(1)

отличие часового пояса от Москвы

PR_NYAZ

CHAR(2)

национальный язык

NAZVRD

CHAR(15)

название региональной дирекции


3)  VC - представляет собой справочник вычислительных центров дорог

Таблица D.3 - Сущность «VC»

ИмяТипПримечание



VC_VID

INTEGER

внутренний идентификатор ВЦ

VC_DATAN

DATE

дата начала действия

VC_DATAK

DATE

дата окончания действия

VC_KODVC

CHAR(2)

код ВЦ

VC_VIDGOS

INTEGER

внутренний идентификатор государства

VC_VIDSTVC

INTEGER

внутренний идентификатор станции

VC_NAMES

CHAR(10)

сокращённое наименование ВЦ

VC_PRGVR

CHAR(2)

признак главного ВЦ


4)   SOBPER_SKP - представляет собой справочник перевозчиков

Таблица D.4 - Сущность «SOBPER_SKP»

Имя

Тип

Примечание

SKP_SKP

SMALLINT

сетевой код перевозчика

NOMP

CHAR(2)

номер перевозчика

MNKODP

CHAR(7)

мнемокод перевозчика

DATANO

DATE

начальная дата отправления

DATAKO

DATE

конечная дата отправления

GOS

CHAR(2)

код государства

DOR

CHAR(2)

шифр дороги

NAZVP

CHAR(15)

название перевозчика

NAZVD

CHAR(32)

длинное название перевозчика

PRFIL

признак филиала

PRDK

CHAR(2)

признак дочерней компании

PRPP

CHAR(2)

признак пригородного перевозчика


5)  SOBPER_AGN - представляет собой справочник агентов

Таблица D.5 - Сущность «SOBPER_AGN»

ИмяТипПримечание



SKP_AGN

SMALLINT

сетевой код агента

NOMP

CHAR(2)

номер агента

MNKODP

CHAR(7)

мнемокод агента

DATANO

DATE

начальная дата отправления

DATAKO

DATE

конечная дата отправления

GOS

CHAR(2)

код государства

DOR

CHAR(2)

шифр дороги

NAZVP

CHAR(15)

название агента

NAZVD

CHAR(32)

длинное название агента

PRFIL

CHAR(2)

признак филиала

PRDK

CHAR(2)

признак дочерней компании

PRPP

CHAR(2)

признак пригородного агента

SKP

SMALLINT

сетевой код агента


6)  LGOT - представляет собой справочник по льготам

Таблица D.6 - Сущность «LGOT»

ИмяТипПримечание



NOMMV

DEC(2)

код ведомства

KODG

CHAR(2)

код государства

DATAN

DATE

дата начала действия

DATAK

DATE

дата окончания действия


7)  SERV - представляет собой справочник по коду государства сервера

Таблица D.7 - Сущность «SERV»

ИмяТипПримечание



GOS_ABD

CHAR(2)

код государства сервера


8)  VALUT - представляет собой справочник валют государства

Таблица D.8 - Сущность «VALUT»

ИмяТипПримечание



VALUT

CHAR(2)

название государства валюты

VALUT_DATAN

DATE

дата начала действия валюты

VALUT_DATAK

DATE

дата окончания действия валюты

VALUT_KOEF

INTEGER

коэффициент валюты относительно России


9)  DOHODV - представляет собой агрегированную таблицу, содержащую дорожные счётчики кредитовых ведомств

Таблица D.9 - Сущность «DOHODV»

Имя

Тип

Примечание

MES

INTEGER

номер месяца обслуживания кредитовых ведомств

SKP_SKP

DATE

сетевой код перевозчика

DATANO

DATE

начальная дата отправления

DATANP

DATE

начальная дата прибытия

SKP_AGN

INTEGER

сетевой код агента

NOMMV

DECIMAL(2)

код ведомства

KODD

CHAR(2)

код дороги

SUMPD

INTEGER

сумма от проданных документов в дальнем сообщении

MSUMPD

INTEGER

сумма от проданных документов в дальнем сообщении (с начала месяца)

KOLPAS

INTEGER

количество оформленных пассажиров в дальнем сообщении

MKOLPAS

INTEGER

количество оформленных пассажиров в дальнем сообщении (с начала месяца)

SUMPR

INTEGER

сумма пригородных

MSUMPR

INTEGER

сумма пригородных (с начала месяца)

KOLPR

INTEGER

количество пригородных

MKOLPR

INTEGER

количество пригородных (с начала месяца)

SUMBAG

INTEGER

сумма от оформленных багажных документов

MSUMBAG

INTEGER

сумма от оформленных багажных документов (с начала месяца)

KOLBAG

INTEGER

количество оформленных багажных документов

MKOLBAG

INTEGER

количество оформленных багажных документов (с начала месяца)

KOMSBV

INTEGER

комсбор от продажи при возврате

MKOMSBV

INTEGER

комсбор от продажи при возврате (с начала месяца)

KOLV

INTEGER

количество документов по кредитовым ведомствам

MKOLV

INTEGER

количество документов по кредитовым ведомствам (с начала месяца)



Приложение E

 

Формы отчётов


Таблица E.1 - Форма вывода результирующей информации №1

воинское министерство

сумма от проданных документов

кол. оформл. пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформл. багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

назв.

номер

на одну дату

с нач. месяца

на одну дату

с нач. меяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

название дороги






































ИТОГО


















Таблица E.2 - Форма вывода результирующей информации №2

название дороги

сумма от проданных документов

кол. оформл.пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформл. багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.


на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца



































ИТОГО


















Таблица E.3 - Форма вывода результирующей информации №3

воинское министерство

сумма от проданных документов

кол. оформл. пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформл. багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

назв.

номер

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца
























































ВСЕГО

















Таблица E.4 - Форма вывода результирующей информации №4

воинское министерство

сумма от проданных документов

кол. оформл. пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. Багажных документов

кол. оформл. багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

назв.

номер

на одну дату

с нач. месяца

на одну дату

с нач. меяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

код агента






































ВСЕГО


















Таблица E.5 - Форма вывода результирующей информации №5

Воинское министерство

сумма от проданных документов

кол. оформл.пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформл.багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

Назв.

Номер

на одну дату

с нач. месяца

на одну дату

с нач. меяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

код перевозчика






































ВСЕГО


















Таблица E.6 - Форма вывода результирующей информации №6

Код перевозчика

сумма от проданных документов

кол. оформл. пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформл.багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.


на одну дату

с нач. месяца

на одну дату

с нач. меяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца



































ВСЕГО


















Таблица E.7 - Форма вывода результирующей информации №7

Код агента

сумма от проданных документов

кол. Оформленных пассажиров

сумма пригородных

кол. Пригородных документов

сумма от оформл. Багажных документов

кол. Оформленных багажных документов

комсбор от прод. Воинских

кол.документов по воинск. Треб.


на одну дату

с нач. месяца

на одну дату

с нач. меяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца

на одну дату

с нач. месяца



































ВСЕГО


















Таблица E.8 - Форма вывода результирующей информации №8

воинское министерство

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

назв.

номер









название дороги






















ИТОГО










Таблица E.9- Форма вывода результирующей информации №9

Воинское министерство

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

назв.

номер




















ВСЕГО










Таблица E.10 - Форма вывода результирующей информации №10

Воинское министерство

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. Пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

Назв.

Номер









код агента












ВСЕГО










Таблица E.11 - Форма вывода результирующей информации №11

Воинское министерство

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.

Назв.

Номер









код перевозчика












ВСЕГО










Таблица E.12 - Форма вывода результирующей информации №12

код агента

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. Пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.










ВСЕГО










Таблица E.13 - Форма вывода результирующей информации №13

Код перевозчика

сумма от проданных документов

кол. оформленных пассажиров

сумма пригородных

кол. пригородных документов

сумма от оформл. багажных документов

кол. оформленных багажных документов

комсбор от прод. воинских

кол.документов по воинск. треб.










ВСЕГО











Приложение F

 

Код программы

VoinClass.javavoin.Classes;java.util.*;class VoinClass {String dor = null;String min = null;String min_name = null;String nazvd = null;String oplata = null;String moplata = null;String sumpd = null;String msumpd = null;String kolpas = null;String mkolpas = null;String sumpr = null;String msumpr = null;String kolpr = null;String mkolpr = null;String sumbag = null;String msumbag = null;String kolbag = null;String mkolbag = null;String komsbv = null;String mkomsbv = null;String kolv = null;String mkolv = null;String abd = null;

//====CHECK PARAMETRS========String dorUser = null;String gosUser = null;String agentUser = null;String skpUser = null;String agent = null;String agent_name = null;String per = null;String per_name = null;String ust = null;

//============================boolean chek_str = false;String getDor() {dor;

}String getAbd() {abd;

}String getAgent() {agent;

}void setAgent(String agent) {.agent = agent;

}String getAgent_name() {agent_name;

}void setAgent_name(String agent_name) {.agent_name =agent_name;

}String getPer() {per;

}void setPer(String per) {.per = per;

}String getPer_name() {per_name;

}void setPer_name(String per_name) {.per_name = per_name;

}String getUst() {ust;

}void setUst(String ust) {.ust = ust;

}void setAbd(String abd) {.abd = abd;

}void setDor(String dor) {.dor = dor;

}String getMin() {min;

}void setMin(String min) {.min = min;

}String getMin_name() {min_name;

}void setMin_name(String min_name) {.min_name = min_name;

}String getNazvd() {nazvd;

}void setNazvd(String nazvd) {.nazvd = nazvd;

}String getOplata() {oplata;

}void setOplata(String oplata) {.oplata = oplata;

}String getMoplata() {moplata;

}void setMoplata(String moplata) {.moplata = moplata;

}String getSumpd() {sumpd;

}void setSumpd(String sumpd) {.sumpd = sumpd;

}String getMsumpd() {msumpd;

}void setMsumpd(String msumpd) {.msumpd = msumpd;

}String getKolpas() {kolpas;

}void setKolpas(String kolpas) {.kolpas = kolpas;

}String getMkolpas() {mkolpas;

}void setMkolpas(String mkolpas) {.mkolpas = mkolpas;

}String getSumpr() {sumpr;

}void setSumpr(String sumpr) {.sumpr = sumpr;

}String getMsumpr() {msumpr;

} void setMsumpr(String msumpr) {.msumpr = msumpr;

} String getKolpr() {kolpr;

} void setKolpr(String kolpr) {.kolpr = kolpr;

}String getMkolpr() {mkolpr;

}void setMkolpr(String mkolpr) {.mkolpr = mkolpr;

}String getSumbag() {sumbag;

}void setSumbag(String sumbag) {.sumbag = sumbag;

}String getMsumbag() {msumbag;

}void setMsumbag(String msumbag) {.msumbag = msumbag;

}String getKolbag() {kolbag;

}void setKolbag(String kolbag) {.kolbag = kolbag;

}String getMkolbag() {mkolbag;

}void setMkolbag(String mkolbag) {.mkolbag= mkolbag;

}String getKomsbv() {komsbv;

}void setKomsbv(String komsbv) {.komsbv = komsbv;

}String getMkomsbv() {mkomsbv;

}void setMkomsbv(String mkomsbv) {.mkomsbv = mkomsbv;

}String getKolv() {kolv;

}void setKolv(String kolv) {.kolv = kolv;

}String getMkolv() {mkolv;

}void setMkolv(String mkolv) {.mkolv = mkolv;

}

//===========CHECK_PARAMETSR==========String getDorUser() {dorUser;

}void setDorUser(String dorUser) {.dorUser = dorUser;

}String getGosUser() {gosUser;

}void setGosUser(String gosUser) {.gosUser = gosUser;

}String getSkpUser() {skpUser;

}void setSkpUser(String skpUser) {.skpUser = skpUser;

}

//=========chek_str========boolean getChek_str() {chek_str;

}void setChek_str(boolean c) {.chek_str = c;

}

}.javavoin.Classes;java.io.IOException;javax.servlet.Servlet;javax.servlet.ServletException;javax.servlet.http.HttpServletRequest;javax.servlet.http.HttpServletResponse;morutils.ActivityData;class ActionServlet extends org.apache.struts.action.ActionServlet implements Servlet {void doGet(HttpServletRequest req, HttpServletResponse resp)ServletException, IOException {(req, resp);

}void doPost(HttpServletRequest req, HttpServletResponse resp)ServletException, IOException {st=req.getServletPath();ad=null;procId=0;

{= new ActivityData(req, "VOIN");= ad.startProcess();

}.doPost(req, resp);

{.stopProcess(procId);

}

}

}.javavoin.actions;java.sql.Connection;java.sql.PreparedStatement;java.sql.ResultSet;java.sql.SQLException;java.text.SimpleDateFormat;java.util.ArrayList;java.util.GregorianCalendar;java.util.Vector;java.text.DecimalFormat;java.text.DecimalFormatSymbols;java.text.ParseException;java.util.Calendar;java.util.HashMap;java.util.Iterator;java.util.TreeMap;javax.servlet.http.HttpServletRequest;javax.servlet.http.HttpServletResponse;javax.servlet.http.HttpSession;org.apache.struts.action.Action;org.apache.struts.action.ActionError;org.apache.struts.action.ActionErrors;org.apache.struts.action.ActionForm;org.apache.struts.action.ActionForward;org.apache.struts.action.ActionMapping;org.apache.struts.util.LabelValueBean;voin.Classes.VoinClass;voin.Classes.JDBCConnection;voin.Forms.ArmVoinForm;comserv.UserCheck;morutils.IsAvailable;class StartAction extends Action{ActionForward execute(ActionMapping mapping, ActionForm form,request, HttpServletResponse response)SQLException, Exception {jdbcConnection = new JDBCConnection();errors = new ActionErrors();forward = new ActionForward();connec = null;pstmt = null;rs = null;pstmt2 = null;rs2 = null;pstmt3 = null;rs3 = null;pstmt4 = null;rs4 = null;session = request.getSession(false);cond1 = "";cond2 = "";cond3 = "";cond4 = "";vis = null;vis1 = null;vis2 = null;ch = null;remoteUser = request.getRemoteUser();remoteIP = request.getRemoteAddr();{ia = new IsAvailable();(ia.avLevel != IsAvailable.isOk) {(ia.message.length() > 0).setAttribute("isAv", ia.message);(ia.avLevel == IsAvailable.isBusy) {.add("errorIsAv", new ActionError("error.IsAv",.message));new Exception();

}

}

////=======UserCheck========== new UserCheck();.setUser(remoteUser);.setIp(remoteIP);.setTaskCode("DOHODV");.setStatTaskCode("DOHODV");dorUser = "";gosUser = "";agentUser = "";skpUser = "";(!ch.check()) {.setTaskCode("ARMPP");(!ch.check()) {.add("errorUserLockMsg", new ActionError(

"error.UserLockMsg", ch.getMessage(), remoteIP));new Exception();

}

}.setAttribute("breakpoints", "22");= ch.getUserDor();= ch.getUserGos();= String.valueOf(ch.getAgent());(agentUser.trim().equals("-1")) {= "";

}.setAttribute("breakpoints", "23");= String.valueOf(ch.getSkp());(skpUser.trim().equals("-1")) {= "";//===skpUser = "";

}(!skpUser.equals("") && skpUser!=null) {= "AND SKP = ? ";

} else {= "";

}(!agentUser.equals("") && agentUser!=null){= "AND SKP = ? ";

} else {= "";

}.setAttribute("breakpoints", "3");(dorUser != null && !dorUser.equals("@") && !dorUser.equals("*")){= "1";= " AND A.KODD = ? ";= " AND GOS = ? ";

}(dorUser != null && dorUser.equals("*")) {= "1";= " AND A.KODG = ? ";= " AND GOS = ? ";

}(dorUser !=null && dorUser.equals("@")) {= "1";= "";= " AND GOS = S.GOS_ABD ";

}.setAttribute("breakpoints", "4");

//=========================query ="SELECT DISTINCT A.KODD, A.KODG,A.SNAZVD, A.NAZVD FROM EXPBD.DOR A, EXPBD.GOS B "+

" WHERE A.KODG=B.KODGOS AND CURRENT_DATE<=A.DATAK AND CURRENT_DATE>=A.DATAN " ++

" AND B.PR_SNG='1' AND A.DATAK>=B.DATAN AND A.DATAK<=B.DATAK ORDER BY A.KODG ";.setDSConnection("java:comp/env/DataSourceRef");= jdbcConnection.getConnection();= connec.prepareStatement(query);(dorUser != null && !dorUser.equals("@") && !dorUser.equals("*")){.setString(1, dorUser);

}(dorUser != null && dorUser.equals("*")) {.setString(1, gosUser);

}= pstmt.executeQuery();dors = new ArrayList();((dorUser !=null) && (dorUser.equals("@"))).add(new LabelValueBean("* Сумма по дорогам России", "*"));((dorUser !=null) && (dorUser.equals("*"))).add(new LabelValueBean("* Сумма по дорогам России", "*"));(rs.next()) {.add(new LabelValueBean(rs.getString(1).trim() + " "

+ rs.getString(2).trim() + " "+ rs.getString(3).trim() + " " + rs.getString(4).trim(),rs.getString(1).trim() + "--" + rs.getString(2).trim()));

}.close();.close();.setAttribute("breakpoints", "5");.setAttribute("attrDors", dors);.setAttribute("vis", vis);.setAttribute("vis1", vis1);.setAttribute("vis2", vis2);

//======query #2===schet_query2 = 1;query2 = "SELECT DISTINCT SKP, MNKODP FROM DBKLAS.SOBPER " +

" WHERE CURRENT_DATE<=DATAKO AND CURRENT_DATE<=DATAKP " +

" AND CURRENT_DATE>=DATANO AND CURRENT_DATE>=DATANP " +

" AND PRFIL<>'1' " + cond4;(dorUser != null && !dorUser.equals("@")){+= cond2;

}= connec.prepareStatement(query2);(!agentUser.equals("") && agentUser != null).setString(schet_query2++, agentUser);(dorUser != null && !dorUser.equals("@")).setString(schet_query2++, gosUser);= pstmt2.executeQuery();agents = new ArrayList();(agentUser.equals("")){.add(new LabelValueBean("Сумма по всем", "*--ЛЮБОЙ"));.add(new LabelValueBean("* Детализация", "**--ЛЮБОЙ"));

}(rs2.next()) {.add(new LabelValueBean(rs2.getString(1).trim() + " " + rs2.getString(2).trim(), rs2.getString(1).trim() + "--" + rs2.getString(2).trim()));

}.close();.close();.setAttribute("attrAgents", agents);

//=======query #3======schet_query3 = 1;query3="SELECT DISTINCT SKP, MNKODP FROM DBKLAS.SOBPER " +

" WHERE CURRENT_DATE<=DATAKO AND CURRENT_DATE<=DATAKP " +

" AND CURRENT_DATE>=DATANO AND CURRENT_DATE>=DATANP " +

" AND PRFIL<>'1' "+ cond3;(dorUser != null && !dorUser.equals("@")){+= cond2;

}= connec.prepareStatement(query3);(!skpUser.equals("") && skpUser != null).setString(schet_query3++, skpUser);(dorUser != null && !dorUser.equals("@")).setString(schet_query3++, gosUser);= pstmt3.executeQuery();pers = new ArrayList();(skpUser.equals("")){.add(new LabelValueBean("Сумма по всем", "*--ЛЮБОЙ"));.add(new LabelValueBean("* Детализация", "**--ЛЮБОЙ"));

}(rs3.next()) {.add(new LabelValueBean(rs3.getString(1).trim() + " "

+ rs3.getString(2).trim(), rs3.getString(1).trim() + "--" + rs3.getString(2).trim()));

}.close();.close();.setAttribute("attrPers", pers);

//===========query #4=============query4="SELECT DISTINCT NOMMV, NAME, GOS FROM EXPBD.LGOT ";(dorUser != null && dorUser.equals("@")){+= ", EXPBD.SERV S ";

}+= " WHERE CURRENT_DATE>=DATAN AND CURRENT_DATE<=DATAOT " +

" AND NOMMV<>0 " + cond2;= connec.prepareStatement(query4);(dorUser != null && !dorUser.equals("@")) {.setString(1, gosUser);

}= pstmt4.executeQuery();mins = new ArrayList();.add(new LabelValueBean("* Детализация", "*--ЛЮБОЙ--ЛЮБОЙ"));(rs4.next()) {.add(new LabelValueBean(rs4.getString(1).trim() + " "

+ rs4.getString(2).trim(), rs4.getString(1).trim() + "--"

+ rs4.getString(2).trim() + "--" + rs4.getString(3).trim()));

}.close();.close();.setAttribute("attrMins", mins);.setAttribute("dorUser", dorUser);.setAttribute("gosUser", gosUser);

//=============================

}(SQLException e) {

// Report the error using the appropriate name and ID..add("errorDB2", new ActionError("error.errorDB2", e.getMessage()));

// throw e;

}(Exception e) {

// Report the error using the appropriate name and ID.(errors.isEmpty()).add("Exception", new ActionError("error.Exception", e.getMessage()));

}{{(rs != null) {.close();

}(pstmt != null) {.close();

}(jdbcConnection.getConnection()!=null).releaseConnection();

} catch (SQLException e1) {(rs != null) {.close();

}(pstmt != null) {.close();

}e1;

}

}(!errors.isEmpty()) {(request, errors);= mapping.findForward("failure");

} else {= mapping.findForward("success");

}(forward);

}

}.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<%String vis;= (String)session.getAttribute("vis");

%>

<script language="JavaScript">dataChange(objForm,field){(field[0].checked){.day.disabled=false;.month.disabled=false;.year.disabled=false;.systemdata.disabled=true;.fday.disabled=true;.fmonth.disabled=true;.fyear.disabled=true;.f_fmonth.disabled=true;.f_fyear.disabled=true;(objForm);

}(field[1].checked){.day.disabled=true;.month.disabled=true;.year.disabled=true;.systemdata.disabled=false;.fday.disabled=true;.fmonth.disabled=true;.fyear.disabled=true;.f_fmonth.disabled=true;.f_fyear.disabled=true;

}(field[2].checked){.day.disabled=true;.month.disabled=true;.year.disabled=true;.systemdata.disabled=true;.fday.disabled=false;.fmonth.disabled=false;.fyear.disabled=false;.f_fmonth.disabled=true;.f_fyear.disabled=true;

}(field[3].checked){.day.disabled=true;.month.disabled=true;.year.disabled=true;.systemdata.disabled=true;.fday.disabled=true;.fmonth.disabled=true;.fyear.disabled=true;.f_fmonth.disabled=false;.f_fyear.disabled=false;

}

}changeData(objForm){=objForm.day.value;=objForm.month.value;=objForm.year.value;=new Date(y,m-1,1);months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);=months[m-1];(days==28){(y%4==0)days=29;

}.day.length=0;dayVal;(i=0;i<days;i++){=new String(i+1);(dayVal.length==1)="0"+dayVal;.day[i]=new Option(i+1,dayVal);

}(days>=day){.day[day-1].selected=true;

}

}ustChange(objForm,field){(field[0].checked){.dor.disabled=true;

}else {.dor.disabled=false;

}(objForm.dorUser.value=="1"){[0].disabled=true;

}

}doShow(thisform) {.submit();true;

}onLoadBody(objForm){(objForm,objForm.data);(objForm,objForm.ust);

}

</script>

<body onload="onLoadBody(document.forms[0])">

<a href="/express3/"><i>Вернуться на страницу "Экспресс-3"</i></a>&nbsp;|&nbsp;

<a href="/armpp/"><i>Главная страница АРМа</i></a>

<h1 align="center" style="font-size:18pt">АСУ "ЭКСПРЕСС-3" </h1>

<h2 align="center">Информация о дорожных счётчиках кредитовых ведомств</h2>

<h3 align="left">Критерии выбора информации:</h3>

<center>

<HR>

<html:form action="/voin">

<html:hidden property="dorUser"/>

<div id="terminal" align="left"><b>На&nbsp;:</b>

<html:radio property="data" value="data"="dataChange(this.form,this.form.data)">

</html:radio>день:&nbsp; <html:select property="day">

<html:option value="01">1</html:option>

<html:option value="02">2</html:option>

<html:option value="03">3</html:option>

<html:option value="04">4</html:option>

<html:option value="05">5</html:option>

<html:option value="06">6</html:option>

<html:option value="07">7</html:option>

<html:option value="08">8</html:option>

<html:option value="09">9</html:option>

<html:option value="10">10</html:option>

<html:option value="11">11</html:option>

<html:option value="12">12</html:option>

<html:option value="13">13</html:option>

<html:option value="14">14</html:option>

<html:option value="15">15</html:option>

<html:option value="16">16</html:option>

<html:option value="17">17</html:option>

<html:option value="18">18</html:option>

<html:option value="19">19</html:option>

<html:option value="20">20</html:option>

<html:option value="21">21</html:option>

<html:option value="22">22</html:option>

<html:option value="23">23</html:option>

<html:option value="24">24</html:option>

<html:option value="25">25</html:option>

<html:option value="26">26</html:option>

<html:option value="27">27</html:option>

<html:option value="28">28</html:option>

<html:option value="29">29</html:option>

<html:option value="30">30</html:option>

<html:option value="31">31</html:option>

</html:select>&nbsp; месяц:&nbsp; <html:select property="month"="changeData(this.form)">

<html:option value="01">Январь</html:option>

<html:option value="02">Февраль</html:option>

<html:option value="03">Март</html:option>

<html:option value="04">Апрель</html:option>

<html:option value="05">Май</html:option>

<html:option value="06">Июнь</html:option>

<html:option value="07">Июль</html:option>

<html:option value="08">Август</html:option>

<html:option value="09">Сентябрь</html:option>

<html:option value="10">Октябрь</html:option>

<html:option value="11">Ноябрь</html:option>

<html:option value="12">Декабрь</html:option>

</html:select>&nbsp; год:&nbsp; <html:select property="year">

<html:option value="2003">2003</html:option>

<html:option value="2004">2004</html:option>

<html:option value="2005">2005</html:option>

<html:option value="2006">2006</html:option>

<html:option value="2007">2007</html:option>

<html:option value="2008">2008</html:option>

<html:option value="2009">2009</html:option>

<html:option value="2010">2010</html:option>

</html:select>&nbsp;&nbsp;&nbsp;

<html:radio property="data" value="odat"="dataChange(this.form,this.form.data)"></html:radio>отчетную

дату&nbsp; <html:text property="systemdata" size="8" /><br><hr>

<html:radio property="data" value="fdat"="dataChange(this.form, this.form.data)"></html:radio>пятидневку&nbsp;

<html:select property="fday">

<html:option value="01">1-5</html:option>

<html:option value="02">6-10</html:option>

<html:option value="03">11-15</html:option>

<html:option value="04">16-20</html:option>

<html:option value="05">21-25</html:option>

<html:option value="06">26-до конца месяца</html:option>

</html:select>&nbsp;месяц:&nbsp; <html:select property="fmonth">

<html:option value="01">Январь</html:option>

<html:option value="02">Февраль</html:option>

<html:option value="03">Март</html:option>

<html:option value="04">Апрель</html:option>

<html:option value="05">Май</html:option>

<html:option value="06">Июнь</html:option>

<html:option value="07">Июль</html:option>

<html:option value="08">Август</html:option>

<html:option value="09">Сентябрь</html:option>

<html:option value="10">Октябрь</html:option>

<html:option value="11">Ноябрь</html:option>

<html:option value="12">Декабрь</html:option>

</html:select>&nbsp; год:&nbsp; <html:select property="fyear">

<html:option value="2003">2003</html:option>

<html:option value="2004">2004</html:option>

<html:option value="2005">2005</html:option>

<html:option value="2006">2006</html:option>

<html:option value="2007">2007</html:option>

<html:option value="2009">2009</html:option>

<html:option value="2010">2010</html:option>

</html:select>&nbsp;&nbsp;&nbsp;

<br>

<hr>

<html:radio property="data" value="f_month"="dataChange(this.form, this.form.data)"></html:radio>за месяц:&nbsp;

&nbsp; <html:select property="f_fmonth">

<html:option value="01">Январь</html:option>

<html:option value="02">Февраль</html:option>

<html:option value="03">Март</html:option>

<html:option value="04">Апрель</html:option>

<html:option value="05">Май</html:option>

<html:option value="06">Июнь</html:option>

<html:option value="07">Июль</html:option>

<html:option value="08">Август</html:option>

<html:option value="09">Сентябрь</html:option>

<html:option value="10">Октябрь</html:option>

<html:option value="11">Ноябрь</html:option>

<html:option value="12">Декабрь</html:option>

</html:select>&nbsp; год:&nbsp; <html:select property="f_fyear">

<html:option value="2003">2003</html:option>

<html:option value="2004">2004</html:option>

<html:option value="2005">2005</html:option>

<html:option value="2006">2006</html:option>

<html:option value="2007">2007</html:option>

<html:option value="2008">2008</html:option>

<html:option value="2009">2009</html:option>

<html:option value="2010">2010</html:option>

</html:select>&nbsp;&nbsp;&nbsp;<b></b>

<br>

<hr>

</div>

<div id="terminal" align="left"><html:radio property="ust"="all_set" onclick="ustChange(this.form,this.form.ust)"></html:radio>

все дороги сети&nbsp; <html:radio property="ust" value="dor"="ustChange(this.form,this.form.ust)"></html:radio>

дорога:&nbsp; <html:select property="dor">

<html:optionsCollection property="dors" />

</html:select>

<br>

<hr>

<div align=left><!--<html:radio property="kod" value="agent"="kodChange(this.form,this.form.kod)"></html:radio>--> Код

агента&nbsp; <html:select property="agent">

<html:optionsCollection property="agents" />

</html:select>

<br>

<br>

<!--<html:radio property="kod" value="per"="kodChange(this.form,this.form.kod)"></html:radio>-->

Код перевозчика&nbsp;

<html:select property="per">

<html:optionsCollection property="pers" />

</html:select>

<br>

<br>

<!--<html:radio property="kod" value="min"="kodChange(this.form,this.form.kod)"></html:radio>-->

Ведомство&nbsp;

<html:select property="min">

<html:optionsCollection property="mins" />

</html:select>

<br>

<br>

<html:checkbox property="chek_str" />учёт нулевых строк<br>

</div>

<hr>

<br>

<br>

<p align="center"><html:submit value="Выполнить запрос"="return doShow(this.form)"="width:140; position:relative; height: 20; text-align:Center; font-size:8pt; color:#000099; margin-left:14" />

</p>

<div align="right"><b>База данных:&nbsp;</b><html:select="abd">

<html:option value="EXPBD">Производственная</html:option>

<html:option value="EXPBDO">Отладочная</html:option>

</html:select> <br>

<br>

</div>

<br>

<table width="100%" border="0">

<tr>

<td align="left" valign="top">Разработчик: Сунгатуллина А.Т. <br>

<a>Руководитель: Ширман И.И.</a> <br>

<a>Почтовые адреса Intranet </a><br>

<a href="mailto:express@vniias.org.rzd">express@vniias.org.rzd</a> <br>

<a href="mailto:A.Sungatullina@vniias.org.rzd">A.Sungatullina@vniias.org.rzd</a>

<br>

Почтовый адрес Internet <br>

<a href="mailto:express@vniias.ru">express@vniias.ru</a></td>

<td align="right" valign="top"><a href="instr_dohodv.doc">инструкция</a>&nbsp;|&nbsp;

Версия 2.0</td>

</tr>

</table>

</html:form>

<HR>

</body>

</html>

error.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ page isErrorPage="true" %>

<html:html>

<HEAD>

<%@ page="java"="text/html; charset=CP1251"="CP1251"

%>

<META http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM WebSphere Studio">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet"="text/css">

<TITLE>Кредитовые ведомства: Ошибка</TITLE>

</HEAD>

<BODY>

<P>Произошла ошибка:</P>

<html:errors/>

<ul>

<% if(exception!=null){%>

<%= exception.getMessage()

%>

<% } %>

</ul>

<p>

<%breakpoints=null;= ((String) request.getAttribute("breakpoints"));(breakpoints == null)

{= "";

}

%>

</p>

<%=breakpoints %>

<a href="javascript:history.back()">Вернуться назад</a>

</body>

</html:html>

VoinAction.javavoin.actions;java.sql.Connection;java.sql.PreparedStatement;java.sql.ResultSet;java.sql.SQLException;java.text.SimpleDateFormat;java.util.ArrayList;java.util.GregorianCalendar;java.util.Vector;java.text.DecimalFormat;java.text.DecimalFormatSymbols;java.text.ParseException;java.util.Calendar;java.util.HashMap;java.util.Iterator;java.util.TreeMap;javax.servlet.http.HttpServletRequest;javax.servlet.http.HttpServletResponse;javax.servlet.http.HttpSession;voin.Classes.VoinClass;org.apache.struts.action.Action;org.apache.struts.action.ActionError;org.apache.struts.action.ActionErrors;org.apache.struts.action.ActionForm;org.apache.struts.action.ActionForward;org.apache.struts.action.ActionMapping;org.apache.struts.util.LabelValueBean;voin.Classes.JDBCConnection;voin.Forms.ArmVoinForm;class VoinAction extends Action

{ActionForward execute(ActionMapping mapping, ActionForm form,request, HttpServletResponse response)SQLException, Exception {armvoinForm = (ArmVoinForm) form;errors = new ActionErrors();forward = new ActionForward();jdbcConnection = new JDBCConnection();connec = null;pstmt = null;rs = null;pstmt_name = null;rs_name = null;pstmtAll = null;rsAll = null;pstmt_min = null;rs_min = null;session = request.getSession(false);vc;vcAll;vc_min;set_vc;tableRows = new ArrayList();tableRowsAll = new ArrayList();tableRowsSet = new ArrayList();{= jdbcConnection.getConnection();day = armvoinForm.getDay();month = armvoinForm.getMonth();year = armvoinForm.getYear();day_sys = armvoinForm.getDay_sys();month_sys = armvoinForm.getMonth_sys();year_sys = armvoinForm.getYear_sys();systemdata = armvoinForm.getSystemdata();dor = armvoinForm.getDor();data = armvoinForm.getData();data_sys = armvoinForm.getData_sys();ust = armvoinForm.getUst();kod = armvoinForm.getKod();abd = armvoinForm.getAbd();

//========fdat=====fday = armvoinForm.getFday();fmonth = armvoinForm.getFmonth();fyear = armvoinForm.getFyear();

//======f_month====f_fmonth = armvoinForm.getF_fmonth();f_fyear = armvoinForm.getF_fyear();

//-------???-------------agent = armvoinForm.getAgent();agent_name = armvoinForm.getAgent_name();per_name = armvoinForm.getPer_name();per = armvoinForm.getPer();min = armvoinForm.getMin();min_name = armvoinForm.getMin_name();nazvd = armvoinForm.getNazvd();oplata = armvoinForm.getOplata();moplata = armvoinForm.getMoplata();sumpd = armvoinForm.getSumpd();msumpd = armvoinForm.getMsumpd();kolpas = armvoinForm.getKolpas();mkolpas = armvoinForm.getMkolpas();sumpr = armvoinForm.getSumpr();msumpr = armvoinForm.getMsumpr();kolpr = armvoinForm.getKolpr();mkolpr = armvoinForm.getMkolpr();sumbag = armvoinForm.getSumbag();msumbag = armvoinForm.getMsumbag();kolbag = armvoinForm.getKolbag();mkolbag = armvoinForm.getMkolbag();komsbv = armvoinForm.getKomsbv();mkomsbv = armvoinForm.getMkomsbv();kolv = armvoinForm.getKolv();mkolv = armvoinForm.getMkolv();chek_str = armvoinForm.getChek_str();dohod_data = null;data_begin = "";data_end = "";begin_data = "";end_data = "";month_period = "x";year_period = "x";day_b = "";day_e = "";fmonth1 = "";dohod_dataAll = null;schet_data = null;schet_dataAll = null;FirstDor = "";DorFirst = "";FirstAgent = "";AgentFirst = "";PerFirst = "";FirstPer = "";NazvFirstDor = "";NazvDor = "";abds = "";dorGos = "";schet_row;kol_rowAll;kol_rowAlls = "";schet_rows = "0";schet_row_dors = "0";FirstAgent_name = "";FirstPer_name = "";cond2 = "";correct ="";

//=========ITOGO============ItogSumpd;ItogSumpdS = "";ItogMsumpd;ItogOplata;ItogMoplata;ItogKolpas;ItogMkolpas;ItogMsumpr;ItogSumpr;ItogKolpr;ItogMkolpr;ItogSumbag;ItogMsumbag;ItogKolbag;ItogMkolbag;ItogKomsbv;ItogMkomsbv;ItogKolv;ItogMkolv;

//====ITOG_ALL====ItogOplataAll;ItogMoplataAll;ItogSumpdAll;ItogSumpdAllS = "";ItogMsumpdAll;ItogKolpasAll;ItogMkolpasAll;ItogMsumprAll;ItogSumprAll;ItogKolprAll;ItogMkolprAll;ItogSumbagAll;ItogMsumbagAll;ItogKolbagAll;ItogMkolbagAll;ItogKomsbvAll;ItogMkomsbvAll;ItogKolvAll;ItogMkolvAll;

//========dop_usl====agent_query = "ЛЮБОЙ";per_query = "ЛЮБОЙ";min_query = "ЛЮБОЙ";min_query_gos = "ЛЮБОЙ";

//======ITOG_MIN=======ItogOplataMin;ItogMoplataMin;ItogSumpdMin;ItogMsumpdMin;ItogKolpasMin;ItogMkolpasMin;ItogMsumprMin;ItogSumprMin;ItogKolprMin;ItogMkolprMin;ItogSumbagMin;ItogMsumbagMin;ItogKolbagMin;ItogMkolbagMin;ItogKomsbvMin;ItogMkomsbvMin;ItogKolvMin;ItogMkolvMin;

//==================param_dor = "";dor_query = "";vis1=null;vis2=null;= (String)session.getAttribute("vis1");= (String)session.getAttribute("vis2");dorUser = null;gosUser = null;= (String)session.getAttribute("dorUser");= (String)session.getAttribute("gosUser");

//========MAP========[] ob_minNo = new String[15];[] ob_minName = new String[15];obName = "";obNazvd = "";obDor ="";j;

//                 ======ITOG_ALL=========== 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;

//=====ITOG_ALL====== 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;

//=======Itog_min===== 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;

//=======================SetItogOplata = 0;SetItogMoplata = 0;SetItogSumpd = 0;SetItogMsumpd = 0;SetItogKolpas = 0;SetItogMkolpas = 0;SetItogSumpr = 0;SetItogMsumpr = 0;SetItogKolpr = 0;SetItogMkolpr = 0;SetItogSumbag = 0;SetItogMsumbag = 0;SetItogKolbag = 0;SetItogMkolbag = 0;SetItogKomsbv = 0;SetItogMkomsbv = 0;SetItogKolv = 0;SetItogMkolv = 0;fm = 0;fy = 0;

//===========_row = 0;_rowAll = 0;

//=====valuta===nazvl ="";mkoef =0;.setDSConnection("java:comp/env/DataSourceRef");= jdbcConnection.getConnection();= abd;_sys = systemdata.substring(systemdata.length() - 4, systemdata

.length());_sys = systemdata.substring(systemdata.indexOf(".") + 1,.indexOf(".") + 3);_sys = systemdata.substring(0, 2);_sys = year_sys+"-" + month_sys +"-" + day_sys;

//=========agent=====[] temp = null;= agent.split("--");= temp[0];_query = temp[1];

//=======per=========== null;= per.split("--");= temp[0];_query = temp[1];

//======MIN=========== null;= min.split("--");= temp[0];_query = temp[1];_query_gos = temp[2];

//======valuta============query_kodG ="";(!ust.equals("all_set")){=null;= dor.split("--");= temp[0];_query = dor.toString();(!dor.equals("*"))= temp[1];

}

//====kodGos=====((ust.equals("dor") && dor.equals("*"))||(ust.equals("all_set")))

{_kodG = " SELECT GOS_ABD FROM EXPBD.SERV ";= connec.prepareStatement(query_kodG);= pstmt.executeQuery();(rs.next()){= rs.getString(1);

}.close();.close();

}

//===========valuta=====query_valut ="";_valut = "SELECT NAZVL, MKOEF FROM EXPBD.VALUT WHERE DATAN<='" +data_sys+ "' AND " +

" DATAK>='" +data_sys+ "' AND GOS = '" +dorGos+ "' " ;= connec.prepareStatement(query_valut);= pstmt.executeQuery();(rs.next()){= rs.getString(1);= rs.getInt(2);

}.close();.close();

//=====fdat========================(data.equals("fdat")){(fday.equals("01")){_b = "01";_e = "05";

}(fday.equals("02")){_b = "06";_e = "10";

}(fday.equals("03")){_b = "11";_e = "15";

}(fday.equals("04")){_b = "16";_e = "20";

}(fday.equals("05")){_b = "21";_e = "25";

}(fday.equals("06")){_b = "26";_e = "01";

}(!fday.equals("06")){_begin = fyear+"-" + fmonth +"-" + day_b;_end = fyear+"-" + fmonth +"-" + day_e;_data = day_b+"-" + fmonth +"-" +fyear;_data = day_e+"-" + fmonth +"-" +fyear;

}(fday.equals("06")){_begin = fyear + "-" + fmonth + "-" + day_b;_data = day_b+"-" + fmonth +"-" +fyear;= Integer.parseInt(fmonth);++;(fm>12){= 1;= Integer.parseInt(fyear);++;= Integer.toString(fy);

}= Integer.toString(fm);= fmonth1.length();(fm==1){_end = fyear+"-" + "0" + fmonth1 +"-" + day_e;_data = day_e+"-" + "0" + fmonth1 +"-" +fyear;

}{_end = fyear+"-" + fmonth1 +"-" + day_e;_data = day_e+"-" + fmonth1 +"-" +fyear;

}

}

}

//======f_month====================(data.equals("f_month")){_b = "01";_e = "01";= Integer.parseInt(f_fmonth);_begin = f_fyear+"-" + f_fmonth +"-" + day_b;_data = day_b+"-" + f_fmonth +"-" + f_fyear;_period = f_fyear;++;(fm>12){= 1;= Integer.parseInt(f_fyear);++;_fyear = Integer.toString(fy);

}= Integer.toString(fm);= fmonth1.length();(fm==1){_end = f_fyear+"-" + "0" + fmonth1 +"-" + day_e;_data = day_e+"-" + "0" + fmonth1 +"-" + f_fyear;

}{_end = f_fyear+"-" + fmonth1 +"-" + day_e;_data = day_e+"-" + fmonth1 +"-" +f_fyear;

}(f_fmonth.equals("01")){_period = "январь";

}(f_fmonth.equals("02")){_period = "февраль";

}(f_fmonth.equals("03")){_period = "март";

}(f_fmonth.equals("04")){_period = "апрель";

}(f_fmonth.equals("05")){_period = "май";

}(f_fmonth.equals("06")){_period = "июнь";

}(f_fmonth.equals("07")){_period = "июль";

}(f_fmonth.equals("08")){_period = "август";

}(f_fmonth.equals("09")){_period = "сентябрь";

}(f_fmonth.equals("10")){_period = "октябрь";

}(f_fmonth.equals("11")){_period = "ноябрь";

}(f_fmonth.equals("12")){_period = "декабрь";

}

}

//                          ============QUERY MIN========(min.equals("*")){(dorUser != null && !dorUser.equals("@") && !dorUser.equals("*")){= " AND GOS = ? ";

}(dorUser != null && dorUser.equals("*")) {= " AND GOS = ? ";

}(dorUser !=null && dorUser.equals("@")) {= " AND GOS = S.GOS_ABD ";

}query_min="SELECT DISTINCT NOMMV, NAME, GOS FROM EXPBD.LGOT ";(dorUser != null && dorUser.equals("@")){_min += ", EXPBD.SERV S ";

}_min += " WHERE CURRENT_DATE>=DATAN AND CURRENT_DATE<=DATAOT " +

" AND NOMMV<>0 " + cond2;_min = connec.prepareStatement(query_min);(dorUser != null && !dorUser.equals("@")) {_min.setString(1, gosUser);

}_min = pstmt_min.executeQuery();minNo ="";minName ="";=0;(rs_min.next()){_minNo[j] = rs_min.getString(1);_minName[j] = rs_min.getString(2);++;

}_min.close();_min.close();

}

//====data===(data == null) {

.add("errorNoSession", new ActionError(

"error.NoSession"));new Exception();

}(data.equals("odat")) {= systemdata.substring(systemdata.length() - 4, systemdata.length());= systemdata.substring(systemdata.indexOf(".") + 1,.indexOf(".") + 3);= systemdata.substring(0, 2);

}(!data.equals("fdat") && (!data.equals("f_month"))){_data = year+"-" + month +"-" + day;_dataAll = day+"-" + month +"-" +year;

}

//========================((ust.equals("dor")) && (dor.equals("*")) && (!agent.equals("**")) && (!per.equals("**")))

{

//                          =====================================queryAll = "";(data == null) {.add("errorNoSession", new ActionError(

"error.NoSession"));new Exception();

}(data.equals("odat")) {= systemdata.substring(systemdata.length() - 4, systemdata

.length());= systemdata.substring(systemdata.indexOf(".") + 1,.indexOf(".") + 3);= systemdata.substring(0, 2);

}(!data.equals("fdat") && (!data.equals("f_month"))){_data = year+"-" + month +"-" + day;_dataAll = day+"-" + month +"-" +year;

}(min.equals("*")){= " SELECT A.MIN, SUM(A.SUMPD), SUM(A.MSUMPD), SUM(A.KOLPAS), SUM(A.MKOLPAS), "+

" SUM(A.SUMPR), SUM(A.MSUMPR), SUM(A.KOLPR), SUM(A.MKOLPR), " +

" SUM(A.SUMBAG), SUM(A.MSUMBAG), SUM(A.KOLBAG), SUM(A.MKOLBAG), " +

" SUM(A.KOMSBV), SUM(A.MKOMSBV), SUM(A.KOLV), SUM(A.MKOLV), B.NAME " +

" FROM " +abds+ ".DOHODV A ";(!chek_str){+= ", ";

}(chek_str){+= " LEFT OUTER JOIN ";

}+= " (SELECT DISTINCT NAME, NOMMV, S.GOS_ABD FROM EXPBD.LGOT, EXPBD.SERV S ";+=" WHERE GOS = S.GOS_ABD AND ";(vis1 != null && vis1.equals("1")){+= " GOS='20' AND ";

}(!data.equals("fdat") && (!data.equals("f_month"))){+= " DATAN<='" +dohod_data+ "' AND " +

" DATAOT>= '" +dohod_data+ "') B ";(chek_str) {+= " ON A.MIN=B.NOMMV ";

}+= " WHERE A.DATA = ? AND A.MES ='" +month+ "' AND ";

}(data.equals("fdat") && !fday.equals("06")){+= " DATAN<='" +data_end+ "' AND " +

" DATAOT>= '" +data_end+ "') B ";(chek_str) {+= " ON A.MIN=B.NOMMV ";

}+=" WHERE A.DATA <='" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +fmonth+ "' AND ";

}(data.equals("fdat") && fday.equals("06")){+= " DATAN<'" +data_end+ "' AND " +

" DATAOT >='" +data_end+ "') B ";(chek_str){+= " ON A.MIN=B.NOMMV ";

}+=" WHERE A.DATA <'" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +fmonth+ "' AND ";

}(data.equals("f_month")){+= " DATAN<'" +data_end+ "' AND " +

" DATAOT>='" +data_end+ "') B ";(chek_str){+= " ON A.MIN=B.NOMMV ";

}+= " WHERE A.DATA <'" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +f_fmonth+ "' AND ";

}+=" A.MIN=B.NOMMV ";(!min.equals("*")){+= " AND A.MIN = ? ";

// queryAll += " AND B.NAME = ? ";

}

//====(!agent.equals("*")){+= " AND A.AGENT = ? ";

}(!per.equals("*"))

{+= " AND A.SKP = ? ";

}

//====+= " GROUP BY A.MIN, B.NAME ";+= " ORDER BY A.MIN, B.NAME ";schetAll = 1;= connec.prepareStatement(queryAll);(!data.equals("fdat") && (!data.equals("f_month"))){.setString(schetAll++,dohod_data.toString());

}(min!= null && !min.equals("*")){.setString(schetAll++,min.toString());

}(agent!= null && !agent.equals("*")){.setString(schetAll++,agent.toString());

}(per!= null && !per.equals("*")){.setString(schetAll++,per.toString());

}

}if (!min.equals("*")) {= " SELECT A.MIN, SUM(A.SUMPD), SUM(A.MSUMPD), SUM(A.KOLPAS), SUM(A.MKOLPAS), "+

" SUM(A.SUMPR), SUM(A.MSUMPR), SUM(A.KOLPR), SUM(A.MKOLPR), " +

" SUM(A.SUMBAG), SUM(A.MSUMBAG), SUM(A.KOLBAG), SUM(A.MKOLBAG), " +

" SUM(A.KOMSBV), SUM(A.MKOMSBV), SUM(A.KOLV), SUM(A.MKOLV) " +

" FROM " +abds+ ".DOHODV A, " +

" (SELECT DISTINCT NAME, NOMMV, S.GOS_ABD FROM EXPBD.LGOT, EXPBD.SERV S ";+=" WHERE GOS = S.GOS_ABD AND ";(vis1 != null && vis1.equals("1")){+= " GOS='20' AND ";

}(!data.equals("fdat") && (!data.equals("f_month"))){+= " DATAN<='" +dohod_data+ "' AND " +

" DATAOT>= '" +dohod_data+ "') B " +

" WHERE A.DATA = ? AND A.MES ='" +month+ "' AND ";

}(data.equals("fdat") && !fday.equals("06")){+= " DATAN<='" +data_end+ "' AND " +

" DATAOT>= '" +data_end+ "') B " +

" WHERE A.DATA <='" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +fmonth+ "' AND ";

}(data.equals("fdat") && fday.equals("06")){+= " DATAN<'" +data_end+ "' AND " +

" DATAOT >='" +data_end+ "') B " +

" WHERE A.DATA <'" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +fmonth+ "' AND ";

}(data.equals("f_month")){+= " DATAN<'" +data_end+ "' AND " +

" DATAOT>='" +data_end+ "') B " +

" WHERE A.DATA <'" +data_end+ "' AND A.DATA>= '" +data_begin+ "' AND A.MES ='" +f_fmonth+ "' AND ";

}+=" A.MIN=B.NOMMV ";(!min.equals("*")){+= " AND A.MIN = ? ";

// queryAll += " AND B.NAME = ? ";

}

//====(!agent.equals("*")){+= " AND A.AGENT = ? ";

}(!per.equals("*"))

{+= " AND A.SKP = ? ";

}

//====+= " GROUP BY A.MIN ";schetAll = 1;= connec.prepareStatement(queryAll);(!data.equals("fdat") && (!data.equals("f_month"))){.setString(schetAll++,dohod_data.toString());

}(min!= null && !min.equals("*")){.setString(schetAll++,min.toString());

}(agent!= null && !agent.equals("*")){.setString(schetAll++,agent.toString());

}(per!= null && !per.equals("*")){.setString(schetAll++,per.toString());

}

}.setAttribute("breakpoints", "2");= pstmtAll.executeQuery();.setAttribute("breakpoints", "3");

//===================================== "x";(rsAll.next()){= new VoinClass();(!chek_str){( !rsAll.getString(2).equals("0") || !rsAll.getString(3).equals("0") || !rsAll.getString(4).equals("0") ||

!rsAll.getString(5).equals("0") || !rsAll.getString(6).equals("0") || !rsAll.getString(7).equals("0") ||

!rsAll.getString(8).equals("0") || !rsAll.getString(9).equals("0") || !rsAll.getString(10).equals("0") ||

!rsAll.getString(11).equals("0") || !rsAll.getString(12).equals("0") || !rsAll.getString(13).equals("0") ||

!rsAll.getString(14).equals("0") || !rsAll.getString(15).equals("0") || !rsAll.getString(16).equals("0") ||

!rsAll.getString(17).equals("0") )

{(min.equals("*")).setMin_name(rsAll.getString(18));.setMin_name("");.setMin(rsAll.getString(1));.setOplata(MainFormat(rsAll.getLong(2) + rsAll.getLong(10), mkoef));= rsAll.getLong(2) + rsAll.getLong(10) + ItogOplataAll;.setMoplata(MainFormat(rsAll.getLong(3) + rsAll.getLong(11), mkoef));= rsAll.getLong(3) + rsAll.getLong(11) + ItogMoplataAll;.setSumpd(MainFormat(rsAll.getLong(2)-rsAll.getLong(6),mkoef));= rsAll.getLong(2)-rsAll.getLong(6) + ItogSumpdAll;=Long.toString(ItogSumpdAll);.setMsumpd(MainFormat(rsAll.getLong(3)-rsAll.getLong(7),mkoef));= rsAll.getLong(3) - rsAll.getLong(7)+ItogMsumpdAll;.setKolpas(integerFormat(rsAll.getLong(4)-rsAll.getLong(8)));= rsAll.getLong(4)-rsAll.getLong(8)+ItogKolpasAll;.setMkolpas(integerFormat(rsAll.getLong(5)-rsAll.getLong(9)));=rsAll.getLong(5)-rsAll.getLong(9)+ItogMkolpasAll;.setSumpr(MainFormat(rsAll.getLong(6),mkoef));= rsAll.getLong(6)+ItogSumprAll;.setMsumpr(MainFormat(rsAll.getLong(7),mkoef));= rsAll.getLong(7)+ItogMsumprAll;.setKolpr(integerFormat(rsAll.getLong(8)));= rsAll.getLong(8)+ItogKolprAll;.setMkolpr(integerFormat(rsAll.getLong(9)));= rsAll.getLong(9)+ItogMkolprAll;.setSumbag(MainFormat(rsAll.getLong(10),mkoef));= rsAll.getLong(10)+ItogSumbagAll;.setMsumbag(MainFormat(rsAll.getLong(11),mkoef));=rsAll.getLong(11)+ItogMsumbagAll;.setKolbag(integerFormat(rsAll.getLong(12)));=rsAll.getLong(12)+ItogKolbagAll;.setMkolbag(integerFormat(rsAll.getLong(13)));=rsAll.getLong(13)+ItogMkolbagAll;.setKomsbv(MainFormat(rsAll.getLong(14),mkoef));=rsAll.getLong(14)+ItogKomsbvAll;.setMkomsbv(MainFormat(rsAll.getLong(15),mkoef));= rsAll.getLong(15)+ItogMkomsbvAll;.setKolv(integerFormat(rsAll.getLong(16)));= rsAll.getLong(16)+ItogKolvAll;.setMkolv(integerFormat(rsAll.getLong(17)));= rsAll.getLong(17)+ItogMkolvAll;.add(vcAll);

}

}(chek_str && !rsAll.getString(1).equals("0")){(min.equals("*")).setMin_name(rsAll.getString(18));.setMin_name("");.setMin(rsAll.getString(1));.setOplata(MainFormat(rsAll.getLong(2) + rsAll.getLong(10), mkoef));= rsAll.getLong(2) + rsAll.getLong(10) + ItogOplataAll;.setMoplata(MainFormat(rsAll.getLong(3) + rsAll.getLong(11), mkoef));= rsAll.getLong(3) + rsAll.getLong(11) + ItogMoplataAll;.setSumpd(MainFormat(rsAll.getLong(2)-rsAll.getLong(6),mkoef));= rsAll.getLong(2)-rsAll.getLong(6) + ItogSumpdAll;=Long.toString(ItogSumpdAll);.setMsumpd(MainFormat(rsAll.getLong(3)-rsAll.getLong(7),mkoef));= rsAll.getLong(3) - rsAll.getLong(7)+ItogMsumpdAll;.setKolpas(integerFormat(rsAll.getLong(4)-rsAll.getLong(8)));= rsAll.getLong(4)-rsAll.getLong(8)+ItogKolpasAll;.setMkolpas(integerFormat(rsAll.getLong(5)-rsAll.getLong(9)));=rsAll.getLong(5)-rsAll.getLong(9)+ItogMkolpasAll;.setSumpr(MainFormat(rsAll.getLong(6),mkoef));= rsAll.getLong(6)+ItogSumprAll;.setMsumpr(MainFormat(rsAll.getLong(7),mkoef));= rsAll.getLong(7)+ItogMsumprAll;.setKolpr(integerFormat(rsAll.getLong(8)));= rsAll.getLong(8)+ItogKolprAll;.setMkolpr(integerFormat(rsAll.getLong(9)));= rsAll.getLong(9)+ItogMkolprAll;.setSumbag(MainFormat(rsAll.getLong(10),mkoef));= rsAll.getLong(10)+ItogSumbagAll;.setMsumbag(MainFormat(rsAll.getLong(11),mkoef));=rsAll.getLong(11)+ItogMsumbagAll;.setKolbag(integerFormat(rsAll.getLong(12)));=rsAll.getLong(12)+ItogKolbagAll;.setMkolbag(integerFormat(rsAll.getLong(13)));=rsAll.getLong(13)+ItogMkolbagAll;.setKomsbv(MainFormat(rsAll.getLong(14),mkoef));=rsAll.getLong(14)+ItogKomsbvAll;.setMkomsbv(MainFormat(rsAll.getLong(15),mkoef));= rsAll.getLong(15)+ItogMkomsbvAll;.setKolv(integerFormat(rsAll.getLong(16)));= rsAll.getLong(16)+ItogKolvAll;.setMkolv(integerFormat(rsAll.getLong(17)));= rsAll.getLong(17)+ItogMkolvAll;.add(vcAll);

}

}

//========================(min_query.equals("ЛЮБОЙ") && (!ItogSumpdAllS.equals("x"))) {= new VoinClass();.setMin_name("");.setMin("ИТОГО");.setOplata (MainFormat(ItogOplataAll, mkoef));.setMoplata(MainFormat (ItogMoplataAll, mkoef));.setSumpd(MainFormat(ItogSumpdAll, mkoef));.setMsumpd(MainFormat(ItogMsumpdAll,mkoef));.setKolpas(integerFormat(ItogKolpasAll));.setMkolpas(integerFormat(ItogMkolpasAll));.setSumpr(MainFormat(ItogSumprAll,mkoef));.setMsumpr(MainFormat(ItogMsumprAll,mkoef));.setKolpr(integerFormat(ItogKolprAll));.setMkolpr(integerFormat(ItogMkolprAll));.setSumbag(MainFormat(ItogSumbagAll,mkoef));.setMsumbag(MainFormat(ItogMsumbagAll,mkoef));.setKolbag(integerFormat(ItogKolbagAll));.setMkolbag(integerFormat(ItogMkolbagAll));.setKomsbv(MainFormat(ItogKomsbvAll,mkoef));.setMkomsbv(MainFormat(ItogMkomsbvAll,mkoef));.setKolv(integerFormat(ItogKolvAll));.setMkolv(integerFormat(ItogMkolvAll));.add(vcAll);

}

//=================

}((!agent.equals("**")) && (!per.equals("**")))

{.setAttribute("breakpoints", "1");query = "";

//=====================(data == null) {

.add("errorNoSession", new ActionError(

"error.NoSession"));new Exception();

}(data.equals("odat")) {= systemdata.substring(systemdata.length() - 4, systemdata.length());= systemdata.substring(systemdata.indexOf(".") + 1, systemdata.indexOf(".") + 3);= systemdata.substring(0, 2);

}(!data.equals("fdat") && (!data.equals("f_month"))){_data = year+"-" + month +"-" + day;_data = day+"-" + month +"-" +year;

}(min.equals("*"))

{

//============================== "SELECT B.DOR, B.MIN, A.NAZVD, SUM(B.SUMPD), SUM(B.MSUMPD), SUM(B.KOLPAS), SUM(B.MKOLPAS), " +

" SUM(B.SUMPR), SUM(B.MSUMPR), SUM(B.KOLPR), SUM(B.MKOLPR), SUM(B.SUMBAG), SUM(B.MSUMBAG), SUM(B.KOLBAG), SUM(B.MKOLBAG), " +

" SUM(B.KOMSBV), SUM(B.MKOMSBV), SUM(B.KOLV), SUM(B.MKOLV), D.NAME " +

" FROM EXPBD.DOR A, ";+=" (SELECT DISTINCT E.NOMMV, E.NAME ,T.GOS_ABD FROM EXPBD.LGOT E ,EXPBD.SERV T ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE E.DATAN<='" +dohod_data+ "' AND E.DATAOT>='" +dohod_data+ "' AND E.NOMMV<>0 " +

" AND E.GOS=T.GOS_ABD) D, " +abds+ ".DOHODV B ";+= " WHERE B.DATA = ? AND B.MES = '" +month+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE E.DATAN<='" +data_end+ "' AND E.DATAOT>='" +data_end+ "' AND E.NOMMV<>0 " +

" AND E.GOS=T.GOS_ABD) D, " +abds+ ".DOHODV B ";+= " WHERE B.DATA <='" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +fmonth+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' AND E.NOMMV<>0 " +

" AND E.GOS=T.GOS_ABD) D, " +abds+ ".DOHODV B ";+= " WHERE B.DATA <'" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +fmonth+ "' ";

}(data.equals("f_month")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' AND E.NOMMV<>0 " +

" AND E.GOS=T.GOS_ABD) D, " +abds+ ".DOHODV B ";+= " WHERE B.DATA <'" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +f_fmonth+ "' ";

}+=" AND (B.SUMPD<>0 OR B.MSUMPD<>0 OR B.KOLPAS<>0 OR B.MKOLPAS<>0 OR B.SUMPR<>0 OR " +

" B.MSUMPR<>0 OR B.KOLPR<>0 OR B.MKOLPR<>0 OR B.SUMBAG<>0 OR B.MSUMBAG<>0 OR " +

" B.KOLBAG<>0 OR B.MKOLBAG<>0 OR B.KOMSBV<>0 OR B.MKOMSBV<>0 OR B.KOLV<>0 OR " +

" B.MKOLV<>0) ";+=" AND B.MIN = D.NOMMV AND A.KODD = B.DOR AND ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " A.DATAN<='" +dohod_data+ "' AND A.DATAK>='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " A.DATAN<='" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " A.DATAN<'" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}(data.equals("f_month")){+= " A.DATAN<'" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}(vis1!=null && vis1.equals("1")){+= " AND A.KODG = '20' ";

}(dor!= null && !ust.equals("all_set"))

{+= " AND B.DOR = ? ";

}(!min.equals("*"))+= "AND B.MIN = ? ";(!agent.equals("*"))

{+= " AND B.AGENT = ? ";

}(!per.equals("*"))

{+= " AND B.SKP = ? ";

}+= " GROUP BY B.DOR, B.MIN, A.NAZVD, D.NAME ";+= " ORDER BY B.DOR, A.NAZVD, B.MIN, D.NAME ";schet = 1;= connec.prepareStatement(query);(!data.equals("fdat")&& (!data.equals("f_month"))){.setString(schet++,dohod_data.toString());

}(dor!= null && !ust.equals("all_set"))

{.setString(schet++,dor.toString());_query = dor.toString();

}(min!= null && !min.equals("*")){.setString(schet++,min.toString())

}(agent!= null && !agent.equals("*")){.setString(schet++,agent.toString());

}(per!= null && !per.equals("*")){.setString(schet++,per.toString());

}

}if (!min.equals("*")){= "SELECT B.DOR, B.MIN, A.NAZVD, SUM(B.SUMPD), SUM(B.MSUMPD), SUM(B.KOLPAS), SUM(B.MKOLPAS), " +

" SUM(B.SUMPR), SUM(B.MSUMPR), SUM(B.KOLPR), SUM(B.MKOLPR), SUM(B.SUMBAG), SUM(B.MSUMBAG), SUM(B.KOLBAG), SUM(B.MKOLBAG), " +

" SUM(B.KOMSBV), SUM(B.MKOMSBV), SUM(B.KOLV), SUM(B.MKOLV) " +

" FROM " +abds+ ".DOHODV B, " +

" EXPBD.DOR A ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE B.DATA = ? AND B.MES = '" +month+ "' AND ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE B.DATA <='" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE B.DATA <'" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("f_month")){+= " WHERE B.DATA <'" +data_end+ "' AND B.DATA >='" +data_begin+ "' AND B.MES = '" +f_fmonth+ "' AND ";

}+= " (B.SUMPD<>0 OR B.MSUMPD<>0 OR B.KOLPAS<>0 OR B.MKOLPAS<>0 OR B.SUMPR<>0 OR " +

" B.MSUMPR<>0 OR B.KOLPR<>0 OR B.MKOLPR<>0 OR B.SUMBAG<>0 OR B.MSUMBAG<>0 OR " +

" B.KOLBAG<>0 OR B.MKOLBAG<>0 OR B.KOMSBV<>0 OR B.MKOMSBV<>0 OR B.KOLV<>0 OR " +

" B.MKOLV<>0) " +

" AND A.KODD = B.DOR AND ";(!data.equals("fdat") && (!data.equals("f_month"))){+= "A.DATAN<='" +dohod_data+ "' AND A.DATAK>='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= "A.DATAN<='" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= "A.DATAN<'" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}

(data.equals("f_month")){+= "A.DATAN<'" +data_end+ "' AND A.DATAK>='" +data_end+ "' ";

}(vis1!=null && vis1.equals("1")){+= " AND A.KODG = '20' ";

}(dor!= null && !ust.equals("all_set"))

{+= " AND B.DOR = ? ";

}(!min.equals("*"))+= "AND B.MIN = ? ";

(!agent.equals("*"))

{+= " AND B.AGENT = ? ";

}(!per.equals("*"))

{+= " AND B.SKP = ? ";

}+= "GROUP BY B.DOR, A.NAZVD, B.MIN ";+= " ORDER BY B.DOR, A.NAZVD, B.MIN ";schet = 1;= connec.prepareStatement(query);(!data.equals("fdat") && (!data.equals("f_month"))){.setString(schet++,dohod_data.toString());

}(dor!= null && !ust.equals("all_set"))

{.setString(schet++,dor.toString());_query = dor.toString();

}(agent!= null && !agent.equals("*")){.setString(schet++,agent.toString());

}(per!= null && !per.equals("*")){.setString(schet++,per.toString());

}

}.setAttribute("breakpoints", "2");= pstmt.executeQuery();.setAttribute("breakpoints", "3");= "x";kol = 0;schet_row_dor = 0;proverka = 0;=0;

//===============(rs.next()) {(FirstDor.equals("")){= rs.getString(1);= FirstDor;

}(NazvFirstDor.equals("")){= rs.getString(3);

}(!DorFirst.equals(rs.getString(1)))

{

//===((ob_minNo[j]!= null) && (min.equals("*"))&& (!obName.equals("")) && (chek_str) && (Long.parseLong(obName)<Long.parseLong(ob_minNo[j]))){(ob_minNo[j]!=null){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setMin(ob_minNo[j]);.setDor(obDor);.setNazvd(obNazvd);.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;_row_dor++;_row_dors = Long.toString(schet_row_dor);

}

}

//===(!min_query.equals("Любой")) {_row = schet_row+1;_rows= Long.toString(schet_row);

}(min_query.equals("ЛЮБОЙ")) {= new VoinClass();.setDor(DorFirst);.setMin_name("");.setMin("ИТОГО");.setOplata(MainFormat(ItogOplata, mkoef));= SetItogOplata + ItogOplata;.setMoplata(MainFormat(ItogMoplata, mkoef));= SetItogMoplata + ItogMoplata;.setSumpd(MainFormat(ItogSumpd,mkoef));= SetItogSumpd + ItogSumpd;.setMsumpd(MainFormat(ItogMsumpd,mkoef));= SetItogMsumpd + ItogMsumpd;.setKolpas(integerFormat(ItogKolpas));= SetItogKolpas + ItogKolpas;.setMkolpas(integerFormat(ItogMkolpas));= SetItogMkolpas + ItogMkolpas;.setSumpr(MainFormat(ItogSumpr,mkoef));= SetItogSumpr + ItogSumpr;.setMsumpr(MainFormat(ItogMsumpr, mkoef));= SetItogMsumpr + ItogMsumpr;.setKolpr(integerFormat(ItogKolpr));= SetItogKolpr + ItogKolpr;.setMkolpr(integerFormat(ItogMkolpr));= SetItogMkolpr + ItogMkolpr;.setSumbag(MainFormat(ItogSumbag, mkoef));= SetItogSumbag + ItogSumbag;.setMsumbag(MainFormat(ItogMsumbag, mkoef));= SetItogMsumbag + ItogMsumbag;.setKolbag(integerFormat(ItogKolbag));= SetItogKolbag + ItogKolbag;.setMkolbag(integerFormat(ItogMkolbag));= SetItogMkolbag + ItogMkolbag;.setKomsbv(MainFormat(ItogKomsbv, mkoef));= SetItogKomsbv + ItogKomsbv;.setMkomsbv(MainFormat(ItogMkomsbv, mkoef));= SetItogMkomsbv + ItogMkomsbv;.setKolv(integerFormat(ItogKolv));= SetItogKolv + ItogKolv;.setMkolv(integerFormat(ItogMkolv));= SetItogMkolv + ItogMkolv;.add(vc);_row = schet_row+1;_rows = Long.toString(schet_row);= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;=0;=0;

}

}=kol+1;

//===((chek_str)&& (min.equals("*"))){= rs.getLong(2);((rs.getLong(2)>Long.parseLong(ob_minNo[j])) && (ob_minNo[j+1]!=null)){(rs.getLong(2)>Long.parseLong(ob_minNo[j])){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setDor(rs.getString(1));.setMin(ob_minNo[j]);.setNazvd(rs.getString(3));.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;_row_dor++;_row_dors = Long.toString(schet_row_dor);

}

}(rs.getLong(2)<Long.parseLong(ob_minNo[j])){= rs.getLong(2);= new VoinClass();(min.equals("*")).setMin_name(rs.getString(20));.setMin_name("");.setDor(rs.getString(1));= rs.getString(1);.setMin(rs.getString(2));= rs.getString(2);.setNazvd(rs.getString(3));= rs.getString(3);.setOplata(MainFormat(rs.getLong(4)+ rs.getLong(12), mkoef));= rs.getLong(4)+ rs.getLong(12) + ItogOplata;= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata (MainFormat(rs.getLong(5) + rs.getLong(13), mkoef));= rs.getLong(5) + rs.getLong(13) + ItogMoplata;= rs.getLong(5) + rs.getLong(13) + ItogMoplataMin;.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= rs.getLong(4)-rs.getLong(8)+ ItogSumpd;=Long.toString(ItogSumpd);=rs.getLong(4)-rs.getLong(8)+ ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= rs.getLong(5)-rs.getLong(9)+ ItogMsumpd;= rs.getLong(5)-rs.getLong(9)+ ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= rs.getLong(6)-rs.getLong(10) + ItogKolpas;=rs.getLong(6)-rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= rs.getLong(7)-rs.getLong(11) + ItogMkolpas;=rs.getLong(7)-rs.getLong(11)+ ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= rs.getLong(8) + ItogSumpr;= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= rs.getLong(9) + ItogMsumpr;= rs.getLong(9) + ItogMsumprMin;.setKolpr(integerFormat(rs.getLong(10)));= rs.getLong(10) + ItogKolpr;= rs.getLong(10) + ItogKolprMin;.setMkolpr(integerFormat(rs.getLong(11)));= rs.getLong(11) + ItogMkolpr;= rs.getLong(11) + ItogMkolprMin;.setSumbag(MainFormat(rs.getLong(12), mkoef));= rs.getLong(12) + ItogSumbag;= rs.getLong(12) + ItogSumbagMin;.setMsumbag(MainFormat(rs.getLong(13), mkoef));= rs.getLong(13) + ItogMsumbag;= rs.getLong(13) + ItogMsumbagMin;.setKolbag(integerFormat(rs.getLong(14)));= rs.getLong(14) + ItogKolbag;= rs.getLong(14) + ItogKolbagMin;.setMkolbag(integerFormat(rs.getLong(15)));= rs.getLong(15) + ItogMkolbag;= rs.getLong(15) + ItogMkolbagMin;.setKomsbv(MainFormat(rs.getLong(16), mkoef));= rs.getLong(16) + ItogKomsbv;= rs.getLong(16) + ItogKomsbvMin;.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= rs.getLong(17) + ItogMkomsbv;= rs.getLong(17) + ItogMkomsbvMin;.setKolv(integerFormat(rs.getLong(18)));= rs.getLong(18) + ItogKolv;= rs.getLong(18) + ItogKolvMin;.setMkolv(integerFormat(rs.getLong(19)));= rs.getLong(19) + ItogMkolv;= rs.getLong(19) + ItogMkolvMin;.add(vc);_row_dor++;_row_dors = Long.toString(schet_row_dor);

}(rs.getLong(2)==Long.parseLong(ob_minNo[j])){= rs.getLong(2);= new VoinClass();(min.equals("*")).setMin_name(rs.getString(20));.setMin_name("");.setDor(rs.getString(1));= rs.getString(1);.setMin(rs.getString(2));= rs.getString(2);.setNazvd(rs.getString(3));= rs.getString(3);.setOplata(MainFormat(rs.getLong(4)+ rs.getLong(12), mkoef));= rs.getLong(4)+ rs.getLong(12) + ItogOplata;= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata (MainFormat(rs.getLong(5) + rs.getLong(13), mkoef));= rs.getLong(5) + rs.getLong(13) + ItogMoplata;= rs.getLong(5) + rs.getLong(13) + ItogMoplataMin;

.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= rs.getLong(4)-rs.getLong(8)+ ItogSumpd;=Long.toString(ItogSumpd);=rs.getLong(4)-rs.getLong(8)+ ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= rs.getLong(5)-rs.getLong(9)+ ItogMsumpd;= rs.getLong(5)-rs.getLong(9)+ ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= rs.getLong(6)-rs.getLong(10) + ItogKolpas;=rs.getLong(6)-rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= rs.getLong(7)-rs.getLong(11) + ItogMkolpas;=rs.getLong(7)-rs.getLong(11)+ ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= rs.getLong(8) + ItogSumpr;= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= rs.getLong(9) + ItogMsumpr;= rs.getLong(9) + ItogMsumprMin;.setKolpr(integerFormat(rs.getLong(10)));= rs.getLong(10) + ItogKolpr;= rs.getLong(10) + ItogKolprMin;.setMkolpr(integerFormat(rs.getLong(11)));= rs.getLong(11) + ItogMkolpr;= rs.getLong(11) + ItogMkolprMin;.setSumbag(MainFormat(rs.getLong(12), mkoef));= rs.getLong(12) + ItogSumbag;= rs.getLong(12) + ItogSumbagMin;.setMsumbag(MainFormat(rs.getLong(13), mkoef));= rs.getLong(13) + ItogMsumbag;= rs.getLong(13) + ItogMsumbagMin;.setKolbag(integerFormat(rs.getLong(14)));= rs.getLong(14) + ItogKolbag;= rs.getLong(14) + ItogKolbagMin;.setMkolbag(integerFormat(rs.getLong(15)));= rs.getLong(15) + ItogMkolbag;= rs.getLong(15) + ItogMkolbagMin;.setKomsbv(MainFormat(rs.getLong(16), mkoef));= rs.getLong(16) + ItogKomsbv;= rs.getLong(16) + ItogKomsbvMin;.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= rs.getLong(17) + ItogMkomsbv;= rs.getLong(17) + ItogMkomsbvMin;.setKolv(integerFormat(rs.getLong(18)));= rs.getLong(18) + ItogKolv;= rs.getLong(18) + ItogKolvMin;.setMkolv(integerFormat(rs.getLong(19)));= rs.getLong(19) + ItogMkolv;= rs.getLong(19) + ItogMkolvMin;.add(vc);++;

}

}

//====!chek_str====(!chek_str){= new VoinClass();(min.equals("*")).setMin_name(rs.getString(20));.setMin_name("");.setDor(rs.getString(1));.setMin(rs.getString(2));.setNazvd(rs.getString(3));.setOplata(MainFormat(rs.getLong(4)+ rs.getLong(12), mkoef));= rs.getLong(4)+ rs.getLong(12) + ItogOplata;= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata (MainFormat(rs.getLong(5) + rs.getLong(13), mkoef));= rs.getLong(5) + rs.getLong(13) + ItogMoplata;= rs.getLong(5) + rs.getLong(13) + ItogMoplataMin;.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= rs.getLong(4)-rs.getLong(8)+ ItogSumpd;=Long.toString(ItogSumpd);=rs.getLong(4)-rs.getLong(8)+ ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= rs.getLong(5)-rs.getLong(9)+ ItogMsumpd;= rs.getLong(5)-rs.getLong(9)+ ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= rs.getLong(6)-rs.getLong(10) + ItogKolpas;=rs.getLong(6)-rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= rs.getLong(7)-rs.getLong(11) + ItogMkolpas;=rs.getLong(7)-rs.getLong(11)+ ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= rs.getLong(8) + ItogSumpr;= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= rs.getLong(9) + ItogMsumpr;= rs.getLong(9) + ItogMsumprMin;.setKolpr(integerFormat(rs.getLong(10)));= rs.getLong(10) + ItogKolpr;= rs.getLong(10) + ItogKolprMin;.setMkolpr(integerFormat(rs.getLong(11)));= rs.getLong(11) + ItogMkolpr;= rs.getLong(11) + ItogMkolprMin;.setSumbag(MainFormat(rs.getLong(12), mkoef));= rs.getLong(12) + ItogSumbag;= rs.getLong(12) + ItogSumbagMin;.setMsumbag(MainFormat(rs.getLong(13), mkoef));= rs.getLong(13) + ItogMsumbag;= rs.getLong(13) + ItogMsumbagMin;.setKolbag(integerFormat(rs.getLong(14)));= rs.getLong(14) + ItogKolbag;= rs.getLong(14) + ItogKolbagMin;.setMkolbag(integerFormat(rs.getLong(15)));= rs.getLong(15) + ItogMkolbag;= rs.getLong(15) + ItogMkolbagMin;.setKomsbv(MainFormat(rs.getLong(16), mkoef));= rs.getLong(16) + ItogKomsbv;= rs.getLong(16) + ItogKomsbvMin;.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= rs.getLong(17) + ItogMkomsbv;= rs.getLong(17) + ItogMkomsbvMin;.setKolv(integerFormat(rs.getLong(18)));= rs.getLong(18) + ItogKolv;= rs.getLong(18) + ItogKolvMin;.setMkolv(integerFormat(rs.getLong(19)));= rs.getLong(19) + ItogMkolv;= rs.getLong(19) + ItogMkolvMin;.add(vc);

}_row_dor++;_row_dors = Long.toString(schet_row_dor);= rs.getString(1);= rs.getString(3);

}

//===( !dor.equals("all_set")&&(ob_minNo[j]!= null) && (!obName.equals("")) && (chek_str) && (Long.parseLong(obName)<Long.parseLong(ob_minNo[j]))){(ob_minNo[j]!=null){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setMin(ob_minNo[j]);.setDor(obDor);.setNazvd(obNazvd);.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;_row_dor++;_row_dors = Long.toString(schet_row_dor);

}

}

//===(min_query.equals("ЛЮБОЙ") && (!ItogSumpdS.equals("x") && (!schet_row_dors.equals("1")))) {= new VoinClass();.setMin_name("");.setMin("ИТОГО");.setDor(DorFirst);.setOplata(MainFormat(ItogOplata, mkoef));= SetItogOplata + ItogOplata;.setMoplata(MainFormat(ItogMoplata, mkoef));= SetItogMoplata + ItogMoplata;.setSumpd(MainFormat(ItogSumpd, mkoef));= SetItogSumpd + ItogSumpd;.setMsumpd(MainFormat(ItogMsumpd, mkoef));= SetItogMsumpd + ItogMsumpd;.setKolpas(integerFormat(ItogKolpas));= SetItogKolpas + ItogKolpas;.setMkolpas(integerFormat(ItogMkolpas));= SetItogMkolpas + ItogMkolpas;.setSumpr(MainFormat(ItogSumpr, mkoef));= SetItogSumpr + ItogSumpr;.setMsumpr(MainFormat(ItogMsumpr, mkoef));= SetItogMsumpr + ItogMsumpr;.setKolpr(integerFormat(ItogKolpr));= SetItogKolpr + ItogKolpr;.setMkolpr(integerFormat(ItogMkolpr));= SetItogMkolpr + ItogMkolpr;.setSumbag(MainFormat(ItogSumbag, mkoef));= SetItogSumbag + ItogSumbag;.setMsumbag(MainFormat(ItogMsumbag, mkoef));= SetItogMsumbag + ItogMsumbag;.setKolbag(integerFormat(ItogKolbag));= SetItogKolbag + ItogKolbag;.setMkolbag(integerFormat(ItogMkolbag));= SetItogMkolbag + ItogMkolbag;.setKomsbv(MainFormat(ItogKomsbv, mkoef));= SetItogKomsbv + ItogKomsbv;.setMkomsbv(MainFormat(ItogMkomsbv, mkoef));= SetItogMkomsbv + ItogMkomsbv;.setKolv(integerFormat(ItogKolv));= SetItogKolv + ItogKolv;.setMkolv(integerFormat(ItogMkolv));= SetItogMkolv + ItogMkolv;.add(vc);_row = schet_row+1;_rows = Long.toString(schet_row);=0;

}

//===(!min_query.equals("ЛЮБОЙ")&&(!schet_rows.equals("0"))&&(!ItogSumpdS.equals("x"))&& (!schet_row_dors.equals("1")))

{= new VoinClass();.setMin_name("");.setMin("");.setDor("");.setNazvd("ИТОГО");.setOplata(MainFormat(ItogOplataMin, mkoef));.setMoplata(MainFormat(ItogMoplataMin, mkoef));.setSumpd(MainFormat(ItogSumpdMin, mkoef));.setMsumpd(MainFormat(ItogMsumpdMin, mkoef));.setKolpas(integerFormat(ItogKolpasMin));.setMkolpas(integerFormat(ItogMkolpasMin));.setSumpr(MainFormat(ItogSumprMin, mkoef));.setMsumpr(MainFormat(ItogMsumprMin, mkoef));.setKolpr(integerFormat(ItogKolprMin));.setMkolpr(integerFormat(ItogMkolprMin));.setSumbag(MainFormat(ItogSumbagMin, mkoef));.setMsumbag(MainFormat(ItogMsumbagMin, mkoef));.setKolbag(integerFormat(ItogKolbagMin));.setMkolbag(integerFormat(ItogMkolbagMin));.setKomsbv(MainFormat(ItogKomsbvMin, mkoef));.setMkomsbv(MainFormat(ItogMkomsbvMin, mkoef));.setKolv(integerFormat(ItogKolvMin));.setMkolv(integerFormat(ItogMkolvMin));.add(vc);=0;

}

//==ИТОГОВАЯ СУММА ПО СЕТИ ПО ВСЕМ ДОРОГАМ==============((min_query.equals("ЛЮБОЙ")) && (!DorFirst.equals(FirstDor))) {_vc = new VoinClass();_vc.setMin_name("");_vc.setMin("ВСЕГО");_vc.setOplata(MainFormat(SetItogOplata, mkoef));_vc.setMoplata(MainFormat(SetItogMoplata, mkoef));_vc.setSumpd(MainFormat(SetItogSumpd, mkoef));_vc.setMsumpd(MainFormat(SetItogMsumpd, mkoef));_vc.setKolpas(integerFormat(SetItogKolpas));_vc.setMkolpas(integerFormat(SetItogMkolpas));_vc.setSumpr(MainFormat(SetItogSumpr, mkoef));_vc.setMsumpr(MainFormat(SetItogMsumpr, mkoef));_vc.setKolpr(integerFormat(SetItogKolpr));_vc.setMkolpr(integerFormat(SetItogMkolpr));_vc.setSumbag(MainFormat(SetItogSumbag, mkoef));_vc.setMsumbag(MainFormat(SetItogMsumbag, mkoef));_vc.setKolbag(integerFormat(SetItogKolbag));_vc.setMkolbag(integerFormat(SetItogMkolbag));_vc.setKomsbv(MainFormat(SetItogKomsbv, mkoef));_vc.setMkomsbv(MainFormat(SetItogMkomsbv, mkoef));_vc.setKolv(integerFormat(SetItogKolv));_vc.setMkolv(integerFormat(SetItogMkolv));.add(set_vc);

}

}

//================AGENT_DETALIZACIYA========(!ust.equals("all_set") && ((agent.equals("**")) || (per.equals("**")))) {(agent.equals("**") && per.equals("**")){

} else{query = "";

//=====================(data == null) {.add("errorNoSession", new ActionError("error.NoSession"));new Exception();

}(data.equals("odat")) {= systemdata.substring(systemdata.length() - 4, systemdata.length());= systemdata.substring(systemdata.indexOf(".") + 1,.indexOf(".") + 3);= systemdata.substring(0, 2);

}(!data.equals("fdat") && (!data.equals("f_month"))){_data = year+"-" + month +"-" + day;_data = day+"-" + month +"-" +year;

}

//===========agent **============(agent.equals("**")){= " SELECT B.MIN, B.AGENT, D.NAME, SUM(B.SUMPD), SUM(B.MSUMPD), SUM(B.KOLPAS), SUM(B.MKOLPAS), " +

" SUM(B.SUMPR), SUM(B.MSUMPR), SUM(B.KOLPR), SUM(B.MKOLPR), SUM(B.SUMBAG), SUM(B.MSUMBAG), SUM(B.KOLBAG), SUM(B.MKOLBAG), " +

" SUM(B.KOMSBV), SUM(B.MKOMSBV), SUM(B.KOLV), SUM(B.MKOLV), C.MNKODP " +

" FROM DBKLAS.SOBPER C, " +abds+ ".DOHODV B, ";+= " (SELECT DISTINCT E.NOMMV, E.NAME ,T.GOS_ABD FROM EXPBD.LGOT E ,EXPBD.SERV T ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE E.DATAN<='" +dohod_data+ "' AND E.DATAOT>='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE E.DATAN<='" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}(data.equals("f_month")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}+= " AND E.NOMMV<>0 AND E.GOS=T.GOS_ABD) D ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE B.DATA = ? AND B.MES = '" +month+ "' AND ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE B.DATA<='" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE B.DATA<'" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("f_month")){+= " WHERE B.DATA<'" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +f_fmonth+ "' AND ";

}(!chek_str){+= " (B.SUMPD<>0 OR B.MSUMPD<>0 OR B.KOLPAS<>0 OR B.MKOLPAS<>0 OR B.SUMPR<>0 OR " + B.MSUMPR<>0 OR B.KOLPR<>0 OR B.MKOLPR<>0 OR B.SUMBAG<>0 OR B.MSUMBAG<>0 OR " +

" B.KOLBAG<>0 OR B.MKOLBAG<>0 OR B.KOMSBV<>0 OR B.MKOMSBV<>0 OR B.KOLV<>0 OR " +

" B.MKOLV<>0) AND ";

}+= " B.MIN = D.NOMMV " +

" AND C.SKP = B.AGENT AND ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " C.DATANO<='" +dohod_data+ "' AND C.DATAKO >='" +dohod_data+ "' AND " +

" C.DATANP<='" +dohod_data+ "' AND C.DATAKP >='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " C.DATANO<='" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<='" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " C.DATANO<'" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<'" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}(data.equals("f_month")){+= " C.DATANO<'" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<'" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}+= " AND C.GOS = D.GOS_ABD ";

}

//========per **=============(per.equals("**")){= " SELECT B.MIN, B.SKP, D.NAME, SUM(B.SUMPD), SUM(B.MSUMPD), SUM(B.KOLPAS), SUM(B.MKOLPAS), " +

" SUM(B.SUMPR), SUM(B.MSUMPR), SUM(B.KOLPR), SUM(B.MKOLPR), SUM(B.SUMBAG), SUM(B.MSUMBAG), SUM(B.KOLBAG), SUM(B.MKOLBAG), " +

" SUM(B.KOMSBV), SUM(B.MKOMSBV), SUM(B.KOLV), SUM(B.MKOLV), C.MNKODP " +

" FROM DBKLAS.SOBPER C, " +abds+ ".DOHODV B, ";+=" (SELECT DISTINCT E.NOMMV, E.NAME ,T.GOS_ABD FROM EXPBD.LGOT E ,EXPBD.SERV T ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE E.DATAN<='" +dohod_data+ "' AND E.DATAOT>='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE E.DATAN<='" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}(data.equals("f_month")){+= " WHERE E.DATAN<'" +data_end+ "' AND E.DATAOT>='" +data_end+ "' ";

}+= " AND E.NOMMV<>0 AND E.GOS=T.GOS_ABD) D ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " WHERE B.DATA = ? AND B.MES = '" +month+ "' AND ";

}(data.equals("fdat") && !fday.equals("06")){+= " WHERE B.DATA<='" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("fdat") && fday.equals("06")){+= " WHERE B.DATA<'" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +fmonth+ "' AND ";

}(data.equals("f_month")){+= " WHERE B.DATA<'" +data_end+ "' AND B.DATA >= '" +data_begin+ "' AND B.MES = '" +f_fmonth+ "' AND ";

}(!chek_str){+= " (B.SUMPD<>0 OR B.MSUMPD<>0 OR B.KOLPAS<>0 OR B.MKOLPAS<>0 OR B.SUMPR<>0 OR " +

" B.MSUMPR<>0 OR B.KOLPR<>0 OR B.MKOLPR<>0 OR B.SUMBAG<>0 OR B.MSUMBAG<>0 OR " +

" B.KOLBAG<>0 OR B.MKOLBAG<>0 OR B.KOMSBV<>0 OR B.MKOMSBV<>0 OR B.KOLV<>0 OR " +

" B.MKOLV<>0) AND ";

}+=" B.MIN = D.NOMMV " +

" AND C.SKP = B.SKP AND ";(!data.equals("fdat") && (!data.equals("f_month"))){+= " C.DATANO<='" +dohod_data+ "' AND C.DATAKO >='" +dohod_data+ "' AND " +

" C.DATANP<='" +dohod_data+ "' AND C.DATAKP >='" +dohod_data+ "' ";

}(data.equals("fdat") && !fday.equals("06")){+= " C.DATANO<='" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<='" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}(data.equals("fdat") && fday.equals("06")){+= " C.DATANO<'" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<'" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}(data.equals("f_month")){+= " C.DATANO<'" +data_end+ "' AND C.DATAKO >='" +data_end+ "' AND " +

" C.DATANP<'" +data_end+ "' AND C.DATAKP >='" +data_end+ "' ";

}+= " AND C.GOS = D.GOS_ABD ";

}(dor!= null && !ust.equals("all_set") && !dor.equals("*"))

{+= " AND B.DOR = ? ";

}(!min.equals("*"))+= " AND B.MIN = ? ";(!agent.equals("*") && (!agent.equals("**")))

{+= " AND B.AGENT = ? ";

}(!per.equals("*") && (!per.equals("**")))

{+= " AND B.SKP = ? ";

}(agent.equals("**"))+= " GROUP BY B.AGENT, C.MNKODP, B.MIN, D.NAME ";(per.equals("**"))+= " GROUP BY B.SKP, C.MNKODP, B.MIN, D.NAME ";schet = 1;= connec.prepareStatement(query);(!data.equals("fdat") && (!data.equals("f_month"))){.setString(schet++,dohod_data.toString());

}(dor!= null && !ust.equals("all_set")&& !dor.equals("*"))

{.setString(schet++,dor.toString());_query = dor.toString();

}(min!= null && !min.equals("*")){.setString(schet++,min.toString());

}(agent!= null && (!agent.equals("*") && (!agent.equals("**")))){.setString(schet++,agent.toString());

}(per!= null && (!per.equals("*") && (!per.equals("**")))){.setString(schet++,per.toString());

}= pstmt.executeQuery();= "x";kol = 0;kols = "0";_row = 0;_rows = "0";row_min = 0;ob_name_agent = "";ob_agent="";ob_name_per = "";ob_per="";=0;

//===============(rs.next()){(FirstAgent.equals("") && agent.equals("**")){= rs.getString(2);= FirstAgent;_name = rs.getString(20);

}(FirstPer.equals("") && per.equals("**")){= rs.getString(2);= FirstPer;_name = rs.getString(20);

}(!AgentFirst.equals(rs.getString(2)) && agent.equals("**"))

{((ob_minNo[j]!= null) && (min.equals("*"))&& (!obName.equals("")) && (chek_str) && (Long.parseLong(obName)<Long.parseLong(ob_minNo[j]))){(ob_minNo[j]!=null){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setMin(ob_minNo[j]);.setAgent(ob_agent);.setAgent_name(ob_name_agent);.setPer("");.setPer_name("");.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;++;_rows = Long.toString(kol);

}

}(min_query.equals("ЛЮБОЙ")) {= new VoinClass();.setMin_name("");.setAgent("");.setAgent_name("");.setPer("");.setPer_name("");.setMin("ИТОГО");.setOplata(MainFormat(ItogOplata, mkoef));= SetItogOplata + ItogOplata;.setMoplata(MainFormat(ItogMoplata, mkoef));= SetItogMoplata + ItogMoplata;.setSumpd(MainFormat(ItogSumpd,mkoef));= SetItogSumpd + ItogSumpd;.setMsumpd(MainFormat(ItogMsumpd,mkoef));= SetItogMsumpd + ItogMsumpd;

// ItogKolpasS = Long.toString(ItogKolpas);.setKolpas(integerFormat(ItogKolpas));= SetItogKolpas + ItogKolpas;.setMkolpas(integerFormat(ItogMkolpas));= SetItogMkolpas + ItogMkolpas;.setSumpr(MainFormat(ItogSumpr,mkoef));= SetItogSumpr + ItogSumpr;.setMsumpr(MainFormat(ItogMsumpr, mkoef));= SetItogMsumpr + ItogMsumpr;.setKolpr(integerFormat(ItogKolpr));= SetItogKolpr + ItogKolpr;.setMkolpr(integerFormat(ItogMkolpr));= SetItogMkolpr + ItogMkolpr;.setSumbag(MainFormat(ItogSumbag, mkoef));= SetItogSumbag + ItogSumbag;.setMsumbag(MainFormat(ItogMsumbag, mkoef));= SetItogMsumbag + ItogMsumbag;.setKolbag(integerFormat(ItogKolbag));= SetItogKolbag + ItogKolbag;.setMkolbag(integerFormat(ItogMkolbag));= SetItogMkolbag + ItogMkolbag;.setKomsbv(MainFormat(ItogKomsbv, mkoef));= SetItogKomsbv + ItogKomsbv;.setMkomsbv(MainFormat(ItogMkomsbv, mkoef));= SetItogMkomsbv + ItogMkomsbv;.setKolv(integerFormat(ItogKolv));= SetItogKolv + ItogKolv;.setMkolv(integerFormat(ItogMkolv));= SetItogMkolv + ItogMkolv;.add(vc);= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;++;_rows = Long.toString(kol);=0;

}

}

//======per **===(!PerFirst.equals(rs.getString(2)) && per.equals("**"))

{((ob_minNo[j]!= null) && (min.equals("*"))&& (!obName.equals("")) && (chek_str) && (Long.parseLong(obName)<Long.parseLong(ob_minNo[j]))){(ob_minNo[j]!=null){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setMin(ob_minNo[j]);.setAgent("");.setAgent_name("");.setPer(ob_per);.setPer_name(ob_name_per);.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;++;_rows = Long.toString(kol);

}

}(min_query.equals("ЛЮБОЙ")) {= new VoinClass();.setMin_name("");.setAgent("");.setAgent_name("");.setPer("");.setPer_name("");.setMin("ИТОГО");.setOplata(MainFormat(ItogOplata, mkoef));= SetItogOplata + ItogOplata;.setMoplata(MainFormat(ItogMoplata, mkoef));= SetItogMoplata + ItogMoplata;.setSumpd(MainFormat(ItogSumpd,mkoef));= SetItogSumpd + ItogSumpd;.setMsumpd(MainFormat(ItogMsumpd,mkoef));= SetItogMsumpd + ItogMsumpd;

// ItogKolpasS = Long.toString(ItogKolpas);.setKolpas(integerFormat(ItogKolpas));= SetItogKolpas + ItogKolpas;.setMkolpas(integerFormat(ItogMkolpas));= SetItogMkolpas + ItogMkolpas;.setSumpr(MainFormat(ItogSumpr,mkoef));= SetItogSumpr + ItogSumpr;.setMsumpr(MainFormat(ItogMsumpr, mkoef));= SetItogMsumpr + ItogMsumpr;.setKolpr(integerFormat(ItogKolpr));= SetItogKolpr + ItogKolpr;.setMkolpr(integerFormat(ItogMkolpr));= SetItogMkolpr + ItogMkolpr;.setSumbag(MainFormat(ItogSumbag, mkoef));= SetItogSumbag + ItogSumbag;.setMsumbag(MainFormat(ItogMsumbag, mkoef));= SetItogMsumbag + ItogMsumbag;.setKolbag(integerFormat(ItogKolbag));= SetItogKolbag + ItogKolbag;.setMkolbag(integerFormat(ItogMkolbag));= SetItogMkolbag + ItogMkolbag;.setKomsbv(MainFormat(ItogKomsbv, mkoef));= SetItogKomsbv + ItogKomsbv;.setMkomsbv(MainFormat(ItogMkomsbv, mkoef));= SetItogMkomsbv + ItogMkomsbv;.setKolv(integerFormat(ItogKolv));= SetItogKolv + ItogKolv;.setMkolv(integerFormat(ItogMkolv));= SetItogMkolv + ItogMkolv;.add(vc);= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;= 0;++;_rows = Long.toString(kol);=0;

}

}

//===((chek_str)&& (min.equals("*"))){((rs.getLong(1)>Long.parseLong(ob_minNo[j])) && (ob_minNo[j+1]!=null)){(rs.getLong(1)>Long.parseLong(ob_minNo[j])){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");(agent.equals("**")){.setAgent_name(rs.getString(20));.setAgent(rs.getString(2));.setPer("");.setPer_name("");

}(per.equals("**")){.setPer_name(rs.getString(20));.setPer(rs.getString(2));.setAgent("");.setAgent_name("");

}.setMin(ob_minNo[j]);.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;++;_rows = Long.toString(kol);

}

}(rs.getLong(1)<Long.parseLong(ob_minNo[j])){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");(agent.equals("**")){.setAgent_name(rs.getString(20));.setAgent(rs.getString(2));_name_agent=rs.getString(20);_agent=rs.getString(2);.setPer("");.setPer_name("");

}(per.equals("**")){.setPer_name(rs.getString(20));.setPer(rs.getString(2));_name_per=rs.getString(20);_per=rs.getString(2);.setAgent("");.setAgent_name("");

}.setMin(rs.getString(1));= rs.getString(1);.setOplata(MainFormat(rs.getLong(4)+ rs.getLong(12), mkoef));= rs.getLong(4)+ rs.getLong(12) + ItogOplata;= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata (MainFormat(rs.getLong(5) + rs.getLong(13), mkoef));= rs.getLong(5) + rs.getLong(13) + ItogMoplata;= rs.getLong(5) + rs.getLong(13) + ItogMoplataMin;.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= rs.getLong(4)-rs.getLong(8)+ ItogSumpd;=Long.toString(ItogSumpd);=rs.getLong(4)-rs.getLong(8)+ ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= rs.getLong(5)-rs.getLong(9)+ ItogMsumpd;= rs.getLong(5)-rs.getLong(9)+ ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= rs.getLong(6)-rs.getLong(10) + ItogKolpas;=rs.getLong(6)-rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= rs.getLong(7)-rs.getLong(11) + ItogMkolpas;=rs.getLong(7)-rs.getLong(11)+ ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= rs.getLong(8) + ItogSumpr;= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= rs.getLong(9) + ItogMsumpr;= rs.getLong(9) + ItogMsumprMin;.setKolpr(integerFormat(rs.getLong(10)));= rs.getLong(10) + ItogKolpr;= rs.getLong(10) + ItogKolprMin;.setMkolpr(integerFormat(rs.getLong(11)));= rs.getLong(11) + ItogMkolpr;= rs.getLong(11) + ItogMkolprMin;.setSumbag(MainFormat(rs.getLong(12), mkoef));= rs.getLong(12) + ItogSumbag;= rs.getLong(12) + ItogSumbagMin;.setMsumbag(MainFormat(rs.getLong(13), mkoef));= rs.getLong(13) + ItogMsumbag;= rs.getLong(13) + ItogMsumbagMin;.setKolbag(integerFormat(rs.getLong(14)));= rs.getLong(14) + ItogKolbag;= rs.getLong(14) + ItogKolbagMin;.setMkolbag(integerFormat(rs.getLong(15)));= rs.getLong(15) + ItogMkolbag;= rs.getLong(15) + ItogMkolbagMin;.setKomsbv(MainFormat(rs.getLong(16), mkoef));= rs.getLong(16) + ItogKomsbv;= rs.getLong(16) + ItogKomsbvMin;.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= rs.getLong(17) + ItogMkomsbv;= rs.getLong(17) + ItogMkomsbvMin;.setKolv(integerFormat(rs.getLong(18)));= rs.getLong(18) + ItogKolv;= rs.getLong(18) + ItogKolvMin;.setMkolv(integerFormat(rs.getLong(19)));= rs.getLong(19) + ItogMkolv;= rs.getLong(19) + ItogMkolvMin;.add(vc);++;_rows = Long.toString(kol);

}(rs.getLong(1)==Long.parseLong(ob_minNo[j])){

// proverka = rs.getLong(2);= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");(agent.equals("**")){.setAgent_name(rs.getString(20));.setAgent(rs.getString(2));_name_agent=rs.getString(20);_agent=rs.getString(2);.setPer("");.setPer_name("");

}(per.equals("**")){.setPer_name(rs.getString(20));.setPer(rs.getString(2));_name_per=rs.getString(20);_per=rs.getString(2);.setAgent("");.setAgent_name("");

}.setMin(rs.getString(1));= rs.getString(1);.setOplata(MainFormat(rs.getLong(4)+ rs.getLong(12), mkoef));= rs.getLong(4)+ rs.getLong(12) + ItogOplata;= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata (MainFormat(rs.getLong(5) + rs.getLong(13), mkoef));= rs.getLong(5) + rs.getLong(13) + ItogMoplata;= rs.getLong(5) + rs.getLong(13) + ItogMoplataMin;.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= rs.getLong(4)-rs.getLong(8)+ ItogSumpd;=Long.toString(ItogSumpd);=rs.getLong(4)-rs.getLong(8)+ ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= rs.getLong(5)-rs.getLong(9)+ ItogMsumpd;= rs.getLong(5)-rs.getLong(9)+ ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= rs.getLong(6)-rs.getLong(10) + ItogKolpas;=rs.getLong(6)-rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= rs.getLong(7)-rs.getLong(11) + ItogMkolpas;=rs.getLong(7)-rs.getLong(11)+ ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= rs.getLong(8) + ItogSumpr;= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= rs.getLong(9) + ItogMsumpr;= rs.getLong(9) + ItogMsumprMin;.setKolpr(integerFormat(rs.getLong(10)));= rs.getLong(10) + ItogKolpr;= rs.getLong(10) + ItogKolprMin;.setMkolpr(integerFormat(rs.getLong(11)));= rs.getLong(11) + ItogMkolpr;= rs.getLong(11) + ItogMkolprMin;.setSumbag(MainFormat(rs.getLong(12), mkoef));= rs.getLong(12) + ItogSumbag;= rs.getLong(12) + ItogSumbagMin;.setMsumbag(MainFormat(rs.getLong(13), mkoef));= rs.getLong(13) + ItogMsumbag;= rs.getLong(13) + ItogMsumbagMin;.setKolbag(integerFormat(rs.getLong(14)));= rs.getLong(14) + ItogKolbag;= rs.getLong(14) + ItogKolbagMin;.setMkolbag(integerFormat(rs.getLong(15)));= rs.getLong(15) + ItogMkolbag;= rs.getLong(15) + ItogMkolbagMin;.setKomsbv(MainFormat(rs.getLong(16), mkoef));= rs.getLong(16) + ItogKomsbv;= rs.getLong(16) + ItogKomsbvMin;.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= rs.getLong(17) + ItogMkomsbv;= rs.getLong(17) + ItogMkomsbvMin;.setKolv(integerFormat(rs.getLong(18)));= rs.getLong(18) + ItogKolv;= rs.getLong(18) + ItogKolvMin;.setMkolv(integerFormat(rs.getLong(19)));= rs.getLong(19) + ItogMkolv;= rs.getLong(19) + ItogMkolvMin;.add(vc);++;

}

}

//                          ====!chek_str====(!chek_str){= new VoinClass();(min.equals("*")).setMin_name(rs.getString(3));.setMin_name("");.setMin(rs.getString(1));(agent.equals("**")){.setAgent_name(rs.getString(20));.setAgent(rs.getString(2));.setPer("");.setPer_name("");

}(per.equals("**")){.setPer_name(rs.getString(20));.setPer(rs.getString(2));.setAgent("");.setAgent_name("");

}.setOplata(MainFormat(rs.getLong(4)+rs.getLong(12),mkoef));= ItogOplata + rs.getLong(4) + rs.getLong(12);= rs.getLong(4)+ rs.getLong(12) + ItogOplataMin;.setMoplata(MainFormat(rs.getLong(5)+ rs.getLong(13), mkoef));= ItogMoplata + rs.getLong(5) + rs.getLong(13);= rs.getLong(5)+ rs.getLong(13) + ItogMoplataMin;.setSumpd(MainFormat(rs.getLong(4)-rs.getLong(8), mkoef));= ItogSumpd + rs.getLong(4)-rs.getLong(8);=Long.toString(ItogSumpd);= rs.getLong(4)- rs.getLong(8) + ItogSumpdMin;.setMsumpd(MainFormat(rs.getLong(5)-rs.getLong(9), mkoef));= ItogMsumpd + rs.getLong(5)-rs.getLong(9);= rs.getLong(5) - rs.getLong(9) + ItogMsumpdMin;.setKolpas(integerFormat(rs.getLong(6)-rs.getLong(10)));= ItogKolpas + rs.getLong(6)-rs.getLong(10);= rs.getLong(6)- rs.getLong(10) + ItogKolpasMin;.setMkolpas(integerFormat(rs.getLong(7)-rs.getLong(11)));= ItogMkolpas + rs.getLong(7)-rs.getLong(11);= rs.getLong(7)- rs.getLong(11) + ItogMkolpasMin;.setSumpr(MainFormat(rs.getLong(8), mkoef));= ItogSumpr + rs.getLong(8);= rs.getLong(8) + ItogSumprMin;.setMsumpr(MainFormat(rs.getLong(9), mkoef));= ItogMsumpr + rs.getLong(9);= ItogMsumprMin + rs.getLong(9);.setKolpr(integerFormat(rs.getLong(10)));= ItogKolpr + rs.getLong(10);= ItogKolprMin + rs.getLong(10);.setMkolpr(integerFormat(rs.getLong(11)));= ItogMkolpr + rs.getLong(11);= ItogMkolprMin + rs.getLong(11);.setSumbag(MainFormat(rs.getLong(12), mkoef));= ItogSumbag + rs.getLong(12);= ItogSumbagMin + rs.getLong(12);.setMsumbag(MainFormat(rs.getLong(13), mkoef));= ItogMsumbag + rs.getLong(13);= ItogMsumbagMin + rs.getLong(13);.setKolbag(integerFormat(rs.getLong(14)));= ItogKolbag + rs.getLong(14);= ItogKolbagMin + rs.getLong(14);.setMkolbag(integerFormat(rs.getLong(15)));= ItogMkolbag + rs.getLong(15);= ItogMkolbagMin + rs.getLong(15);.setKomsbv(MainFormat(rs.getLong(16), mkoef));= ItogKomsbv + rs.getLong(16);= ItogKomsbvMin + rs.getLong(16);.setMkomsbv(MainFormat(rs.getLong(17), mkoef));= ItogMkomsbv + rs.getLong(17);= ItogKomsbvMin + rs.getLong(17);.setKolv(integerFormat(rs.getLong(18)));= ItogKolv + rs.getLong(18);= ItogKolvMin + rs.getLong(18);.setMkolv(integerFormat(rs.getLong(19)));= ItogMkolv + rs.getLong(19);= ItogMkolvMin + rs.getLong(19);.add(vc);_min++;

}(agent.equals("**"))= rs.getString(2);(per.equals("**"))= rs.getString(2);

}

//                 ===((ob_minNo[j]!= null) && (!obName.equals("")) && (chek_str) && (Long.parseLong(obName)<Long.parseLong(ob_minNo[j]))){(ob_minNo[j]!=null){= new VoinClass();(min.equals("*")){.setMin_name(ob_minName[j]);

}.setMin_name("");.setMin(ob_minNo[j]);(agent.equals("**")){.setAgent_name(ob_name_agent);.setAgent(ob_agent);.setPer("");.setPer_name("");

}(per.equals("**")){.setPer_name(ob_name_per);.setPer(ob_per);.setAgent("");.setAgent_name("");

}.setOplata("0");.setMoplata("0");.setSumpd("0");=Long.toString(ItogSumpd);.setMsumpd("0");.setKolpas("0");.setMkolpas("0");.setSumpr("0");.setMsumpr("0");.setKolpr("0");.setMkolpr("0");.setSumbag("0");.setMsumbag("0");.setKolbag("0");.setMkolbag("0");.setKomsbv("0");.setMkomsbv("0");.setKolv("0");.setMkolv("0");.add(vc);++;++;_rows = Long.toString(kol);

}

}

//===(min_query.equals("ЛЮБОЙ") && (!ItogSumpdS.equals("x"))) {= new VoinClass();.setMin_name("");.setAgent("");.setAgent_name("");.setPer("");.setPer_name("");.setMin("ИТОГО");.setOplata(MainFormat(ItogOplata, mkoef));= SetItogOplata + ItogOplata;.setMoplata(MainFormat(ItogMoplata, mkoef));= SetItogMoplata + ItogMoplata;.setSumpd(MainFormat(ItogSumpd, mkoef));= SetItogSumpd + ItogSumpd;.setMsumpd(MainFormat(ItogMsumpd, mkoef));= SetItogMsumpd + ItogMsumpd;.setKolpas(integerFormat(ItogKolpas));= SetItogKolpas + ItogKolpas;.setMkolpas(integerFormat(ItogMkolpas));= SetItogMkolpas + ItogMkolpas;.setSumpr(MainFormat(ItogSumpr, mkoef));= SetItogSumpr + ItogSumpr;.setMsumpr(MainFormat(ItogMsumpr, mkoef));= SetItogMsumpr + ItogMsumpr;.setKolpr(integerFormat(ItogKolpr));= SetItogKolpr + ItogKolpr;.setMkolpr(integerFormat(ItogMkolpr));= SetItogMkolpr + ItogMkolpr;.setSumbag(MainFormat(ItogSumbag, mkoef));= SetItogSumbag + ItogSumbag;.setMsumbag(MainFormat(ItogMsumbag, mkoef));= SetItogMsumbag + ItogMsumbag;.setKolbag(integerFormat(ItogKolbag));= SetItogKolbag + ItogKolbag;.setMkolbag(integerFormat(ItogMkolbag));= SetItogMkolbag + ItogMkolbag;.setKomsbv(MainFormat(ItogKomsbv, mkoef));= SetItogKomsbv + ItogKomsbv;.setMkomsbv(MainFormat(ItogMkomsbv, mkoef));= SetItogMkomsbv + ItogMkomsbv;.setKolv(integerFormat(ItogKolv));= SetItogKolv + ItogKolv;.setMkolv(integerFormat(ItogMkolv));= SetItogMkolv + ItogMkolv;.add(vc);++;_rows = Long.toString(kol);

}

//===================(!min_query.equals("ЛЮБОЙ")&&(row_min>1)&&(!ItogSumpdS.equals("x")))

{= new VoinClass();.setMin_name("");(agent.equals("**")){.setAgent("");.setAgent_name("ВСЕГО");.setPer("");.setPer_name("");

}(per.equals("**"))

{.setPer("");.setPer_name("ВСЕГО");.setAgent("");.setAgent_name("");

}.setMin("");.setOplata(MainFormat(ItogOplataMin, mkoef));.setMoplata(MainFormat(ItogMoplataMin, mkoef));.setSumpd(MainFormat(ItogSumpdMin, mkoef));.setMsumpd(MainFormat(ItogMsumpdMin, mkoef));.setKolpas(integerFormat(ItogKolpasMin));.setMkolpas(integerFormat(ItogMkolpasMin));.setSumpr(MainFormat(ItogSumprMin, mkoef));.setMsumpr(MainFormat(ItogMsumprMin, mkoef));.setKolpr(integerFormat(ItogKolprMin));.setMkolpr(integerFormat(ItogMkolprMin));.setSumbag(MainFormat(ItogSumbagMin, mkoef));.setMsumbag(MainFormat(ItogMsumbagMin, mkoef));.setKolbag(integerFormat(ItogKolbagMin));.setMkolbag(integerFormat(ItogMkolbagMin));.setKomsbv(MainFormat(ItogKomsbvMin, mkoef));.setMkomsbv(MainFormat(ItogMkomsbvMin, mkoef));.setKolv(integerFormat(ItogKolvMin));.setMkolv(integerFormat(ItogMkolvMin));.add(vc);

}

//==ИТОГОВАЯ СУММА ПО ДОРОГЕ ПО НЕСКОЛЬКИМ АГЕНТАМ==============((min_query.equals("ЛЮБОЙ")) && (!AgentFirst.equals(FirstAgent)) && agent.equals("**")) {_vc = new VoinClass();_vc.setMin_name("");_vc.setAgent("");_vc.setAgent_name("");_vc.setPer("");_vc.setPer_name("");_vc.setMin("ВСЕГО");_vc.setOplata(MainFormat(SetItogOplata, mkoef));_vc.setMoplata(MainFormat(SetItogMoplata, mkoef));_vc.setSumpd(MainFormat(SetItogSumpd, mkoef));_vc.setMsumpd(MainFormat(SetItogMsumpd, mkoef));_vc.setKolpas(integerFormat(SetItogKolpas));_vc.setMkolpas(integerFormat(SetItogMkolpas));_vc.setSumpr(MainFormat(SetItogSumpr, mkoef));_vc.setMsumpr(MainFormat(SetItogMsumpr, mkoef));_vc.setKolpr(integerFormat(SetItogKolpr));_vc.setMkolpr(integerFormat(SetItogMkolpr));_vc.setSumbag(MainFormat(SetItogSumbag, mkoef));_vc.setMsumbag(MainFormat(SetItogMsumbag, mkoef));_vc.setKolbag(integerFormat(SetItogKolbag));_vc.setMkolbag(integerFormat(SetItogMkolbag));_vc.setKomsbv(MainFormat(SetItogKomsbv, mkoef));_vc.setMkomsbv(MainFormat(SetItogMkomsbv, mkoef));_vc.setKolv(integerFormat(SetItogKolv));_vc.setMkolv(integerFormat(SetItogMkolv));.add(set_vc);

}

//                 ==ИТОГОВАЯ СУММА ПО ДОРОГЕ ПО НЕСКОЛЬКИМ Перевозчикам==============((min_query.equals("ЛЮБОЙ")) && (!PerFirst.equals(FirstPer)) && per.equals("**")) {_vc = new VoinClass();_vc.setMin_name("");_vc.setAgent("");_vc.setAgent_name("");_vc.setPer("");_vc.setPer_name("");_vc.setMin("ВСЕГО");_vc.setOplata(MainFormat(SetItogOplata, mkoef));_vc.setMoplata(MainFormat(SetItogMoplata, mkoef));_vc.setSumpd(MainFormat(SetItogSumpd, mkoef));_vc.setMsumpd(MainFormat(SetItogMsumpd, mkoef));_vc.setKolpas(integerFormat(SetItogKolpas));_vc.setMkolpas(integerFormat(SetItogMkolpas));_vc.setSumpr(MainFormat(SetItogSumpr, mkoef));_vc.setMsumpr(MainFormat(SetItogMsumpr, mkoef));_vc.setKolpr(integerFormat(SetItogKolpr));_vc.setMkolpr(integerFormat(SetItogMkolpr));_vc.setSumbag(MainFormat(SetItogSumbag, mkoef));_vc.setMsumbag(MainFormat(SetItogMsumbag, mkoef));_vc.setKolbag(integerFormat(SetItogKolbag));_vc.setMkolbag(integerFormat(SetItogMkolbag));_vc.setKomsbv(MainFormat(SetItogKomsbv, mkoef));_vc.setMkomsbv(MainFormat(SetItogMkomsbv, mkoef));_vc.setKolv(integerFormat(SetItogKolv));_vc.setMkolv(integerFormat(SetItogMkolv));.add(set_vc);

}

}

}

//=============(ust.equals("all_set")){_dor = "all_set";

}(ust.equals("*")){_dor = "*";

}

////     ========min==========(!min_query.equals("ЛЮБОЙ")){str = " SELECT DISTINCT NAME, NOMMV FROM EXPBD.LGOT, EXPBD.SERV S WHERE " +

" NOMMV = ? AND ";(!data.equals("fdat") && !data.equals("f_month")){+=" DATAN<='" +dohod_data+ "' AND DATAOT>='" +dohod_data+ "' ";

}{+=" DATAN<='" +data_end+ "' AND DATAOT>='" +data_end+ "' ";

}+=" AND GOS=S.GOS_ABD ";schet_min = 1;_name = connec.prepareStatement(str);_name.setString(schet_min++,min.toString());_name = pstmt_name.executeQuery();(rs_name.next()) {_query = rs_name.getString(1);

}_name.close();_name.close();

}

//                 ========agent------(!agent_query.equals("ЛЮБОЙ") && agent.equals("0")){str = " SELECT DISTINCT A.MNKODP, A.SKP FROM DBKLAS.SOBPER A, EXPBD.SERV S " +" WHERE A.SKP = ? AND ";(!data.equals("fdat") && !data.equals("f_month")){+= " A.DATANO<='" +dohod_data+ "' AND A.DATAKO>='" +dohod_data+ "' AND " +

" A.DATANP<='" +dohod_data+ "' AND A.DATAKP>='" +dohod_data+ "' ";

}{+= " A.DATANO<='" +data_end+ "' AND A.DATAKO>='" +data_end+ "' AND " +

" A.DATANP<='" +data_end+ "' AND A.DATAKP>='" +data_end+ "' ";

}+=" AND A.GOS = S.GOS_ABD ";schet_agent = 1;_name = connec.prepareStatement(str);_name.setString(schet_agent++,agent.toString());_name = pstmt_name.executeQuery();(rs_name.next()) {_query = rs_name.getString(1);

}_name.close();_name.close();

}

//                 =====perevoz=====(!per_query.equals("ЛЮБОЙ") && per.equals("0")){str = " SELECT DISTINCT A.MNKODP, A.SKP FROM DBKLAS.SOBPER A, EXPBD.SERV S " +" WHERE A.SKP = ? AND ";(!data.equals("fdat") && !data.equals("f_month")){+=" A.DATANO<='" +dohod_data+ "' AND A.DATAKO>='" +dohod_data+ "' AND " +

" A.DATANP<='" +dohod_data+ "' AND A.DATAKP>='" +dohod_data+ "' ";

}{+=" A.DATANO<='" +data_end+ "' AND A.DATAKO>='" +data_end+ "' AND " +

" A.DATANP<='" +data_end+ "' AND A.DATAKP>='" +data_end+ "' ";

}+= " AND A.GOS = S.GOS_ABD ";schet_per = 1;_name = connec.prepareStatement(str);_name.setString(schet_per++,per.toString());_name = pstmt_name.executeQuery();(rs_name.next()) {_query = rs_name.getString(1);

}_name.close();_name.close();

}

//======dor_query=========(!ust.equals("all_set") && (!dor.equals("*"))) {str = "SELECT DISTINCT NAZVD FROM EXPBD.DOR WHERE ";(!data.equals("fdat") && !data.equals("f_month")){+=" DATAN<= '" +dohod_data+ "' AND DATAK>= '" +dohod_data+ "' AND KODD =? ";

}else{+=" DATAN<= '" +data_end+ "' AND DATAK>= '" +data_end+ "' AND KODD =? ";

}schet_dor = 1;_name = connec.prepareStatement(str);_name.setString(schet_dor++, dor_query.toString());_name = pstmt_name.executeQuery();(rs_name.next()) {_query = rs_name.getString(1);

}_name.close();_name.close();

}

//=====================(!session.isNew()){.removeAttribute("tableRows");.removeAttribute("tableRowsSet");.removeAttribute("dor");.removeAttribute("min_name");.removeAttribute("min");.removeAttribute("per");.removeAttribute("nazvd");.removeAttribute("sumpd");.removeAttribute("msumpd");.removeAttribute("kolpas");.removeAttribute("mkolpas");.removeAttribute("sumpr");.removeAttribute("msumpr");.removeAttribute("kolpr");.removeAttribute("mkolpr");.removeAttribute("sumbag");.removeAttribute("msumbag");.removeAttribute("kolbag");.removeAttribute("mkolbag");.removeAttribute("komsbv");.removeAttribute("mkomsbv");.removeAttribute("kolv");.removeAttribute("mkolv");.removeAttribute("FirstDor");.removeAttribute("schet_rows");.removeAttribute("schet_row_dors");.removeAttribute("ItogSumpdS");.removeAttribute("NazvFirstDor");.removeAttribute("DorFirst");.removeAttribute("AgentFirst");.removeAttribute("FirstAgent");.removeAttribute("PerFirst");.removeAttribute("FirstPer");.removeAttribute("schet_data");.removeAttribute("schet_dataAll");.removeAttribute("data_begin");.removeAttribute("data_end");.removeAttribute("begin_data");.removeAttribute("end_data");

//============================.removeAttribute("tableRowsAll");.removeAttribute("ItogSumpdAllS");.removeAttribute("min_query");.removeAttribute("per_query");.removeAttribute("agent_query");

//===================.removeAttribute("param_dor");.removeAttribute("dor_query");.removeAttribute("agent");.removeAttribute("nazvl");.removeAttribute("FirstAgent_name");.removeAttribute("FirstPer_name");.removeAttribute("agent_name");.removeAttribute("per_name");.removeAttribute("ust");.removeAttribute("month_period");.removeAttribute("year_period");

}

//============================.setAttribute("dor",dor);.setAttribute("min_name", min_name);.setAttribute("min",min);.setAttribute("nazvd",nazvd);.setAttribute("oplata",oplata);.setAttribute("moplata", moplata);.setAttribute("sumpd",sumpd);.setAttribute("msumpd", msumpd);.setAttribute("kolpas", kolpas);.setAttribute("mkolpas", mkolpas);.setAttribute("sumpr", sumpr);.setAttribute("msumpr", msumpr);.setAttribute("kolpr",kolpr);.setAttribute("mkolpr", mkolpr);.setAttribute("sumbag",sumbag);.setAttribute("msumbag", msumbag);.setAttribute("kolbag", kolbag);.setAttribute("mkolbag", mkolbag);.setAttribute("komsbv", komsbv);.setAttribute("mkomsbv", mkomsbv);.setAttribute("kolv", kolv);.setAttribute("mkolv", mkolv);.setAttribute("FirstDor", FirstDor);.setAttribute("schet_rows", schet_rows);.setAttribute("schet_row_dors", schet_row_dors);.setAttribute("schet_data", schet_data);.setAttribute("schet_dataAll", schet_dataAll);.setAttribute("data_begin", data_begin);.setAttribute("data_end", data_end);.setAttribute("begin_data", begin_data);.setAttribute("end_data", end_data);.setAttribute("DorFirst", DorFirst);.setAttribute("NazvFirstDor", NazvFirstDor);=Long.toString(ItogSumpd);.setAttribute("ItogSumpdS", ItogSumpdS);.setAttribute("tableRows", tableRows);.setAttribute("tableRowsAll",tableRowsAll);.setAttribute("tableRowsSet",tableRowsSet);.setAttribute("ItogSumpdAllS", ItogSumpdAllS);.setAttribute("min_query", min_query);.setAttribute("agent_query", agent_query);.setAttribute("agent", agent);.setAttribute("per_query", per_query);.setAttribute("per", per);.setAttribute("AgentFirst", AgentFirst );.setAttribute("FirstAgent", FirstAgent);.setAttribute("FirstAgent_name", FirstAgent_name);.setAttribute("agent_name", agent_name);.setAttribute("PerFirst", PerFirst );.setAttribute("FirstPer", FirstPer);.setAttribute("FirstPer_name", FirstPer_name);.setAttribute("per_name", per_name);

//-===========================.setAttribute("param_dor", param_dor);.setAttribute("dor_query", dor_query);.setAttribute("nazvl", nazvl);.setAttribute("ust", ust);.setAttribute("month_period", month_period);.setAttribute("year_period", year_period);

}(SQLException e) {

// Report the error using the appropriate name and ID..add("errorDB2", new ActionError("error.errorDB2", e.getMessage()));

}(Exception e) {(errors.isEmpty()).add("Exception", new ActionError("error.Exception", e.getMessage()));.printStackTrace();

}{{(rs != null) {.close();

}(pstmt != null) {.close();

}(rsAll != null) {.close();

}(pstmtAll != null) {.close();

}(rs_name != null) {_name.close();

}(pstmt_name != null) {_name.close();

}(rs_min != null) {_min.close();

}(pstmt_min != null) {_min.close();

}.releaseConnection();

} catch (SQLException e1) {(rs != null) {.close();

}(pstmt != null) {.close();

}(rsAll != null) {.close();

}(pstmtAll != null) {.close();

}(rs_name != null) {_name.close();

}(pstmt_name != null) {_name.close();

}(rs_min != null) {_min.close();

}(pstmt_min != null) {_min.close();

}e1;

}

}ust = armvoinForm.getUst();dor = armvoinForm.getDor();agent = armvoinForm.getAgent();per = armvoinForm.getPer();data = armvoinForm.getData();min = armvoinForm.getMin();chek_str = armvoinForm.getChek_str();

//=========agent=====[] temp = null;= agent.split("--");= temp[0];

//=======per=========== null;= per.split("--");= temp[0];

//======Dor===========(!ust.equals("all_set")){=null;= dor.split("--");= temp[0];

}

//====Min=========== null;= min.split("--");= temp[0];

//=============(!errors.isEmpty()) {(request, errors);= mapping.findForward("failure");

}{((ust.equals("dor")) && (dor.equals("*")) && (!agent.equals("**")) && (!per.equals("**")) && (!data.equals("fdat")) &&(!data.equals("f_month")))

{(!chek_str){= mapping.findForward("success1");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success1");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}if ((!agent.equals("**")) && (!per.equals("**")) && (!data.equals("fdat")) &&(!data.equals("f_month")))

{(!chek_str){= mapping.findForward("success");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((ust.equals("dor")) && (dor.equals("*")))

{(((agent.equals("**") || (per.equals("**")))) && (!data.equals("fdat")) &&(!data.equals("f_month")))

{(!chek_str){= mapping.findForward("success_det_dor");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success_det_dor");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((agent.equals("**") && (per.equals("**"))))= mapping.findForward("success_det_not");

}((ust.equals("dor")) && (!dor.equals("*")) && (!data.equals("fdat")) &&(!data.equals("f_month"))&& ((agent.equals("**")) || (per.equals("**"))))

{(!chek_str){= mapping.findForward("success_det_dor");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success_det_dor");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((ust.equals("all_set")) && (((agent.equals("**")) || (per.equals("**"))))){= mapping.findForward("success_det_not");

}(agent.equals("**")&&(per.equals("**"))) {= mapping.findForward("success_det_not");

}

//=======fdat && f_month======((ust.equals("dor")) && (dor.equals("*")) && (!agent.equals("**")) && (!per.equals("**")) && ((data.equals("fdat")) || (data.equals("f_month"))))

{(!chek_str){= mapping.findForward("success1_f");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success1_f");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}if ((!agent.equals("**")) && (!per.equals("**")) && ((data.equals("fdat")) ||(data.equals("f_month"))))

{(!chek_str){= mapping.findForward("success_f");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success_f");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((ust.equals("dor")) && (dor.equals("*")))

{(((agent.equals("**") || (per.equals("**")))) && ((data.equals("fdat")) || (data.equals("f_month"))))

{(!chek_str){= mapping.findForward("success_det_dor_f");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success_det_dor_f");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((agent.equals("**") && (per.equals("**"))))= mapping.findForward("success_det_not");

}((ust.equals("dor")) && (!dor.equals("*")) && ((data.equals("fdat")) || (data.equals("f_month")))&& ((agent.equals("**")) || (per.equals("**"))))

{(!chek_str){= mapping.findForward("success_det_dor_f");

}((chek_str) && (min.equals("*"))){= mapping.findForward("success_det_dor_f");

}((chek_str) && (!min.equals("*"))){= mapping.findForward("success_not_null_str");

}

}((ust.equals("all_set")) && (((agent.equals("**")) || (per.equals("**"))))){= mapping.findForward("success_det_not");

}(agent.equals("**")&&(per.equals("**"))) {= mapping.findForward("success_det_not");

}

}(forward);

}String integerFormat(double decim){dfs=null;df=new DecimalFormat("#,##0;#,##0");.setGroupingSize(3);.setGroupingUsed(true);=df.getDecimalFormatSymbols();.setGroupingSeparator(' ');.setDecimalFormatSymbols(dfs);df.format(decim);

}String MainFormat (long decim, int mkoef){decim_str = "";valut = 10;(mkoef == 100)= 1;(mkoef == 1 || (mkoef != 1 && mkoef != 10 && mkoef != 100))= 100;dec = Math.abs(decim / valut);dec_mod = Math.abs(decim % valut);dec_dec_mod = Math.abs(dec_mod / 10);dec_mod_mod = Math.abs (dec_mod %10);dfs=null;df=new DecimalFormat("#,##0;#,##0");.setGroupingSize(3);.setGroupingUsed(true);=df.getDecimalFormatSymbols();.setGroupingSeparator(' ');.setDecimalFormatSymbols(dfs);_str = df.format(dec);(decim < 0)_str = "-" +decim_str;(dec_mod !=0 && valut == 10)_str = decim_str + "." + (long)(dec_mod);(dec_mod != 0 && dec_mod>9 && valut==100 && dec_mod_mod !=0)_str = decim_str + "." + (long)(dec_mod);(dec_mod != 0 && dec_mod>9 && valut==100 && dec_mod_mod ==0 )_str = decim_str + "." + (long)(dec_dec_mod);(dec_mod !=0 && dec_mod<10 && valut == 100)_str = decim_str +".0" + (long)(dec_mod);decim_str;

}

}.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/index2Ex.jsp","Excel",props);

}

}

</script>

<%dor = "";min = "";per = "";a = "";b = "";FirstDor = "";schet_rows = "0";schet_data = "";NazvFirstDor = "";ItogSumpdS ="";ItogMsumpdS = "";ItogKolpasS = "";ItogMkolpasS = "";ItogSumprS = "";ItogMsumprS = "";ItogKolprS = "";ItogMkolprS = "";ItogSumbagS = "";ItogMsumbagS = "";ItogKolbagS = "";ItogMkolbagS = "";ItogKomsbvS = "";ItogMkomsbvS = "";ItogKolvS = "";ItogMkolvS = "";ItogSumpdMinS ="";ItogMsumpdMinS = "";ItogKolpasMinS = "";ItogMkolpasMinS = "";ItogSumprMinS = "";ItogMsumprMinS = "";ItogKolprMinS = "";ItogMkolprMinS = "";ItogSumbagMinS = "";ItogMsumbagMinS = "";ItogKolbagMinS = "";ItogMkolbagMinS = "";ItogKomsbvMinS = "";ItogMkomsbvMinS = "";ItogKolvMinS = "";ItogMkolvMinS = "";DorFirst = "";agent_query = "";per_query = "";min_query = "";min_name = "";param_dor = "";dor_query = "";nazvl = "";schet_row_dors ="0";ust = "";countRows=((ArrayList)session.getAttribute("tableRows")).size();= (String)session.getAttribute("dor");= (String)session.getAttribute("min");= (String)session.getAttribute("per");= (String)session.getAttribute("FirstDor");_rows = (String)session.getAttribute("schet_rows");_row_dors = (String)session.getAttribute("schet_row_dors");= (String)session.getAttribute("DorFirst");= (String)session.getAttribute("NazvFirstDor");= (String)session.getAttribute("ItogSumpdS");= (String)session.getAttribute("ItogMsumpdS");= (String)session.getAttribute("ItogKolpasS");= (String)session.getAttribute("ItogMkolpasS");= (String)session.getAttribute("ItogSumprS");= (String)session.getAttribute("ItogMsumprS");= (String)session.getAttribute("ItogKolprS");= (String)session.getAttribute("ItogMkolprS");= (String)session.getAttribute("ItogSumbagS");= (String)session.getAttribute("ItogMsumbagS");= (String)session.getAttribute("ItogKolbagS");= (String)session.getAttribute("ItogMkolbagS");= (String)session.getAttribute("ItogKomsbvS");= (String)session.getAttribute("ItogMkomsbvS");= (String)session.getAttribute("ItogKolvS");= (String)session.getAttribute("ItogMkolvS");_data = (String)session.getAttribute("schet_data");_query = (String)session.getAttribute("agent_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("min_query");_name = (String)session.getAttribute("min_name");= (String)session.getAttribute("ItogSumpdMinS");= (String)session.getAttribute("ItogMsumpdMinS");= (String)session.getAttribute("ItogKolpasMinS");= (String)session.getAttribute("ItogMkolpasMinS");= (String)session.getAttribute("ItogSumprMinS");= (String)session.getAttribute("ItogMsumprMinS");= (String)session.getAttribute("ItogKolprMinS");= (String)session.getAttribute("ItogMkolprMinS");= (String)session.getAttribute("ItogSumbagMinS");= (String)session.getAttribute("ItogMsumbagMinS");= (String)session.getAttribute("ItogKolbagMinS");= (String)session.getAttribute("ItogMkolbagMinS");= (String)session.getAttribute("ItogKomsbvMinS");= (String)session.getAttribute("ItogMkomsbvMinS");= (String)session.getAttribute("ItogKolvMinS");= (String)session.getAttribute("ItogMkolvMinS");_dor = (String)session.getAttribute("param_dor");_query = (String)session.getAttribute("dor_query");= (String)session.getAttribute("nazvl");= (String)session.getAttribute("ust");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<html:form action="/voin">

<br>

<%=FirstDor;

%>

<% if(countRows==0){(param_dor.equals("all_set")){ %>

<h2 align="center">Информация о кредитовых ведомствах по сети &nbsp;за&nbsp;<%=schet_data%>&nbsp; отсутствует</h2>

<%}{%>

<h2 align="center">Информация о кредитовых ведомствах по дороге &nbsp;<%=dor_query%>за&nbsp;<%=schet_data%>&nbsp; отсутствует</h2>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}{(!param_dor.equals("all_set")){

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}(param_dor.equals("all_set")) {

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}

%>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%} %>

<Table border="1">

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && countRows>0) { %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%(!schet_row_dors.equals("0")&& min_query.equals("ЛЮБОЙ")&& countRows>0 && !ust.equals("dor") ){

%>

<tr>

<th>

</tr>

<%

}

%>

<logic:iterate id="tableRow" name="tableRows" indexId="i" >

<%=((VoinClass)tableRow).getDor();

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1) {

%>

<tr>

<th>

</tr>

<%

}

%>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<td>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>0) { %>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRow" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolv"></bean:write>&nbsp;</TD>

<%=((VoinClass)tableRow).getDor();

%>

</tr>

</logic:iterate>

<% if (min_query.equals("ЛЮБОЙ")) { %>

<logic:iterate id="tableRowSet" name="tableRowsSet" indexId="j" >

<tr>

<td>

<td>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

<% }%>

</Table>

<%

}(countRows>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</body>

</html>

index 4.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@ page import="voin.Classes.JDBCConnection"%>

<%@ page import="java.io.*"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/index4Ex.jsp","Excel",props);

}

}

</script>

<%dor = "";per = "";schet_dataAll = "";ItogSumpdAllS ="";ItogMsumpdAllS = "";ItogKolpasAllS = "";ItogMkolpasAllS = "";ItogSumprAllS = "";ItogMsumprAllS = "";ItogKolprAllS = "";ItogMkolprAllS = "";ItogSumbagAllS = "";ItogMsumbagAllS = "";ItogKolbagAllS = "";ItogMkolbagAllS = "";ItogKomsbvAllS = "";ItogMkomsbvAllS = "";ItogKolvAllS = "";ItogMkolvAllS = "";min_name ="";agent_query = "";per_query = "";min_query = "";nazvl = "";countRowsAll=((ArrayList)session.getAttribute("tableRowsAll")).size();= (String)session.getAttribute("ItogSumpdAllS");= (String)session.getAttribute("ItogMsumpdAllS");= (String)session.getAttribute("ItogKolpasAllS");= (String)session.getAttribute("ItogMkolpasAllS");= (String)session.getAttribute("ItogSumprAllS");= (String)session.getAttribute("ItogMsumprAllS");= (String)session.getAttribute("ItogKolprAllS");= (String)session.getAttribute("ItogMkolprAllS");= (String)session.getAttribute("ItogSumbagAllS");= (String)session.getAttribute("ItogMsumbagAllS");= (String)session.getAttribute("ItogKolbagAllS");= (String)session.getAttribute("ItogMkolbagAllS");= (String)session.getAttribute("ItogKomsbvAllS");= (String)session.getAttribute("ItogMkomsbvAllS");= (String)session.getAttribute("ItogKolvAllS");= (String)session.getAttribute("ItogMkolvAllS");= (String)session.getAttribute("dor");= (String)session.getAttribute("per");_dataAll = (String)session.getAttribute("schet_dataAll");_name = (String)session.getAttribute("min_name");_query = (String)session.getAttribute("agent_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("min_query");= (String)session.getAttribute("nazvl");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<html:form action="/voin">

<br>

<center>

<% if(countRowsAll==0){%>

<h2 align="center">Информация за&nbsp;<%=schet_dataAll%>&nbsp;о кредитовых ведомствах. Итог по дорогам России отсутствует</h2>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<% }

}{ %>

<h2 align="center" style="font-size: 18pt">Информация о кредитовых ведомствах.

<br><font align="center">Итог по дорогам России за&nbsp;<%=schet_dataAll%>&nbsp;

</font>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font> </h2>

<br><br>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%} %>

<Table border="1">

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<logic:iterate id="tableRowAll" name="tableRowsAll" indexId="i" >

<tr>

<%if (min_query.equals("ЛЮБОЙ")){ %>

<td>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

</Table>

<%

}(countRowsAll>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</Body>

</html>

det_dor.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/det_dorEx.jsp","Excel",props);

}

}

</script>

<%schet_data = "";dor_query = "";min_query = "";per_query = "";agent_query = "";b = "";b1 = "";a = "";c = "";c1 = "";nazvl = "";schet_rows = "0";FirstAgent = "";FirstPer = "";FirstAgent_name = "";FirstPer_name = "";dor = "";agent = "";per = "";_data = (String)session.getAttribute("schet_data");_name = (String)session.getAttribute("FirstAgent_name");_name = (String)session.getAttribute("FirstPer_name");_query = (String)session.getAttribute("dor_query");_query = (String)session.getAttribute("min_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("agent_query");= (String)session.getAttribute("agent");= (String)session.getAttribute("per");= (String)session.getAttribute("FirstAgent");= (String)session.getAttribute("FirstPer");countRows=((ArrayList)session.getAttribute("tableRows")).size();_rows = (String)session.getAttribute("schet_rows");= (String)session.getAttribute("nazvl");= (String)session.getAttribute("dor");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<html:form action="/voin">

<br>

<%(agent.equals("**"))=FirstAgent;(per.equals("**"))= FirstPer;

%>

<% if((countRows==0)&&(!dor_query.equals("*"))){

%>

<h2 align="center">Информация о кредитовых ведомствах по дороге&nbsp;<%=dor_query%>&nbsp;за&nbsp;<%=schet_data%>&nbsp; отсутствует</h2>

<%(agent.equals("**")){

%>

<h4>

<%}(per.equals("**")){

%>

<h4>

<%}(!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}((countRows==0)&&(dor_query.equals("*"))){

%>

<h2 align="center">Информация за&nbsp;<%=schet_data%>&nbsp;о кредитовых ведомствах. Итог по дорогам России отсутствует</h2>

<%(agent.equals("**")){

%>

<h4>

<%}(per.equals("**")){

%>

<h4>

<%}(!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}(countRows>0) {(dor_query.equals("*")){ %>

<h2>

<br><font align="center">Итог по дорогам России за&nbsp;<%=schet_data%>&nbsp;

</font>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%} else

{ %>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%} %>

<%(agent.equals("**")){

%>

<h2>

<%}(per.equals("**")){

%>

<h2>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

%>

<Table border="1">

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && countRows>1 && agent.equals("**")) { %>

<th>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && countRows>1 && per.equals("**")) { %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%((!schet_rows.equals("0"))&& (min_query.equals("ЛЮБОЙ")) && (agent.equals("**"))) {

%>

<tr>

<th>

</tr>

<%

}

%>

<%((!schet_rows.equals("0"))&& (min_query.equals("ЛЮБОЙ")) && (per.equals("**"))) {

%>

<tr>

<th>

</tr>

<%

}

%>

<logic:iterate id="tableRow" name="tableRows" indexId="i" >

<%(agent.equals("**"))=((VoinClass)tableRow).getAgent();

(per.equals("**"))=((VoinClass)tableRow).getPer();= ((VoinClass)tableRow).getMin();

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1 && !c.equals("ИТОГО") && agent.equals("**")) {

%>

<tr>

<th>

</tr>

<%

}

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1 && !c.equals("ИТОГО") && per.equals("**")) {

%>

<tr>

<th>

</tr>

<%

}

%>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<td>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>1 && agent.equals("**")) { %>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>1 && per.equals("**")) { %>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRow" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="mkolv"></bean:write>&nbsp;</TD>

<%(agent.equals("**"))=((VoinClass)tableRow).getAgent();(per.equals("**"))=((VoinClass)tableRow).getPer();

%>

</tr>

</logic:iterate>

<% if (min_query.equals("ЛЮБОЙ")) { %>

<logic:iterate id="tableRowSet" name="tableRowsSet" indexId="j" >

<tr>

<td>

<td>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="mkolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

<% }%>

<%

}

%>

</Table>

<%if (countRows>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</body>

</html>_dor_f.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/det_dor_fEx.jsp","Excel",props);

}

}

</script>

<%schet_data = "";data_begin = "";data_end = "";begin_data = "";end_data = "";dor_query = "";min_query = "";per_query = "";agent_query = "";b = "";b1 = "";a = "";c = "";c1 = "";nazvl = "";schet_rows = "0";FirstAgent = "";FirstPer = "";FirstAgent_name = "";FirstPer_name = "";dor = "";agent = "";per = "";month_period = "x";year_period = "x";

//schet_data = (String)session.getAttribute("schet_data");_begin = (String)session.getAttribute("data_begin");_end = (String)session.getAttribute("data_end");_period = (String)session.getAttribute("month_period");_period = (String)session.getAttribute("year_period");_name = (String)session.getAttribute("FirstAgent_name");_name = (String)session.getAttribute("FirstPer_name");_query = (String)session.getAttribute("dor_query");_query = (String)session.getAttribute("min_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("agent_query");= (String)session.getAttribute("agent");= (String)session.getAttribute("per");= (String)session.getAttribute("FirstAgent");= (String)session.getAttribute("FirstPer");countRows=((ArrayList)session.getAttribute("tableRows")).size();_rows = (String)session.getAttribute("schet_rows");= (String)session.getAttribute("nazvl");= (String)session.getAttribute("dor");_data = (String)session.getAttribute("begin_data");_data = (String)session.getAttribute("end_data");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<html:form action="/voin">

<br>

<%(agent.equals("**"))=FirstAgent;(per.equals("**"))= FirstPer;

%>

<% if((countRows==0)&&(!dor_query.equals("*"))) {(month_period.equals("x")){

%>

<h2 align="center">Информация о кредитовых ведомствах по дороге&nbsp;<%=dor_query%>&nbsp;за период с &nbsp;<%=begin_data%>&nbsp; по &nbsp;<%=end_data%>&nbsp; отсутствует</h2>

<% }(!month_period.equals("x")){

%>

<h2 align="center">Информация о кредитовых ведомствах по дороге&nbsp;<%=dor_query%>&nbsp;за &nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp;года отсутствует</h2>

<%}(agent.equals("**")){

%>

<h4>

<%}(per.equals("**")){

%>

<h4>

<%}(!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}((countRows==0)&&(dor_query.equals("*"))){(month_period.equals("x")){

%>

<h2 align="center">Информация за период с &nbsp;<%=begin_data%>&nbsp; по &nbsp;<%=end_data%>&nbsp;о кредитовых ведомствах. Итог по дорогам России отсутствует</h2>

<% }(!month_period.equals("x")){

%>

<h2 align="center">Информация за &nbsp;<%=month_period%>&nbsp; <%=year_period%>&nbsp;года о кредитовых ведомствах. Итог по дорогам России отсутствует</h2>

<%

}(agent.equals("**")){

%>

<h4>

<%}(per.equals("**")){

%>

<h4>

<%}(!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}(countRows>0) {(dor_query.equals("*") && (month_period.equals("x"))){ %>

<h2>

<br><font align="center">Итог по дорогам России за период с &nbsp;<%=begin_data%>&nbsp; по &nbsp;<%=end_data%>&nbsp;

</font>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%}(dor_query.equals("*") && (!month_period.equals("x"))){ %>

<h2>

<br><font align="center">Итог по дорогам России за &nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp;года

</font>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%}(!dor_query.equals("*") && (month_period.equals("x")))

{ %>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%}(!dor_query.equals("*") && (!month_period.equals("x")))

{ %>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

</font></h2>

<%}(agent.equals("**")){

%>

<h2>

<%}(per.equals("**")){

%>

<h2>

<%}(!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

%>

<Table border="1">

<%if (min_query.equals("ЛЮБОЙ")) { %>

<tr>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && agent.equals("**")) { %>

<tr>

<%if(countRows>1) { %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && per.equals("**")) { %>

<tr>

<% if (countRows>1){ %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%} %>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<tr>

<th>

<th>

</tr>

<%} %>

<%((!schet_rows.equals("0"))&& (min_query.equals("ЛЮБОЙ")) && (agent.equals("**"))) {

%>

<tr>

<th>

</tr>

<%

%>

<%((!schet_rows.equals("0"))&& (min_query.equals("ЛЮБОЙ")) && (per.equals("**"))) {

%>

<tr>

<th>

</tr>

<%

}

%>

<logic:iterate id="tableRow" name="tableRows" indexId="i" >

<%(agent.equals("**"))=((VoinClass)tableRow).getAgent();(per.equals("**"))=((VoinClass)tableRow).getPer();= ((VoinClass)tableRow).getMin();

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1 && !c.equals("ИТОГО") && agent.equals("**")) {

%>

<tr>

<th>

</tr>

<%

}

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1 && !c.equals("ИТОГО") && per.equals("**")) {

%>

<tr>

<th>

</tr>

<%

}

%>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<td>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>1 && agent.equals("**")) { %>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>1 && per.equals("**")) { %>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRow" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolv"></bean:write>&nbsp;</TD>

<%(agent.equals("**"))=((VoinClass)tableRow).getAgent();(per.equals("**"))=((VoinClass)tableRow).getPer();

%>

</tr>

</logic:iterate>

<% if (min_query.equals("ЛЮБОЙ")) { %>

<logic:iterate id="tableRowSet" name="tableRowsSet" indexId="j" >

<tr>

<td>

<td>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

<% }%>

<%

}

%>

</Table>

<%if (countRows>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</body>

</html>_f.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/index2_fEx.jsp","Excel",props);

}

}

</script>

<%dor = "";min = "";per = "";a = "";b = "";FirstDor = "";schet_rows = "0";data_begin = "";data_end = "";begin_data = "";end_data = "";NazvFirstDor = "";ItogSumpdS ="";ItogKolpasS = "";ItogSumprS = "";ItogKolprS = "";ItogSumbagS = "";ItogKolbagS = "";ItogKomsbvS = "";ItogKolvS = "";ItogSumpdMinS ="";ItogKolpasMinS = "";ItogSumprMinS = "";ItogKolprMinS = "";ItogSumbagMinS = "";ItogKolbagMinS = "";ItogKomsbvMinS = "";ItogKolvMinS = "";DorFirst = "";agent_query = "";per_query = "";min_query = "";min_name = "";param_dor = "";dor_query = "";nazvl = "";schet_row_dors ="0";ust = "";month_period ="x";year_period = "x";countRows=((ArrayList)session.getAttribute("tableRows")).size();= (String)session.getAttribute("dor");= (String)session.getAttribute("min");= (String)session.getAttribute("per");= (String)session.getAttribute("FirstDor");_rows = (String)session.getAttribute("schet_rows");_row_dors = (String)session.getAttribute("schet_row_dors");= (String)session.getAttribute("DorFirst");= (String)session.getAttribute("NazvFirstDor");= (String)session.getAttribute("ItogSumpdS");= (String)session.getAttribute("ItogKolpasS");= (String)session.getAttribute("ItogSumprS");= (String)session.getAttribute("ItogKolprS");= (String)session.getAttribute("ItogSumbagS");= (String)session.getAttribute("ItogKolbagS");= (String)session.getAttribute("ItogKomsbvS");= (String)session.getAttribute("ItogKolvS");_begin = (String)session.getAttribute("data_begin");_end = (String)session.getAttribute("data_end");_data = (String)session.getAttribute("begin_data");_data = (String)session.getAttribute("end_data");_query = (String)session.getAttribute("agent_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("min_query");_name = (String)session.getAttribute("min_name");= (String)session.getAttribute("ItogSumpdMinS");= (String)session.getAttribute("ItogKolpasMinS");= (String)session.getAttribute("ItogSumprMinS");= (String)session.getAttribute("ItogKolprMinS");= (String)session.getAttribute("ItogSumbagMinS");= (String)session.getAttribute("ItogKolbagMinS");= (String)session.getAttribute("ItogKomsbvMinS");= (String)session.getAttribute("ItogKolvMinS");_dor = (String)session.getAttribute("param_dor");_query = (String)session.getAttribute("dor_query");= (String)session.getAttribute("nazvl");= (String)session.getAttribute("ust");_period = (String)session.getAttribute("month_period");_period = (String)session.getAttribute("year_period");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<html:form action="/voin">

<br>

<%=FirstDor;

%>

<% if(countRows==0){(param_dor.equals("all_set") && (month_period.equals("x")) ){ %>

<h2 align="center">Информация о кредитовых ведомствах по сети &nbsp;за период с &nbsp;<%=begin_data%>&nbsp; по &nbsp;<%=end_data%>&nbsp; отсутствует</h2>

<%}(param_dor.equals("all_set") && (!month_period.equals("x"))) { %>

<h2 align="center">Информация о кредитовых ведомствах по сети &nbsp;за&nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp;года отсутствует</h2>

<% }(!param_dor.equals("all_set") && (month_period.equals("x"))) {%>

<h2 align="center">Информация о кредитовых ведоствах по дороге &nbsp;<%=dor_query%>за период с &nbsp;<%=begin_data%>&nbsp; по &nbsp;<%=end_data%>&nbsp; отсутствует</h2>

<%}(!param_dor.equals("all_set") && (!month_period.equals("x"))) {%>

<h2 align="center">Информация о кредитовых ведоствах по дороге &nbsp;<%=dor_query%>за &nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp;года отсутствует</h2>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%}

}{(!param_dor.equals("all_set") && (month_period.equals("x"))){

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}(!param_dor.equals("all_set") && (!month_period.equals("x"))){

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}(param_dor.equals("all_set") && (month_period.equals("x"))) {

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}(param_dor.equals("all_set") && (!month_period.equals("x"))) {

%>

<h2>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font></h2>

<%

}

%>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%} %>

<Table border="1">

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") && countRows>0) { %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<%} %>

</tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<tr>

<th>

<th>

</tr>

<%} %>

<%(!schet_row_dors.equals("0")&& min_query.equals("ЛЮБОЙ")&& countRows>0 && !ust.equals("dor") ){

%>

<tr>

<th>

</tr>

<%

}

%>

<logic:iterate id="tableRow" name="tableRows" indexId="i" >

<%=((VoinClass)tableRow).getDor();

%>

<%(!b.equals(a) && min_query.equals("ЛЮБОЙ")&& countRows>1) {

%>

<tr>

<th>

</tr>

<%

}

%>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<td>

<td>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")&& countRows>0) { %>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRow" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRow" property="kolv"></bean:write>&nbsp;</TD>

<%=((VoinClass)tableRow).getDor();

%>

</tr>

<%

// a=((VoinClass)tableRow).getDor();

%>

</logic:iterate>

<% if (min_query.equals("ЛЮБОЙ")) { %>

<logic:iterate id="tableRowSet" name="tableRowsSet" indexId="j" >

<tr>

<td>

<td>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowSet" property="kolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

<% }%>

</Table>

<%

}(countRows>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</body>

</html>_f.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@ page import="voin.Classes.JDBCConnection"%>

<%@ page import="java.io.*"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<script language="JavaScript">doSendEx() {newWindowEx;(!newWindowEx || newWindowEx.closed) {props = 'scrollBars=yes,resizable=yes,toolbar=yes,menubar=yes,location=no,directories=no,width=550,height=550';= window.open("/dohodv/index4_fEx.jsp","Excel",props);

}

}

</script>

<%dor = "";per = "";data_begin = "";data_end = "";begin_data = "";end_data = "";ItogSumpdAllS ="";ItogKolpasAllS = "";ItogSumprAllS = "";ItogKolprAllS = "";ItogSumbagAllS = "";ItogKolbagAllS = "";ItogKomsbvAllS = "";ItogKolvAllS = "";min_name ="";agent_query = "";per_query = "";min_query = "";nazvl = "";month_period ="x";year_period = "x";countRowsAll=((ArrayList)session.getAttribute("tableRowsAll")).size();= (String)session.getAttribute("ItogSumpdAllS");= (String)session.getAttribute("ItogKolpasAllS");= (String)session.getAttribute("ItogSumprAllS");= (String)session.getAttribute("ItogKolprAllS");= (String)session.getAttribute("ItogSumbagAllS");= (String)session.getAttribute("ItogKolbagAllS");= (String)session.getAttribute("ItogKomsbvAllS");= (String)session.getAttribute("ItogKolvAllS");= (String)session.getAttribute("dor");= (String)session.getAttribute("per");_begin= (String)session.getAttribute("data_begin");_end = (String)session.getAttribute("data_end");_data= (String)session.getAttribute("begin_data");_data = (String)session.getAttribute("end_data");_name = (String)session.getAttribute("min_name");_query = (String)session.getAttribute("agent_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("min_query");= (String)session.getAttribute("nazvl");_period = (String)session.getAttribute("month_period");_period = (String)session.getAttribute("year_period");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<html:form action="/voin">

<br>

<center>

<% if(countRowsAll==0){(month_period.equals("x")) {%>

<h2 align="center">Информация за период с&nbsp;<%=begin_data%>&nbsp;по &nbsp;<%=end_data%>&nbsp;о кредитовых ведомствах.

<br><font align="center"> Итог по дорогам России отсутствует

</font></h2>

<%}(!month_period.equals("x")){ %>

<h2 align="center">Информация за &nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp; года о кредитовых ведомствах.

<br><font align="center">Итог по дорогам России отсутствует

</font></h2>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<% }

}{(month_period.equals("x")){ %>

<h2 align="center" style="font-size: 18pt">Информация о кредитовых ведомствах.

<br><font align="center">Итог по дорогам России за период с&nbsp;<%=begin_data%>&nbsp;по &nbsp;<%=end_data%>&nbsp;

</font>

<% }(!month_period.equals("x")){%>

<h2 align="center" style="font-size: 18pt">Информация о кредитовых ведомствах.

<br><font align="center">Итог по дорогам России за &nbsp;<%=month_period%>&nbsp;<%=year_period%>&nbsp;года

</font>

<%} %>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font> </h2>

<br><br>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%} %>

<Table border="1">

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%} else{ %>

<tr>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<%} %>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<tr>

<th>

<th>

</tr>

<%} %>

<logic:iterate id="tableRowAll" name="tableRowsAll" indexId="i" >

<tr>

<%if (min_query.equals("ЛЮБОЙ")){ %>

<td>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

</Table>

<%

}(countRowsAll>0){

%>

<br>

<div>

<input type="button" name="sendEx" value="Передать в Excel" onclick="doSendEx()"></div>

<%} %>

</html:form>

</Body>

</html>_not.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<%ust = "";agent = "";per = "";dor = "";dor_query = "";= (String)session.getAttribute("agent");= (String)session.getAttribute("per");= (String)session.getAttribute("ust");= (String)session.getAttribute("dor");_query = (String)session.getAttribute("dor_query");

%>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<% if (ust.equals("all_set") && ((agent.equals("**") || (per.equals("**"))))) {(agent.equals("**") && !per.equals("**")) {

%>

<h1 align="center" style="font-size: 14pt">Невозможен выбор детализации по агентам при просмотре всех дорог сети!</h1>

<% }(per.equals("**") && !agent.equals("**")){ %>

<h1 align="center" style="font-size: 14pt">Невозможен выбор детализации по перевозчику при просмотре всех дорог сети!</h1>

<%}

}(ust.equals("all_set") && agent.equals("**") && per.equals("**")) {

%>

<h1 align="center" style="font-size: 14pt">Невозможен выбор детализации по перевозчику и агенту при просмотре всех дорог сети!</h1>

<%}(ust.equals("dor") && dor.equals("*") && agent.equals("**") && per.equals("**")) {

%>

<h1 align="center" style="font-size: 14pt">Невозможен выбор детализации по перевозчику и агенту при просмотре суммы по дорогам России!</h1>

<%}(ust.equals("dor") && !dor.equals("*") && agent.equals("**") && per.equals("**")) {

%>

<h1 align="center" style="font-size: 14pt">Невозможен выбор детализации по перевозчику и агенту при просмотре информации по дороге&nbsp;<%=dor_query%>!</h1>

<%} %>

</body>

</html>_not_null.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@page language="java" contentType="text/html; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<body bgcolor="white">

<a href="/express3/">Вернуться на страницу "Экспресс-3"</a>&nbsp;|&nbsp;

<a href="/armpp/">Главная страница АРМа</a>&nbsp;|&nbsp;

<a href="index3.jsp">Назад</a><br/><br/>

<center>

<h1 align="center" style="font-size: 14pt">Учёт нулевых строк возможен при детализации ведомства!</h1>

</body>

</html>Ex.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>

<%@ page import="voin.Classes.*, java.util.*" %>

<%@ page import="voin.Classes.JDBCConnection"%>

<%@ page import="java.io.*"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.naming.*"%>

<%@page language="java" contentType="application/vnd.ms-excel; charset=Windows-1251"="Windows-1251"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

<META name="GENERATOR" content="IBM Software Development Platform">

<META http-equiv="Content-Style-Type" content="text/css">

<LINK href="theme/Master.css" rel="stylesheet" type="text/css">

<title>Кредитовые ведомства</title>

</HEAD>

<%dor = "";per = "";schet_dataAll = "";ItogSumpdAllS ="";ItogMsumpdAllS = "";ItogKolpasAllS = "";ItogMkolpasAllS = "";ItogSumprAllS = "";ItogMsumprAllS = "";ItogKolprAllS = "";ItogMkolprAllS = "";ItogSumbagAllS = "";ItogMsumbagAllS = "";ItogKolbagAllS = "";ItogMkolbagAllS = "";ItogKomsbvAllS = "";ItogMkomsbvAllS = "";ItogKolvAllS = "";ItogMkolvAllS = "";min_name ="";agent_query = "";per_query = "";min_query = "";nazvl = "";countRowsAll=((ArrayList)session.getAttribute("tableRowsAll")).size();= (String)session.getAttribute("ItogSumpdAllS");= (String)session.getAttribute("ItogMsumpdAllS");= (String)session.getAttribute("ItogKolpasAllS");= (String)session.getAttribute("ItogMkolpasAllS");= (String)session.getAttribute("ItogSumprAllS");= (String)session.getAttribute("ItogMsumprAllS");= (String)session.getAttribute("ItogKolprAllS");= (String)session.getAttribute("ItogMkolprAllS");= (String)session.getAttribute("ItogSumbagAllS");= (String)session.getAttribute("ItogMsumbagAllS");= (String)session.getAttribute("ItogKolbagAllS");= (String)session.getAttribute("ItogMkolbagAllS");= (String)session.getAttribute("ItogKomsbvAllS");= (String)session.getAttribute("ItogMkomsbvAllS");= (String)session.getAttribute("ItogKolvAllS");= (String)session.getAttribute("ItogMkolvAllS");= (String)session.getAttribute("dor");= (String)session.getAttribute("per");_dataAll = (String)session.getAttribute("schet_dataAll");_name = (String)session.getAttribute("min_name");_query = (String)session.getAttribute("agent_query");_query = (String)session.getAttribute("per_query");_query = (String)session.getAttribute("min_query");= (String)session.getAttribute("nazvl");

%>

<script language="JavaScript">onSubmit(objForm){.href="voin.do?reset=false";

}

</script>

<body>

<html:form action="/voin">

<br>

<% if(countRowsAll==0){%>

<h2 align="center">Информация за&nbsp;<%=schet_dataAll%>&nbsp;о кредитовых ведомствах. Итог по дорогам России отсутствует</h2>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<% }

}{ %>

<h2 align="center" style="font-size: 18pt">Информация о кредитовых ведомствах.

<br><font align="center">Итог по дорогам России за&nbsp;<%=schet_dataAll%>&nbsp;

</font>

<br><font color="red" style="font-size: 12pt">(Все денежные суммы показаны в НДЕ: <%=nazvl%>

)</font> </h2>

<br><br>

<%if (!min_query.equals("ЛЮБОЙ") || !per_query.equals("ЛЮБОЙ") || !agent_query.equals("ЛЮБОЙ")) { %>

<h4 align="left" style="font-size: 13pt">Дополнительная информация:</h4>

<%} %>

<%if (!min_query.equals("ЛЮБОЙ")) { %>

<h4 align="left"style="font-size: 10pt">Код ведомства:&nbsp;&nbsp;<%=min_query%>&nbsp;</h4>

<%} if (!per_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код перевозчика:&nbsp;&nbsp;<%=per_query%>&nbsp;</h4>

<%} if (!agent_query.equals("ЛЮБОЙ")) {%>

<h4 align="left"style="font-size: 10pt">Код агента:&nbsp;&nbsp;<%=agent_query%>&nbsp;</h4>

<%} %>

<Table border="1">

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<tr>

<%if (min_query.equals("ЛЮБОЙ")) { %>

<th>

<th>

<%} %>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

<th>

</tr>

<logic:iterate id="tableRowAll" name="tableRowsAll" indexId="i" >

<tr>

<%if (min_query.equals("ЛЮБОЙ")){ %>

<td>

<td>

<%} %>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="oplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="moplata"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumpd"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolpas"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolpr"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="sumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="msumbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolbag"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="komsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkomsbv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="kolv"></bean:write>&nbsp;</TD>

<TD nowrap="nowrap"><bean:write name="tableRowAll" property="mkolv"></bean:write>&nbsp;</TD>

</tr>

</logic:iterate>

</Table>

<%

}

%>

</html:form>

</Body>

</html>_config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<!-- Data Sources -->

<data-sources>

</data-sources>

<!-- Form Beans -->

<form-beans>

<form-bean name="ArmVoinForm" type="voin.Forms.ArmVoinForm">

</form-bean>

</form-beans>

<!-- Global Exceptions -->

<global-exceptions>

</global-exceptions>

<!-- Global Forwards -->

<global-forwards>

</global-forwards>

<!-- Action Mappings -->

<action-mappings>

<action name="ArmVoinForm" path="/voin" type="voin.actions.VoinAction">

<forward name="success" path="/index2.jsp"></forward>

<forward name="success1" path="/index4.jsp"></forward>

<forward name="success_det_dor" path="/det_dor.jsp"></forward>

<forward name="success_f" path="/index2_f.jsp"></forward>

<forward name="success1_f" path="/index4_f.jsp"></forward>

<forward name="success_det_dor_f" path="/det_dor_f.jsp"></forward>

<forward name="success_det_not" path="/det_not.jsp"></forward>

<forward name="failure" path="/error.jsp"></forward>

<forward name="success_not_null_str" path="/success_not_null_str.jsp"></forward>

</action>

<action path="/start" type="voin.actions.StartAction">

<forward name="success" path="/index3.jsp"></forward>

<forward name="failure" path="/error.jsp"></forward>

</action>

</action-mappings>

<!-- Message Resources -->

<message-resources parameter="voin.Resources.ApplicationResources"/>

</struts-config>

Приложение G

 

Руководство пользователей по работе с системой контроля процессов обслуживания кредитовых ведомств ОАО «РЖД»

Автоматизированная система контроля процессов обслуживания кредитовых ведомств ОАО «РЖД» предназначена для просмотра информации о дорожных счётчиках и запускается, набрав в адресной строке браузера <http://10.17.192.226:8000/dohodv> или же <http://10.17.192.226:8000/express3> - АРМ «Информация о пунктах продажи и терминалах» - «Кредитовые ведомства». Используются данные таблицы «Информация о счётчиках» (DOHODV).

Здесь пользователю предоставляется возможность выбрать из всплывающих списков необходимые параметры. При нажатии кнопки «Выполнить запрос» будет выведена результирующая таблица.

.1. Полями, обязательными для заполнения, являются:

1) дата или интервал дат,

) дорога (или вся сеть)

1.2. При вводе даты пользователю предоставлены 4 возможности:

·  задать день, месяц и год;

·        выбрать отчётную дату (вчерашнюю дату);

·        задать интервал дней (пятидневку), месяц и год;

·        задать месяц и год.

.3. При выборе дороги пользователю предоставлены 3 возможности:

) все дороги сети (выдача информации о счётчиках с разбивкой по дорогам и ведомствам).

) выбор определённой дороги из приведённого списка (выдача информации о дорожных счётчиках по выбранной дороге с разбивкой по ведомствам);

) сумма по дорогам России (выдача итоговой суммы счётчиков по всем дорогам России по всем ведомствам).

.1. Полями, необязательными для заполнения, являются:

) код агента,

) код перевозчика,

) кредитовое ведомство.

.2. При выборе из всплывающего списка полей код агента и код перевозчика параметра «* Детализация» позволит пользователю просмотреть информацию об определённой дороге или сумме по дорогам России с разбивкой по ведомствам и агентам или перевозчикам соответственно.

.3.При заполнении необязательных полей информация будет выведена пользователю в результирующей таблице.

.4. В конце каждой таблицы, содержащей результирующую информацию по дорожным счётчикам кредитовых ведомств, имеется кнопка «Передать в Excel». При нажатии на неё будет проводиться автоматический импорт данных и будет формироваться отчёт с полученными данными в формате Excel-таблицы.

3.1.   Использование ссылок:

·  «Вернуться на страницу «Экспресс-3»» - переход на страницу автоматизированной системы управления пассажирскими перевозками АСУ «Экспресс - 3»;

·        «Главная страница АРМа» - переход на главную страницу АРМа «Пункт продажи»;

·        «Назад» - переход на главную страницу приложения;

·        «инструкция» - вывод руководства пользователя.

.1. Учитывается контроль доступа по дорогам для пользователей:

·   администратор (доступна информация по всем дорогам),

·        пользователь с доступом по всем дорогам России (сетевой уровень, т.е. в приведённом списке будут выведены только дороги России),

·        пользователь с доступом к определённой дороге (в приведённом списке будет выведена только та дорога, к которой пользователь имеет доступ)

.2. Учитывается контроль доступа по кодам агентов и перевозчиков для пользователей:

·  администратор (доступна информация по всем кодам агентов и перевозчиков),

·  пользователь с доступом к определенному коду перевозчика (в приведённом списке будет выведен единственный код перевозчика, доступ к которому имеет пользователь),

·        пользователь с доступом к определённому коду агента (в приведённом списке будет выведен единственный код агента, доступ к которому имеет пользователь),

·        пользователь с доступом к определённым кодам агента и перевозчика (в приведённых списках будут выведены код агента и код перевозчика, доступ к которым имеет пользователь соответственно).

Похожие работы на - Разработка автоматизированной системы контроля процессов обслуживания кредитовых ведомств ОАО 'РЖД'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!