![](/img/trans.png)
[英]Jasper API prints only first report other reports are printed as blank
[英]Jasper report Line chart Category expression same value is printed only once
我正在使用Jasper報告折線圖。 在該折線圖類別表達式中, 相同的值僅打印一次 。
在此,將“在線名稱中”列指定為折線圖中的類別表達式 。 不打印冗余值。 僅打印唯一名稱 。 我想要我所有的名字 ,即使它是同一個名字。 如何解決此問題?
您必須將打印為類別標簽的String值包裝到滿足唯一性約束的對象中。 您必須創建一個實現Comparable接口的java類,因為只有不相等的對象才作為單獨的類別值打印。 以下代碼顯示了如何實現此類:
public class UniqueCategoryLabel implements Comparable<UniqueCategoryLabel> {
private Double id;
private String value;
public UniqueCategoryLabel(String value, Double id) {
this.value = value;
this.id = id;
}
@Override
public int compareTo(UniqueCategoryLabel v) {
return this.id.compareTo(v.id);
}
@Override
public boolean equals(Object v) {
return v instanceof UniqueCategoryLabel && this.id.equals(((UniqueCategoryLabel) v).id);
}
@Override
public int hashCode() {
return this.id.hashCode();
}
@Override
public String toString() {
return value;
}
}
您可以通過使用不同的ID創建UniqueCategoryLabel實例來提供唯一性,因為equals方法檢查比較對象的ID是否相同。 圖表本身的標簽是通過使用提供的對象的toString()方法創建的,因此您的toString()方法應返回要打印為標簽的String。 在報告中,用於圖表的字段必須是UniqueCategoryLabel類型,而不是String類型,這應該可以解決所有問題。
您將需要在類別表達式中添加唯一標識符,因為這是顯示重復值的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.