傳遞參數(shù)和普通的參數(shù)傳遞是一樣的
jasperReport報表HTML預(yù)覽的時候不能指定到px圖片
response.setContentType("text/html");
Map imagesMap = new HashMap();
request.getSession(true).setAttribute("IMAGES_MAP", imagesMap);
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() + imageServletUrl);
指定這幾個parameter就可以了
JasperCompileManager.compileReportToFile編譯后這個會產(chǎn)生Sample_Report.jasper文件,但是你有沒有發(fā)現(xiàn)在你的硬盤上存在jasper文件呢?不建議這樣使用!jrxml文件完全可以通過iReport編譯成jasper文件,為什么你還有使用compileReportToFile方法呢?
你搞錯了吧!fillReportToFile這種情況下第一個參數(shù)使用jasperReport對象
空指針應(yīng)該不是報表這邊出現(xiàn)問題吧!,你多檢查代碼吧!或者貼上來看看
@xiefan
完全可以啊,建議使用jasper文件操作,在你的工程里編譯是很耗費性能的
不是指報表逆時針轉(zhuǎn)90度,而是數(shù)據(jù)橫向排列
現(xiàn)在回過頭來在看以前寫的東西真是太簡單了,有時間重新寫一篇整合的,這些都是很基礎(chǔ)啊
@john
JasperReport不是不適合中國報表,只是它不是為中國報表而設(shè)計!jasperReport功能很強大,只要你有想象力完全可以定制所需要的報表,關(guān)鍵是它開源,是一個純java報表,如果你是跨系統(tǒng)那么它是首選,前提是你有足夠的時間和耐心哦
@Heis
博主說的很有道理,需求不同,中國式復(fù)雜的報表的確做起來很麻煩.
我也是發(fā)表一下個人意見而已.大家共同學習啊!
我接觸過jasper的api,底層針對子報表采用io加載,編譯jasper文件,之后.java文件,博主可以跟蹤調(diào)試一下多子報表的例子看看,程序運行時會在你的硬盤上寫文件之后編譯加載到內(nèi)存后刪除掉,放開底級別的日志就可以看出來.
我們的系統(tǒng)是跑在局域網(wǎng)的,運行起來都不是很理想.至于報表上展示的數(shù)據(jù)和圖表等等需要特殊經(jīng)過計算的數(shù)據(jù)我是采用scriplet處理,而底層只需要一個簡單的connection就可以(主要是考慮到我們的報表系統(tǒng)是給用戶使用的,而用戶只會一些簡單的sql,配上我們封裝的scriplet就可以達到想要的效果).
關(guān)于那個"分欄",我是看了這個效果圖才有此說法,至于是不是和你的需求一致那大家就應(yīng)該多交流了:先說說我的想法:分成兩列橫著打印就可以出現(xiàn)你要的這種效果圖,不知道博主是不是這個意思?學習學習!
@xiefan
JRParameter jrParameters[] = jasperReport.getParameters();
拿出所有的參數(shù),然后遍歷jrParameters數(shù)組,
JRParameter jrParameter = jrParameters[i];
String name = jrParameter.getName();
取出每一個參數(shù)的名字
getValueClassName()
取出參數(shù)的類型
建議你往下看看,多看看jasperAPI
這樣的報表做起來很麻煩,而且多個子報表效率無疑會很底,樓主有沒有想過jasperReport的API支持多結(jié)果集的報表,也就是針對報表上不同的塊解釋不同的SQL填充?而且樓主所說的標簽式報表完全可以通過簡單的一個jrxml文件通過分欄操作完成
@xiefan
哈哈 你要是繼續(xù)往下看你就會知道怎么做了
這樣確實解決了煩人的SQL但是增加了額外的負擔,fillReport你需要的數(shù)據(jù)源需要從xmlDatasource中加載,如果再來點統(tǒng)計、圖表型等等,scriplet也會讓你越來越頭疼,首先維護起來麻煩,其次為了填充obj大對象所帶來代碼額外的代碼、性能開銷......
@entering
圖形報表一般在jasper中是以image 變量的形式出現(xiàn)的,這個和普通字段的設(shè)計沒有區(qū)別,主要就是構(gòu)造你的圖形scriplet,再者jasper對jChart圖表支持的很到位,你可以多看看它的文檔尤其iReport生成的jrxml文件結(jié)構(gòu)
@呵呵
我在接觸iReport時都沒發(fā)現(xiàn)有這個東東,只知道把iReport和jasperReport的代碼下載下來研究,現(xiàn)在都做的這么好了,得去多逛逛,不然落伍了
怎么會關(guān)閉web服務(wù)呢?那你要檢查一下你的代碼了,建議你實現(xiàn)自己的JasperViewer
哈哈 這個問題是很多報表都會出現(xiàn)的問題,那要看你的紙張了,要是紙張不限制的話你可以設(shè)置盡可能的大些防止撐開影響美觀,要是想動態(tài)改變也不是很難,jasperReport可以動態(tài)的改變你所涉及的任何域的所有屬性,所以你說的那個就很容易實現(xiàn),這些東西我都有測試過,之后有空會都寫出來的
java都提倡開源,jasperReport個人覺得功能非常強大,特別是它支持scriptlet,根據(jù)API我們可以定制自己的報表,只能說目前它是最適合的一個!
@zhanghuang
jasperReport是通過scriptlet嵌入圖表的,要是真如你所說的那樣你就應(yīng)該檢查一下你的代碼是否動態(tài)的更新了圖表。
我們這邊有自己的報表系統(tǒng),集成了好多優(yōu)秀的報表,現(xiàn)在對jasperReport的支持不是很好,有時間私聊吧!laoshulin@gmail.com
我們這邊需要提供給別人接口,而Ireport做的交叉報表功能有限啊!
這些是我畢業(yè)設(shè)計里的東東摘出來寫了點,最近忙一項目沒有時間找這些,你要是需要的話我把整個包發(fā)給你吧!laoshulin@gmail.com
哥們!有研究過純Java代碼做一個crosstab嗎?我現(xiàn)在在做這個接口,能交流下嗎?
這個應(yīng)該是JDK1.5之后的自動裝箱、拆箱吧!
-128~127 基本數(shù)據(jù)類型
大于127 為對象
re: Log4j的使用 凌晨風 2008-08-14 20:47
當你把數(shù)據(jù)展示出來后要是還需要下一步的傳輸,在下一個頁面獲得select中選中的值,Example:request.getParameter("selectTest");對于HTML值為0對應(yīng)顯示是"bulktree",而Struts2 List Tags,則是listKey對應(yīng)ListValue,headerKey對應(yīng)headerValue
re: Log4j的使用 凌晨風 2008-08-14 20:36
http://struts.apache.org/2.1.2/docs/select.html這個是List tag的詳細介紹。List tag只有l(wèi)ist屬性是必須的,
request范圍內(nèi)有個List集合(student)里裝著所有學生的姓名,你應(yīng)該這樣遍歷:<s:select list="student" name="selectTest" />
這樣僅限于展示出數(shù)據(jù)。
你可以對照著HTML:
<select name="selectTest">
<option value="">請選擇</option>
<option value="0">bulktree</option>
<option value="1">oakertree</option>
<option value="2">laoshulin</option>
</select>
re: 招聘程序員 凌晨風 2008-08-05 13:09
你好,我是一名java程序員,目前正在做一個項目,由于待遇和人事方面問題打算做完這個項目后換家公司,項目到十月底完工,那時候你們還招聘嗎?
@jezz
www.apache.org上不是有嗎?
*順便說一下,只是初學,第一次整合,多多批評指教。
*還有一問題,我在一個action類里寫好幾個方法execute***方法,在struts.xml文件中通過method屬性匹配,要是整合Spring,我該怎么處理多方法的action,在application中該怎么配置?
*系統(tǒng)沒有分頁,哪位能給個高效分頁的整合代碼看看?本人不勝感激!
運行本例子程序需要commons-email-1.1.jar和mail.jar這兩個包!
順便說說,畢業(yè)在即,我的系統(tǒng)側(cè)重業(yè)務(wù)邏輯,主要是想用Struts2,嚴格按照MVC三大模塊做,業(yè)務(wù)邏輯全部封裝在DAO工廠中,前臺JSP顯示OGNL,由于導(dǎo)師要求后面加了QQ/MSN、短信平臺(測試成功未實現(xiàn)),哪位能提供個就業(yè)的機會,本人感激不盡,后續(xù)將繼續(xù)整理系統(tǒng)的相關(guān)知識發(fā)布上來。謝謝關(guān)注!
re: 開源軟件逐漸走進了我的生活 凌晨風 2008-03-21 10:36
Eclipse也是全能的IDE不僅僅是Java,但是大部分人只知道Eclipse是java開發(fā)工具 --- Jbuilder是后面用來比較的
re: 申請加入 "深圳Java小組" 凌晨風 2008-03-11 09:55
支持!
re: 《精通CSS》閱讀筆記 第四章 凌晨風 2008-02-19 11:19
小弟想讓求一個css的樣式文件,我做一個office辦公系統(tǒng),頁面不多,但是小弟時間緊迫對css不懂,業(yè)務(wù)邏輯都弄好了,大哥能否寫一個簡單明了的css文件,簡簡單單美化下我的系統(tǒng)就行,我自己用Dreamwear設(shè)置的一塌糊涂,頁面采用的是Struts tag 所以想求一個css文件統(tǒng)一一下風格,就象此頁面簡單明了就行,還有就是我的系統(tǒng)表格較多,麻煩大哥了再次先謝過!
re: java Web 學習 凌晨風 2008-01-14 21:05
事情要向你想的那么復(fù)雜人就沒法活了
re: 歡迎加入我們團隊! 凌晨風 2008-01-13 19:26
java愛好者,也是大四學生
http://www.aygfsteel.com/bulktree,最近正在用struts2寫一個網(wǎng)絡(luò)辦公系統(tǒng),希望加入團隊學習請教
re: 需要加入XAUG的朋友請留言給我! 凌晨風 2008-01-13 19:23
java愛好者,也是大四學生,陜西咸陽人,現(xiàn)河北理工大學
http://www.aygfsteel.com/bulktree,最近正在用struts2寫一個網(wǎng)絡(luò)辦公系統(tǒng),希望加入團隊學習請教
re: Struts2上傳文件示例 凌晨風 2008-01-04 21:43
樓主寫的不錯,這個例子好像是Struts包里的源碼,但是我不知道上傳成功后怎樣看這個文件,比如我傳了一張圖片,我怎樣才能看到我傳的圖片呢,上傳的是一個tmp的虛擬文件,我也弄不清楚,幫忙啊!
re: JAVA 連接MYSQL 凌晨風 2007-12-31 10:21
這是一個標準的Java連接MYsql數(shù)據(jù)庫的步驟,樓主寫的幾乎是不能用的,一個標準的連接是要關(guān)閉資源........由于沒有找到合適的源碼,所以就找了這個這個日期處理的源碼貼上來。
package JDBC;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
*
* @author oakertree
*
*/
public class TestJDBCDate {
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// new com.mysql.jdbc.Driver();
con = DriverManager.getConnection("jdbc:mysql://localhost:3307/test", "root", "admini");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM time");
while(rs.next()) {
/*
Date d = rs.getDate("date");
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(d));
*/
/*
Time t = rs.getTime("time");
SimpleDateFormat sdf = new SimpleDateFormat("HH時mm分ss秒");
System.out.println(sdf.format(t));
*/
Date d = rs.getDate("datetime");
Time t = rs.getTime("datetime");
SimpleDateFormat sdfdate = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat sdftime = new SimpleDateFormat("HH時mm分ss秒");
System.out.println(sdfdate.format(d) + sdftime.format(t));
/*
Timestamp dt = rs.getTimestamp("datetime");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
System.out.println(sdf.format(dt));
*/
//得到日期中的月
/*
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.MONTH));
*/
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/*
+----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| date | date | YES | | NULL | |
| time | time | YES | | NULL | |
| datetime | datetime | YES | | NULL | |
+----------+----------+------+-----+---------+-------+
*/
re: 為Struts 2.0做好準備 凌晨風 2007-12-29 00:38
2007-12-29 0:24:48 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
警告: No configuration found for the specified action: 'login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
2007-12-29 0:24:48 org.apache.struts2.components.Form evaluateExtraParamsServletRequest
警告: No configuration found for the specified action: 'login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
出現(xiàn)如下錯誤,程序運行正常!不知道只是怎么回事?
錯誤發(fā)生在login.jsp頁面刷新時就出現(xiàn)。
這個應(yīng)該是工廠設(shè)計模式中的簡單工廠模式吧!DAO不僅僅是對數(shù)據(jù)庫的訪問封裝在一個接口,DAO的設(shè)計就是為了更好的隱藏IMPL的實現(xiàn)細節(jié),接口只提供訪問的方法而已,應(yīng)該是J2SE的多態(tài)
re: 畢業(yè)后的購書一覽表 凌晨風 2007-12-16 19:15
真夠強的,都是好書啊!我明年畢業(yè),都沒錢買,能共享嗎?