2010-03-28 13:02 сгенерировано Dmitry Ovchinnikov

Внешний вид

Нет изображения

Просмотреть изображение целиком

2010-03-28 13:11 сгенерировано Dmitry Ovchinnikov

Конфигурация

<?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>