페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

i-AUD 보고서 오픈 할 때 파라메터로 전달 받은 변수 값이 깨져 보이는 현상에 현상(한글, 변수 값이 4자리 또는 4의 배수일 때)에 대한 해결 방법

  1. 원인
    1. 매트릭스 표준 보고서 변수 전달 규약은 Base64.encode로 전달 및 decode를 기준으로 합니다.
    2. Base64.encode되지 않은 값이 자식창에서 base64.encode된 문자열로 오인하여 decode 시도하여 한글이 깨지는 현상이 발생합니다.

  2. 해결 방법
        - 부모창에서 파라메터 전달 시 Base64.encode 후 전달하는 방법

    코드 블럭
    title부모창 JScript 예시
    linenumberstrue
    collapsetrue
    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 == "ButtonBTN_SEND_01"){
    		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(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 }
    				];
    				// 테스트 자식보고서
    				window.top.fnCustomReportOpen("REP01129117F9624529B667413081703571", false, false, params                ];
    
                    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);
        	    });
    	    }
    };


    코드 블럭
    title부모창 ServerScript 예시
    linenumberstrue
    collapsetrue
    /** ************************************
    * 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);
    }
    
    

    View file
    nameG1956_Sender.mtsz
    height250
    View file
    nameG1956_Reciever.mtsz
    height250



  3. 해당 가이드의 샘플 보고서
    > 부모보고서 : 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