kxbin
          成功留給有準備的人
          posts - 10,  comments - 35,  trackbacks - 0
          1.創建List對象,訪問皕杰報表
          List list = systemService.find(hql); //查詢結果集,放到list對象中
          request.getSession().setAttribute("list", list);//結果集放到session容器中,
          注意:為啥將結果集放到session容器,而不放入request對象中?查詢的結果集過多,涉及到翻頁,使用request對象,翻頁后不能獲得list對象中的內容。
          request.getRequestDispatcher("/ReportEmitter?rpt=contractState.brt").forward(request, response);
          2.繼承ContractStateDataSet,將結果集放到報表中
           package bios.report.user.dev.demo.dataset;
          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Set;
          import javax.servlet.http.HttpSession;
          import bios.report.engine.api.CustomDataSet;
          import bios.report.engine.api.UserContext;
          import com.dhcc.itsm.document.model.Contract;
          import com.dhcc.itsm.document.model.ContractPay;
          import com.dhcc.itsm.document.model.ContractSettlement;
          /**
           * @author dhcc
           */
          public class ContractStateDataSet implements CustomDataSet{
          private String[] metaData;
          private List<Contract> conList = new ArrayList<Contract>();
          @SuppressWarnings("unchecked")
          private List data;
          public String[] getMetaData() {
          return metaData;
          }
          public int getRowCount() {
          return data.size();
          }
          public Object[] getRowData(int rowIndex) {
          return (Object[])data.get(rowIndex);
          }
          @SuppressWarnings("unchecked")
          public void applyParams(Object[] arg0) {
          HttpSession req = UserContext.getCurrentUserContext().getRequest().getSession();
          conList = (List<Contract>) req.getAttribute("list");
          metaData = new String[]{"合同名稱","合同金額","結算日期","結算金額","結算合計","付款日期","付款金額","付款合計","施工單位"};
          data = new ArrayList();
          try {
          if(conList != null && !conList.isEmpty()){
          for(int i=0;i<conList.size();i++){
          Contract con = conList.get(i);
          String[] settleStr = getSettle(con.getSettleSet());//結款信息放到字符串中
          String[] payStr = getPay(con.getPaySet()); //付款信息放到字符串中
          data.add(new Object[]{con.getContractName(),con.getMoney(),settleStr[0],settleStr[1],
          Double.parseDouble(settleStr[2]),payStr[0],payStr[1],Double.parseDouble(payStr[2]),con.getYiFang()});
          }
          }
          } catch (Exception e) {
          e.printStackTrace();
          }
          }
          public List<Contract> getConList() {
          return conList;
          }
          public void setConList(List<Contract> conList) {
          this.conList = conList;
          }
          /**
          * 結款信息放到放到字符串中
          * @param settleList
          * @return
          */
          @SuppressWarnings("unchecked")
          private String[] getSettle(Set<ContractSettlement> settleSet){
          String[] settleStr = new String[3];
          String settleTemp = "\n";//結算日期
          String moneyStr ="\n";//結算金額
          double settleSum = 0;//結款總金額
          if(settleSet != null && !settleSet.isEmpty()){
          Iterator it = settleSet.iterator();
          while(it.hasNext()){
          ContractSettlement settle = (ContractSettlement) it.next();
          settleTemp += settle.getBalanceDate() +"\n\n";
          moneyStr += settle.getMoney()+"\n\n";
          settleSum +=Double.parseDouble(settle.getMoney());
          }
          }
          settleStr[0]=settleTemp;
          settleStr[1]=moneyStr;
          settleStr[2]=String.valueOf(settleSum);
          return settleStr;
          }
          /**
          * 付款信息放到放到字符串中
          * @param settleList
          * @return
          */
          @SuppressWarnings("unchecked")
          private String[] getPay(Set<ContractPay> paySet){
          String[] payStr = new String[3];
          String payTemp = "\n";//
          String moneyStr ="\n";
          double paySum = 0;//付款總金額
          if(paySet != null && !paySet.isEmpty()){
          Iterator it = paySet.iterator();
          while(it.hasNext()){
          ContractPay pay = (ContractPay) it.next();
          payTemp += pay.getPayDate() +"\n\n";
          moneyStr += pay.getMoney()+"\n\n";
          paySum +=Double.parseDouble(pay.getMoney());
          }
          }
          payStr[0]=payTemp;
          payStr[1]=moneyStr;
          payStr[2]=String.valueOf(paySum);
          return payStr;
          }
          }
          3.皕杰報表設置及下載
          posted on 2011-12-21 16:33 kxbin 閱讀(621) 評論(1)  編輯  收藏 所屬分類: 皕杰報表

          FeedBack:
          # re: 如何將一個List對象傳遞給皕杰報表在頁面展示
          2013-03-01 18:33 | 巴布亞
          學習了!  回復  更多評論
            
          你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(5)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          J2EE

          java技術網站

          Linux

          平時常去的網站

          數據庫

          電影網站

          網站設計

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德阳市| 岳池县| 恭城| 金阳县| 贵阳市| 民权县| 漳平市| 中西区| 宝鸡市| 石门县| 南郑县| 砀山县| 浮梁县| 安岳县| 麟游县| 普格县| 长岭县| 旺苍县| 称多县| 杂多县| 麟游县| 永胜县| 石渠县| 鹰潭市| 怀安县| 库尔勒市| 延寿县| 丰原市| 察雅县| 西和县| 灵山县| 磐安县| 历史| 北海市| 舟山市| 延津县| 宕昌县| 绥中县| 博爱县| 陆川县| 航空|