Tôi là thương hiệu mới với JasperReports và đang dần chiến đấu theo cách của mình thông qua các khái niệm cơ bản. Tôi có một tình huống mà tôi không muốn điền vào biểu đồ hình tròn với dữ liệu hướng DB (thông qua một nguồn dữ liệu được gọi là ). Tôi muốn cung cấp tất cả thông tin cần thiết để điền vào biểu đồ hình tròn từ một băm Java được chuyển vào JasperFillManager khi chạy.JasperReport Pie Chart Ví dụ
Điều này sẽ bao gồm các tham số để gắn nhãn các lát trong biểu đồ hình tròn, đặt màu và xác định trọng số/giá trị của chúng (kích thước của các lát). Vì vậy, tại một số điểm trong mã Java của tôi, tôi sẽ viết một cái gì đó như:
HashMap<String,Object> jrParams = new HashMap<String,Object>();
jpParams.put("slice_1_label", "Red Team");
jpParams.put("slice_1_color", Color.RED);
jpParams.put("slice_1_value", 67.0);
jpParams.put("slice_2_label", "Blue Team");
jpParams.put("slice_2_color", Color.BLUE);
jpParams.put("slice_2_value", 33.0);
// ... some other code
JasperFillManager.fillReport(jasperDesign, jrParams);
Mục đích tôi đang cố gắng để đạt được ở đây sẽ có một biểu đồ pie với 2 lát; một lát "Red Team" màu đỏ chiếm 67% của chiếc bánh, và một lát "Blue Team" màu xanh lam chiếm 33%.
Bây giờ tôi cần trợ giúp "kết nối các dấu chấm" giữa hashmap của tôi và JRXML/JasperDesign.
Ai đó có thể chỉ cho tôi (hoặc chỉ giúp tôi hướng dẫn) về loại <pieChart>
JRXML nào tôi cần viết để có biểu đồ hình tròn có tham số thời gian chạy? Tôi đã thực hiện một nỗ lực tốt nhất bên dưới nhưng tôi chỉ đang vật lộn với ý nghĩa tổng thể của nó.
<pieChart>
<chart isShowLegend="true">
<reportElement x="10" y="10" width="300" height="300"/>
<chartTitle>
<titleExpression><![CDATA[My First JR Pie Chart]]></titleExpression>
</chartTitle>
</chart>
<pieDataset>
<!-- Here is where I believe I need to put my two slices; not sure how -->
</pieDataset>
<piePlot>
<plot backcolor="#8BA870"/>
<itemLabel color="#000000"/>
</piePlot>
</pieChart>
Cảm ơn bạn đã trợ giúp/giải thích!
Mechkov cảm ơn bạn đã trả lời. Có Tôi đang sử dụng iReports (và mẫu biểu đồ của nó) là nơi tôi có hầu hết JRXML từ trong câu hỏi của tôi. Tôi đồng ý rằng trong hầu hết các trường hợp, tôi muốn điền dữ liệu báo cáo của mình với JRDataSource và trong trường hợp này là JRBeanDataSource. Tuy nhiên tôi chỉ đơn giản là tự hỏi nếu nó có thể sử dụng một hashmap tinh khiết của các thông số, và nếu như vậy, những gì JRXML sẽ như thế nào. Cảm ơn một lần nữa cho bạn phản ứng! – IAmYourFaja
Ngoài ra, tôi chấp nhận câu trả lời của bạn nếu bạn có thể chỉnh sửa nó để cung cấp cách viết JRXML để làm việc với một JRBeanArrayDataSource. Giả sử tôi có một hạt PieSlice có nhãn Chuỗi, Màu màu và Giá trị gấp đôi là chỉ có 3 thuộc tính của nó, cũng như các getters/setters chuẩn cho mỗi thuộc tính. Sau đó tôi vượt qua JasperFillManager một mảng (với kích thước = 2 tương ứng với 2 lát trong câu hỏi ban đầu của tôi) của các PieSlices tại thời gian điền. JRXML cần phải trông như thế nào bây giờ? – IAmYourFaja
@Zharvey Tôi sẽ viết toàn bộ mã, nhưng vấp phải lời giải thích tuyệt vời này ... Kiểm tra ... Oh, và hy vọng nó sẽ cho bạn một ý tưởng làm thế nào để làm điều đó với một nguồn dữ liệu Bản đồ hoặc Danh sách .. Cho tôi biết nếu bạn có thêm câu hỏi. Trân trọng! http://gilbertadjin.wordpress.com/2009/08/09/charting-with-jasper-reports/ – Mechkov