<%@ page contentType="text/html; charset=GBK"%><%@ include file="/IncludeBeginReport.jsp"%><% /* * Content: 本行固定统计报表展示页面 * Input Param: * OrgID: 查询机构号 * InputDate: 查询时间 * DataSheetID: 查询报表编号 * Currecy: 查询币种 * ReportAction: * DisplayCriteria: 是否显示条件栏 */ %> <%! /** * parseUnitName , Map Unitcode to UnitName * sUnit, Unitcode * sInfo, CurrencyName * * @author zllin@amarsoft.com * @version 1.0 Mar 04,2005 */ public String parseUnitName(String sUnit,String sInfo){ String sUnitName = "单位("+sInfo+"):"; switch (sUnit.length()){ case 1: //元 sUnitName += "元"; break; case 4: //千元 sUnitName += "千元"; break; case 7: //百万元 sUnitName += "百万元"; break; case 9: //亿元 sUnitName += "亿元"; break; default: sUnitName += "万元"; } return sUnitName; } %> <% final String QUERY_TERM_YEAR = "4"; final String QUERY_TERM_HALF_YEAR = "3"; final String QUERY_TERM_QUARTER = "2"; final String QUERY_TERM_MONTH = "1"; final String QUERY_TERM_DAY = "0"; //报表编号 String sSheetID = DataConvert.toString(CurPage.getParameter("SheetID")); //机构编号 String sOrgID = DataConvert.toString(CurPage.getParameter("OrgID")); //机构名称 String sOrgName = DataConvert.toString(CurPage.getParameter("OrgName")); //查询日期 String sInputDate = DataConvert.toString(CurPage.getParameter("InputDate")); //数量单位 String sUnit = DataConvert.toString(CurPage.getParameter("Unit")); //查询频度 String sQueryTerm = DataConvert.toString(CurPage.getParameter("QueryTerm")); //币种 String sCurrency = DataConvert.toString(CurPage.getParameter("Currency")); //是否显示条件栏 String sDisplayCriteria = DataConvert.toString(CurPage.getParameter("DisplayCriteria")); //是否重新读取数据 String sRedoFlag = DataConvert.toString(CurPage.getParameter("RedoFlag")); //重新统计报表数据标识 boolean bRedoFlag = sRedoFlag.equals("1") ? true : false; // String sCtrlSlt = QUERY_TERM_MONTH; //上报频度控制标识 String sCtrlQry = QUERY_TERM_MONTH; //频度查询控制标识 //定义DataSheet对象 com.amarsoft.ars.core.DataSheet dataSheet = new com.amarsoft.ars.core.DataSheet(sSheetID,Sqlca.getConnection()); //设置分页数据容量大小 since ars v 3 dataSheet.setPageSize(100); /* 校验当前用户是否具备报表管理员权限的角色号 * chkAdminRole(String1, String2) * String1: 当前用户号 * String2: 具备报表管理权限的角色编号,格式如"000,100,200" */ dataSheet.chkAdminRole(CurUser.getUserID(), "000"); /* 报表展现的字符集控制(com.amarsoft.ars.parse.chartset.ChartSet) * ARS_CHARTSET_NONE 不做转换 * ARS_CHARTSET_GBK 转换成gbk * ARS_CHARTSET_ISO 转换成iso8859-1 */ dataSheet.setCharsetCode(com.amarsoft.ars.parse.chartset.ChartSet.ARS_CHARTSET_NONE); //报表标题 String sSheetTitle = dataSheet.getSheetTitle(); //解析币种信息 String sCurrencyName = ""; if (sCurrency != null && sCurrency.length() >= 5) { //"Currency(2Bits),CurrencyName" sCurrencyName = sCurrency.substring(3); sCurrency = sCurrency.substring(0,2); } //汇率 if (sCurrency.equals("C1")) { dataSheet.setParam("ERate","*ERateUSD "); dataSheet.setParam("ERateLM","*ERateUSDLM "); dataSheet.setParam("ERateLQ","*ERateUSDLQ "); dataSheet.setParam("ERateLH","*ERateUSDLH "); dataSheet.setParam("ERateLY","*ERateUSDLY "); } else if (sCurrency.equals("C2")) { dataSheet.setParam("ERate","*ERateRMB "); dataSheet.setParam("ERateLM","*ERateRMBLM "); dataSheet.setParam("ERateLQ","*ERateRMBLQ "); dataSheet.setParam("ERateLH","*ERateRMBLH "); dataSheet.setParam("ERateLY","*ERateRMBLY "); } else { dataSheet.setParam("ERate"," "); dataSheet.setParam("ERateLM"," "); dataSheet.setParam("ERateLQ"," "); dataSheet.setParam("ERateLH"," "); dataSheet.setParam("ERateLY"," "); } //币种条件 if (sCurrency.equals("C1")) { dataSheet.setParam("CurrencyCondition"," AND BusinessCurrency!='01' "); } else if (sCurrency.equals("C2")) { dataSheet.setParam("CurrencyCondition",""); } else { dataSheet.setParam("CurrencyCondition"," AND BusinessCurrency='"+sCurrency+"' "); } //减值计提报表币种条件 if (sCurrency.equals("C1")) { dataSheet.setParam("Currency1"," AND Currency!='01' "); } else if (sCurrency.equals("C2")) { dataSheet.setParam("Currency1",""); } else { dataSheet.setParam("Currency1"," AND Currency='"+sCurrency+"' "); } //机构条件 if (sOrgID.equals("00")) { //全行范围 dataSheet.setParam("OrgCondition"," AND OrgID NOT LIKE '11%' "); } else if (sOrgID.length() == 2){ //一级机构 dataSheet.setParam("OrgCondition"," AND OrgID LIKE '"+sOrgID+"%' "); } else { dataSheet.setParam("OrgCondition"," AND OrgID = '"+sOrgID+"' "); } //运算单位名称 dataSheet.setParam("UnitName",parseUnitName(sUnit,sCurrencyName)); dataSheet.setParam("CurrencyName",sCurrencyName); boolean bShowOrgID=true,bShowInputDate=true,bShowCurrency=true,bShowUnit=true; boolean bShowQueryTerm=false; //是否显现机构列表 if (dataSheet.getProperty("ShowOrgID")!=null) if (dataSheet.getProperty("ShowOrgID").equals("false")) bShowOrgID=false; //是否显示日期输入框 if (dataSheet.getProperty("ShowInputDate")!=null) if (dataSheet.getProperty("ShowInputDate").equals("false")) bShowInputDate=false; //是否显示币种 if (dataSheet.getProperty("ShowCurrency")!=null) if (dataSheet.getProperty("ShowCurrency").equals("false")) bShowCurrency=false; //是否显示单位列表 if (dataSheet.getProperty("ShowUnit")!=null) if (dataSheet.getProperty("ShowUnit").equals("false")) bShowUnit=false; //是否显示报表期限 if (dataSheet.getProperty("ShowQueryTerm")!=null) if (dataSheet.getProperty("ShowQueryTerm").equals("true")) bShowQueryTerm=true; /* boolean bShowIndustryType=false,bShowBusinessType=false,bShowCustomer=false,bShowClassify=false,bShowEndDate=false; //是否显示行业分类 if (dataSheet.getProperty("ShowIndustryType")!=null) if (dataSheet.getProperty("ShowIndustryType").equals("true")) bShowIndustryType=true; //是否显示表外业务品种 if (dataSheet.getProperty("ShowBusinessType")!=null) if (dataSheet.getProperty("ShowBusinessType").equals("true")) bShowBusinessType=true; //是否显示大授信客户 if (dataSheet.getProperty("ShowCustomer")!=null) if (dataSheet.getProperty("ShowCustomer").equals("true")) bShowCustomer=true; //是否显示风险分类 if (dataSheet.getProperty("ShowClassify")!=null) if (dataSheet.getProperty("ShowClassify").equals("true")) bShowClassify=true; */ //报表期限 String sDataSheetTerm = (String) dataSheet.getProperty("ReportTerm"); %> 信贷业务固定统计报表
<%@ include file="FixSheetBanner.jsp"%>
<%@ include file="FixSheetBody.jsp"%>
<% //将参数设置到报表中 //报表编号 dataSheet.setParam("SheetID",sSheetID); dataSheet.setCondition("SheetID",sSheetID); //统计日期 dataSheet.setParam("InputDate",sInputDate); dataSheet.setCondition("InputDate",sInputDate); //机构编号 dataSheet.setParam("OrgID",sOrgID); dataSheet.setCondition("OrgID",sOrgID); //单位 dataSheet.setParam("Unit",sUnit); dataSheet.setCondition("Unit",sUnit); //币种 dataSheet.setParam("Currency",sCurrency); dataSheet.setCondition("Currency",sCurrency); if (sInputDate.length()!=0){ String sTomorrow = ""; String sYesterday = ""; String sNextMonth = ""; String sPreMonth = ""; String sCurrentMonth = ""; String sCurrentMonthEnd = ""; String sPreQuarter = ""; String sPreQuarter2 = ""; String sPreQuarter3 = ""; String sPreQuarter4 = ""; String sNextQuarter = ""; String sLastYear = ""; String sThisYear = ""; String sNextYear = ""; String sPreYearEnd = ""; String sPreHalfYear = ""; String sNextHalfYear = ""; /*cell变量 String sQuarterName = ""; String sDateName = ""; String sOrgName = ""; String sMonthOnly = ""; String sYearOnly = ""; */ String sFillinQuarter = ""; String sFillinDate = ""; String sFillinOrgName = ""; String sFillinMonthOnly = ""; String sFillinYearOnly = ""; String sFillinQueryTerm = ""; //文件所处的相对路径 String sBasePath = application.getRealPath("/FixStat/Data"); //文件名 String sCurFileName = new java.io.File(request.getRequestURI()).getName(); String sDataItemJs = ""; //dataSheet.setParam("Total","合计:"); dataSheet.setParam("OrgLevel",""+sOrgID.length()/3); //设定截至日期变量 /* if (bShowEndDate && sEndDate.length()!=0){ dataSheet.setParam("FillinEndDate",com.amarsoft.ars.utils.DateUtils.getFillInDate(sInputDate)); } */ if(sInputDate.length() == 4){ //去年同期 dataSheet.setParam("PreSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, -1, 0,"yyyy")); //明年同期 dataSheet.setParam("NextSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 1, 0,"yyyy")); }else{ //设定日期所需变量 if (sInputDate.length() == 7) { //去年同期 dataSheet.setParam("PreSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, -1, 0)); //明年同期 dataSheet.setParam("NextSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 1, 0)); }else{ //去年同期 dataSheet.setParam("PreSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeDate(sInputDate, -1, 0, 0)); //明年同期 dataSheet.setParam("NextSyncTerm",com.amarsoft.ars.utils.DateUtils.getRelativeDate(sInputDate, 1, 0, 0)); } //填报日期 //out.println(dataSheet.charsetCode()); sTomorrow = com.amarsoft.ars.utils.DateUtils.getRelativeDate(sInputDate, 0, 0, 1); //明日 sYesterday = com.amarsoft.ars.utils.DateUtils.getRelativeDate(sInputDate, 0, 0, -1); //昨日 sNextMonth = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 0, 1); //下月 sPreMonth = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 0, -1); //上月 sCurrentMonth = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 0, 0); //当月 sCurrentMonthEnd= com.amarsoft.ars.utils.DateUtils.getRelativeDate(sNextMonth+"/01",0,0,-1); //当月月末 sPreQuarter = com.amarsoft.ars.utils.DateUtils.getQuaterInfo(sInputDate, -1); //上季 sPreQuarter2 = com.amarsoft.ars.utils.DateUtils.getQuaterInfo(sInputDate, -2); //上2季 sPreQuarter3 = com.amarsoft.ars.utils.DateUtils.getQuaterInfo(sInputDate, -3); //上3季 sPreQuarter4 = com.amarsoft.ars.utils.DateUtils.getQuaterInfo(sInputDate, -4); //上4季 sNextQuarter = com.amarsoft.ars.utils.DateUtils.getQuaterInfo(sInputDate, 1); //下季 sLastYear = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, -1, 0,"yyyy"); //去年 sThisYear = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 0, 0,"yyyy"); //今年 sNextYear = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, 1, 0,"yyyy"); //明年 sPreYearEnd = com.amarsoft.ars.utils.DateUtils.getRelativeMonth(sInputDate, -1, 0).substring(0, 4) + "/12"; //上年末 sPreHalfYear = com.amarsoft.ars.utils.DateUtils.getYearInfo(sInputDate, -1); //前半年期 sNextHalfYear = com.amarsoft.ars.utils.DateUtils.getYearInfo(sInputDate, 1); //后半年期 //cell变量 sFillinQuarter = com.amarsoft.ars.utils.DateUtils.getQuaterName(sInputDate); sFillinDate = com.amarsoft.ars.utils.DateUtils.getFillInDate(sInputDate); //填报日期所属季度 sFillinOrgName = "填报机构:"+com.amarsoft.ars.utils.StringUtils.getOrgName(sOrgID,Sqlca.getConnection(),""); //填报机构 sFillinMonthOnly= com.amarsoft.ars.utils.DateUtils.getFillinParam(sInputDate,2); //填报所处月份 sFillinYearOnly = com.amarsoft.ars.utils.DateUtils.getFillinParam(sInputDate,1); sFillinQueryTerm= sFillinDate; /* sFillinQuarter = sQuarterName; //com.amarsoft.ars.utils.CharSetUtils.convertString(sQuarterName,com.amarsoft.ars.utils.CharSetUtils.ARS_CHARSET_COVERT_GBK_TO_ISO8859); sFillinDate = sDateName; //com.amarsoft.ars.utils.CharSetUtils.convertString(sDateName,com.amarsoft.ars.utils.CharSetUtils.ARS_CHARSET_COVERT_GBK_TO_ISO8859); sFillinOrgName = "填报机构:"+sOrgName;//com.amarsoft.ars.utils.CharSetUtils.convertString("填报机构:",com.amarsoft.ars.utils.CharSetUtils.ARS_CHARSET_COVERT_GBK_TO_ISO8859)+sOrgName; sFillinMonthOnly= sMonthOnly; //com.amarsoft.ars.utils.CharSetUtils.convertString(sMonthOnly,com.amarsoft.ars.utils.CharSetUtils.ARS_CHARSET_COVERT_GBK_TO_ISO8859); sFillinYearOnly = sYearOnly; //com.amarsoft.ars.utils.CharSetUtils.convertString(sYearOnly,com.amarsoft.ars.utils.CharSetUtils.ARS_CHARSET_COVERT_GBK_TO_ISO8859); */ dataSheet.setParam("CurrentMonth" , sCurrentMonth); dataSheet.setParam("Yesterday" , sYesterday); dataSheet.setParam("Tomorrow" , sTomorrow); dataSheet.setParam("PreMonth" , sPreMonth); dataSheet.setParam("NextMonth" , sNextMonth); dataSheet.setParam("CurrentMonthEnd", sCurrentMonthEnd); dataSheet.setParam("PreQuar" , sPreQuarter); dataSheet.setParam("PreQuar2" , sPreQuarter2); dataSheet.setParam("PreQuar3" , sPreQuarter3); dataSheet.setParam("PreQuar4" , sPreQuarter4); dataSheet.setParam("NextQuar" , sNextQuarter); dataSheet.setParam("LastYear" , sLastYear); dataSheet.setParam("ThisYear" , sThisYear); dataSheet.setParam("NextYear" , sNextYear); dataSheet.setParam("PreYearEnd" , sPreYearEnd); dataSheet.setParam("PreHalfYear" , sPreHalfYear); dataSheet.setParam("NextHalfYear" , sNextHalfYear); dataSheet.setParam("FillinDate" , sFillinDate); dataSheet.setParam("FillinQuarter" , sFillinQuarter); dataSheet.setParam("FillinOrgName" , sFillinOrgName); dataSheet.setParam("FillinMonthOnly", sFillinMonthOnly); } //填报所处年份 dataSheet.setParam("FillinYearOnly" , sFillinYearOnly); String sLastTermFlag = "M"; String sPreQueryTerm = sPreMonth; String sNextQueryTerm = sNextMonth; String sTermName = "(月报)"; if(sCtrlQry.equals(QUERY_TERM_YEAR)){ sLastTermFlag = "Y"; sPreQueryTerm = sLastYear; sNextQueryTerm = sNextYear; sTermName = "(年报)"; sFillinQueryTerm= sThisYear+" 年"; }else if(sCtrlQry.equals(QUERY_TERM_HALF_YEAR)){ sLastTermFlag = "H"; sPreQueryTerm = sPreHalfYear; sNextQueryTerm = sNextHalfYear; sTermName = "(半年报)"; }else if(sCtrlQry.equals(QUERY_TERM_QUARTER)){ sLastTermFlag = "Q"; sPreQueryTerm = sPreQuarter; sNextQueryTerm = sNextQuarter; sTermName = "(季报)"; sFillinQueryTerm= sFillinQuarter; }else if(sCtrlQry.equals(QUERY_TERM_DAY)){ sLastTermFlag = "D"; sPreQueryTerm = sYesterday; sNextQueryTerm = sTomorrow; sTermName = "(日报)"; } dataSheet.setParam("Term" ,sLastTermFlag); dataSheet.setParam("PreQueryTerm" ,sPreQueryTerm); dataSheet.setParam("NextQueryTerm" ,sNextQueryTerm); dataSheet.setParam("TermName" ,sTermName); dataSheet.setParam("FillinQueryTerm",sFillinQueryTerm); try{ /* 逐个解析报表元素定义 */ dataSheet.compileDataItem(); /* 生成查询结果并输出到客户端展示 */ dataSheet.genSheetResultJS(sBasePath,out,bRedoFlag); //客户端展示脚本 // System.out.println(dataSheet.genOutPrintJS()); out.println(dataSheet.genOutPrintJS()); }catch(Exception e){ e.printStackTrace(); throw new Error(e.getMessage()); }finally{ if(dataSheet != null) { dataSheet.close(); dataSheet = null; } } } %> <%@ include file="/IncludeEnd.jsp"%>