from. http://myhome.hanafos.com/~jkspark/telecom/PB_Activx.htm

1. 파워빌더 윈도우 액티브X

파워빌더 윈도우 액티브X는 파워빌더 Child윈도우를 액티브X를 지원하는 브라우저 상에서 보여준다.



파워빌더 윈도우 액티브X는 데이터윈도우, OLE오브젝트, OCX( ActiveX ) 컨트롤, TreeView컨트롤 등 모든 파워빌더 컨트롤을 사용할 수 있다. 파워빌더 Child 윈도우에서 Popup이나 Response 윈도우 같은 다른 윈도우를 열수도 있다. 사용자가 윈도우의 컨트롤을 가지고 작업을 하듯이 컨트롤의 이벤트에 작성해 놓은 스크립트 또한 마치 파워빌더 애플리케이션이 웹에서가 아니라 독립적으로 수행하는 것처럼 실행된다. 게다가 HTML 페이지 안에서 VBScript나 JAVAScript를 작성하여 파워빌더의 이벤트나 함수를 발생시킬 수 있다.클라이언트 쪽에 데이터베이스 연결에 관한 정보를 작성해 놓음으로써 데이터베이스도 액세스할 수 있다. 여러 개의 PBD로 나누어서 애플리케이션을 작성할 수도 있다.

지원하는 플랫폼

파워빌더 윈도우 액티브X는 아래의 O/S만 지원한다.

  • Windows NT 4.0
  • Windows 95 

지원하는 브라우저

파워빌더 윈도우 액티브X는 아래와 같이 액티브X를 지원하는 브라우저에서 사용할 수 있다.

  • Ncompass ScriptActive 플러그-인을 사용하는Netscape Navigator Version 3.x나 그 이상
  • Microsoft Internet Explorer Version 3.x나 그 이상

요구 사항

파워빌더 윈도우 액티브X는 파워빌더의 모든 기능을 제공하기위해 액티브X 뿐만 아니라 파워빌더의 VM( Virtual Machine )이 필요하다.

각각 클라이언트의 로컬 머신 쪽에 아래 사항의 DLL이 설치되어 있어야 한다.

  • 파워빌더 런타임 DLL : 파워빌더 런타임 DLL이 설치되어 있는 폴더와 브라우저가 있는 폴더가 패스에 연결되어 있어야 한다.
  • 파워빌더 윈도우 액티브X
  • 파워빌더 VM ( PBVM60.DLL ) : 파워빌더 런타임과 함께 설치된다.

    파워빌더 윈도우 액티브X는 클라이언트의 소프트웨어 등을 제어할 수 있는 인트라넷 환경의 애플리케이션 작성에 유용하다.

2. 파워빌더 윈도우 액티브X 애플리케이션 작성시 고려할 사항

파워빌더 윈도우 액티브X 애플리케이션 개발시 다음과 같은 사항을 주의해야 한다.

  • 윈도우 관리
  • 스크립트와 변수
  • 데이터 액세스
  • 외부 파일들

윈도우 관리

파워빌더 윈도우 액티브X 애플리케이션의 초기 윈도우는 반드시 Child 윈도우이어야 한다. 이 Child 윈도우는

  • Control 메뉴, Maximize박스, Minimize박스를 가지면 안된다.
  • 다른 Child윈도우를 열 수 없다.
  • 메뉴 바를 가질 수 없다.

그러나

  • Child윈도우에서 Response나 Popup윈도우는 열수가 있다.
  • Main이나 MDI윈도우는 열 수가 없다.
  • 타이틀 바를 가질 수도 있다.

현재 웹 페이지에서 다른 웹 페이지로 넘어갈 때, Child 윈도우는 닫힌다. 만약에 다른 열려 있는 윈도우가 남아있는 상태에서 다른 웹 페이지로 넘어 갈 수도 있기때문에 Child 윈도우의 Close나 CloseQuery 이벤트에서 다른 윈도우를 종료하는 스크립트를 작성해야만 한다.

Child 윈도우의 CloseQuery 이벤트에서 Return 값을 사용하여( Return 1 ) 윈도우가 종료되는 것을 막으려고는 하지 말아라.

오브젝트

PBD안에 있는 오브젝트 파워빌더 윈도우 액티브X 애플리케이션에서는 PBD 안에 있는 구조체나 함수, 유저오브젝트등 모든 오브젝트를 액세스할 수 있다. 시스템 오브젝트 파워빌더 윈도우 액티브X 애플리케이션은 파워빌더가 자동으로 생성해 주는 SQLCA라는 Transaction오브젝트나 Message오브젝트 같은 시스템 오브젝트를 액세스할 수 있다. Application 오브젝트 파워빌더 PBD 안의 Application 오브젝트 이름을 지정하는 Embed 요소의 하나인 PBAPPLICATION이라는 속성을 사용할 수 있다. 이 PBAPPLICATION 이라는 속성에 Application 오브젝트의 이름을 지정하여 Application 오브젝트의 Open이나 Close 이벤트를 액세스할 수 있다.

만약 PBAPPLICATION 속성에 파워빌더 Application 오브젝트의 이름을 지정하지 않으면

  • 파워빌더 Application 오브젝트를 사용할 수 없어 SystemError나 Idle, Open, Close같은 이벤트를 이용할 수 없다. 또한 Global같은 Application 오브젝트에서 선언되는 함수나 변수를 사용할 수 없다.

변수나 스크립트

애프리케이션 구성을 위한 스크립트 HTML에서 PBAPPLICATION 이라는 속성을 이용하면 Child 윈도우를 열기 전에 Application오브젝트의 Open이벤트를 수행합니다. Global 변수를 초기화 하거나 데이터베이스에 연결정보등을 지정하기위해 Application 오브젝트의 Open 이벤트를 사용합니다. 만약에 PBAPPLICATION 속성을 사용하지 않으면 파워빌더 윈도우 액티브X 애플리케이션에서 Application 오브젝트의 Open 이벤트를 사용할 수가 없기 때문에 모든 변수가 Instance나 Shared, Local로 선언되어야 하고 DBMS에 관한 정보도 Child 윈도우에서 하여만 한다.

데이터베이스 액세스

만일 애플리케이션에서 DBMS를 액세스한다면 각 클라이언트에는 데이터 소스에 연결하기위한 것들을 가지고 있어야만 한다. 각 데이터베이스 연결에 관한 자세한 사항은 파워빌더 메뉴얼 “Connecting to Your Database”를 참조하기 바란다. 윈도우의 Open 이벤트가 발생하기 전에 컨트롤들의 Constructor 이벤트가 먼저 발생한다는 것을 기억하기 바란다. 이 말은 만약에 윈도우의 Open 이벤트에 DBMS 연결 정보를 지정해 놓고 컨트롤의 Constructor 이벤트에서 데이터를 액세스하려고 하면 액세스 할 수 없다는 것을 의미한다.

 

외부 파일들

만약에 애플리케이션에서 외부 그림 파일을 사용한다면, 이 그림은 지정된 패스 상에 있어야만 한다. 외부 파일을 직접 사용하는 대신에 파워빌더 리소스 파일( PBR )로 만들어 PBD 안에 포함하여 사용할 수도 있다.

만약에 외부의 파일을 그대로 사용하려면, 파일의 위치를 나타내는 경로를 제대로 지정하여야 한다. 만약 네트웍 드라이브를 참조하여야 한다면 네트웍 드라이브를 나타내는 패스 명을 지정하여야 한다.

\\marketing \drive\pbapps\connect.bmp

 

3. 브라우저 화면과 HTML 페이지 소스


HTML 소스

<HTML>

<HEAD><TITLE>파워빌더 윈도우 액티브X</TITLE></HEAD>

<H1>파워빌더 윈도우 액티브X</H1>

이 윈도우는 여러 윈도우 컨트롤을 가지고 있는 형식입니다. 일부는 데이터베이스에서 데이터를 조회하여 보여주기도 하고 데이터베이스에 데이터를 저장하기도 합니다.

<P>

<OBJECT NAME="PBRX1" WIDTH=550 HEIGHT=530

CODEBASE="pbrx60.ocx#Version=6, 0, 1, 0"

CLASSID="CLSID:CEC58653-C842-11CF-A6FB-00805FA8669E">

<PARAM NAME="_Version" VALUE="65536">

<PARAM NAME="_ExtentX" VALUE="5962">

<PARAM NAME="_ExtentY" VALUE="2164">

<PARAM NAME="_StockProps" VALUE="0">

<PARAM NAME="PBWindow" VALUE="w_activex">

<PARAM NAME="LibList" VALUE="http://210.108.181.185/idt/activex.pbd”>

<PARAM NAME="PBApplication" VALUE="activex">

</OBJECT>

</HTML>

Object element 속성들

Object element는 액티브X 컨트롤을 지정하는 HTML의 일부이다. 일부 표준 속성들과 파워빌더가 제공하는 속성들을 살펴보도록 하자.

HTML 속성

NAME

코드에서 참조를 할때나 폼의 일부로써 종속이 될때 사용하는 오브젝트의 이름

CLASSID

레지스터에 등록된 액티브X 컨트롤의 클래스 ID이다. Syntax는

CLSID:class_id

CODEBASE

만약 클라이언트 쪽에 파워빌더 윈도우 액티브를 가지고 있지 않으면 다운로드 받기위해 OCX나 CAB 파일의 위치를 지정하는 URL이다. 물론 클라이언트 쪽에는 파워빌더 윈도우 액티브X 말고도 파워빌더 VM과 다른 필요한 DLL이 시스템 패스에 연결되어 있어야 한다.

WIDTH

윈도우를 보여줄 픽셀 너비

HEIGHT

윈도우를 보여줄 픽셀 폭

Param element

파워빌더 윈도우 액티브X를 위한 속성을 지정하기위해 Param element를 가지고 있다. Param element는 애플리케이션을 시작하는 윈도우 오브젝트, Application 오브젝트, 라이브러리( PBDs )를 지정할 수 있고, 파워빌더 윈도우 액티브X에 파라미터를 넘겨줄 수도 있다. 아래의 표는 파워빌더에서만 사용할 수 있는 Param element들이다.

프로퍼티

PBWINDOW

PBD안에 있는 Child 윈도우의 이름을 적는다.

LIBLIST

애플리케이션에서 사용할 파워빌더 다이나믹 라이브러리( PBD 파일 )의 목록을 적는다. PBD파일이 여러개라면 세미콜론( ; )으로 분리하여 적는다.

PBAPPLICATION

파워빌더 Application 오브젝트의 이름을 적는다.

DISPLAYERRORS

실행시에 에러 메시지를 보여줄 것인지를 BOOLEAN 값으로 표기한다.

COMMANDPARM

파워빌더로 넘겨줄 문자열을 적는다. 파워빌더에서는 CommandParm( ) 함수를 이용하여 이 문자열을 액세스한다.

4. JavaScript VBScript 사용

HTML페이지에 JavaScript나 VBScript를 사용하여 파워빌더 윈도우 액티브X에서 보여지는 윈도우와 상호 작용을 할 수 있다.

JavaScript나 VBScript를 HTML 페이지에 작성하여

  • 윈도우에서 발생한 이벤트와 대응하는 이벤트 핸들러를 작성할 수 있다.
  • 포인터의 정보, 출력, SetReDraw, Timer지정에 관한 PowerScript함수를 호출할 수 있다.
  • 사용자 정의 윈도우 함수를 실행 시키기 위해 InvokePBFunction함수를 호출할 수 있다.
  • 윈도우의 사용자 정의 이벤트를 발생시키기 위해 TriggerPBEvent 함수를 호출 할 수 있다.

이벤트 핸들러 작성

파워빌더 윈도우 액티브X 를 위해 HTML 문서에 JavaScript나 VBScript의 이벤트 핸들러를 작성할 수 있다.

[ 파워빌더 윈도우 액티브X 위한 JavaScript 이벤트 핸들러 작성하기

  1. HTML 문서 안에 파워빌더 윈도우 액티브X를 포함 시키고 필요한 모든 프로퍼티들을 지정한다.

    <OBJECT NAME="PBRX1" WIDTH=550 HEIGHT=530

    CODEBASE="pbrx60.ocx#Version=6, 0, 1, 0"

    CLASSID="CLSID:CEC58653-C842-11CF-A6FB-00805FA8669E">

    <PARAM NAME="_Version" VALUE="65536">

    <PARAM NAME="_ExtentX" VALUE="5962">

    <PARAM NAME="_ExtentY" VALUE="2164">

    <PARAM NAME="_StockProps" VALUE="0">

    <PARAM NAME="PBWindow" VALUE="w_activex">

    <PARAM NAME="LibList" VALUE="http://210.108.181.185/idt/activex.pbd”>

    <PARAM NAME="PBApplication" VALUE="activex">

    </OBJECT>

  2. HTML 문서의 Heading 부 안에 이벤트가 발생할 때, 호출되는 함수를 작성한다. 이 예제는 Clicked 이벤트의 매개 변수를 보여주는 것이다.

    function wasClicked( flags, xpos, ypos ) {

    document.buttonForm.passedFlags.value = flags;

    document.buttonForm.passedXPos.value = xpos;

    document.buttonForm.passedYPos.value = ypos;

    }

  3. HTML 문서의 Body 부 안에 이벤트가 발생할 때, 함수를 호출하는 이벤트 핸들러를 작성한다.

<SCRIPT LANGUAGE="JavaScript"FOR="PBRX1" Event="Clicked(flags, xpos, ypos)">

<!--wasClicked(flags, xpos, ypos); -->

</SCRIPT>

[ 파워빌더 윈도우 액티브X 위한 VBScript 이벤트 핸들러 작성하기

 

  1. HTML 문서 안에 파워빌더 윈도우 액티브X를 포함 시키고 필요한 모든 프로퍼티들을 지정한다.

    <OBJECT NAME="PBRX1" WIDTH=550 HEIGHT=530

    CODEBASE="pbrx60.ocx#Version=6, 0, 1, 0"

    CLASSID="CLSID:CEC58653-C842-11CF-A6FB-00805FA8669E">

    <PARAM NAME="_Version" VALUE="65536">

    <PARAM NAME="_ExtentX" VALUE="5962">

    <PARAM NAME="_ExtentY" VALUE="2164">

    <PARAM NAME="_StockProps" VALUE="0">

    <PARAM NAME="PBWindow" VALUE="w_activex">

    <PARAM NAME="LibList" VALUE="http://210.108.181.185/idt/activex.pbd”>

    <PARAM NAME="PBApplication" VALUE="activex">

    </OBJECT>

  2. HTML 문서의 Body 부 안에 이벤트를 수행하는 이벤트 핸들러를 작성한다. 이 예제는 Clicked 이벤트의 매개 변수를 보여주는 것이다.

<SCRIPT LANGUAGE="VBScript">

<!--

Sub PBRX1_Clicked(flags, xpos, ypos)

document.buttonForm.passedFlags.value = flags

document.buttonForm.passedXPos.value = xpos

document.buttonForm.passedYPos.value = ypos

end sub

-->

</SCRIPT>

PowerScript 함수 호출하기

파워빌더 윈도우 액티브X 는 액티브 컨트롤에서 보여지는 윈도우 상에서 일부 PowerScript 함수를 호출 할 수 있다.

  • PointerX 함수 윈도우의 왼쪽 가에서 부터 포인터까지의 거리를

    리턴한다.

  • PointerY 함수 윈도우의 위쪽에서부터 포인터까지의 거리를 리

    턴한다.

  • Print 함수 윈도우를 출력한다.
  • SetReDraw 함수 변화가 일어났을때, 자동적으로 윈도우를 다시

    그릴 것인지를 정한다.

  • Timer 함수 반복적으로 윈도우의 Timer 이벤트를 일정 기간으로

    발생하도록 시킨다.

위의 함수의 사용법에 관한 자세한 사항은 파워빌더 메뉴얼 “PowerScript Reference” 를 참고하기 바란다.

모든 액트브X 컨트롤이 가지고 있는 것처럼, 파워빌더 윈도우 액티브X 도 컨트롤에 관한 정보를 보여줄 수 있는 화면을 보여주기 위해 AboutBox( ) 함수를 제공한다.

[ PowerScript 함수를 호출하기위한 JavaScript 사용 방법

  1. PowerScript 함수를 호출하기위한 함수를 작성한다. 이 예제는 파워빌더의 Timer 함수를 호출하는 예제이다.

    <SCRIPT LANGUAGE="JavaScript">

    <!--

    var cumSeconds = 0;

    function setPBTimer( f ) {

    var li_return

    var li_interval

    li_interval = parseInt(f.timerInterval.value);

    li_return = PBRX1.Timer(li_interval);

    if (li_return != 1) {

    alert("Set Timer failed");

    }

    }

    //-->

    </SCRIPT>

  2. 함수를 호출하는 버튼이나 Anchor 혹은 함수를 작성한다. 이 예제는 위에서 정의한 함수를 호출하기위해 폼 위에 버튼을 올려 놓고 버튼을 클릭하면 파워빌더의 Timer 이벤트가 발생하는 예제이다.

<FORM NAME="clockForm">

<P>Timer Interval:

<INPUT TYPE=Text NAME="timerInterval" Size="5">

<P><INPUT TYPE=BUTTON VALUE="Set Timer"

ONCLICK="setPBTimer(this.form)">

</FORM>

[ PowerScript 함수를 호출하기위한 VBScript 사용 방법

  1. PowerScript 함수를 호출하는 함수를 작성한다. 이 예제는 PowerScript의 Timer 함수를 호출한다.

    <SCRIPT LANGUAGE="VBScript">

    <!--

    dim cumSeconds

    cumSeconds = 0

    Sub pbSetTime()

    dim li_return

    dim li_interval

    li_interval = clockForm.timerInterval.value

    li_return = pbrx1.Timer(li_interval)

    if li_return <> 1 THEN

    msgBox "Set Timer failed"

    end if

    end sub

    //-->

    </SCRIPT>

  2. 함수를 호출하는 버튼이나 Anchor 함수를 작성한다. 이 예제는 위에서 정의한 함수를 호출하기위해 폼 위에 버튼을 올려 놓고 버튼을 클릭하면 파워빌더의 Timer 이벤트가 발생하는 예제이다.

<FORM NAME="clockForm">

<P>Timer Interval: <INPUT TYPE=Text NAME="timerInterval" Size="5">

<HR>

<P>Mirror of PB Time: <INPUT TYPE=Text NAME="pbTime" Size="8">

<HR>

<P><INPUT TYPE=BUTTON VALUE="Set Timer" onClick="call pbSetTime()">

</FORM>

사용자 정의 함수 호출하기

파워빌더 윈도우 액티브X는 InvokePBFunction 함수를 제공하여 사용자 정의 윈도우 함수를 호출할 수 있도록 한다.

VBScript JavaScript 다르다. JavaScript를 사용하고 사용자 정의 함수가 매개 변수를 가지고 있다면, 매개 변수를 지정하기위해 SetArgElement라는 함수를 사용하여야만 한다. InvokePBFunction함수에서는 매개 변수를 지정할 수 없다.

[ 사용자 정의 함수를 수행하는 JavaScript 작성하기

  1. 필요한 윈도우 함수를 작성한다.
  2. InvokePBFunction이라는 함수를 호출하는 JavaScript 함수를 작성한다. 이 예제는 of_args라는 윈도우 함수를 호출하고 매개 변수를 초기화 한다.

    function invokeFunc(f) {

    var retcd;

    var rc;

    var numargs;

    var theFunc;

    var theArg;

    retcd = 0;

    numargs = 1;

    theArg = f.textToPB.value;

    PBRX1.SetArgElement(1, theArg);

    theFunc = "of_args";

    retcd = PBRX1.InvokePBFunction(theFunc, numargs);

    rc = parseInt(PBRX1.GetLastReturn());

    if (rc != 1) {

    alert("Error. Empty string.");

    }

    PBRX1.ResetArgElements();

    }

  3. JavaScript 함수를 수행하기위해 함수나 Anchor, 버튼을 작성한다.

<P><INPUT TYPE=BUTTON VALUE="Invoke Func" ONCLICK="invokeFunc(this.Form)">

[ 사용자 정의 함수를 수행하는 VBScript작성하기

  1. 필요한 윈도우 함수를 작성한다.
  2. InvokePBFunction 함수를 호출하는 VBScript 함수를 작성한다. 이 예제는 of_args라는 윈도우 함수를 호출하고 매개 변수를 초기화하는 것이다.

    Sub invokeFunction_OnClick()

    Dim retcd

    Dim myForm

    Dim args(1)

    Dim rc

    Dim numargs

    Dim theFunc

    Dim rcfromfunc

    Retcd = 0

    numargs = 1

    rc = 0

    theFunc = "of_args"

    Set myForm = Document.buttonForm

    Args(0) = buttonForm.textToPB.value

    retcd = PBRX1.InvokePBFunction(theFunc, numargs, args)

    rc = PBRX1.GetLastReturn()

    if rc <> 1 then

    msgbox "Error. Empty string."

    end if

    PBRX1.ResetArgElements()

    end sub

  3. VBScript 함수를 호출하기위한 버튼이나 Anchor, 함수를 작성한다.

<P><INPUT TYPE=BUTTON Name=invokeFunction VALUE="Invoke Function">

사용자 정의 이벤트 호출하기

파워빌더 윈도우 액티브X는 윈도우의 사용자 정의 이벤트를 호출하여 사용할 수 있도록 TriggerPBEvent라는 함수를 제공한다.

[ 사용자 정의 이벤트를 발생시키는 JavaScript 작성하기

  1. 윈도우에 필요한 사용자 정의 이벤트를 정의한다.
  2. 사용자 정의 이벤트를 호출하기위한 함수를 작성한다. 이 예제는 ue_args 라는 윈도우의 사용자 이벤트를 호출하고 매개 변수를 초기화 한다.

    ue_args window function:

    function triggerEvent(f) {

    var retcd;

    var rc;

    var numargs;

    var theEvent;

    var theArg;

    retcd = 0;

    numargs = 1;

    theArg = f.textToPB.value;

    PBRX1.SetArgElement(1, theArg);

    theEvent = "ue_args";

    retcd = PBRX1.TriggerPBEvent(theEvent, numargs);

    rc = parseInt(PBRX1.GetLastReturn());

    if (rc != 1) {

    alert("Error. Empty string.");

    }

    PBRX1.ResetArgElements();

    }

  3. TriggerPBEvent 함수를 호출하는 버튼이나 Anchor, 함수를 호출한다.

<P><INPUT TYPE=BUTTON VALUE="Trigger Event"

ONCLICK="triggerEvent(this.Form)">

[ 사용자 정의 이벤트를 호출하는 VBScript 작성하기

  1. 윈도우에서 필요한 사용자 정의 이벤트를 작성한다.
  2. 사용자 정의 이벤트를 호출하는 함수를 작성한다. 이 예제는 ur_args라는 윈도우의 사용자 정의 이벤트를 호출하고 매개 변수를 초기화 한다.

    Sub TrigEvent_OnClick( )

    Dim retcd

    Dim myForm

    Dim args(1)

    Dim rc

    Dim numargs

    Dim theEvent

    retcd = 0

    numargs = 1

    rc = 0

    theEvent = "ue_args"

    Set myForm = Document.buttonForm

    args(0) = buttonForm.textToPB.value

    retcd = PBRX1.TriggerPBEvent(theEvent, numargs, args)

    rc = PBRX1.GetLastReturn()

    if rc <> 1 then

    msgbox "Error. Empty string."

    end if

    PBRX1.ResetArgElements()

    end sub

  3. VBScript 함수나 Anchor, 버튼을 만들어 이것을 클릭하여 VBScript 함수를 실행한다.

<P><INPUT TYPE=BUTTON NAME=TrigEvent VALUE="Trigger Event">

서버 구축

서버에 파일을 놓을 장소를 만들고 이곳에 파워빌더 라이브러리( PBDs ), 파워빌더 윈도우 액티브X 모듈( PBRX60.OCX나 PBRXS60.OCX ), HTML 문서를 놓아야 한다.

파일

위치

HTML문서

HTML 문서 디렉토리에 놓는다.

HTML문서에 링크할 수 있도록 지정된 URL 디렉토리에 복사해 놓는다.

Param element의 속성인 LibList에 지정된 PBD 파일들

웹 서버가 찾을 수 있도록 맵핑해 놓은 디렉토리나 시스템 디렉토리에 놓는다.

파워빌더 윈도우 액티브X 모듈

HTML 문서가 있는 디렉토리나 Object element의 속성인 CODEBASE에 지정된 디렉토리에 놓는다.

클라이언트에 필요한 것들

사용자들이 파워빌더 윈도우 액티브X가지고 있는 웹 페이지를 웹 브라우저에서 보려면 파워빌더 윈도우 액티브X를 지원하는 소프트웨어가 설치되어 있어야 한다.

컴포넌트

세부 사항

인터넷이나 인트라넷 Connection

인터넷 서비스 제공자나 회사에서 제공받는다.

액티브X를 지원하는 브라우저

브라우저 벤더에게 제공받는다. Ncompass ScriptActive 플러그-인을 사용하는 Netscape Navigator 3.x 이상이나 Internet Explorer 3.x 이상이면 된다.

파워빌더 런타임 DLL들

파워빌더 메뉴얼 “Application Techniques” 의 배포와 관련된 장에 설명되어 있는 것처럼 Deployment Kit을 설치한다. 파워빌더 런타임 DLL은 애플리케이션이 있는 디렉토리나 시스템 패스 상의 디렉토리에 놓는다. 파워빌더 윈도우 액티브X는 반드시 파워빌더 VM( PBVM60.DLL )을 액세스 할 수 있어야 한다. ( 다른 런타임 DLL도 필요하지만 ) 이런한 작업을 하기위해 시스템 패스에 런타임 DLL이 있는 패스를 추가하거나 Windows\System 디렉토리에 런타임DLL을 설치한다.

파워빌더 윈도우 액티브X 모듈

PBRX60.OCX 파일을 클라이언트에 복사하고 레지스트리에 등록한다. 아니면 Object element의 CODEBASE라는 속성을 추가하여 브라우저가 웹 페이지를 다운로드 받고 그것을 로드할 때 레지스터에 등록하도록 한다.

기타 파일들

만약에 그림 파일같은 리소스들을 가지고 있는 별도의 PBD 파일을 생성하지 않았으면, 오브젝트의 프로퍼티에 지정된 패스에 해당 리소스 파일들이 복사되어 있어야 한다. 파워빌더 윈도우 액티브X가 데이터베이스와 연결이 된다면, 클라이언트에 DBMS 클라이언트 소프트웨어가 설치되어 있어야 한다.

파워빌더 윈도우 액티브X 위한 이벤트들

파워빌더 윈도우 액티브X는 Child 윈도우 안에서 발생하는 일부 이벤트와 대응이 된다. 이러한 것을 outbound 이벤트라고 하는데, 이는 먼저 파워빌더 윈도우 안에서 수행이 되고 그리고 나서 파워빌더 윈도우 액티브X 안에서 수행이 된다. 이러한 이벤트들과 대응하는 JavaScript나 VBScript를 작성할 수 있다. 아래의 표에 이러한 이벤트에 대한 목록이 있다.

이벤트

어떨때 발생하는가

Activate

윈도우가 활성화되기 바로 전에 발생한다.

Clicked

사용자가 윈도우의 비어있는 영역 안을 클릭하였을 때 발생한다.

Close

윈도우가 닫힐 때 발생한다.

Deactivate

윈도우가 비활성화 될 때 발생한다.

DoubleClicked

사용자가 윈도우의 비어있는 영역을 더블클릭하였을 때 발생한다.

Hide

윈도우가 숨겨지기 바로 전에 발생한다.

Key

입력 포인터가 입력할 수 있는 형태로 되어 있지 않은 상황에서 사용자가 Key를 눌렀을 때 발생한다.

MouseDown

사용자가 윈도우의 비어 있는 영역에서 왼쪽 마우스 버튼을 눌렀을 때 발생한다.

PBMouseMove

윈도우 안에서 포인터가 움직일 때 발생한다.

PBMouseUp

윈도우의 비어 있는 영역에서 사용자가 왼쪽 마우스 버튼을 눌렀다 떼었을 때 발생한다.

RbuttonDown

윈도우의 비어 있는 영역에서 사용자가 오른쪽 마우스 버튼을 눌렀을 때 발생한다.

Resize

사용자에 의해서 또는 윈도우가 열릴 때, 또는 윈도우의 크기를 조절할 때 발생한다.

Show

스크립트에서 Show( ) 함수를 수행하였을 때 발생한다. 이 이벤트는 윈도우가 보이기 직전에 발생한다.

SystemKey

입력 포인터가 입력할 수 있는 곳에 있지 않은 상태에서 사용자가 ALT나 ALT + 다른 키를 눌렀을 때 발생한다.

Timer

Timer 함수가 호출된 후에 지정한 초 단위로 발생한다.