Posts Tagged ‘java

20
ม.ค.
10

ใช้ Jasper Reports ออกรายงานเป็นไฟล์ PDF

มีงานต้องออก report โดยใช้ Jasper Reports เป็นตัวช่วย เวลาออกแบบก็ไปใช้ iReport แล้วเราจะได้ไฟล์ .jrxml เสร็จแล้ว จะเอามาเขียนโค้ดเพื่อโหลดไฟล์ และส่ง connection ของ database ให้ jasper Reports ทำการ export รายงานออกมาเป็น pdf
โค้ด java ที่ลอง

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.export.*;
import java.util.*;
import java.sql.*;
public class TestJasper {
	public static void main(String[] args) {
		JasperReport jasperReport;
		JasperPrint jasperPrint;
		JasperDesign jasperDesign;
		Connection conn = null;
		
		Map parameters = new HashMap();
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=UTF-8&user=root&password=password");
                        // โหลดไฟล์ jrxml
			jasperDesign = JRXmlLoader.load("/home/iporsut/Sourcecode/report3.jrxml");
                        // คอมไพล์ report จะได้ไฟล์ report3.jasper
			jasperReport = JasperCompileManager.compileReport(jasperDesign);
                        // ส่ง parameters กับ connection ของ database ให้ jasper ทำการ fill report
			jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,conn);
                        // export report ออกไปเป็นไฟล์ demo.pdf
			JasperExportManager.exportReportToPdfFile(jasperPrint,"/home/iporsut/demo.pdf");
		}catch (JRException e) {
			e.printStackTrace();
		}
		catch (ClassNotFoundException ex) {System.err.println(ex.getMessage());}
	    	catch (SQLException ex) {System.err.println(ex.getMessage());}
	    	
		finally
		{
			if (conn != null)
			{
				try {conn.close();} 
				catch (Exception ignored) {}
			}
		}
	}
}
Advertisements
28
พ.ย.
07

แทนที่ substring แบบต่างๆด้วย string ที่ต้องการ

จริงๆแล้วมันก็เหมือนกับโจทย์ที่ผมเคยไปถามไว้ใน
http://www.codenone.com/node/579 แต่ว่าที่มีคนมาตอบๆกันจะเป็นภาษาscript ซะส่วนใหญ่ ไม่ว่าจะเป็น php,python,ruby, หรือจะแปลกๆหน่อยก็แบบ FN อย่าง Haskell

ทีนี้วันนี้เพื่อนผมเค้าก็ต้องการทำแบบนี้เช่นกันแต่เป็นจาวา ความต้องการก็คือ ต้องการจะแทนที่ช่องว่างต่างๆใน string ให้เหลือแค่ ช่องว่างช่องเดียว อย่างเช่น มี

"abc edf xyz" ต้องการทำให้เป็น "abc edf xyz"

และก็ถ้ามีเกินมาทางด้านซ้ายด้านขวาก็ให้ trim ออกด้วย ผมก็เลยไปค้นใน doc ของ class String ก็เจอ method replaceALL ซึ่งมี รูปแบบดังนี้

String replaceAll(String regex, String replacement)

มันจะรับค่าสองค่า คือ string ที่เป็น regex และ string ที่จะนำไปแทนที่ substring ที่ match กับ regex นั้น ซึ่งจะทำให้ได้ผลลัพธ์ตามที่บอกไปเมื่อกี้ก็คือ

String a="abc edf xyz";
System.out.println(a.replaceAll("[\\s]+"," "));

ป.ล. หวังว่าเพื่อนบาสคงจะได้เอาไปใช้กับงานที่ทำอยู่นะ