Внешний вид
разработано ООО "Айпромес"
<?xml version="1.0" encoding="UTF-8"?> <!--<!DOCTYPE data SYSTEM "ipform.dtd">--> <data default-send-script="Формирование HTML-опросного листа"> <title>Опросный лист по выбору контроллеров ipromes</title> <author>ООО "Айпромес"</author> <lines> <line> <fields> <title> <label>Данные организации-заказчика</label> </title> </fields> </line> <line> <fields> <combo-field id="фс"> <label>Форма собственности</label> <items> <item>Открытое акционерное общество (ОАО)</item> <item>Общество с ограниченной ответственностью (ООО)</item> <item>Закрытое акционерное общество</item> </items> <value>Общество с ограниченной ответственностью (ООО)</value> <description>Форма собственности предприятия (ООО, ЗАО, ОАО)</description> </combo-field> </fields> </line> <line> <fields> <text-field id="п"> <label>Предприятие</label> <value>Ивановский мясоперерабатывающий завод</value> <description>Наименование предприятия (организации)</description> </text-field> </fields> </line> <line> <fields> <text-field id="па"> <label>Почтовый адрес</label> <description>Почтовый индекс и адрес предприятия</description> </text-field> </fields> </line> <line> <fields> <text-field id="тел"> <label>Телефон</label> <description>Телефон секретарской службы организации</description> </text-field> <text-field id="факс"> <label>Факс</label> <description>Номер факса секретарской службы организации</description> </text-field> </fields> </line> <line> <fields> <text-field id="эпочта"> <label>Адрес электронной почты</label> </text-field> <text-field id="сайт"> <label>Web-сайт</label> </text-field> </fields> </line> <line> <fields> <text-field id="окпо"> <label>ОКПО</label> <description> Код по общероссийскому классификатору предприятий (заполнять необязательно) </description> </text-field> <text-field id="окато"> <label>ОКАТО</label> <description> Код по общероссийскому классификатору объектов административно-территориального деления </description> </text-field> </fields> </line> <line> <fields> <text-field id="комментарий"> <label>Дополнительная информация</label> </text-field> </fields> </line> <line> <fields> <radiolist-field id="оп" cols="4"> <label>Область промышленности</label> <items> <item>Нефтехимическая</item> <item>Нефтяная</item> <item>Нефтегазовая</item> <item>Газовая</item> <item>Энергетическая</item> <item>Металлургическая</item> <item>Машиностроительная</item> <item>Приборостроительная</item> <item>Пищевая</item> <item>Водоснабжение</item> <item>Другая</item> </items> </radiolist-field> </fields> </line> <line> <fields> <title> <label> Финансовые данные предприятия-заказчика (для выставления счетов и заключения договоров) </label> </title> </fields> </line> <line> <fields> <text-field id="инн"><label>ИНН</label></text-field> <text-field id="кпп"><label>КПП</label></text-field> </fields> </line> <line> <fields> <text-field id="оквэд"><label>ОКВЭД</label></text-field> <text-field id="бик"><label>БИК</label></text-field> </fields> </line> <line> <fields> <text-field id="рс"><label>Расч. счет</label></text-field> <text-field id="банк"><label>в банке</label></text-field> </fields> </line> <line> <fields> <text-field id="кс"><label>Корр. счет</label></text-field> </fields> </line> <line> <fields> <title> <label>Список оборудования</label> </title> </fields> </line> <line> <fields> <table-field id="табл"> <label>Список оборудования</label> <auto-resize-mode>0</auto-resize-mode> <min-width> 40 90 100 30 80 110 60 130 130 130 100</min-width> <max-width> 40 120 500 50 100 150 85 160 160 170 300</max-width> <pref-width>40 100 100 40 90 130 75 150 150 155 100</pref-width> <editable>false true false true true false true true true true true</editable> <meta> <title>Список приборов</title> <author>ООО "Айпромес"</author> <lines> <line> <fields> <title> <label>Общие данные прибора ipromes</label> </title> </fields> </line> <line> <fields> <int-field id="номер"> <label>№</label> <formula>rowIndex + 1</formula> <properties> <property> <key>visible</key> <bool>false</bool> </property> </properties> </int-field> </fields> </line> <line> <fields> <combo-field id="тип"> <label>Тип прибора</label> <items> <item>ipromes-mailer</item> <item>ipromes-weber</item> <item>ipromes-controller</item> <item>ipromes-messenger</item> </items> </combo-field> <text-field id="шифр"> <label>Шифр</label> <formula> code = "ipromes-"; if (тип.equals("ipromes-mailer")) code += "M"; else if (тип.equals("ipromes-weber")) code += "W"; else if (тип.equals("ipromes-controller")) code += "C"; else if (тип.equals("ipromes-messenger")) code += "S"; if (gps) code += "G"; code += "1"; if (рс.equals("GSM/GPRS/EDGE")) code +="L01"; else if (рс.equals("3G")) code +="L02"; else if (рс.equals("CDMA")) code +="L03"; else if (рс.equals("Wi-Fi")) code +="L04"; else if (рс.equals("WiMAX")) code +="L05"; if (опции.equals("Текстовый дисплей 2x20")) code += "Y01"; else if (опции.equals("Текстовый дисплей 2x20 + клавиатура 2x3")) code += "Y02"; else if (опции.equals("Текстовый дисплей 2x20 + клавиатура 5x5")) code += "Y03"; else if (опции.equals("Текстовый дисплей 4x20 + клавиатура 5x5")) code += "Y04"; else if (опции.equals("Текстовый дисплей 4x20 + клавиатура 5x5 + видеовыход 800x600")) code += "Y05"; else if (опции.equals("Видеовыход 800x600")) code += "Y06"; if (твс.equals("Шлейф")) code += "Z01"; else if (твс.equals("Клеммная колодка")) code += "Z02"; h = new LinkedHashMap(); opts = new String[] { "1 x RS-485", "1 x RS-232", "1 x Ethernet", "2 x Pt100 AI", "4 x 4-20mA/0-5V AI", "4 x 12VDC DI", "2 x 230VAC DI", "4 x 230VAC DO", "4 x 12VDC DO" }; for (String s: opts) h.put(s, 0); for (Object[] os: вв.data) { if (os[1] == null) continue; h.put(os[0], h.get(os[0]) + os[1]); } i = 0; for (int k: h.values()) { i++; if (k @gt 0) code += "X" + i + "" + k; } code </formula> <properties> <property> <key>editable</key> <bool>false</bool> </property> <property> <key>focusable</key> <bool>false</bool> </property> </properties> </text-field> <bool-field id="gps"> <label>GPS</label> </bool-field> </fields> </line> <line> <fields> <spin-int-field id="num" min="1"> <label>Количество</label> <value>1</value> </spin-int-field> <int-field id="цена"> <label>Стоимость (евро)</label> <formula> price = 0; if (тип.equals("ipromes-mailer")) price += 230; else if (тип.equals("ipromes-weber")) price += 575; else if (тип.equals("ipromes-controller")) price += 200; else if (тип.equals("ipromes-messenger")) price += 625; if (gps) price += 40; if (рс.equals("GSM/GPRS/EDGE")) price += 5; else if (рс.equals("3G")) price += 35; else if (рс.equals("CDMA")) price += 5; else if (рс.equals("Wi-Fi")) price += 5; else if (рс.equals("WiMAX")) price += 15; if (опции.equals("Текстовый дисплей 2x20")) price += 10; else if (опции.equals("Текстовый дисплей 2x20 + клавиатура 2x3")) price += 20; else if (опции.equals("Текстовый дисплей 2x20 + клавиатура 5x5")) price += 25; else if (опции.equals("Текстовый дисплей 4x20 + клавиатура 5x5")) price += 35; else if (опции.equals("Текстовый дисплей 4x20 + клавиатура 5x5 + видеовыход 800x600")) price += 150; else if (опции.equals("Видеовыход 800x600")) price += 115; h = new Hashtable(); opts = new String[] { "1 x RS-485", "1 x RS-232", "1 x Ethernet", "2 x Pt100 AI", "4 x 4-20mA/0-5V AI", "4 x 12VDC DI", "2 x 230VAC DI", "4 x 230VAC DO", "4 x 12VDC DO" }; p = new int[] {20, 15, 40, 30, 25, 20, 20, 25, 25}; for (String s: opts) h.put(s, 0); for (Object[] os: вв.data) { if (os[1] == null) continue; h.put(os[0], h.get(os[0]) + os[1]); } for (int i = 0; i @lt opts.length; i++) price += h.get(opts[i]) * p[i]; price </formula> <properties> <property> <key>editable</key> <bool>false</bool> </property> <property> <key>focusable</key> <bool>false</bool> </property> </properties> </int-field> </fields> </line> <line> <fields> <title> <label>Характеристики прибора</label> </title> </fields> </line> <line> <fields> <radiolist-field id="рс" cols="3" other="false"> <label>Тип связи</label> <items> <item>GSM/GPRS</item> <item>GSM/GPRS/EDGE</item> <item>3G</item> <item>CDMA</item> <item>Wi-Fi</item> <item>WiMAX</item> </items> <value>GSM/GPRS</value> </radiolist-field> </fields> </line> <line> <fields> <radiolist-field id="твс" cols="3" other="false"> <label>Тип ввода сигналов</label> <items> <item>Гермовводы</item> <item>Шлейф</item> <item>Клеммная колодка</item> </items> <value>Гермовводы</value> </radiolist-field> </fields> </line> <line> <fields> <combo-field id="опции"> <label>Приборные опции</label> <items> <item>Нет</item> <item>Текстовый дисплей 2x20</item> <item>Текстовый дисплей 2x20 + клавиатура 2x3</item> <item>Текстовый дисплей 2x20 + клавиатура 5x5</item> <item>Текстовый дисплей 4x20 + клавиатура 5x5</item> <item>Текстовый дисплей 4x20 + клавиатура 5x5 + видеовыход 800x600</item> <item>Видеовыход 800x600</item> </items> </combo-field> </fields> </line> <line> <fields> <title> <label>Модули ввода-вывода</label> </title> </fields> </line> <line> <fields> <table-field id="вв"> <label>Модули ввода/вывода</label> <min-width>180 150</min-width> <max-width>220 170</max-width> <pref-width>200 160</pref-width> <editable>true true</editable> <meta> <author>ООО "Айпромес"</author> <title>Модули ввода/вывода</title> <lines> <line> <fields> <combo-field id="тк"> <label>Тип модуля</label> <items> <item>1 x RS-485</item> <item>1 x RS-232</item> <item>1 x Ethernet</item> <item>2 x Pt100 AI</item> <item>4 x 4-20mA/0-5V AI</item> <item>4 x 12VDC DI</item> <item>2 x 230VAC DI</item> <item>4 x 230VAC DO</item> <item>4 x 12VDC DO</item> </items> <properties> <property> <key>maximumRowCount</key> <int>9</int> </property> </properties> </combo-field> </fields> </line> <line> <fields> <spin-int-field id="кол" min="1" max="4"> <label>Количество модулей</label> <value>1</value> </spin-int-field> </fields> </line> <line><fields><separator/></fields></line> </lines> </meta> <properties> <property> <key>preferredSize</key> <script> new Dimension(component.preferredSize.width, 200) </script> </property> </properties> <trigger> h = new Hashtable(); opts = new String[] { "1 x RS-485", "1 x RS-232", "1 x Ethernet", "2 x Pt100 AI", "4 x 4-20mA/0-5V AI", "4 x 12VDC DI", "2 x 230VAC DI", "4 x 230VAC DO", "4 x 12VDC DO" }; for (String s: opts) h.put(s, 0); msg = ""; for (Object[] os: вв.data) { if (os[1] == null) continue; h.put(os[0], h.get(os[0]) + os[1]); } n = 0; for (int k: h.values()) n += k; if (n > 4) msg += "Количество модулей не должно превышать 4\n"; if (!msg.empty) target.errorMessage = msg; </trigger> </table-field> </fields> </line> <line> <fields> <text-field id="прим"> <label>Примечание</label> </text-field> </fields> </line> </lines> </meta> <properties> <property> <key>preferredSize</key> <script> new Dimension(component.preferredSize.width, 300) </script> </property> </properties> </table-field> </fields> </line> <line> <fields> <title> <label>Стоимость оборудования</label> </title> </fields> </line> <line> <fields> <int-field id="стоимость"> <label>Стоимость оборудования (евро)</label> <formula> sum = 0; for (Object[] line: табл.data) sum += line[4] * line[5]; sum </formula> <properties> <property> <key>editable</key> <bool>false</bool> </property> <property> <key>focusable</key> <bool>false</bool> </property> </properties> </int-field> </fields> </line> </lines> <send-scripts> <item icon-path="html" name="Формирование HTML-опросного листа"> <script> alg = new GenHTML(form.meta, form.getKVList()); GenFormInterface.InvokeStandardAlgorithm.invoke(alg); </script> </item> </send-scripts> </data>