용테크

[crownix report] Crownix report viewer를 활용한 보고서 출력 본문

Solution/Kendo UI

[crownix report] Crownix report viewer를 활용한 보고서 출력

YongT 2020. 10. 26. 17:24

프로젝트중 보고서출력을 Crownix report - RD Report로 출력하는 기능필요.

 Client에서 팝업 생성 후, DB 정보를 읽어와 HTML5 viewer로 출력하였다.

 

1. iframe에 Crownix Report HTML5 viewer 출력.

2. viewer 실행 시 필요한 parameter 입력(사용자 정보, mrd 파일 parameter, DRM 정보 등..)

3. mrd 파일 호출

 

Iframe에 HTML5 viewer Setting

var fname = 'ideaRd.mrd'

function rdload() {
    $ux.iframe.setRdViewer(rdIrame, params.IDEAID);
    var userInfo = {};
    $ux.data.query({ //사용자, 부서정보
        id: 'SYSTEM_USER_MANAGEMENT_LIST',
        version: '00002',
        parameter: {
            USERID: $ux.user.id()
        },
        reply: function(e) {
            userInfo["id"] = $ux.user.id();
            userInfo["name"] = $ux.user.name();
            userInfo["siteid"] = e.result[0].PLANTID;
            userInfo["dept"] = e.result[0].DEPARTMENT;

            $ux.iframe.initRDViewer(rdIrame);
            setTimeout(function() {
                $ux.iframe.loadRDViewer(rdIrame, fname, '[' + params.IDEAID + ']', userInfo, "idea");
            }, 1000);
        },
        error: function(e) {}
    });
}

 

setRdViewer Function

setRdViewer : function(iframe,ideaid){
				var targetName = $ux.generateID();
				var iframeScrolling = "no";
				var formUrl = "ReportingServer/html5/sample/sample.html";
				var formMethod = "POST";
				localStorage.setItem('rdIdeaID',ideaid);
				$(iframe.item()).html("<iframe class='k-content-frame'id='"+ideaid+"' name='" + targetName + "' scrolling='" + iframeScrolling + "'>");
				$("<form />", {
			        action: formUrl,
			        method: formMethod,
			        target: targetName
			    }).hide().appendTo("body").submit().remove();
				//$('td.NamoSE_skinLine.ce-namo-menu').remove();
			},

 

loadRDViewer Function

loadRDViewer : function (iframe, fname, param, userInfo,isIdea){
  var childIframe = this.getChildIframe(iframe);
  var iframeWin = childIframe[0].contentWindow;

  var ctx = "http://127.0.0.1:8080"; //mrd File Path
  var ds = 'DEV'; //DataBase Server
  var viewer = new iframeWin.m2soft.crownix.Viewer(ctx+'/ReportingServer/service', 'crownix-viewer');
  var file;
  if(!isIdea){
  	file = ctx+'/ReportingServer/mrd/'+fname;
  }else{
  	file = ctx+'/ReportingServer/mrd/ideaRd_S.mrd';	

  }

  var rdparam = '/rcontype [RDAGENT]';
  rdparam += ' /rf ['+ctx+'/DataServer/rdagent.jsp]';
  rdparam += ' /rsn ['+ds+']'
  rdparam += ' /rusedrm [fasoo-jni-2.8.1u.jar] [3@C:\\fsdinit@0000000000002519@'+userInfo.id+'@'+userInfo.name+'@'+userInfo.id+'@'+userInfo.name+'@'+userInfo.siteid+'@'+userInfo.dept+'@'+userInfo.id+'@'+userInfo.name+'@'+userInfo.siteid+'@'+userInfo.dept+'@1]' ;
  rdparam += ' /rp '+param;
  rdparam += ' /rhtmlimportopt [2]';
  viewer.hideToolbarItem(["doc", "xls",  "ppt", "hwp","print_pdf"]); //hidden
  viewer.openFile(file, rdparam); //mrd 파일 지정
  viewer.showToolbarItem(["ratio", "save"]); //Tool bar item




  }

결과

Cronix Report HTML5 Viewer

'Solution > Kendo UI' 카테고리의 다른 글

[Kendo UI] Kendo ButtonBar(kendoTabStrip)  (0) 2020.10.26
[Kendo UI] 엑셀데이터 Grid에 붙여넣기  (0) 2020.07.29
[Kendo UI] Kendo Chart Parameter  (0) 2020.07.29
Comments