Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 7 Следующий »

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

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


Пример обработчика окна с вводом параметров
public class FindDebetorsForm
    extends AssistantActionBase
{
    @Override
    public AssistantResponse doAction( AssistantRequest assistantRequest )
    throws BGException, BGMessageException
    {
        assistantResponse.setNextActionId( "debtorsTable" );
        return super.doAction( assistantRequest );
    }

    @Override
    public AssistantResponse showAction( AssistantRequest assistantRequest )
    throws BGException, BGMessageException
    {
        this.assistantRequest = assistantRequest;
        return assistantResponse;
    }

    @Override
    public void doButton1()
    {
       super.doButton1();
    }

    @Override
    public void doButton2()
    {
        try
        {
            doAction( assistantRequest );
        }
        catch( BGException e )
        {
            e.printStackTrace();
        }
    }
}

Создаём окно с таблицей, указывая Action ID: debtorsTable

При запуске мастер "Поиск должников", появится такое окно для задания условий.

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

Для того, чтобы данные корректно отобразились в таблице, необходимо в дин.коде создать собственный класс, который должен быть наследником абстрактного класса  ru.bitel.bgbilling.plugins.assistant.common.bean.FilterTableModel. 

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

воспользовавшись методом mapperWrite( List<? extends FilterTableModel> data ) из класса ru.bitel.bgbilling.plugins.assistant.server.AssistantUtils 

Пример того, как это можно сделать показан на скриншоте выше.  assistantResponse.addFieldData( "debtorsTable", new AssistantKeyValue[]{ new AssistantKeyValue( "ru.bitel.bgbilling.assistant.contract.DebtorTableFilter", result )} );

При необходимости, можно реализовать абстрактный метод  getCorrectData() и передать в таблицу данные для определённого столбца. Например, есть необходимость показать в таблицы текущий статус для договоров, с помощью этого метода, можно подменить число статуса на более понятный "Активен". Если нет необходимости  в "подмене" данных, метод должен возвращать null.

Второй метод getCorrectTitleColumn() из родительского FilterTableModel должен возвращать корректное название для колонок таблицы. 

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

Если таблица содержит колонку с названием "contractId", "cid" или "idContract", то при клике на строке, будет выполняться поиск договора с таким id  в БД, если договор будет найден, он будет открыт.


  • Нет меток