﻿	function fnPreView(rptPath, pRptParams, pDataType)
	{
		var strRptParam;
		var arrRptParam;
		var oReport;
		var oSubReport;
		var oConnection;
		var oDataSet;
		var oSQL;
        var reportRootPath = window.document.form1.ReporRootPath.value;
        //pDataType = "XML";

		//리포트 단위 string 값을 배열로 변환
		strRptParam = pRptParams.split("^");
		
		//파라미터 단위 string 값을 배열로 변환
		arrRptParam = strRptParam[0].split(":");
        var RexCtl = window.document.form1.RexCtl;
		//RexCtl.EnableHotKey("all=0");
		oReport = RexCtl.OpenReport(reportRootPath + rptPath);
        

		if(oReport == null)
		{
		    alert("can't open report file");
		    return;
		}
		
		if (arrRptParam.length >= 1)
		{
		    for (i = 0; i < arrRptParam.length; i++)
		    {
		        oReport.SetParameterFieldValue(i, arrRptParam[i]);
		    }
		}
	    
		oSQL = oReport.GetSQLControl();
  
		if (pDataType=="XML" || pDataType=="")
		{
			//oConnection = RexCtl.CreateConnection("http.post");
			oConnection = RexCtl.CreateConnection("connectionstring");
		}
		else if (pDataType=="CSV")
		{
			oConnection = RexCtl.CreateConnection("http.csv");
		}
//		oConnection.AddParameter("pSql", oSQL.GetSQL());
		oConnection.AddValue("load", fnGetXML());

		for (k = 1; k <= oReport.GetReportCount(); k++)
		{
		    
			var arrSubRptParam;

			oSubReport = oReport.OpenReport(k - 1);
			
			if (oSubReport == null)
			{
			   alert("can't open report file");
			   return;
			}
			
              if (strRptParam.length >= 2)
              {
                  arrSubRptParam = strRptParam[k].split(":");
                  if (arrSubRptParam.length >= 1)
                  {
                      for (i = 0; i < arrSubRptParam.length; i++)
                      {
                          oSubReport.SetParameterFieldValue(i, arrSubRptParam[i]);
                      }
                  }
              }
	            
            oSQL = oSubReport.GetSQLControl();
            oConnection.AddParameter("pSql", oSQL.GetSQL());

		}
		
		//oConnection.AddParameter("pDataType", pDataType);
		//oConnection.Path = "http://" + location.host + "/COMMON/REPORT/RexServer.asp";
		//oConnection.Send();



		if ((pDataType=="XML" || pDataType=="") )//&& fnGetErrorMsg(oConnection) != "error")
		{

			oDataSet = oReport.CreateDataSetXML(oConnection, "gubun/rpt1/rexdataset/rexrow", 0);
	  }
	  else if (pDataType=="CSV")
	  {
			oDataSet = oReport.CreateDataSetCSV(oConnection, 0, "^", "", "*", "");
	  }
		    
    for (i = 1; i <= oReport.GetReportCount(); i++)
    {		
        oSubReport = oReport.OpenReport(i - 1);
        
        if (pDataType=="XML" || pDataType=="")
        {
        	oDataSet = oSubReport.CreateDataSetXML(oConnection, "gubun/rpt" + (i + 1) + "/rexdataset/rexrow", 0);
        }
        else if (pDataType=="CSV")
        {
        	oDataSet = oSubReport.CreateDataSetCSV(oConnection, i, "^", "", "*", "");		
        }
        
     }
     RexCtl.Run();
	}

    ///////////////////////////////////////////////////////	 
	 
	function fnSubView(rptPath, pRptParams, pDataType)
	    {
		    var strRptParam;
		    var arrRptParam;
		    var oReport;
		    var oSubReport;
		    var oConnection;
		    var oDataSet;
		    var oSQL;
            var reportRootPath = window.document.form1.ReporRootPath.value;
            //pDataType = "XML";

		    //리포트 단위 string 값을 배열로 변환
		    strRptParam = pRptParams.split("^");
    		
		    //파라미터 단위 string 값을 배열로 변환
		    arrRptParam = strRptParam[0].split(":");
            var RexCtl = window.document.form1.RexCtl;
		    //RexCtl.EnableHotKey("all=0");
		    oReport = RexCtl.OpenReport(reportRootPath + rptPath);
            

		    if(oReport == null)
		    {
		        alert("can't open report file");
		        return;
		    }
    		
		    if (arrRptParam.length >= 1)
		    {
		        for (i = 0; i < arrRptParam.length; i++)
		        {
		            oReport.SetParameterFieldValue(i, arrRptParam[i]);
		        }
		    }

		    oSQL = oReport.GetSQLControl();

		    if (pDataType=="XML" || pDataType=="")
		    {
			    //oConnection = RexCtl.CreateConnection("http.post");
			    oConnection = RexCtl.CreateConnection("connectionstring");
		    }
		    else if (pDataType=="CSV")
		    {
			    oConnection = RexCtl.CreateConnection("http.csv");
		    }

    //		oConnection.AddParameter("pSql", oSQL.GetSQL());
		    oConnection.AddValue("load", fnGetXML());

		    for (k = 1; k <= oReport.GetReportCount(); k++)
		    {
    		    
			    var arrSubRptParam;

			    oSubReport = oReport.OpenReport(k - 1);
    			
			    if (oSubReport == null)
			    {
			       alert("can't open report file");
			       return;
			    }

                if (strRptParam.length >= 2)
                {
                    arrSubRptParam = strRptParam[k].split(":");
                    if (arrSubRptParam.length >= 1)
                    {
                      for (i = 0; i < arrSubRptParam.length; i++)
                      {
                      alert(arrSubRptParam[i]);
                          oSubReport.SetParameterFieldValue(i, arrSubRptParam[i]);
                      }
                    }
                }

                oSQL = oSubReport.GetSQLControl();	      
                  
                //oConnection.AddParameter("pSql", oSQL.GetSQL());	        

		    }
    		
		    //oConnection.AddParameter("pDataType", pDataType);
		    //oConnection.Path = "http://" + location.host + "/COMMON/REPORT/RexServer.asp";
		    //oConnection.Send();


            if ((pDataType=="XML" || pDataType=="") )//&& fnGetErrorMsg(oConnection) != "error")
            {
	            oDataSet = oReport.CreateDataSetXML(oConnection, "gubun/rpt1/rexdataset/rexrow", 0);
            }
            else if (pDataType=="CSV")
            {
	            oDataSet = oReport.CreateDataSetCSV(oConnection, 0, "^", "", "*", "");
            }
    		    
            for (i = 1; i <= oReport.GetReportCount(); i++)
            {		
                oSubReport = oReport.OpenReport(i - 1);
                
                if (pDataType=="XML" || pDataType=="")
                {
    	            oDataSet = oSubReport.CreateDataSetXML(oConnection, "gubun/rpt" + (i + 1) + "/rexdataset/rexrow", 0);
                }
                else if (pDataType=="CSV")
                {
    	            oDataSet = oSubReport.CreateDataSetCSV(oConnection, i, "^", "", "*", "");		
                }
                
             }
             
             RexCtl.Run();
	    }     
	 
	/////////////////////////////////////////////////////// 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	function fnGetErrorMsg(oConnection)
	{

		var oXMLDOM = oConnection.GetXMLDOM(); 

		if(oXMLDOM == null)
		{
			alert(oConnection.Response());
			return;
		}
		
		try
		{
			oXMLDOM.setProperty("SelectionLanguage", "XPath");
			
			var oNodes = oXMLDOM.selectSingleNode("gubun/error/msg");
			
			if(oNodes == null)
			{
				
				if (oXMLDOM.parseError.errorCode != 0)
				{
					var oError = oXMLDOM.parseError;
					alert(oError.reason);
					return "error";
				}
				else
				{
					return "";
				}

			}
			else
			{
				
				alert(oNodes.text);
				return "error";
			}
			
		}
		catch(e)
		{
			alert(e.message);
			return "error";
		}
				
	}
	function fnGetXML()
	{
	    var xmlValue = window.document.form1.htxtReportXML.value;
	    return xmlValue;
	}
	
	
	function fnGetReportDATA(bizName,methodName,parameters)
	{
	     var ifrm = document.createElement("<iframe src='' width=0 height=0 id=abc style='display:none'>");	     
         ifrm.src = GetJNURootPath() + "/ARSAMWeb/CMM/REF/CMMUsePage/ReportDataLoader.aspx?BIZNAME="+bizName+"&METHOD="+ methodName + "&PARAMS="+parameters;
         document.forms[0].appendChild(ifrm);
	}
	
