您可以使用JRMapCollectionDataSource,其中表中的每条记录都放入一个 Map 中,并且每个映射都添加到一个集合中。如果您使用参数,它将不会对每条记录重复。
例如,在您的情况下,您可以创建地图和地图集合
Collection<Map<String, Object>> records = new ArrayList<Map<String,Object>>();
Map<String, Object> record1 = new HashMap<String, Object>();
record1.put("Name","dendi");
record1.put("Amount",amount1); //amount1 is a BigDecimal for 150.0
record1.put("Price", price1); // price1 is a Double for 12.500
records.add(record1); // add each record to your map
Map<String, Object> record2 = new HashMap<String, Object>();
record2.put("Name","patricia");
record2.put("Amount",amount2); //amount2 is a BigDecimal
record2.put("Price", price2); // price2 is a Double
records.add(record2); // add each record to your map
在 jrxml 中定义与键相同的字段(名称、金额和价格 - 后两者为 BigDecimal/Double 类型)。Jasper Reports 库将负责从对象转换为 BigDecimal 或 Double。希望这可以帮助。
PS:此代码仅用于说明目的