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