i-AUD 보고서 오픈 할 때 파라메터로 전달 받은 변수 값이 깨져 보이는 현상에 대한 해결 방법
해결 방법
- 부모창에서 파라메터 전달 시 Base64.encode 후 전달하는 방법
/**************************************
* 버튼 컨트롤이 클릭되는 시점에 발생합니다.
* * arguments :
* string Id (Readonly:False) : 컨트롤이름
* string Text (Readonly:False) : 라벨 값
**************************************/
var OnButtonClick = function(sender, args){
if(args.Id == "Button"){
var val1 = "123"; // 정상
var val2 = "1234"; // 깨짐
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("REP01129117F9624529B667413081703571", false, false, params);
});
}
}; |
/** ************************************
* 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);
}
|