2010-03-01 8 views
2

Je tente d'écrire un script qui simplifie le tri des tables et qui se rapproche, mais je me demande maintenant si j'ai trouvé un bug ... ou si j'ai juste mal compris les limites .Ajout manuel d'une condition de tri à une table dans BIRT en utilisant JS

donc mon code correspondant:

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); 

Je reçois un NullPointerException à la ligne 164 dans la liste de classe: org.eclipse.birt.report.engine.script.internal.element.Listing, dans le méthode removeSortConditions ...

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

Ainsi, l'ayant cherché plus à la source semblait impliquer implique ci-dessus « designElementImpl » est nul, que pour instancier l'objet « de table », on a utilisé le constructeur suivant:

public Table(TableHandle table); 

Et le déplacement des super-classes heirarchy, il implique que dans le constructeur de designelement, ce qui suit est de retour nul:

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

Toute personne des pensées? Suis-je simplement incapable de faire ce que j'essaie de faire?

Merci d'avance.

EDIT: Devrait probablement ajouter; J'utilise BIRT 2.5.1.

Répondre

0

Je pense que j'ai trié maintenant ... J'ai créé un nouveau rapport [plus simple] sans dépendances de bibliothèques et le tri fonctionne maintenant correctement.

J'ai également posté sur un autre forum, donc si quelqu'un veut plus de détails, voir BIRT Exchange Forums.

Cheers.