forum.bitel.ru
http://forum.bitel.ru/

Создание диалогового окна
http://forum.bitel.ru/viewtopic.php?f=19&t=10871
Страница 1 из 1

Автор:  Inspire [ 07 сен 2015, 17:46 ]
Заголовок сообщения:  Создание диалогового окна

Здравствуйте, а могу ли я как-то сделать, чтобы после выполнения скрипта поведения, появлялось окошко с текстом либо "Все прошло успешно", либо "Все прошло неуспешно" и кнопкой Ок? Чтобы рядовому пользователю не приходилось забивать свою голову о том, что такое логи скрипта поведения и как их посмотреть.

Автор:  skyb [ 07 сен 2015, 17:59 ]
Заголовок сообщения:  Re: Создание диалогового окна

((ContractParamBeforeChangeEvent)event1).setError("Не корректно введен текст");

Автор:  Phricker [ 07 сен 2015, 18:12 ]
Заголовок сообщения:  Re: Создание диалогового окна

Skyb, шутник однако.

По теме, киньте скрипт. Либо на чем он у вас отрабатывает.

Автор:  skyb [ 07 сен 2015, 18:17 ]
Заголовок сообщения:  Re: Создание диалогового окна

Phricker писал(а):
Skyb, шутник однако.

По теме, киньте скрипт. Либо на чем он у вас отрабатывает.

скрипт поведения, который кидает ошибку, что не так?

Автор:  Inspire [ 07 сен 2015, 18:18 ]
Заголовок сообщения:  Re: Создание диалогового окна

Phricker писал(а):
Skyb, шутник однако.

По теме, киньте скрипт. Либо на чем он у вас отрабатывает.


Да там несложный скрипт... Отрабатывает при создании нового договора. При создании посылает Http запрос и получает ответ. Если ответ, к примеру, true, то хочу чтобы появлялось диалоговое окно с кнопкой ОК и текстом "Все хорошо". А если false, то с текстом "Все плохо".
Вот скрипт:

Код:
public void onEvent( event, setup, con, conSlave )
{

        URLConnection conn = new URL(url).openConnection();
        conn.addRequestProperty("content-type", "application/json");
        conn.setDoOutput(true);

        OutputStreamWriter out
                = new OutputStreamWriter(conn.getOutputStream(), "ASCII");
       out.write(query.toString());
        out.write("\r\n");
        out.flush();
        out.close();

//читаем то, что отдал нам сервер
        String html = readStreamToString(conn.getInputStream(), "UTF-8");

//выводим информацию в консоль
        print("URL:" + url);
        print("Html:\n" + html);
}

Автор:  Phricker [ 07 сен 2015, 18:39 ]
Заголовок сообщения:  Re: Создание диалогового окна

skyb писал(а):
Phricker писал(а):
Skyb, шутник однако.

По теме, киньте скрипт. Либо на чем он у вас отрабатывает.

скрипт поведения, который кидает ошибку, что не так?

Например у меня как у ТСа висит скрипт на событии "Договор создан".
В эвенте ContractCreatedEvent нет метода setError.
Да и куда собственно ты его выдашь? :)

Ты можешь его выдать ПЕРЕД созданием договора.
Т.е. договор не будет создан если, что-то не понравилось скрипту.
Но и то не выход, т.к. возможно ТСу нужно отправлять данные по договору, на сторонний сервер.

Из простого могу посоветовать завести параметр договора, в котором будет результат выполнения скрипта :)

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

Автор:  Phricker [ 07 сен 2015, 18:47 ]
Заголовок сообщения:  Re: Создание диалогового окна

Хотя появилась идея. Проверю отпишу

Автор:  dimOn [ 07 сен 2015, 19:01 ]
Заголовок сообщения:  Re: Создание диалогового окна

Положительный ответ никак не получить. Т.к. скрипт выполняется внутри экшена, который продолжает там работать ещё и что-то делать потом после выполнение,
и сообщение выведется только если получится ошибка.

Автор:  Phricker [ 07 сен 2015, 19:45 ]
Заголовок сообщения:  Re: Создание диалогового окна

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

Автор:  dimOn [ 07 сен 2015, 19:53 ]
Заголовок сообщения:  Re: Создание диалогового окна

не для каждого, а для юзера, который эвент запустил)

Автор:  Phricker [ 07 сен 2015, 19:57 ]
Заголовок сообщения:  Re: Создание диалогового окна

ну да.
хотел написать для каждого эвента создавать сообщение для юзера который его запустил )))

Автор:  dimOn [ 07 сен 2015, 22:26 ]
Заголовок сообщения:  Re: Создание диалогового окна

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

Автор:  skyb [ 08 сен 2015, 04:11 ]
Заголовок сообщения:  Re: Создание диалогового окна

Phricker, какой скрипт и что делает изначально сказано небыло

Автор:  Phricker [ 08 сен 2015, 13:10 ]
Заголовок сообщения:  Re: Создание диалогового окна

Поэтому и шутник ))))) Ошибку можно бросить в меньшем кол-ве случаев, чем нельзя бросить :D
Плюс, если все корректно отработает - я с трудом представляю как можно сообщить "Все отработало" :)

Автор:  Inspire [ 08 сен 2015, 14:31 ]
Заголовок сообщения:  Re: Создание диалогового окна

Господа, а можно ли тогда сделать так, чтобы договор вовсе не создавался, если скрипт поведения вернет false ?

Автор:  Phricker [ 08 сен 2015, 15:03 ]
Заголовок сообщения:  Re: Создание диалогового окна

Не исключено.

Автор:  Phricker [ 08 сен 2015, 15:19 ]
Заголовок сообщения:  Re: Создание диалогового окна

Код:
dynaction:contract.ActionNewContract=ru.ellcom.contract.ActionNewContract

Код:
package ru.ellcom.contract;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGMessageException;
import ru.bitel.common.Utils;

import java.sql.SQLException;

public class ActionNewContract    extends bitel.billing.server.contract.action.ActionNewContract
{
    @Override
    public void doAction()
            throws SQLException, BGException
    {
        boolean createContract = false;
        if(!createContract){
            throw new BGMessageException( "Договор не был создан" );
        }

        // иначе вызываем родительский метод
        super.doAction();
    }
}


Изображение

Автор:  Inspire [ 08 сен 2015, 17:14 ]
Заголовок сообщения:  Re: Создание диалогового окна

в bgbs выдает ошибку на @Override
Sourced file: Function [id:9; title:Smotreshka] Token Parsing Error: Lexical error at line 263, column 6. Encountered: "O" (79), after : "@": <at unknown location>

И почему event.getContract().getTitle() возвращает неправильный номер договора? См. на скрине ниже
Вложение:
123.jpg
123.jpg [ 65.16 КБ | Просмотров: 14892 ]

Автор:  Phricker [ 08 сен 2015, 17:31 ]
Заголовок сообщения:  Re: Создание диалогового окна

Потому что это не bgbs а динкод. Это раз.
И два.
Это не вы ли просили скрипт который добавляет контрольную сумму в договор?
Если да - то скорее всего до того как этот скрипт сменит title, у вас он печатается.

Автор:  Inspire [ 08 сен 2015, 17:50 ]
Заголовок сообщения:  Re: Создание диалогового окна

Phricker писал(а):
Потому что это не bgbs а динкод. Это раз.
И два.
Это не вы ли просили скрипт который добавляет контрольную сумму в договор?
Если да - то скорее всего до того как этот скрипт сменит title, у вас он печатается.


Мне нужен скрипт поведения. В 5.1. только bgbs.
Контрольную сумму не я просил.
Код:
public void onEvent( event, setup, con, conSlave )
{

print(event.getContract().getTitle());

}

Автор:  Phricker [ 08 сен 2015, 17:52 ]
Заголовок сообщения:  Re: Создание диалогового окна

Тогда событие "Перед действием" и переделайте мой скрипт.

У меня нет под рукой 5.1, а там могут быть другие методы.

Автор:  Inspire [ 08 сен 2015, 18:16 ]
Заголовок сообщения:  Re: Создание диалогового окна

ладно, попоробую. А как быть с номером договора? че он такой неправильный

Автор:  Phricker [ 08 сен 2015, 19:04 ]
Заголовок сообщения:  Re: Создание диалогового окна

У вас в шаблоне по которому создается договор какой прописан номер договора?

Автор:  Inspire [ 08 сен 2015, 19:09 ]
Заголовок сообщения:  Re: Создание диалогового окна

Вот там че 111-${time:F}${N6}

Автор:  Phricker [ 08 сен 2015, 19:40 ]
Заголовок сообщения:  Re: Создание диалогового окна

Случайно не висит вставка контрольной суммы в номер договора???

Автор:  Inspire [ 09 сен 2015, 11:26 ]
Заголовок сообщения:  Re: Создание диалогового окна

Да, там скрипт навешан create_contract... Все получилось, спасибо! Ну кроме диалогового окна :D

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/