i-AUD 보고서 오픈 할 때 파라메터로 전달 받은 변수 값이 깨져 보이는 현상에 대한 해결 방법
해결 방법
- 부모창에서 파라메터 전달 시 Base64.encode 후 전달하는 방법
var val1 = "123"; // 정상
var val2 = "1234"; // 깨짐
var pop_w = screen.width * 0.9;
var pop_h = screen.height * 0.9;
var leftPosition =10;
var topPosition = 10;
var reportCode = "REP59C5D334B29344CBA0957608DFEA9867"; // Param_Reciever보고서
/**************************************
* 버튼 컨트롤이 클릭되는 시점에 발생합니다.
* * arguments :
* string Id (Readonly:False) : 컨트롤이름
* string Text (Readonly:False) : 라벨 값
**************************************/
var OnButtonClick = function(sender, args){
if(args.Id == "BTN_SEND_01"){
Matrix.RunScriptEx("", "Service1", {"VS_VAL1":val1,"VS_VAL2":val2}, function(p) {
if(p.Success == false){
Matrix.Alert(p.Message);
return;
}
var ds = p.DataSet;
var params = [
{ KEY: "VS_DETAIL_CURRENCY1", VALUE: ds[0].VS_VAL1 },
{ KEY: "VS_DETAIL_CURRENCY2", VALUE: ds[1].VS_VAL2 }
];
// 테스트 자식보고서
window.top.fnCustomReportOpen(reportCode, false, false, params);
});
} else if(args.Id == "BTN_SEND_02"){
Matrix.RunScriptEx("", "Service1", {"VS_VAL1":val1,"VS_VAL2":val2}, function(p) {
if(p.Success == false){
Matrix.Alert(p.Message);
return;
}
var ds = p.DataSet;
var params = [
{ KEY: "VS_DETAIL_CURRENCY1", VALUE: ds[0].VS_VAL1 },
{ KEY: "VS_DETAIL_CURRENCY2", VALUE: ds[1].VS_VAL2 }
];
var url = "https://rnd.bimatrix.co.kr/aud7/portal/popupView.jsp?btn=false&id="+reportCode + "&VS_DETAIL_CURRENCY1=" + ds[0].VS_VAL1 + "&VS_DETAIL_CURRENCY2=" + ds[1].VS_VAL2;
var opts = "toolbar=no,scrollbars=no,resizable=yes,top="+topPosition+",left="+leftPosition+",width="+pop_w+",height="+pop_h;
// 테스트 자식보고서
window.open(url,"",opts);
});
}
}; |
/** ************************************
* SERVER - SCRIPT
*
************************************ **/
var req = Matrix.getRequest(); /* request */
var res = Matrix.getResponse(); /* response */
var session = Matrix.getSession(); /* session */
var util = Matrix.getUtility(); /* utility */
var val1 = req.getParam("VS_VAL1");
var val2 = req.getParam("VS_VAL2");
try{
var writer = res.getJsonResponseWriter();
writer.beginArray();
writer.beginObject();
writer.addProperty("VS_VAL1", util.getBase64EncodingString(val1));
writer.endObject();
writer.beginObject();
writer.addProperty("VS_VAL2", util.getBase64EncodingString(val2));
writer.endObject();
writer.endArray();
writer.close();
}catch(e){
Matrix.ThrowException("Server Script Error:" + e.message);
}
|
해당 가이드의 샘플 보고서
> 부모보고서 : https://rnd.bimatrix.co.kr/aud7/extention/portal/SimpleSSO_Con.jsp?reportCode=REP3A7CE366EF0D4E229B4E027B3B2388DD
> 자식보고서 : https://rnd.bimatrix.co.kr/aud7/extention/portal/SimpleSSO_Con.jsp?reportCode=REP59C5D334B29344CBA0957608DFEA9867