apzl_leasing/WebContent/FixStat/FixSheetShow.jsp
2018-06-03 22:26:41 +08:00

439 lines
15 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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");
%>
<html>
<head>
<title>信贷业务固定统计报表</title>
<style type="text/css">
<!--
body {
margin: 0;
padding: 0;
overflow: hidden;
}
-->
</style>
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">
<table border="0" width="100%" height="100%" cellspacing="0"
cellpadding="0" bgcolor='#DCDCDC'>
<tr height=0 valign=top>
<td><%@ include file="FixSheetBanner.jsp"%>
</td>
</tr>
<tr height=100% valign=top>
<td><%@ include file="FixSheetBody.jsp"%>
</td>
</tr>
</table>
<%
//将参数设置到报表中
//报表编号
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;
}
}
}
%>
<script>
div_owc.style.display="block";
div_param.style.display="block";
div_process.style.display="none";
</script>
</body>
</html>
<%@ include file="/IncludeEnd.jsp"%>