Технология и средства разработки Java-приложений с использованием XML-описаний экранных форм

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.08.2011
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

При эксплуатации эвакуационных путей и выходов запрещается:

- загромождать эвакуационные пути и выходы (в том числе проходы, коридоры, тамбуры, галереи, лифтовые холлы, лестничные площадки, марши лестниц, двери, эвакуационные люки) различными материалами, изделиями, оборудованием, производственными отходами, мусором и другими предметами, а также забивать двери эвакуационных выходов;

- устраивать в тамбурах выходов (за исключением квартир и индивидуальных жилых домов) сушилки и вешалки для одежды, гардеробы, а также хранить (в том числе временно) инвентарь и материалы;

- устраивать на путях эвакуации пороги (за исключением порогов в дверных проемах), раздвижные и подъемно-опускные двери и ворота, вращающиеся двери и турникеты, а также другие устройства, препятствующие свободной эвакуации людей;

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

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

- остеклять или закрывать жалюзи воздушных зон в незадымляемых лестничных клетках;

- заменять армированное стекло обычным в остеклениях дверей.

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

11) Запрещается эксплуатация электронагревательных приборов при отсутствии или неисправности терморегуляторов, предусмотренных конструкцией.

4.6 Требования к интерфейсу

Программное обеспечение играет важную роль в обеспечении безопасности жизнедеятельности. Хороший интерфейс человек-компьютер, дружественность программы и удобство работы с ней во многом является залогом успешной и долгой работы пользователя, сохранения его здоровья. Это позволяет исключить возможные ошибки, нервные срывы и различные заболевания. Очень большое значение имеет то, в каких программных оболочках работает программа, как организован ввод исходных данных (клавиатура, встроенные базы данных, речевая связь и т. д.) и вывод результатов, режим ввода (диалоговый, форматный или бесформатный, табличный и др.), время, затрачиваемое на ввод, решение задачи и просмотр ее результатов, наличие звукового сопровождения при работе программы, подсказок [16].

Так как редактор экранных форм имеет в своём составе пользовательский интерфейс между, то на пользователя оказывают влияние такие факторы как цвет элементов изображения, цветовая контрастность и размер выводимых на экран символов. Данные параметры определяются техническими возможностями видеомонитора и соответствующими ГОСТами и санитарными нормами и правилами. Выбор цветов и размеров элементом изображения, а также их особенности (мерцание, повышенная или пониженная яркость и т.п.) зависят от разработчиков программного обеспечения. Интерфейс программы, представляет собой интерфейс окон, в которых осуществляется представление или обработка той или иной информации. Данные окна имеют стандартный интерфейс Windows 9x, 2006, XP и т.д. (в зависимости от установленной у пользователя операционной системы). Настройка его на потребности конкретного пользователя осуществляется при помощи Windows-средств и путем изменения параметров самих окон. В разработанных окнах все элементы имеют стандартный размер, цвет и шрифт, что способствует облегчению их восприятия. Можно сделать вывод, что интерфейс программы соответствует современным требованиям, предъявляемым к графическим интерфейсам.

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

1. Минимального рабочего усилия: минимальность затрат ресурсов со стороны пользователя. Человек-оператор должен выполнять только необходимую работу, должны исключаться повторения одних и тех же действий, возникающих, например, при вводе данных. Должно быть исключено дублирование работы.

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

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

Редактор экранных форм использует простой и интуитивно понятный интерфейс.

3. Минимального объёма оперативной памяти пользователя. От пользователя требуется, чтобы он запоминал минимум информации как текущей, так и общей. Поскольку скорость переработки информации оператором и его пропускная способность существенно ограничены.

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

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

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

5. Учёта профессиональных навыков пользователя.

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

4.7 Вывод

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

5 ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

5.1 Концепция

Данный дипломный проект посвящён разработке технологий и средств проектирования и реализации клиентских Java-приложений, построенных с использованием XML-описаний экранных форм.

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

· легкость построения экранных форм

· быстрое изменение интерфейса клиентского приложения

· изменение интерфейса без перекомпиляции всего приложения

Разрабатываемые технологии и средства отличаются от аналогичных технологий и средств. Основными достоинствами являются:

· разделение описания пользовательского интерфейса и бизнес-процессов;

· использование файлов с описанием экранных форм;

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

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

· разработчик не должен знать технологию обработки событий;

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

5.2 Краткое техническое описание проекта

Основой разрабатываемой технологии построения Java-приложения является использование XML-документа в качестве описания экранной формы. В этом случае общая архитектура клиентского Java-приложения может быть представлена следующим образом (рисунок 5.2.1):

Размещено на http://www.allbest.ru/

5

Рис. 5.2.1

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

Преимуществами данной архитектуры являются:

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

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

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

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

5.3 Определение стоимости разработки системы

Стоимость разработки системы определяется по фактическим затратам, произведенным за счет собственных финансовых средств [15].

5.3.1 Определение трудоёмкости проведённых работ

В основе определения стоимости разработки лежит перечень проведённых работ и трудоемкость их выполнения (таблица 5.3.1.1).

Таблица 5.3.1.1

Перечень работ и их трудоёмкость

Наименование работ:

Трудоёмкость, человеко-дни

Инженер

Руководитель

1

Разработка технического задания

4

2

2

Поиск уже существующих систем и их анализ

5

1

3

Разработка методов решения задачи

7

2

4

Изучение технических материалов и литературы

30

3

5

Построение архитектуры

5

2

6

Разработка программы

30

15

7

Тестирование

5

3

8

Устранение недостатков

5

1

9

Подготовка документации

7

3

10

Сдача проекта.

1

1

Итого:

99

33

Все работы выполняются последовательно. Это можно видеть на сетевом графике (рис. 5.3.1.1)

Размещено на http://www.allbest.ru/

5

Рис. 5.3.1.1

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

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

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

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

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

· отчисления на социальные нужды;

· расходы на служебные командировки;

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

· прочие прямые затраты;

· накладные расходы.

5.3.2 Определение расходов по статье Материалы

Стоимость основных и вспомогательных расходных материалов, покупных полуфабрикатов и комплектующих изделий, необходимых для выполнения разработки, определяется исходя из величины их расхода, действующих цен и транспортно-заготовительных расходов (таблица 5.3.2.1). Величина транспортно-заготовительных расходов принимается равной 7-10% стоимости материалов, полуфабрикатов и комплектующих изделий.

Таблица 5.3.2.1

Расходы по статье Материалы

Материалы

Кол-во

Цена (руб.)

Картридж для принтера (штук).

1

950

Техническая литература (книг).

3

385

Бумага А4 (упаковок).

2

153

Итого:

1488

Транспортные заготовительные расходы (9%)

133,92

Всего:

1621,92

5.3.3 Расходы на служебные командировки

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

5.3.4 Расходы по статье Услуги сторонних организаций

Расходы на услуги по предоставлению доступа в сеть Интернет, за весь период работы над проектом, составили 140 рублей.

5.3.5 Расчёт основной и дополнительной заработной платы разработчиков и других расходов

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

· Трудоёмкость работы, выполненной руководителем - Тр = 33;

· Трудоёмкость работы, выполненной инженером - Ти = 99;

· Дневная ставка руководителя - ДСр = 90 р.;

· Дневная ставка инженера - ДСи = 60 р.;

· Дополнительная заработная плата - ДЗП = 12%;

· Ставка социального налога (%) - ССН = 26,2%;

· Накладные расходы - КНР = 30% (на основании правил расчета принятых в ОАО НИЦ СПбГЭТУ);

Расчёт основной заработной платы (СОЗ) разработчиков производится по формуле:

СОЗ = Тр. * ДCр + Ти * ДCи (5.1)

СОЗ = 33*90+99*60 = 8910 р.

Расчет дополнительной заработной платы ДЗП = 12%:

СДЗ = 8910 * 0.12 = 1069.20 р.

Расчёт отчислений на социальные нужды (ССН) производится по формуле:

ССН = (СОЗ + СДЗ) * ССН (5.2)

ССН = (8910 +1069.20) * 0.262 = 2614,55 р.

Расчёт накладных расходов производится по формуле:

СНР = (СОЗ + СДЗ) * КНР (5.3)

СНР = (8910 +1069.20) * 0.3 = 2993,76 р.

5.3.6 Отчисление на амортизацию

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

САМ = ЦОБ * ССИ / РНС, (5.4)

где ЦОБ цена использованного оборудования,

ССИ - срок использования оборудования,

РНС нормативный срок использования оборудования (таблица 5.3.6.1).

Таблица 5.3.6.1 - Исходные данные для расчёта амортизации

Название оборудования

Цена, р.

Нормативный срок использования оборудования

Срок использования

оборудования

ПЭВМ IBM PC

20 000

3 года

1 год

Амортизационные отчисления равны:

САМ = 20000 * 1/3 = 6666 р.

5.3.7 Расчёт полной себестоимости разработки

На основании приведённых выше расчётов получаем себестоимость проекта в размере 34946,23 р. (таблица 5.3.7.1).

Таблица 5.3.7.1

Общая себестоимость проекта

Статья затрат

Сумма, р.

Материалы, с учётом транспортно-заготовительных расходов

1621,92

Услуги сторонних организаций

140

Основная заработная плата разработчиков

8910

Служебные командировки

12006

Отчисление на социальные нужды

2614,55

Накладные расходы

2993,76

Амортизация оборудования

6666

Итого:

34946,23

5.4 Оценка экономической эффективности

Разработанные технологии и средства проектирования клиентских Java-приложений с интерфейсом пользователя были использованы при разработке подсистемы обеспечения эксплуатации и сервисного обслуживания ГАС «Выборы» для Центральной Избирательной Комиссии Российской Федерации (ПОЭСО ЦИК).

ПОЭСО ЦИК предназначено для автоматизации процессов обеспечения эксплуатации программно-технических средств Государственной автоматизированной системы Российской Федерации “Выборы” и сервисного обслуживания КСА ЦИК, КСА ИКСРФ, КСА ОИК, КСА ТИК, а также деятельности монтажно-технологических организаций по обеспечению эксплуатации и сервисному обслуживанию ГАС “Выборы”.

Предполагается реализовать ПОЭСО ЦИК по цене 760 т.р. в количестве 1 экземпляра Федеральному Центру Информатизации при Центральной Избирательной Комиссии Российской Федерации (ФЦИ ЦИК РФ). Таким образом, прибыль разработчиков оказывается равной 725053,77 руб.

Для оценки экономической эффективности сравним стоимость разработки ПОЭСО ЦИК на основе двух разных технологий: технология описанная в данной дипломной работе и технология создания клиентских Java-приложений с интерфейсом пользователя на основе SpeedJG (WSoftware.de)

Таблица 5.4.1

Сравнение стоимости разработки ПОЭСО ЦИК

Статья затрат

SpeedJG (WSoftware.de)

Описываемая технология

Экономия затрат

Кол-во

Цена

Сумма

Кол-во

Цена

Сумма

Сумма

Покупка и внедрение

Программный комплекс разработки приложения

1

60т

60т

1

36 т.

36 т.

24 т.

База Данных

1

25 т.

25 т.

1

25 т.

25 т.

-

Установка ПК

1

20 т.

20 т.

1

15 т.

15 т.

5 т.

Обучение персонала

1 чел.

50 т.

50 т.

1 чел.

30 т.

30 т.

20 т.

Итого:

155 т.

106 т.

49 т.

Обслуживание

Лицо, обеспечивающее поддержку приложения

1 чел.

Ставка 20 т.

20 т.

1 чел.

Ставка 10 т

10 т.

10 т.

Лицо, обеспечивающее процесс тестирования

1 чел.

Ставка 20 т.

20 т.

1 чел.

Ставка 5 т.

5 т.

15 т.

Итого в месяц:

25 т.

Итого в год:

300 т.

Определим величину инвестиционных затрат на проект:

I = (760т.руб. )* 1копию + 25 т. руб. + 15 т. руб. + 30 т. руб. = 830 т. руб.

Определим величину чистой прибыли от проекта в году:

= 12 мес. * 25 т. руб. = 300 т. руб.

Для оценки экономической эффективности проекта рассчитаем значение показателя рентабельности инвестиций:

ROI = / I = 0,361

Значение ROI меньше 1, значит проект не окупится на первом году использования. Для более точной оценки определим период возврата (срок окупаемости) инвестиций. Зная сумму инвестиций в проект (I = 830 т. руб.) и чистую прибыль от 1 экземпляра в месяц равную 25 т. руб.) можно построить график окупаемости инвестиций (рис. 5.4.1):

Рис. 5.4.1 - График окупаемости инвестиций

Из графика видно, что период окупаемости инвестиций (Ток) составляет чуть более 33 месяцев. Для такой системы период возврата Ток=33 мес. при условии, что ФЦИ ЦИК РФ предполагает использовать ПОЭСО ЦИК как минимум 5-7 лет, делает проект экономически привлекательным.

Следует также учесть:

· с точки зрения разработки и тестирования описываемая технология является более расширяемой и гибкой, чем аналогичные;

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

5.5 Технико-эксплуатационные показатели проекта

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

Таблица 5.5.1

Технико-эксплуатационные показатели проекта

Наименование технико-эксплуатационного параметра продукции

Единица измерения

Проектируемая технология

Наименование (марка) существующей технологии

JEasy (Convergent Business and Software Engineering GmbH)

SpeedJG (WSoftware.de)

Использование Swing компонент

-

да

да

да

Сохранение описания экранных форм в файлы

-

XML

XML

XML

Количество используемых элементов управления

шт.

>100

~50

~20

Количество используемых событий

шт.

>20

~15

~8

Тип создания

-

с помощью визуального редактора

с помощью визуального редактора

с помощью редактора (без визуализации)

Цена

руб.

34946,23

150000

60000

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

Вывод

Проведённые расчёты показали, что понесённые разработчиком затраты составляют 34946,23 р., и чистая прибыль составляет 725053,77 руб. И по стоимости покупки и по стоимости обслуживания данная технология представляется более предпочтительной, чем SpeedJG (WSoftware.de). При использование данной технологии ПОЭСО ЦИК РФ имеет расходы на обслуживание практически в три раза меньше, по сравнению с использованием SpeedJG (WSoftware.de). Следует учесть и такие показатели данной технологии как удобство в обращении, простота в настройке системы и её обслуживании. Поэтому можно сделать вывод, что данная разработка является экономически целесообразной.

ЗАКЛЮЧЕНИЕ

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

В дипломном проекте были выполнены все поставленные задачи.

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

· технология разработки Java-приложения с использованием XML-описаний экранных форм;

· ядро Java-приложения;

· схема XML-описания экранных форм;

· редактор XML-описаний экранных форм.

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

Разработанные в дипломном проекте технология и средства реализации Java-приложений с интерфейсом пользователя были использованы при создании программного комплекса учета программно-технических средств комплекса средств автоматизации Центральной избирательной комиссии Российской Федерации, который входит в состав Государственной автоматизированной системы “Выборы”. Программный комплекс прошел испытания и эксплуатируется в Федеральном центре информации при Центральной избирательной комиссии Российской Федерации. Интерфейс пользователя программного комплекса включает в себя 84 экранные формы. Экранные формы разработаны с помощью редактора XML-описаний экранных форм. Использование предложенных в дипломном проекте технологии, ядра Java-приложения и редактора экранных форм позволило сократить время разработки пользовательского интерфейса до 840 человеко-часов (оценочное значение трудоемкости при использовании других технологий от 2016 до 1260 человеко-часов).

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Применение UML и шаблонов проектирования.: Пер. с англ.: Уч. пос. - М.: Издательский дом «Вильямс», 2007. - 496 с.: ил. - Парал. тит. англ.

2. Ноутон П., Шилдт Г. Java™ 2: Наиболее полное руководство, 3-е издание: Пер. с англ. - СПб.: «БХВ-Петербург», 2008 - 1072 с.: ил.

3. Леонтьев А. Самоучитель UML. - СПб.: БХВ-Петербург, 2002. - 304с.: ил.

4. Фаулер М., Скотт К. Основы UML. Применение стандартного объектного языка моделирования, 2007г. - 208 с.

5. Фаулер М. Рефакторинг: улучшение существующего кода. - Пер. с англ. - Спб: Символ-Плюс, 2008. - 432 с., ил.

6. Элиенс. А. Принципы объектно-ориентированной разработки программ. 2-е издание.: Пер. с англ. - М.: Издательский дом “Вильямс”, 2007. - 496 с. ил.

7. Буч Г. Объектно-ориентированный анализ и проектирование. 2-е издание.: Пер. с англ. - М.: «Издательство Бином», СПб.: «Невский диалект», 2007. - 560 с., ил.

8. Moroney L. “Thin Client Applications Automatically Using XML”: www.devx.com/xml - The know-how behind application development

9. Рябов А., “DTD: Что в имени твоем?”: www.docs.com.ru

10. McLaughlin B. Java & XML, 2nd edition - O'Reilly, 2007 - 528 c.

11. HTML 4.01 Specification - W3C Recommendation 24 December 2006 -www.w3.org/TR/1999/REC-html401-19991224

12. JEasy - a framework for Java applications using XML: www.jeasy.de

13. SpeedJG - XML based Java Swing GUI Builder: www.wsoftware.de

14. XML - based Swing GUI framework with a visual component builder: www.xmlgui.tigris.org

15. Васильев А.В. Методические указания по технико-экономическому обоснованию дипломных проектов (работ) - СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 2008 - 32 с.

16. Павлов В.Н. Безопасность жизнедеятельности. Методические указания по дипломному проектированию - СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 2007 - 52 с.

ПРИЛОЖЕНИЕ А

DTD схема XML-документа описания экранных форм

<?xml version="1.0" encoding="windows-1251" ?>

<!ELEMENT settings ( model, view, controller ) >

<!ATTLIST settings form NMTOKEN #REQUIRED >

<!ELEMENT model ( request*, xmldata*, xmltablecolumnmodel*, xmltablemodel*, xmltextfieldmodel*, xmlcomboboxmodel*, xmldateboxmodel*, xmlcheckboxmodel* ) >

<!ELEMENT request ( item, parameter* ) >

<!ATTLIST request user CDATA #IMPLIED >

<!ATTLIST request operation ( insert | list | update | * ) #REQUIRED >

<!ATTLIST request object ( Liana | Supply) #REQUIRED >

<!ATTLIST request name ID #REQUIRED >

<!ATTLIST request type ( java ) #IMPLIED >

<!ATTLIST request from CDATA #IMPLIED >

<!ATTLIST request to CDATA #IMPLIED >

<!ELEMENT item ( parameter+, property+, item* ) >

<!ATTLIST item name NMTOKEN #REQUIRED >

<!ELEMENT property EMPTY >

<!ATTLIST property order NMTOKEN #IMPLIED >

<!ATTLIST property name CDATA #REQUIRED >

<!ATTLIST property alias NMTOKEN #IMPLIED >

<!ATTLIST property func NMTOKEN #IMPLIED >

<!ELEMENT parameter EMPTY >

<!ATTLIST parameter name NMTOKEN #REQUIRED >

<!ATTLIST parameter value CDATA #IMPLIED >

<!ATTLIST parameter in CDATA #IMPLIED >

<!ATTLIST parameter nin CDATA #IMPLIED >

<!ATTLIST parameter ne CDATA #IMPLIED >

<!ATTLIST parameter e CDATA #IMPLIED >

<!ATTLIST parameter se CDATA #IMPLIED >

<!ATTLIST parameter s CDATA #IMPLIED >

<!ATTLIST parameter le CDATA #IMPLIED >

<!ATTLIST parameter l CDATA #IMPLIED >

<!ELEMENT xmldata ( item?, response? ) >

<!ATTLIST xmldata name ID #REQUIRED >

<!ELEMENT response ( item* ) >

<!ELEMENT xmltablecolumnmodel ( column* ) >

<!ATTLIST xmltablecolumnmodel name NMTOKEN #REQUIRED >

<!ELEMENT column EMPTY >

<!ATTLIST column footerformat CDATA #IMPLIED >

<!ATTLIST column format CDATA #IMPLIED >

<!ATTLIST column path CDATA #REQUIRED >

<!ATTLIST column type CDATA #IMPLIED >

<!ATTLIST column header CDATA #REQUIRED >

<!ELEMENT xmltablemodel ( row ) >

<!ATTLIST xmltablemodel name NMTOKEN #REQUIRED >

<!ATTLIST xmltablemodel datamodel NMTOKEN #REQUIRED >

<!ATTLIST xmltablemodel columnmodel NMTOKEN #REQUIRED >

<!ATTLIST xmltablemodel tablename CDATA #IMPLIED >

<!ELEMENT row EMPTY >

<!ATTLIST row path CDATA #REQUIRED >

<!ATTLIST row id CDATA #REQUIRED >

<!ELEMENT validator EMPTY >

<!ATTLIST validator type NMTOKEN #IMPLIED >

<!ATTLIST validator length NMTOKEN #IMPLIED >

<!ATTLIST validator description CDATA #IMPLIED >

<!ATTLIST validator value NMTOKEN #IMPLIED >

<!ATTLIST validator compare NMTOKEN #IMPLIED >

<!ATTLIST validator notnull NMTOKEN #IMPLIED >

<!ELEMENT xmltextfieldmodel ( validator? ) >

<!ATTLIST xmltextfieldmodel name ID #REQUIRED >

<!ATTLIST xmltextfieldmodel enablechanging NMTOKEN #IMPLIED >

<!ATTLIST xmltextfieldmodel path CDATA #REQUIRED >

<!ATTLIST xmltextfieldmodel datamodel CDATA #REQUIRED >

<!ELEMENT xmlcomboboxmodel ( validator? ) >

<!ATTLIST xmlcomboboxmodel valuesmodel NMTOKEN #REQUIRED >

<!ATTLIST xmlcomboboxmodel name NMTOKEN #REQUIRED >

<!ATTLIST xmlcomboboxmodel valuepath CDATA #REQUIRED >

<!ATTLIST xmlcomboboxmodel datamodel NMTOKEN #REQUIRED >

<!ATTLIST xmlcomboboxmodel idpath CDATA #REQUIRED >

<!ELEMENT xmldateboxmodel ( validator? ) >

<!ATTLIST xmldateboxmodel name NMTOKEN #REQUIRED >

<!ATTLIST xmldateboxmodel enablechanging NMTOKEN #REQUIRED >

<!ATTLIST xmldateboxmodel path CDATA #REQUIRED >

<!ATTLIST xmldateboxmodel datamodel NMTOKEN #REQUIRED >

<!ELEMENT xmlcheckboxmodel ( validator? ) >

<!ATTLIST xmlcheckboxmodel name NMTOKEN #REQUIRED >

<!ATTLIST xmlcheckboxmodel path CDATA #REQUIRED >

<!ATTLIST xmlcheckboxmodel datamodel NMTOKEN #REQUIRED >

<!ATTLIST xmlcheckboxmodel enablechanging NMTOKEN #REQUIRED

>

<!ELEMENT view ( jinternalframe ) >

<!ELEMENT jinternalframe ( jpanel* ) >

<!ATTLIST jinternalframe name NMTOKEN #REQUIRED >

<!ATTLIST jinternalframe resizable NMTOKEN #REQUIRED >

<!ATTLIST jinternalframe closable NMTOKEN #REQUIRED >

<!ATTLIST jinternalframe maximizable NMTOKEN #REQUIRED >

<!ATTLIST jinternalframe iconifiable NMTOKEN #REQUIRED >

<!ATTLIST jinternalframe title CDATA #REQUIRED >

<!ENTITY jcomponent "jpanel*, jbutton*, jtextfield*, jpasswordfield*,

jtextarea*, jlabel*, jdatebox*, jspinner*, jcombobox*, jcheckbox*,

jtabbedpane*, jscrollpane*, jtable*, advancedscrollpane*, advancedtable*,

jtree*, jsplitpane*">

<!ELEMENT jpanel (titledborder?, componentlayout?, %jcomponent; ) >

<!ATTLIST jpanel name CDATA #REQUIRED >

<!ATTLIST jpanel bounds CDATA #IMPLIED >

<!ELEMENT componentlayout EMPTY >

<!ELEMENT titledborder EMPTY >

<!ATTLIST titledborder type NMTOKEN #FIXED "etched" >

<!ATTLIST titledborder title CDATA #FIXED "" >

<!ELEMENT jbutton EMPTY >

<!ATTLIST jbutton name NMTOKEN #REQUIRED >

<!ATTLIST jbutton bounds CDATA #REQUIRED >

<!ATTLIST jtextfield enable ( false | true ) #IMPLIED >

<!ATTLIST jbutton text NMTOKEN #REQUIRED >

<!ELEMENT jtextfield EMPTY >

<!ATTLIST jtextfield model ID #REQUIRED >

<!ATTLIST jtextfield name NMTOKEN #REQUIRED >

<!ATTLIST jtextfield editable ( false | true ) #IMPLIED >

<!ATTLIST jtextfield bounds CDATA #REQUIRED >

<!ELEMENT jpasswordfield EMPTY >

<!ATTLIST jpasswordfield model ID #REQUIRED >

<!ATTLIST jpasswordfield name NMTOKEN #REQUIRED >

<!ATTLIST jpasswordfield editable ( false | true ) #IMPLIED >

<!ATTLIST jpasswordfield bounds CDATA #REQUIRED >

<!ELEMENT jtextarea EMPTY >

<!ATTLIST jtextarea model ID #REQUIRED >

<!ATTLIST jtextarea name NMTOKEN #REQUIRED >

<!ATTLIST jtextarea editable ( false | true ) #IMPLIED >

<!ATTLIST jtextarea bounds CDATA #REQUIRED >

<!ELEMENT jlabel EMPTY >

<!ATTLIST jlabel name ID #REQUIRED >

<!ATTLIST jlabel bounds CDATA #REQUIRED >

<!ATTLIST jlabel text CDATA #REQUIRED >

<!ELEMENT jdatebox EMPTY >

<!ATTLIST jdatebox tooltiptext CDATA #REQUIRED >

<!ATTLIST jdatebox displaymask NMTOKEN #REQUIRED >

<!ATTLIST jdatebox model NMTOKEN #REQUIRED >

<!ATTLIST jdatebox name NMTOKEN #REQUIRED >

<!ATTLIST jdatebox bounds CDATA #REQUIRED >

<!ELEMENT jspinner EMPTY >

<!ATTLIST jspinner name NMTOKEN #REQUIRED >

<!ATTLIST jspinner background CDATA #REQUIRED >

<!ATTLIST jspinner bounds CDATA #REQUIRED >

<!ELEMENT jcombobox EMPTY >

<!ATTLIST jcombobox tooltiptext CDATA #REQUIRED >

<!ATTLIST jcombobox model NMTOKEN #REQUIRED >

<!ATTLIST jcombobox name NMTOKEN #REQUIRED >

<!ATTLIST jcombobox bounds CDATA #REQUIRED >

<!ELEMENT jcheckbox EMPTY >

<!ATTLIST jcheckbox model NMTOKEN #REQUIRED >

<!ATTLIST jcheckbox name NMTOKEN #REQUIRED >

<!ATTLIST jcheckbox bounds CDATA #REQUIRED >

<!ATTLIST jcheckbox text CDATA #REQUIRED >

<!ELEMENT jtabbedpane ( componentlayout?, %jcomponent; ) >

<!ATTLIST jtabbedpane name NMTOKEN #REQUIRED >

<!ATTLIST jtabbedpane bounds CDATA #REQUIRED >

<!ELEMENT advancedscrollpane ( advancedtable ) >

<!ATTLIST advancedscrollpane name NMTOKEN #REQUIRED >

<!ATTLIST advancedscrollpane bounds CDATA #REQUIRED >

<!ELEMENT advancedtable EMPTY >

<!ATTLIST advancedtable model NMTOKEN #REQUIRED >

<!ATTLIST advancedtable name NMTOKEN #REQUIRED >

<!ATTLIST advancedtable footerallowed NMTOKEN #IMPLIED >

<!ELEMENT jscrollpane ( componentlayout?, %jcomponent; ) >

<!ATTLIST jscrollpane name NMTOKEN #REQUIRED >

<!ATTLIST jscrollpane bounds CDATA #REQUIRED >

<!ELEMENT jtable EMPTY >

<!ATTLIST jtable model NMTOKEN #REQUIRED >

<!ATTLIST jtable name NMTOKEN #REQUIRED >

<!ELEMENT jtree EMPTY >

<!ATTLIST jtree model NMTOKEN #REQUIRED >

<!ATTLIST jtree name NMTOKEN #REQUIRED >

<!ELEMENT jsplitpane ( componentlayout?, &jcomponent; ) >

<!ATTLIST jsplitpane dividerlocation NMTOKEN #REQUIRED >

<!ATTLIST jsplitpane rightcomponent NMTOKEN #REQUIRED >

<!ATTLIST jsplitpane name NMTOKEN #REQUIRED >

<!ATTLIST jsplitpane leftcomponent NMTOKEN #REQUIRED >

<!ELEMENT controller ( &controllers; ) >

<!ENTITY controllers "internalframecontroller*, mousecontroller*, buttoncontroller*, windowcontroller*, itemcontroller*, actioncontroller*, adjustmentcontroller*, changecontroller*, treeselectioncontroller*, treechangecontroller*, treeexpansioncontroller*, tableselectioncontroller*, tablechangecontroller*, textchangecontroller*, mouseheadercontroller*, keycontroller*, startupcontroller*" >

<!ELEMENT depends EMPTY >

<!ATTLIST depends name NMTOKEN #REQUIRED >

<!ATTLIST depends type ( before | after ) #REQUIRED >

<!ELEMENT internalframecontroller ( depends* ) >

<!ATTLIST internalframecontroller name NMTOKEN #REQUIRED >

<!ATTLIST internalframecontroller object NMTOKEN #REQUIRED >

<!ATTLIST internalframecontroller handler NMTOKEN #IMPLIED >

<!ATTLIST internalframecontroller synchronize NMTOKEN #IMPLIED >

<!ATTLIST internalframecontroller type NMTOKEN #IMPLIED >

<!ELEMENT mousecontroller ( parameter*, depends* ) >

<!ATTLIST mousecontroller name NMTOKEN #REQUIRED >

<!ATTLIST mousecontroller object NMTOKEN #REQUIRED >

<!ATTLIST mousecontroller handler NMTOKEN #IMPLIED >

<!ATTLIST mousecontroller type NMTOKEN #IMPLIED >

<!ATTLIST mousecontroller clickcount NMTOKEN #IMPLIED >

<!ELEMENT buttoncontroller ( parameter*, depends* ) >

<!ATTLIST buttoncontroller name NMTOKEN #REQUIRED >

<!ATTLIST buttoncontroller object NMTOKEN #REQUIRED >

<!ATTLIST buttoncontroller handler NMTOKEN #IMPLIED >

<!ELEMENT windowcontroller ( parameter*, depends* ) >

<!ATTLIST windowcontroller name NMTOKEN #REQUIRED >

<!ATTLIST windowcontroller object NMTOKEN #REQUIRED >

<!ATTLIST windowcontroller handler NMTOKEN #IMPLIED >

<!ATTLIST windowcontroller synchronize NMTOKEN #IMPLIED >

<!ATTLIST windowcontroller type NMTOKEN #IMPLIED >

<!ELEMENT itemcontroller ( parameter*, depends* ) >

<!ATTLIST itemcontroller name NMTOKEN #REQUIRED >

<!ATTLIST itemcontroller object NMTOKEN #REQUIRED >

<!ATTLIST itemcontroller handler NMTOKEN #IMPLIED >

<!ELEMENT actioncontroller ( parameter*, depends* ) >

<!ATTLIST actioncontroller name NMTOKEN #REQUIRED >

<!ATTLIST actioncontroller handler NMTOKEN #IMPLIED >

<!ELEMENT adjustmentcontroller ( parameter*, depends* ) >

<!ATTLIST adjustmentcontroller name NMTOKEN #REQUIRED >

<!ATTLIST adjustmentcontroller object NMTOKEN #REQUIRED >

<!ATTLIST adjustmentcontroller handler NMTOKEN #IMPLIED >

<!ELEMENT changecontroller ( parameter*, depends* ) >

<!ATTLIST changecontroller name NMTOKEN #REQUIRED >

<!ATTLIST changecontroller object NMTOKEN #REQUIRED >

<!ATTLIST changecontroller handler NMTOKEN #IMPLIED >

<!ELEMENT treeselectioncontroller ( parameter*, depends* ) >

<!ATTLIST treeselectioncontroller name NMTOKEN #REQUIRED >

<!ATTLIST treeselectioncontroller object NMTOKEN #REQUIRED >

<!ATTLIST treeselectioncontroller handler NMTOKEN #IMPLIED >

<!ELEMENT treechangecontroller ( parameter*, depends* ) >

<!ATTLIST treechangecontroller name NMTOKEN #REQUIRED >

<!ATTLIST treechangecontroller object NMTOKEN #REQUIRED >

<!ATTLIST treechangecontroller handler NMTOKEN #IMPLIED >

<!ELEMENT treeexpansioncontroller ( parameter*, depends* ) >

<!ATTLIST treeexpansioncontroller name NMTOKEN #REQUIRED >

<!ATTLIST treeexpansioncontroller object NMTOKEN #REQUIRED >

<!ATTLIST treeexpansioncontroller handler NMTOKEN #IMPLIED >

<!ATTLIST treeexpansioncontroller type NMTOKEN #REQUIRED >

<!ELEMENT tableselectioncontroller ( parameter*, depends* ) >

<!ATTLIST tableselectioncontroller name NMTOKEN #REQUIRED >

<!ATTLIST tableselectioncontroller object NMTOKEN #REQUIRED >

<!ATTLIST tableselectioncontroller handler NMTOKEN #IMPLIED >

<!ELEMENT tablechangecontroller ( parameter*, depends* ) >

<!ATTLIST tablechangecontroller name NMTOKEN #REQUIRED >

<!ATTLIST tablechangecontroller object NMTOKEN #REQUIRED >

<!ATTLIST tablechangecontroller handler NMTOKEN #IMPLIED >

<!ELEMENT textchangecontroller ( parameter*, depends* ) >

<!ATTLIST textchangecontroller name NMTOKEN #REQUIRED >

<!ATTLIST textchangecontroller object NMTOKEN #REQUIRED >

<!ATTLIST textchangecontroller handler NMTOKEN #IMPLIED >

<!ELEMENT mouseheadercontroller ( parameter*, depends* ) >

<!ATTLIST mouseheadercontroller name NMTOKEN #REQUIRED >

<!ATTLIST mouseheadercontroller object NMTOKEN #REQUIRED >

<!ATTLIST mouseheadercontroller handler NMTOKEN #IMPLIED >

<!ELEMENT keycontroller ( parameter*, depends* ) >

<!ATTLIST keycontroller name NMTOKEN #REQUIRED >

<!ATTLIST keycontroller object NMTOKEN #REQUIRED >

<!ATTLIST keycontroller key NMTOKEN #REQUIRED >

<!ATTLIST keycontroller handler NMTOKEN #IMPLIED >

<!ELEMENT startupcontroller ( parameter*, depends* ) >

<!ATTLIST startupcontroller name NMTOKEN #REQUIRED >

<!ATTLIST startupcontroller object NMTOKEN #REQUIRED >

<!ATTLIST startupcontroller handler NMTOKEN #IMPLIED >ПРИЛОЖЕНИЕ Б

Пример описания экранной формы

<?xml version='1.0' encoding='windows-1251'?>

<!DOCTYPE settings

[

<!ENTITY INDENT '5'>

<!ENTITY FONT ';verdana;0'>

<!ENTITY HEIGHT '22'>

<!ENTITY WIDTH '90'>

<!ENTITY WHITE '0;0;0'>

<!ENTITY BLUE '0;0;255'>

<!ENTITY RED '120;0;0'>

<!ENTITY YELLOW '255;255;206'>

]>

<settings form='FormPTSView.xml'>

<model>

<request name='requestSelectScCik' type='java' object='Supply'

operation='list'>

<item name='sc'>

<property name='scid'/>

<property name='scname'/>

<parameter name='scname' like='СЦ ЦИК'/>

</item>

</request>

<request name='requestSelectList' operation='list' object='supply' type='java'

to='' from=''>

<item name='recptsrow'>

<item name='uch' relation='recptsrowid'>

<item name='uchname' relation='uchnameid'>

<item name='uchtyp' relation='uchtypid'>

<property name='uchtypname'/>

</item>

<property name='uchnamename'/>

<property name='uchtypid'/>

</item>

<item deleted='' name='edizmer' relation='edizmerid'>

<property name='recptsrowizm'/>

</item>

<item name='invnum' relation='invnumid'>

<property name='invnumid'/>

<property name='uchinvnumber'/>

</item>

<property name='uchserialnumber'/>

<property name='uchnameid'/>

</item>

<property name='recptsrowid'/>

<property name='recptsrowcount'/>

<property name='recptsrowcount' alias='lastrecptsrowcount'/>

<property name='recptsrowcenands'/>

<property name='recptsrowcenands' alias='lastrecptsrowcenands'/>

<parameter name='recptsid' e=''/>

</item>

</request>

<request name='requestUpdateRecord' operation='update' object='supply' type='java'>

<item name='recpts'>

<parameter name='recptsid' e=''/>

<parameter name='recptsname' e=''/>

<parameter name='recptsdocnumber' e=''/>

<parameter name='recptsdocdate' e=''/>

<parameter name='recptsdognumber' e=''/>

<parameter name='recptsdogdate' e=''/>

<parameter name='recptsend' e=''/>

<parameter name='recptsinvnum' e=''/>

<parameter name='ordid' e=''/>

<parameter name='orgsid' e=''/>

<parameter name='scid' e=''/>

<property name='recptsid'/>

</item>

</request>

<request name='requestUpdateUchRecPtsRow'

operation='UpdateRecptsrowInUch' object='supply' type='java'>

<parameter name='recptsrowid_old' e=''/>

<parameter name='recptsrowid_new' e=''/>

</request>

<request name='requestDelete' operation='delete' object='supply'

type='java'>

<item name='recptsrow'>

<parameter name='recptsrowid' e=''/>

</item>

</request>

<request name='requestSelectTotal' operation='getTotalRecPts'

object='supply' type='java'>

<parameter name='recptsid' e=''/>

<parameter name='uchserialnumber' like=''/>

<parameter name='uchinvnumber' like=''/>

<parameter name='uchnamename' like=''/>

<parameter name='uchtypname' like=''/>

</request>

<request name='requestUnload' type='java' object='supply' operation='list'>

<item name='recpts'>

<parameter name='recptsid' e=''/>

<property name='recptsid'/>

<property name='recptsdocnumber'/>

<property name='recptsdocdate'/>

<property name='recptsname'/>

<property name='recptsdognumber'/>

<property name='recptsdogdate'/>

<item name='recptsrow' relation='recptsid'>

<property name='recptsrowcenands'/>

<property name='recptsrowcount'/>

<property name='recptsrowid'/>

<item name='uch' relation='recptsrowid'>

<property name='uchserialnumber'/>

<property name='invnumid'/>

<item name='invnum' relation='invnumid'>

<parameter name='uchinvnumber' e=''/>

<property name='uchinvnumber'/>

</item>

<item name='edizmer' relation='edizmerid' deleted=''>

<property name='recptsrowizm'/>

</item>

<item name='uchname' relation='uchnameid'>

<property name='uchnamename'/>

<item name='uchtyp' relation='uchtypid'>

<property name='uchtypname'/>

</item>

</item>

</item>

</item>

<item name='ord' relation='ordid'>

<property name='ordregnumber'/>

<property name='ordname'/>

</item>

<item name='orgs' relation='orgsid'>

<property name='orgsname'/>

</item>

<item name='sc' relation='scid'>

<property name='scname'/>

</item>

</item>

</request>

<request name='requestUpdateInvnum' type='java' object='supply'

operation='update'>

<item name='recpts'>

<parameter name='recptsid' e=''/>

<parameter name='recptsinvnum' e='1'/>

</item>

</request>

<request name='requestCheckDb' type='java' object='supply'

operation='list'>

<item name='invnum'>

<parameter name='invnumid' ne=''/>

<property name='invnumid'/>

<property name='uchinvnumber'/>

<parameter name='uchinvnumber' e=''/>

</item>

</request>

<request name='requestInsertInvnum' type='java' object='supply'

operation='update'>

<item name='invnum'>

<parameter name='uchinvnumber' e=''/>

<parameter name='invnumid' e=''/>

<property name='invnumid'/>

</item>

</request>

<request name='requestGetRowid' type='java' object='supply'

operation='list'>

<item name='invnum'>

<parameter name='uchinvnumber' e=''/>

<item name='uch' relation='invnumid'>

<property name='recptsrowid'/>

</item>

</item>

</request>

<request name='requestUpdateRow' type='java' object='supply'

operation='update'>

<item name='recptsrow'>

<parameter name='recptsrowid' e=''/>

<parameter name='recptsrowcenands' e=''/>

<parameter name='recptsrowcount' e=''/>

</item>

</request>

<xmldata name='mTotalList'>

<item name='Общий итог' sum='0' count='0'/>

</xmldata>

<xmldata name='mRecord'>

<item recptsname='' recptsdocdate='' orgsid='' ordid='' recptsend=''

orgsname='' ordname='' recptsinvnum='' scid='' scname='' recptsid=''

recptsdocnumber='' recptsdognumber='' ordregnumber='' recptsdogdate=''/>

</xmldata>

<xmldata name='emptyList'>

<item recptsrowizm='' uchnameid='' uchinvnumber='' lastrecptsrowcount=''

uchserialnumber='' uchtypid='' uchtypname='' recptsrowcount=''

uchnamename='' recptsrowid='' recptsrowcenands='' invnumid=''

lastrecptsrowcenands=''/>

</xmldata>

<xmldata name='popUnload'>

<item name='ul' icon='$RESOURCE_BUNDLE:print.button.icon$'

controller='unloadEvent' text='Выгрузить в бухгалтерию'/>

</xmldata>

<xmldata name='popLoad'>

<item name='l' icon='$RESOURCE_BUNDLE:paste.button.icon$'

controller='loadEvent' text='Загрузить инвентарные номера'/>

</xmldata>

<xmldata name='popLoadPrice'>

<item name='l2' icon='$RESOURCE_BUNDLE:open.button.icon$'

controller='loadEvent2' text='Обновить цену/количество'/>

</xmldata>

<xmldata name='mList'/>

<xmltablecolumnmodel name='tableColumnModel1'>

<column header='Серийный номер' clause='равно;содержит'

path='@uchserialnumber'/>

<column header='Инвентарный номер' clause='равно;содержит'

path='@uchinvnumber'/>

<column header='Тип' form='FormUnitTypes' filterattributes='uchtypname'

clause='равно;содержит' path='@uchtypname'/>

<column header='Наименование' form='FormUnitTypes'

filterattributes='uchnamename' clause='равно;содержит'

path='@uchnamename'/>

<column header='Цена с НДС' clause='равно;больше;меньше'

format='@DECIMAL0.2;' path='@recptsrowcenands'/>

<column header='Количество' clause='равно;больше;меньше'

path='@recptsrowcount'/>

<column header='Единица измерения' clause='равно;содержит'

path='@recptsrowizm'/>

</xmltablecolumnmodel>

<xmlfilterdatamodel name='filterModel1'>

<item />

</xmlfilterdatamodel>

<xmltablemodel tablename='Учетные единицы' name='tmList'

datamodel='mList' _filtermodel='filterModel1'

columnmodel='tableColumnModel1'>

<row id='@recptsrowid' path='//item'/>

</xmltablemodel>

<xmltablemodel name='prntModelList' datamodel='prnModelList'

filtermodel='filterModel3' columnmodel='tableColumnModel3'>

<row id='@recptsrowid' path='//item'/>

</xmltablemodel>

<xmlfilterdatamodel name='filterModel3'>

<item/>

</xmlfilterdatamodel>

<xmltablecolumnmodel name='tableColumnModel3'>

<column header='Серийный номер' path='@uchserialnumber'/>

<column header='Инвентарный номер' path='@uchinvnumber'/>

<column header='Тип' path='@uchtypname' form='FormUnitTypes'

filterattributes='uchtypname'/>

<column header='Наименование' form='FormUnitTypes'

filterattributes='uchnamename' path='@uchnamename'/>

<column header='Цена с НДС' path='@recptsrowcenands'/>

<column header='Количество' path='@recptsrowcount'/>

<column header='Стоимость' path='@stoimost'/>

<column header='Единица измерения' path='@recptsrowizm'/>

</xmltablecolumnmodel>

<xmltextfieldmodel name='tfmDocNumber' datamodel='mRecord'

path='//item/@recptsdocnumber'/>

<xmltextfieldmodel name='tfmNazv' datamodel='mRecord'

path='//item/@recptsname'/>

<xmltextfieldmodel name='tfmPost' datamodel='mRecord'

path='//item/@scname'/>

<xmldateboxmodel name='tfmDocData' datamodel='mRecord'

path='//item/@recptsdocdate'/>

</model>

<view>

<jinternalframe name='internalFrame' title='Карточка прихода новых ПТС'

closable='true' resizable='true' iconifiable='false' maximizable='true'>

<jpanel name='root'>

<componentlayout/>

<jpanel bounds='5;5;root.width-10;50' name='pn_uchet'>

<componentlayout/>

<titledborder type='etched'/>

<jlabel name='lblDocNumber' bounds='5;5' text='Номер товарного

документа'/>

<jtextfield name='tfDocNumber' model='tfmDocNumber'

bounds='5;20;lblDocNumber.width;22' tooltiptext='Номер товарного

документа'/>

<jlabel name='lblNazv' bounds='tfDocNumber.right+5;5'

text='Примечание'/>

<jtextfield name='tfNazv' model='tfmNazv'

bounds='tfDocNumber.right+5;20;400;22' tooltiptext='Название товарного

документа'/>

<jlabel name='lblDocData' bounds='tfNazv.right+5;5' text='Дата

документа'/>

<jdatebox name='tfDocData' model='tfmDocData'

displaymask='dd.MM.yyyy'

bounds='tfNazv.right+5;20;lblDocData.width;22' tooltiptext='Дата

документа'/>

<jlabel name='lblPost' bounds='tfDocData.right+5;5' text='Поставщик'/>

<jtextfield name='tfPost' model='tfmPost' editable='false'

bounds='tfDocData.right+5;20;pn_uchet.width-tfND.width-

tfDocData.width-tfDocNumber.width-tfNazv.width-35;22'

tooltiptext='Поставщик' background='&YELLOW;'/>

</jpanel>

<jpanel bounds='5;pn_uchet.bottom;root.width-10;root.height-65'

name='pnNewPtsUchEd'>

<titledborder type='etched' title='Учетные единицы'/>

<componentlayout/>

<advancedscrollpane bounds='7;15;pnNewPtsUchEd.width-

14;pnNewPtsUchEd.height-20-32' name='scrollPane'>

<advancedtable model='tmList' name='tbList'/>

</advancedscrollpane>

<jbutton name='bUnload' text='Выгрузить в бухгалтерию'

bounds='7;scrollPane.bottom+5;200;22'/>

<jbutton name='bLoad' text='Загрузить инвентарные номера'

bounds='bUnload.right+5;scrollPane.bottom+5;200;22'/>

<jbutton name='bLoadPrice' text='Обновить цену/количество'

bounds='bLoad.right+5;scrollPane.bottom+5;200;22'/>

</jpanel>

</jpanel>

</jinternalframe>

</view>

<controller>

<internalframecontroller name='activatedEvent' object='internalFrame'

type='activated' synchronize='false'

handler='com.nic.client.ui.swing.handlers.form.ActivatedFormHandler'>

<depends name='updateWindowMenuEvent' type='after'/>

<depends name='updateToolBarEvent' type='after'/>

</internalframecontroller>

<internalframecontroller name='openedEvent' object='internalFrame'

type='opened' synchronize='false'>

<depends name='initFormEvent' type='after'/>

<depends name='initListEvent' type='after'/>

<depends name='addPopup' type='after'/>

</internalframecontroller>

<actioncontroller name='initFormEvent'

handler='com.nic.client.ui.swing.handlers.form.view.InitFormViewHandler'

>

<parameter name='data.model.list' value='mRecord'/>

</actioncontroller>

<actioncontroller name='initListEvent'

handler='com.nic.client.server.handlers.ExecuteDependRequestHandler'>

<parameter name='request.name' value='requestSelectList'/>

<parameter name='data.model.name' value='mList'/>

</actioncontroller>

<actioncontroller name='_addEvent'

handler='com.nic.client.ui.swing.handlers.table.AddRowHandler'>

<depends name='storeRowByNameEvent' type='before'/>

<depends name='openPTSViewEvent' type='before'/>

<parameter name='table.name' value='tbList'/>

</actioncontroller>

<actioncontroller name='_deleteEvent'

handler='com.nic.poeso.client.handlers.comings.DeleteFormPTSViewHandl

er'>

<parameter name='table.name' value='tbList'/>

<parameter name='request.update.uch.recptsrow.name'

value='requestUpdateUchRecPtsRow'/>


Подобные документы

  • Разработка и использование классов при создании приложений. Использование odbc-технологии для создания внешних представлений. Определение источника данных. Создание удаленного и независимого внешнего представления данных. Управление объектами Excel.

    лабораторная работа [413,9 K], добавлен 14.05.2011

  • Java Runtime Environment - минимальная реализация виртуальной машины, необходимая для исполнения приложений, без компилятора и других средств разработки. Компиляция исходного кода через командную строку. Основные моменты создания игрового 2d-приложения.

    курсовая работа [2,1 M], добавлен 26.04.2014

  • Диаграмма консольного приложения табулирования функции. Отличие консольного приложения и приложения и GUI. Диаграмма классов для JFrameи JPanel. Создание простейшего фрейма в Java. Компоновка элементов интерфейса внутри фрейма. Цикл обработки событий.

    лекция [693,8 K], добавлен 01.05.2014

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

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

    презентация [938,2 K], добавлен 26.10.2013

  • Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.

    реферат [33,2 K], добавлен 16.05.2011

  • Разработка программы-модели в среде "Adamview" для имитации стратегии и наглядной иллюстрации работы программы. Настройка сети; описание эмулятора стратегии и экранных форм интерфейса оператора. Структурная схема распределённой системы управления.

    курсовая работа [2,6 M], добавлен 21.01.2013

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.