DynamicJasper (su Grails) mantenere Volutamente colonna o campo vuoto (vuoto)
-
05-10-2019 - |
Domanda
Voglio generare un report pdf, dove una colonna (o una cella / campo) è vuoto a sinistra (vuoto) di proposito. In questa colonna è in realtà ha un valore, ma, sto scegliendo di non visualizzarlo. Il titolo della colonna deve ancora essere visualizzato.
Esempio di dove questo potrebbe essere utile:
- Blank (vuoto) della colonna:. Commenti A o note colonna su un lato di una relazione
- Blank (vuoto) delle cellule. Un puzzle di sudoku stampare-out
Molto apprezzato. DynamicJasper è incredibile! Grazie al dj-team.
Saluti, Pete
Soluzione
Sono contento di annunciare, la soluzione trovata per l'aggiunta di una colonna 'vuota' - e, in breve, è di creare un customExpression
.def cb = ColumnBuilder.getInstance()
cb = cb.setTitle("Notes")
cb = cb.setCustomExpression(new BlankExpression())
AbstractColumn columnNotes = cb.build()
Poi inserirlo al resto del rapporto.
Classe BlankExpression è
public class BlankExpression implements CustomExpression {
public BlankExpression() { }
public Object evaluate(Map fields, Map variables, Map parameters) {
return " ";
}
public String getClassName() {
return String.class.getName();
}
}
Ma ci sono alcuni problemi relativi all'uso di customExpressions e graal.
1 ° edizione: "getNew ()" - Gli esempi forniti sul sito DJ tutto l'uso "getNew ()" http://dynamicjasper.sourceforge.net/docs/HOWTO%20Create% 20Custom% 20Expressions.html è un esempio di DynamicJasper v3.1.3 dove i Grails plug si riferiscono al v.3.0.6 che ha solo un metodo () getInstance (deprecated in 3.1.3)
2 ° edizione: Per quanto posso vedere, scanalato non consente implementazioni di classe in linea java-stile, costringendoci così a creare un file di classe separato. Ma questo non è un grosso problema. Potrei sbagliarmi su questo, e per favore correggetemi.
Spero che questo ti aiuta anche.
Saluti, Pete