Программное добавление условия сортировки в таблицу в BIRT с использованием JS - PullRequest
2 голосов
/ 01 марта 2010

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

Итак, мой соответствующий код:

var reportRunnable = reportContext.getReportRunnable();
var reportDesign = reportRunnable.getDesignInstance();
var table = reportDesign.getTable(tableName);

var sortCondition = org.eclipse.birt.report.engine.api.script.element.StructureScriptAPIFactory.createSortCondition();      
sortCondition.setKey("row[\"" + columnKey + "\"]");
sortCondition.setDirection("desc");

table.removeSortConditions();
table.addSortCondition(sortCondition);

Я получаю исключение NullPointerException в строке 164 в листинге класса: org.eclipse.birt.report.engine.script.internal.element.Listing, в методе removeSortConditions ...

((org.eclipse.birt.report.model.api.simpleapi.IListing) designElementImpl).removeSortConditions();

Таким образом, из вышесказанного следует, что 'designElementImpl' равен нулю, и, посмотрев далее на источник, казалось, что для создания экземпляра объекта 'table' использовался следующий конструктор:

public Table( TableHandle table );

И продвигаясь вверх по иерархии суперклассов, это подразумевает, что в конструкторе DesignElement следующее возвращает нуль:

designElementImpl = SimpleElementFactory.getInstance( ).getElement(handle);

У кого-нибудь есть мысли? Разве я не в состоянии сделать то, что пытаюсь сделать?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Должно быть, вероятно, добавить; Я использую BIRT 2.5.1.

1 Ответ

0 голосов
/ 02 марта 2010

Я думаю, что теперь это отсортировано ... Я создал [более простой] новый отчет без библиотечных зависимостей, и сортировка теперь работает правильно.

Я также писал на другом форуме, поэтому, если кому-то нужна более подробная информация, см. BIRT Exchange Forums .

Приветствие.

...