인터넷 익스플로러의 설계 변경 관련 오즈 뷰어 활성화 가이드

작성자
포시에스
작성일
2006-02-27 18:43
조회
6683
태그 등에 대한 특허권 소송 관련하여 아래와 같이 마이크로소프트에서는 인터넷 익스플로러에 대해서 부분적 변경을 실시한다는 입장을 발표했습니다. 웹 페이지에 Embaded된 APPLET, EMBED 또는 OBJECT를 사용하여 ActiveX 컨트롤을 로드하면, 사용자가 활성화(클릭 또는 키입력)할 때까지 그 컨트롤의 사용자 인터페이스는 차단됩니다.

이에 따라 OZ Report 및 OZ Application, OZ XStudio를 사용 중인 사이트에서는 마이크로소프트의 대응 방안을 참조하여 리포트 및 애플리케이션 뷰어를 호출하는 웹 페이지를 수정하시면 기존과 동일한 형태로 운영할 수 있습니다.

마이크로소프트의 대응 방안을 참조하여 저희가 만든 오즈 뷰어 호출을 위한 샘플을 참고하시기 바랍니다.

( http://ozz.forcs.com/OZGuide/Skill/MS_Update_OZActiveX.zip 에서 다운받으실 수 있습니다.)

-----------------------------------------------------------------------------------------------

[기존의 기본 리포트 호출 태그]

n oz_basic_call.jsp
 
<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="CLSID:C7C7225A-9476-47AC-B0B0-FF3B79D55E67" codebase="http://211.116.251.49:8087/ozviewer/31/20051215100/ZTransferX.cab#version=2,1,1,6">
<PARAM NAME="download.Server" VALUE="http://211.116.251.49/ozviewer/31/20051215100/">
<PARAM NAME="download.Port" VALUE="8087">
<PARAM NAME="download.Instruction" VALUE="ozviewer31.idf">
<PARAM NAME="install.Base" VALUE="<PROGRAMS>/Forcs">
<PARAM NAME="install.Namespace" VALUE="3120051215100"></OBJECT>

<OBJECT id = "ozviewer" CLASSID="CLSID:64DA633F-E73B-4344-83BF-48483346CD53" width="100%" height="100%">
<param name="connection.servlet" value="http://211.116.251.49:8087/oz3120051026/server">
<param name="connection.reportname" value="/ozdemo30/kr/B/chart_lotation_edit.ozr">
<param name="odi.odinames" value="chart_lotation_edit">
<param name="viewer.isframe" value="false">
</OBJECT>

[IE 설계변경으로 인한 수정 태그] 오즈 리포트 또는 어플리케이션을 호출하는 object 태그를 변수에 담아 oz_activex.js 의 document.write 함수에 적용합니다.
n oz_activex.js
function oz_activex_build( paramTag){
for(var i = 0 ; i < paramTag.length; i++){
document.write(paramTag[i]);
}
}

n oz_activex.htm
 

<HEAD>
<script src="oz_activex.js"></script>
</HEAD>


<BODY>
<Div>
<script LANGUAGE="Javascript">
var zTag = new Array();
zTag[zTag.length] = "<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="CLSID:C7C7225A-9476-47AC-B0B0-FF3B79D55E67" codebase="http://211.116.251.49:8087/ozviewer/31/20051215100/ZTransferX.cab#version=1,0,3,3">";
zTag[zTag.length] = "<PARAM NAME="download.Server" VALUE="http://211.116.251.49/ozviewer/31/20051215100/">";
zTag[zTag.length] = "<PARAM NAME="download.Port" VALUE="8087">";
zTag[zTag.length] = "<PARAM NAME="download.Instruction" VALUE="ozviewer31.idf">";
zTag[zTag.length] = "<PARAM NAME="install.Base" VALUE="<PROGRAMS>/Forcs">";
zTag[zTag.length] = "<PARAM NAME="install.Namespace" VALUE="3120051215100"></OBJECT>";
oz_activex_build( zTag);
</script>
</
BODY>
<script LANGUAGE="Javascript">
var paramTag = new Array();
paramTag[paramTag.length] = "<OBJECT id = "ozviewer" CLASSID="CLSID:64DA633F-E73B-4344-83BF-48483346CD53" width="100%" height="100%">";
paramTag[paramTag.length] = "<param name="connection.servlet" value="http://211.116.251.49:8087/oz3120051026/server">";
paramTag[paramTag.length] = "<param name="connection.reportname" value="/ozdemo30/kr/B/chart_lotation_edit.ozr">";
paramTag[paramTag.length] = "<param name="odi.odinames" value="chart_lotation_edit">";
paramTag[paramTag.length] = "<param name="viewer.isframe" value="false">";
paramTag[paramTag.length] = "</OBJECT>";
oz_activex_build( paramTag);
</script>
</Div>

-----------------------------------------------------------------------------------------------

일반적으로 현재 오즈 뷰어 호출 태그는 위의 태그를 기본으로 하여 공통 jsp/asp 등을 이용하여 사용합니다.
그 중의 대표적인 예를 이용하여 적용하는 방법을 추가 설명 드립니다.
아래의 예는 오즈 뷰어를 설치하는 object 태그와 리포트를 호출하는 부분중의 일부를 oz_include.jsp 의 공통 파일로 만들어 호출하는 예입니다.
 

  * < oz_basic_call.jsp><oz_include.jsp><oz_include_call.jsp>

 

<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="">
.
codebase="http://ip/ZTransferX.cab>

<OBJECT ID="ozviewer" CLASSID="
">
.
<param name="connection.servlet" value="http://~">
<param name="connection.reportname" value="~">
.
</OBJECT>

 

<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="">
.
codebase="http://ip/ZTransferX.cab>
<OBJECT ID="ozviewer" CLASSID="
">
<param name="connection.servlet" value="http://~">

<param name="connection.servlet" value="http://~">
<param name="connection.reportname" value="~">
.
</OBJECT>

 
[공통 jsp를 이용한 리포트 호출 태그의 예]

n * oz_include.jsp
 

<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="CLSID:C7C7225A-9476-47AC-B0B0-FF3B79D55E67" codebase="http://211.116.251.49:8087/ozviewer/31/20051215100/ZTransferX.cab#version=2,1,1,6">
<PARAM NAME="download.Server" VALUE="http://211.116.251.49/ozviewer/31/20051215100/">
<PARAM NAME="download.Port" VALUE="8087">
<PARAM NAME="download.Instruction" VALUE="ozviewer31.idf">
<PARAM NAME="install.Base" VALUE="<PROGRAMS>/Forcs">
<PARAM NAME="install.Namespace" VALUE="3120051215100">
</OBJECT>
<OBJECT id = "ozviewer" CLASSID="CLSID:64DA633F-E73B-4344-83BF-48483346CD53" width="100%" height="100%">
<param name="connection.servlet" value="http://211.116.251.49:8087/oz3120051026/server">

 

  *oz_include_call.htm
<%@ include file="./oz_include.jsp"%>
<param name="connection.reportname" value="/ozdemo30/kr/B/chart_lotation_edit.ozr">
<param name="odi.odinames" value="chart_lotation_edit">
<param name="viewer.isframe" value="false">
<param name="viewer.namespace" value="3120051114100">
</OBJECT>

[공통 jsp 이용 호출 태그를 IE 설계변경으로 인한 수정 예]
n

   * ie_oz_include.htm
<script src="oz_activex.js"></script>
<script LANGUAGE="Javascript">
var zTag = new Array();
zTag[zTag.length] = "<OBJECT width = "0" height = "0" ID="ZTransferX" CLASSID="CLSID:C7C7225A-9476-47AC-B0B0-FF3B79D55E67" codebase="http://211.116.251.49:8087/ozviewer/31/20051215100/ZTransferX.cab#version=1,0,3,3">";
zTag[zTag.length] = "<PARAM NAME="download.Server" VALUE="http://211.116.251.49/ozviewer/31/20051215100/">";
zTag[zTag.length] = "<PARAM NAME="download.Port" VALUE="8087">";
zTag[zTag.length] = "<PARAM NAME="download.Instruction" VALUE="ozviewer31.idf">";
zTag[zTag.length] = "<PARAM NAME="install.Base" VALUE="<PROGRAMS>/Forcs">";
zTag[zTag.length] = "<PARAM NAME="install.Namespace" VALUE="3120051215100"></OBJECT>";
oz_activex_build( zTag);
</script>
<script LANGUAGE="Javascript">
var paramTag = new Array();
paramTag[paramTag.length] = "<OBJECT id = "ozviewer" CLASSID="CLSID:64DA633F-E73B-4344-83BF-48483346CD53" width="100%" height="100%">";
paramTag[paramTag.length] = "<param name="connection.servlet" value="http://211.116.251.49:8087/oz3120051026/server">";
 
  *ie_oz_include_call.htm
<%@ include file="./ie_oz_include.jsp"%>
paramTag[paramTag.length] = "<param name="connection.reportname" value="/ozdemo30/kr/B/chart_lotation_edit.ozr">";
paramTag[paramTag.length] = "<param name="odi.odinames" value="chart_lotation_edit">";
paramTag[paramTag.length] = "<param name="viewer.isframe" value="false">";
paramTag[paramTag.length] = "<param name="viewer.namespace" value="3120051215100ozviewer">";
paramTag[paramTag.length] = "</OBJECT>";
oz_activex_build(paramTag);
</script>
참고1. Jsp 또는 asp 등의 변수로 값을 처리할 때에도 같은 방법입니다.
paramTag[paramTag.length] = "";
paramTag[paramTag.length] = "";
paramTag[paramTag.length] = "";

참고2. 오즈 뷰어의 호출하는 태그에만 영향이 있을 뿐 ozr,oza,odi 파일 등의 수정은 전혀 없습니다.
기존의 object 내의 내용은 전혀 수정할 필요가 없고, javascript 로 감싸는 부분만 수정해 주시면 됩니다.

참고3. 오즈뷰어가 브라우저에 Embaded되는 경우(가 사용됩니다.)가 아닌 Standalone형태로 사용될 경우에는 ActiveX 컨트롤 비활성화에 영향을 받지 않는 것으로 WindowXP-KB912945-x86-KOR 으로 테스트 되었습니다. 따라서 현재까지의 MS 발표한 내용에 따르면, 오즈 리포트를 호출시에 태그가 사용되지 않은 경우에는 위와 같은 태그 수정을 하지 않아도 영향이 없는 것으로 확인되었습니다. 단, 이 때 object 태그의 width와 height가 0이 되어야 합니다.

참고4. 위의 설명은 첨부된 파일의 [방법1]에 대한 내용입니다. 그러나 MS에서는 [방법2]의 방법도 언급하고 있습니다. 두 가지 모든 방법이 잘 적용되었음을 확인하였습니다.

참고5. [방법2] 폴더의 OZViewer_TagSample_JSP.zip 파일은 OZViewer_TagSample.zip 파일을 기본으로 하여 공통 jsp를 사용하여 분리한 예제입니다.



※ 위의 제공된 태그는 Microsoft사에서 제공한
http://www.microsoft.com/korea/windows/ie/ie6/activex/activate/default.mspx내용을 기반으로 작성되었고, 현재까지 제공된 윈도우 패치본으로 테스트한 결과 정상적으로 실행되는 것을 확인하였습니다.