财务报表字符问题

This commit is contained in:
zhouyahui 2018-10-15 20:09:45 +08:00
parent 6a86fbe30d
commit 76ee045214
3 changed files with 29 additions and 10 deletions

View File

@ -0,0 +1 @@
"use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i<imax;i+=4){b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6)|_getbyte64(s,i+3);x.push(String.fromCharCode(b10>>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i<imax;i+=3){b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8)|_getbyte(s,i+2);x.push(_ALPHA.charAt(b10>>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery));

View File

@ -40,7 +40,7 @@
<input id="sqlString" name="sqlString" value="">
</div>
</form>
<script src="<%=sWebRootPath%>/Frame/page/js/jquery.base64.js" type="text/javascript"></script>
<script type="text/javascript">
var ObjectType = "CustomerFS";
//新增一期财务报表
@ -110,17 +110,28 @@
function FSExport(){
var sReportDate = getItemValue(0,getRow(),"ReportDate");
alert(sReportDate);
if(!sReportDate){
alert("请选择一条信息!");
return;
}
var sObjectNo = getItemValue(0,getRow(),"CustomerID");
alert(sObjectNo);
var sReportScope = getItemValue(0,getRow(),"ReportScope");
alert(sReportScope);
AsControl.ExportFinanceReport(ObjectType, sObjectNo, sReportScope, sReportDate);
var sReportScope = getItemValue(0,getRow(),"ReportScope");
var sParam;
if(arguments.length == 1) sParam = "ReportNo="+arguments[0];
else sParam = "ObjectType="+ObjectType+",ObjectNo="+sObjectNo+",ReportScope="+sReportScope+",ReportDate="+sReportDate;
var sReportExcelPath = AsControl.RunJavaMethodSqlca("com.amarsoft.app.util.ExportExcel", "run", sParam);
if(!sReportExcelPath) return;
console.info(sReportExcelPath);
sReportExcelPath=$.base64.encode(encodeURI(sReportExcelPath));
console.info(sReportExcelPath);
if(!frames["exportfsframe"]) $("<iframe name='exportfsframe' style='display:none;'></iframe>").appendTo("body");
window.open(sWebRootPath+"/servlet/view/file1?CompClientID="+sCompClientID+"&filename="+sReportExcelPath+"&viewtype=download", "exportfsframe");
console.info(sWebRootPath);
}
@ -132,6 +143,8 @@
}
var sObjectNo = getItemValue(0,getRow(),"CustomerID");
var sReportScope = getItemValue(0,getRow(),"ReportScope");
AsControl.ExportFinanceReport(ObjectType, sObjectNo, sReportScope, sReportDate);
console.info(sWebRootPath);
}

View File

@ -3,6 +3,7 @@ package com.tenwa.lease.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletException;
@ -11,9 +12,13 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.codec.binary.Base64;
import com.amarsoft.are.ARE;
import com.amarsoft.are.util.DataConvert;
import sun.misc.BASE64Decoder;
public class FileViewServlet extends javax.servlet.http.HttpServlet{
private static final long serialVersionUID = 1L;
@ -31,10 +36,8 @@ public class FileViewServlet extends javax.servlet.http.HttpServlet{
String sContentType = "text/html";
String sViewType = "view";
sFileName = DataConvert.toString(request.getParameter("filename"));
System.out.println("解码前:"+sFileName);
sFileName = new String(sFileName.getBytes("iso-8859-1"),"GBK");
System.out.println("解码后:"+sFileName);
BASE64Decoder de = new BASE64Decoder();
sFileName = URLDecoder.decode(new String(de.decodeBuffer( request.getParameter("filename")), "UTF-8"),"UTF-8");
sContentType = DataConvert.toString(request
.getParameter("contenttype"));
sViewType = DataConvert.toString(request.getParameter("viewtype"));
@ -75,6 +78,8 @@ public class FileViewServlet extends javax.servlet.http.HttpServlet{
} else if (clientInfo.indexOf("Firefox") > 0) {
browName = new String(sNewFileName.getBytes("UTF-8"),
"ISO-8859-1");
}else{
browName = URLEncoder.encode(sNewFileName, "utf-8");
}
}
response.setContentType(sContentType + ";charset=GBK");