Report in java – step 5

Sum Group – Sum Columns

Hôm nay mình sẻ tiếp tục phần step 5. Thể hiện việc tình tổng giá trị trong 1 group or tổng giá trị trong column .


import static;
import static;
import static;
import static;

import java.awt.Color;
import java.math.BigDecimal;

import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;

 * Hello world!
public class App 
    public static void main( String[] args ) throws Exception
    	// Create variables for work set style for border, background 
    	StyleBuilder boldStyle =;    	
    	StyleBuilder boldCenteredStyle  =;
    	StyleBuilder columnTitleStyle =
    									   .setBackgroundColor(new Color(255, 210, 210));

    	 * ====================New Code =============================================================== 

    	TextColumnBuilder<String> itemColumn = col.column("Item", "item", type.stringType()).setStyle(boldStyle);
    	TextColumnBuilder<Integer> quantityColumn = col.column("Quantity", "quantity", type.integerType());
    	TextColumnBuilder<BigDecimal> unitPriceColumn = col.column("Unit Price", "unitprice", type.bigDecimalType());
    	// price = unitPrice * quantity
    	TextColumnBuilder<BigDecimal> priceColumn = unitPriceColumn.multiply(quantityColumn).setTitle("Price");
    	PercentageColumnBuilder pricePercColumn = col.percentageColumn("Price %", priceColumn);
    	TextColumnBuilder<Integer> rowNumberColumn = col.reportRowNumberColumn("No.")

    	ConnectDB connect = new ConnectDB();
    	// Create new report design 
		JasperReportBuilder report =;
		.setColumnTitleStyle(columnTitleStyle)// set style for column title
		.highlightDetailEvenRows() // high light for line even
		//==========================New Code======================
		.title(Components.text("Simple Report")// Show Report title
			   .setHorizontalAlignment(HorizontalAlignment.CENTER))// Set position for title	   
		.pageFooter(Components.pageXofY().setStyle(boldCenteredStyle)) // show number of page at page footer
		// set datasource with specific query from database 
		.setDataSource("select id, item, quantity, unitprice from product",connect.openConnect());

		try {;
			report.toPdf(new FileOutputStream("d:/report.pdf"));
		} catch (Exception e) {


Hjx nói thật mình tìm không thấy được document cho phần này nửa

// Giải thích đơn giản như sau .
subtotalsAtSummary : được thực hiện khi groupBy được thự hiện. Nó tính tổng các giá trị trong column của group và hiển thị giá trị cuối group.
subtotalsAtFirstGroupFooter : thực hiện việc tính tổng các giá trị trong colum hiển thị cuối report

Kết quả sau khi run :


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: