Events for CheckBoxes

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open event가 일어나기 직전에 발생한다.

Destructor

윈도우의 Close event가 일어난 직후에 발생한다

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다.

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다.

Other

PowerBuilder event에서 가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for CheckBoxe

Functions for CheckBoxes

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시된 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

컨트롤이 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤 안에 명시한 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 control type을 리턴한다.


Properties for CheckBox

Properties for CheckBoxes

Automatic -- Boolean

컨트롤을 클릭할 때 컨트롤에 표시마크를 나타낼 것인지 명시한다.

True | 클릭할 때 표시마크를 나타낸다.
False | 클릭할 때 표시마크를 나타내지 않는다.

BackColor -- Long

배경색 값을 명시한다 : -2 부터 16,777,215

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우내의 제일 위쪽으로 옮길 것인지 명시한다.

True | Control을 제일 위쪽으로 옮긴다
False | 제일 위쪽으로 옮기지 않는다

Checked -- Boolean

아이템이 선택된 상태로 할 것인지 명시한다.

True | 선택된 상태가 된다
False | 선택된 상태가 되지 않는다

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭 되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭 되었을 때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

* Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 제공된다.

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

LeftText -- Boolean

텍스트를 control의 왼쪽에 나타낼 것인지 명시한다.

True | 텍스트를 좌측에 나타낸다
False | 텍스트를 좌측에 나타내지 않는다

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우 내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다).

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

control에 표시되는 텍스트를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

ThirdState -- Boolean

컨트롤이 세가지 상태를 가지도록 정의되었을 때 control이 세 번째 상태가 되도록 할 것인지 명시한다.

True | 컨트롤을 세 번째 상태로 한다.
False | 세 번째 상태로 하지 않는다.

ThreeState -- Boolean

control이 세가지 상태를 갖도록 할 것인지 명시한다. 전형적으로, CheckBox control은 on과 off의 두 가지 상태만 갖는다.

True | 컨트롤이 세가지 상태다.
False | 컨트롤이 세가지 상태가 아니다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for CommandButto

Events for CommandButtons

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다 (선택된 후 활성화되기 직전).

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다 (비 활성화될 때).

Other

PowerBuilder event가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for CommandBu

Functions for CommandButtons

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer까지의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer까지의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 컨트롤 위치를 명시한다.

SetRedraw -- Integer

컨트롤 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤 내 명시한 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for CommandB

Properties for CommandButtons

BringToTop -- Boolean

PowerBuilder가 컨트롤을 윈도우의 제일위로 옮길 것인지 명시한다.

True | 제일위로 옮긴다.
False | 제일위로 옮기지 않는다.

Cancel -- Boolean

컨트롤이 Cancel button처럼 작용할 것인지 명시한다.(사용자가 ESC 키를 누른다면 Cancel button은 Clicked event를 받는다)

True | Cancel button처럼 작용한다.
False | Cancel button처럼 작용하지 않는다.

Default -- Boolean

컨트롤을 기본설정 control로 할 것인지 명시한다. 기본 설정 컨트롤은 두꺼운 경계선(thick border)를 갖고있으며 컨트롤을 선택하지 않고 ENTER 키를 누르면 Clicked event를 받는다.

True | 기본설정 control로 작용한다.
False | 기본설정 control로 작용하지 않는다

DragAuto -- Boolean

컨트롤이 자동으로 Drag mode로 들어가게 할 것인지 명시한다.

True | 컨트롤을 클릭할 때, 자동으로 Drag mode가 된다
False | 컨트롤을 클릭할 때, 자동으로 Drag mode가 되지 않는다. 사용자는 반드시 Drag 함수를 사용하여 컨트롤이 Drag mode가 되도록 하여야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 표시할 내장 아이콘 또는 아이콘을 포함하고 있는 파일 이름(.ICO 파일)을 명시한다. 기본적인 아이콘은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(적절한 drop 영역). 컨트롤을 drop 시킬 수 없는 영역 위에 있으면, No-Drop 아이콘을 보여준다.

Platform note

ICO 파일들은 Windows와 Macintosh platforms에만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

컨트롤의 텍스트 서체명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤내의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안의 텍스트에 사용될 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤내의 텍스트에 사용될 폰트피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

Italic -- Boolean

컨트롤 안에 있는 텍스트를 이탤릭체로 할 것인지 명시한다.

True | 텍스트가 이탤릭체다.
False | 이탤릭체가 아니다.

Pointer -- String

컨트롤에 사용할 내장 pointer의 이름 또는 pointer를 포함한 파일 이름을 명시한다.

TabOrder -- Integer

윈도우 내 컨트롤의 tab 값을 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

컨트롤에 할당된 tag 값을 명시한다.

Text -- String

컨트롤에 나타낼 text를 명시한다.

TextSize -- Integer

텍스트 크기를 point로 명시한다. 이전 버전과의 호환을 위하여, 음수로 저장된다; 예를들어, 10-point 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

컨트롤 내 text에 밑줄을 그을 것인지 명시한다.

True | Text에 밑줄을 긋는다.
False | Text에 밑줄을 긋지 않는다.

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

Weight -- Integer

컨트롤 내 text의 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y - Integer

윈도우 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for DataWindow c

Events for DataWindow controls

Clicked

사용자가 데이터윈도우 컨트롤내의 편집할 수 없는 필드나 필드사이를 클릭했을 때 발생한다.

[Return 코드]

0 - (기본설정 값) 처리를 계속한다.

1 - 처리를 멈춘다.

Constructor

윈도우내의 Open 이벤트가 발생하기 직전에 발생한다.

DBError

데이터윈도우 컨트롤 내에 데이터베이스 에러가 발생할 때 일어난다.

[Return 코드]

0 - (기본설정 값) 에러 메시지를 보여준다.

1 - 에러 메시지를 보여주지 않는다.

Destructor

윈도우내의 Close 이벤트가 발생하기 직전에 발생한다.

DoubleClicked

사용자가 데이터윈도우 컨트롤 내에 편집할 수 없는 필드나 필드사이를 더블클릭 했을 때 발생한다. 데이터윈도우 스타일이 RichText표현식의 경우는, 사용자가 텍스트 내에 더블 클릭할 때 발생한다.

DragDrop

드래그된 컨트롤이 데이터윈도우 컨트롤 위에 drop될 때 발생한다.

DragEnter

드래그된 컨트롤이 데이터윈도우 컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 데이터윈도우 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 데이터윈도우 컨트롤 안에 겹칠 때 발생한다.

EditChanged

사용자가 데이터윈도우 컨트롤내의 편집 컨트롤에 입력할 때 발생한다.

Error

데이터윈도우 object에 관한 데이터 또는 property 표현식에서 에러를 발견할 때 발생한다.

GetFocus

데이터윈도우 컨트롤이 포커스를 받기 직전에 발생한다(데이터윈도우 컨트롤은 선택되고 활성화된다).

ItemChanged

데이터윈도우내의 필드가 수정되고 포커스를 잃어버릴 때(예를 들어, 사용자가 ENTER 키, Tab 키, 화살표 키, 데이터윈도우 내에 있는 다른 필드를 마우스로 클릭했을 때)

[Return 코드]

0 - (기본설정 값) 데이터값을 받아들인다.

1 - 데이터 값을 받아들이지 않고 포커스도 변경하지 않는다.

2 - 데이터 값을 받아들이자 않지만 포커스의 변경은 허락한다.

ItemError

필드가 수정되었을 때, 필드가 포커스를 잃어버리고(예를 들어, 사용자가 ENTER 키, Tab 키, 화살표 키, 데이터윈도우 내에 있는 다른 필드를 마우스로 클릭했을 때), 필드가 칼럼에 대한 평가규칙을 통과하지 못할 때 발생한다.

[Return 코드]

0 - (기본설정 값) 데이터 값을 받아들이지 않고 에러 메시지는 보여준다.

1 - 데이터 값을 받아들이지 않고 에러 메시지도 보여주지 않는다.

2 - 데이터 값을 받아들인다.

3 - 데이터 값을 받아들이지 않으나 포커스는 변경한다.

리턴코드가 0 또는 1이라면(데이터를 받아들이지 않는다), 타당치 못한 데이터를 가진 필드에 포커스가 남는다.

ItemFocusChanged

컨트롤내에서 현재의 아이템의 포커스를 변경할 때 발생한다.

LoseFocus

데이터윈도우 컨트롤이 포커스를 잃어버릴 때 발생한다(활성화된다).

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 발생했을 때 일어난다.

PrintEnd

데이터윈도우의 출력이 끝날 때 발생한다.

PrintPage

데이터윈도우의 각 페이지가 출력을 위하여 형식화 되기 전에 발생한다.

[Return 코드]

0 - 페이지를 넘기지 않는다.

1 - 페이지를 넘긴다.

PrintStart

데이터윈도우의 출력을 시작할 때 발생한다.

RButtonDown

컨트롤위에서 마우스의 오른쪽 버튼을 눌렀을 때 발생한다. RichText 표현스타일 데이터 윈도우의 경우, 팝업 메뉴가 on일 때에는, 마우스 오른쪽버튼을 눌렀을 때 이 이벤트가 트리거되지 않는다.

Resize

데이터윈도우 컨트롤의 크기를 사용자 또는 스크립트안에서 사이즈를 바꿀 때 발생한다.

RetrieveEnd

데이터윈도우의 검색이 완료될 때 발생한다.

RetrieveRow

row가 검색된 후에 발생한다.

[Return 코드]

0 - (기본설정 값) 검색을 계속한다.

1 -검색을 멈춘다.

RetrieveStart

데이터윈도우의 검색이 시작될 때 발생한다.

[Return 코드]

0 - (기본설정 값) 처리를 계속한다.

1 - 검색을 수행하지 않는다.

2 - database로부터 데이터를 retrieve하기 전에 row 와 버퍼를 리셋하지 않는다.

RowFocusChanged

데이터윈도우내의 현재 row를 변경할 때 발생한다.

ScrollHorizontal

사용자가 탭, 방향 키 또는 스크롤바를 가지고 데이터윈도우내의 오른쪽 또는 왼쪽으로 스크롤할 때 발생한다.

ScrollVertical

사용자가 텝, 화살표 키 또는 스크롤바를 가지고 데이터윈도우내의 위 또는 아래로 스크롤할 때 발생한다.

SQLPreview

Retrieve, Update, ReselectRow 함수를 호출한 후에 SQL문장을 DBMS에 제공하기 직전에 발생한다. 다음 리턴코드는 Update 함수를 호출한 후 이벤트가 발생할 때 취할 행동을 명시한다.

[Return 코드]

0 (기본설정값) 처리를 계속한다.

1 처리를 멈춘다.

2 요구를 건너뛰고 다음요구를 실행한다.

UpdateEnd

데이터윈도우로부터 모든 update가 database에 완료될 때 발생한다.

UpdateStart

Update 함수를 호출한 후에 데이터윈도우내 변경사항을 database로 보내기 직전에 발생한다.

[Return 코드]

0 (기본설정 값) 처리를 계속한다.

1 update를 수행하지 않는다.


Functions for DataWindo

Functions for DataWindow controls

AcceptText -- Integer

DataWindow buffer의 현재 item에 DataWindow control의 edit control 내용을 적용시킨다.

CanUndo -- Boolean

Undo 함수를 이용하여 마지막 편집을 취소할 수 있는지 여부를 명시한다. 현재 row 와 column 위에 있는 edit control에 적용한다.

True | 마지막 편집을 취소할 수 있다.
False | 마지막 편집을 취소할 수 없다.

CategoryCount -- Integer

DataWindow control내에 있는 graph의 category 수를 리턴한다.

CategoryName -- String

DataWindow control내에 있는 graph의 category 이름을 리턴한다.

ClassName -- String

DataWindow control에 할당된 class명을 리턴한다.

Clear - Integer

DataWindow control의 edit control에 선택(반전)된 text를 지운다. RichText presentation style을 가진 DataWindow는, DataWindow내에 선택된 text를 지운다.

ClearValues -- Integer

DataWindow control에 명시된 column과 연관된 value list의 모든 item을 삭제한다.

Clipboard -- Integer

DataWindow control내에 명시된 graph를 clipboard에 복사한다.

Copy -- Integer

DataWindow control의 현재 row 와 column위에 있는 edit control내에 선택된 text를 clipboard에 복사한다. RichText presentation style을 가진 DataWindow에서는, DataWindow control내에 선택된 text를 복사한다.

CopyRTF -- String

선택된 text, picture 및 DataWindow control의 input field(입력 필드)를 rich text 형식의 문자열로 리턴한다. bitmap과 input field는 그 문자열 내에 포함된다.

Create -- Integer

명시한 source code를 사용해서 DataWindow object를 생성하고 명시한 DataWindow control내의 DataWindow object를 새로운 DataWindow object로 대체한다.

CrosstabDialog -- Integer

실행하는 동안 사용자가 crosstab DataWindow object 정의를 수정할 수 있도록 Crosstab Definition 대화상자를 보여준다.

Cut -- Integer

DataWindow의 현재 row 와 column 위에 있는 edit control로부터 선택된 text를 잘라내어 clipboard에 저장한다. RichText presentation style인 DataWindow는, DataWindow control내에 선택된 text를 자른다.

DataCount -- Long

DataWindow control의 graph에 있는 series의 data point의 수를 리턴한다.

DBCancel -- Integer

database retrieve 진행을 취소한다.

DBErrorCode -- Long

database error에 의하여 생성된 error code (number)를 리턴한다.

* Obsolete function

DBErrorCode는 쓰이지 않는 함수다. Database error code들은 현재 event argument로써 사용 가능하다.

DBErrorMessage -- String

database error에 의하여 생성된 error message를 포함하고 있는 문자열을 리턴한다.

* Obsolete function

DBErrorMessage는 쓰이지 않는 함수다. Database error message들은 현재 event argument로써 사용 가능하다.

DeletedCount -- Long

DataWindow control로부터 삭제되고 database table에는 아직 update되지 않은 row 수를 리턴한다.

DeleteRow -- Integer

명시한 row를 DataWindow control로부터 삭제한다.

Describe -- String

DataWindow control의 구조에 관하여 요청된 정보를 리턴한다.

Drag -- Integer

DataWindow control의 drag를 시작하거나 끝낸다.

Filter -- Integer

DataWindow control의 현재 filter에 기초하여 특정 row들만 보여준다.

FilteredCount -- Integer

현재 filter에 때문에 보이지 않는 row들의 수를 리턴한다.

Find -- Long

Syntax 1 | DataWindow control내에서 명시한 조건에 맞는 row를 찾는다.
Syntax 2 | Rich Text presentation style인 DataWindow 경우에는, control내에 명시한 text를 찾고, 그 text를 반전시킨다. 탐색방향과 전체단어의 일치여부 및 대소구분 여부 등을 명시할 수 있다.

FindCategory -- Integer

DataWindow control의 graph내에 있는 category 번호를 리턴한다.

FindGroupChange -- Long

DataWindow control내에서 group이 처음 바뀌는 row를 찾는다.

FindNext -- Integer

이전에 Find 함수를 호출하여 설정한 기준을 사용하여, 그 조건에 맞는 텍스트를 찾고 반전시킨다. 이 함수는 RichText presentation style을 가진 DataWindow control에만 적용된다.

FindRequired -- Integer

사용자가 입력하지 않은 필수입력 column을 확인한다.

FindSeries -- Integer

DataWindow control내에 graph에 명시한 series 번호를 리턴한다.

GetBandAtPointer -- String

pointer가 현재 위치한 밴드를 밴드명 및 tab문자(~t) 와 row 번호로 리턴한다.

GetBorderStyle -- Border(열거형)

DataWindow control내에 있는 column의 border style을 Border 열거형 데이터 타입의 값으로 리턴한다.

Box!

Lowered!

NoBorder!

Raised!

ResizeBorder!

ShadowBox!

Underline!

GetChild -- Integer

명시한 column내에 있는 child DataWindow의 이름을 메모리 변수에 저장한다.

GetClickedColumn -- Integer

사용자가 클릭하거나 더블-클릭한 DataWindow control내의 column 번호를 리턴한다.

* Obsolete function

GetClickedColumn은 쓰이지 않는 함수다. 클릭한 column은 현재 event argument로써 사용 가능하다.

GetClickedRow -- Long

사용자가 클릭하거나 더블-클릭한 DataWindow control내의 row 번호를 리턴한다.

* Obsolete function

GetClickedRow는 쓰이지 않는 함수다. 클릭한 row는 현재 event argument로써 사용 가능하다.

GetColumn -- Integer

DataWindow control내의 현재 column 번호를 리턴한다.

GetColumnName -- String

DataWindow control내의 현재 column 이름을 리턴한다.

GetData -- Double

DataWindow control에 있는 graph에서 명시한 series의 data 값을 리턴한다. (GetDataValue 참조)

GetDataPieExplode -- Integer

pie graph에서 분리된 pie 조각의 백분율(percentage)을 나타낸다

GetDataStyle -- Integer

graph내에서 data point 모양을 찾는다. series내의 각 data point는 개별적으로 모양에 관한 설정내용을 갖을 수 있다. 어떠한 설정을 check하기 원하는가에 따라서서로 다른 문법이 존재한다.

GetDataValue -- Integer

DataWindow control내의 graph에서 명시된 series의 data 값을 리턴한다.

GetFormat -- String

DataWindow control에 명시한 column을 보여주는데 사용된 형식을 리턴한다.

GetItemDate -- Date

DataWindow control의 명시한 row와 column내의 date data를 리턴한다.

GetItemDateTime -- DateTime

DataWindow control의 명시된 row와 column내의 datetime data를 리턴한다.

GetItemDecimal -- Decimal

DataWindow control의 명시된 row와 column내의 decimal data를 리턴한다.

GetItemNumber -- Double

DataWindow control의 명시된 row와 column내의 numeric data를 리턴한다.

GetItemStatus -- DwItemStatus (열거형)

명시한 buffer에 위치한 row와 column의 item 상태를 리턴한다.

DataModified!

New!

NewModified!

NotModified!

GetItemString -- String

DataWindow control의 명시된 row와 column내의 string data를 리턴한다.

GetItemTime -- Time

DataWindow control의 명시된 row와 column내의 time data를 리턴한다.

GetMessageText -- String

DataWindow control내의 crosstab DataWindow object에 의하여 생성된 massage text를 획득한다.

* Obsolete function

GetMessageText는 쓰이지 않는 함수다. Message text는 bpm_dwnmessagetext와 연관된 사용자-정의 DataWindow event의 argument로 사용 가능하다.

GetNextModified -- Long

DataWindow control내 명시된 buffer에서 첫 번째로 수정된 row 번호를 리턴한다.

GetObjectAtPointer -- String

DataWindow control내 pointer아래에 있는 column이나 graphic control 이름, 탭 문자 (~t)와 row 번호를 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

GetRow -- Long

DataWindow control내 현재 row의 번호를 포함하는 integer(정수 값)을 리턴한다.

GetSelectedRow -- Integer

DataWindow control내에 명시한 row 번호 다음에 최초로 선택된 row 번호를 리턴한다.

GetSeriesStyle -- Integer

graph내의 series 모양을 찾는다. 무엇을 설정하기 원하는가에 따라 여러 개의 문법이 존재한다.

GetSQLPreview -- String

DataWindow control이 database에 보내는 현재 SQL 문장을 리턴한다.

* Obsolete function

GetSQLPreview는 쓰이지 않는 함수다. SQL syntax는 event arument로써 사용 가능하다.

GetSQLSelect -- String

DataWindow control에 관한 현재 SELECT 문장을 리턴한다.

GetText -- String

DataWindow control의 현재 row 와 column상에 있는 edit control내의 text를 리턴한다.

GetTrans -- Integer

DataWindow transaction object내의 값을 리턴한다.

GetUpdateStatus -- Integer

변수 내에 update될 row의 번호를 저장하고 다른 변수에는 그 row를 포함하고있는 버퍼를 dwBuffer로 명시한다.

* Obsolete function

GetUpdateStatus는 쓰이지 않는 함수다. Update status는 DataWindow control의 DBError 와 SQLPreview event에서 argument로써 현재 사용가능하다.

GetValidate -- String

DataWindow control의 명시한 column에 사용되는 평가 규칙을 리턴한다.

GetValue -- String

명시한 column에 관한 value list내에 명시한 item을 리턴한다.

GroupCalc -- Integer

DataWindow control내 group break를 재계산한다.

Hide -- Integer

control을 보이지 않게 한다.

ImportClipboard -- Long

daya를 clipboard에서 DataWindow control로 복사한다.

ImportFile -- Long

data를 file에서 DataWindow control로 복사한다.

ImportString -- Long

data를 string에서 DataWindow control로 복사한다.

InsertDocument -- Integer

rich text format 이나 plain text file을 DataWindow control에 삽입한다. 새로운 내용을 추가하기 위하여 function parameter를 명시하여 사용한다. insertion point에 삽입 할 수도 있다. 모든 정해진 내용을 대체할 수도 있다. 이 함수는 RichText presentation style을 포함하는 DataWindow contol에만 적용할 수 있다.

InsertRow -- Long

DataWindow control내에 명시한 row전에 새로운 row를 삽입한다.

IsSelected -- Boolean

명시한 row가 DataWindow내에 선택되어 있다면 True를 리턴한다. row가 선택되지 않았거나 DataWindow control내 row들의 수보다 크다면 False를 라턴한다.

LineCount -- Integer

multiple line이 허락된 edit control내의 line 수를 결정한다.

ModifiedCount -- Long

DataWindow에서 수정이 되었으나 database table과 관련해서 update되지 않은row 수를 리턴한다.

Modify -- String

DataWindow control을 수정하기 위한 문자열에 포함된 specification을 사용한다.

Move -- Integer

DataWindow control를 명시한 위치에 옮긴다.

ObjectAtPointer -- grObjectType

pointer내에 있는 series 번호와 DataWindow control내 graph의 data point의 번호를 리턴하고 object type를 확인한다.

OLEActivate -- Integer

DataWindow control의 명시된 row와 column내 OLE object에 관한 OLE를 활성화한다.

* Platform note

OLEActivate와 OLE 함수들은 Windows platform상에서만 사용가능 하다.

Paste -- Integer

DataWindow control내의 현재 row와 column상에 있는 edit control에 clipboard 내용을 삽입한다,

PasteRTF -- Long

RichText presentation style을 포함하는 DataWindow control에 rich text data를 붙인다.

PointerX -- Integer

DataWindow control의 좌측면으로부터 pointer의 거리를 리턴한다.

PointerY -- Integer

DataWindow control의 상단으로부터 pointer의 거리를 리턴한다.

Position -- Integer

Syntax 1 | DataWindow control의 현재 row와 column상에 있는 edit control에서 삽입 포인트 위치를 나타낸다.
Syntax 2 | RichText presentation style을 포함하는 DataWindow control내에 삽입 포인트 또는 선택된 text가 시작되거나 끝나는 line 및 column 위치를 나타낸다.

PostEvent -- Boolean

DataWindow control에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

DataWindow control의 내용을 현재 printer에 보낸다. 이 함수는 몇 개의 문법이 있다.

PrintCancel -- Integer

print job를 취소하고 DataWindow control의 내용을 출력하기 위혀여 보낼 때 spool file을 삭제한다. 이 함수는 2가지의 문법이 있다. Print 함수의 Syntax 1을 사용하여 출력을 프린터에 보냈을 때에는 Syntax 1을 사용한다.

ReplaceText -- Integer

edit control내의 선택된 text를 명시한 문자열로 대체한다.

ReselectRow -- Integer

DataWindow control내 row의 모든 timestamp column들을 update하고 refresh 할 수 있는 모든 clounm들을 reselect하기 위하여 database를 access한다.

Reset -- Integer

Syntax 1 | DataWindow control로부터 모든 data를 지운다.
Syntax 3 | external data source를 가진 DataWindow object내의 graph로부터 data, category, series를 삭제한다.

ResetDataColors -- Integer

serires에 관한 color를 명시하기 위하여 dapoint의 color를 reset한다.

ResetTransObject -- Integer

사용자가 정의한 transaction object를 사용하는 것으로부터 DataWindow control을 멈춘다.(그 이후, DataWindow는 자신의 내부 transaction object를 사용한다).

ResetUpdate -- Integer

DataWindow control에 관한 update flag들을 reset한다.

Resize -- Integer

DataWindow control의 폭과 높이를 변경한다.

Retrieve -- Long

DataWindow control과 연관된 database로부터 row들을 검색한다.

RowCount -- Long

DataWindow control내 현재 사용 가능한 row들의 수를 리턴한다.

(retrieve된 모든 row - 삭제된 row + 삽입된 row - 필터 제외된 모든 row)

RowsCopy -- Integer

하나의 DataWindow control에서 다른 DataWindow control로 또는 하나의 DataWindow control안의 하나의 buffer에서 다른 buffer로 row들의 범위를 복사한다.

RowsDiscard -- Integer

지정한 범위의 row들을 버린다. row들은 database로부터 retrieve하지않으면 다시 나타낼 수 없다.

RowsMove -- Integer

DataWindow control로부터 지정한 row를 지우고, row들을 다른 DataWindow control이나 같은 DataWindow control의 다른 buffer로 삽입한다.

SaveAs -- Integer

Syntax 1 | DataWindow control의 내용을 명시한 format으로 명시한 file에 저장한다.
Syntax 2 | DataWindow control내 명시한 graph내에 나타낸 data를 명시한 format으로 file에 저장한다.

* Platform note

각 platform을 지원하는 file format 정보에 관해서는, PowerScript Reference를 참고한다.

Scroll -- Integer

DataWindow control의 edit control을 명시한 방향으로 명시한 라인수만큼 스크롤한다.

ScrollNextPage -- Long

Syntax 1 | DataWindow내에 보이는 row 수만큼 앞으로 스크롤한다(DataWindow control이 RichText presentation style이 아닌 내용일때).
Syntax 2 | RichText presentation style인 내용을 포함하는 DataWindow control내에서 문서의 다음 page로 스크롤한다.

ScrollNextRow -- Long

DataWindow control의 다음 row로 스크롤한다. ScrollNextRow 함수는 현재 column을 변경하지 않고 DataWindow control내 현재 row를 변경한다.

ScrollPriorPage -- Long

Syntax 1: DataWindow내에 보이는 row 수만큼 뒤로 스크롤한다(DataWindow control이 RichText presentation style인 내용을 포함하지 않을 때)

Syntax 2: RichText presentation style인 내용을 포함하는 DataWindow control내에서 문서의 이전 page로 스크롤한다.

ScrollPriorRow -- Long

이전 row로 스크롤한다. ScrollPriorRow 함수는 현재 column을 변경하지 않고 DataWindow control내 현재 row를 변경한다.

ScrollToRow -- Integer

control의 명시한 row로 스크롤을 일으킨다. ScrollToRow 함수는 현재 column을 변경하지 않고 DataWindow control내 현재 row를 변경한다.

SelectedLength -- Integer

현재 row와 column상에 있는 edit control내에서 선택된 text의 문자들과 빈 공간들의 전체 수를 나타낸다.

SelectedLine -- Integer

현재 row와 column상에있는 edit control내의 line 번호를 나타낸다.

SelectedStart -- Integer

현재 row와 column상에있는 edit control내의 시작 위치를 나타낸다.

SelectedText -- String

DataWindow control의 현재 row와 column상에있는 edit control내에 선택된 text를 나타낸다.

SelectRow -- Integer

DataWindow control내에서 명시한 row를 선택하거나 선택을 해제한다.

SelectText -- Integer

Syntax 1 | RichText presentation style을 제외한 DataWindow control에서 edit control내의 텍스트를 선택한다.
Syntax 2 | RichText presentation style의 DataWindow control에서 명시한 범위의 텍스트를 선택한다.

SelectTextAll -- Integer

RichText presentation style을 가진 DataWindow control의 모든 내용을 선택한다.

SelectTextLine -- Integer

RichText presentation style을 가진 DataWindow control에서 삽입 포인트를 포함하고있는 line을 선택한다.

SelectTextWord -- Integer

RichText presentation style을 가진 DataWindow control에서 삽입 포인트를 포함하고있는 단어를 선택한다.

SeriesCount -- Integer

DataWindow control내 명시한 graph의 series 수를 리턴한다.

SeriesName -- String

DataWindow control내 명시한 graph의 series 이름을 리턴한다.

SetActionCode -- Integer

DataWindow control이 event에서 취할 action을 정의한다.

* Obsolete function

SetActionCode는 쓰이지 않는 함수다. 이제 event script내의 return code를 설정한다.

SetBorderStyle -- Integer

DataWindow control내에 명시한 column의 border style을 설정한다.

SetColumn -- Integer

DataWindow control내에 명시한 column을 현재 column으로 만든다.

SetDataPieExplode -- Integer

pie graph내에서 pie 조각을 분리한다.

SetDataStyle -- Integer

DataWindow control내의 graph에서 series의 data point를 명시한다.

Syntax 1 | data point의 color를 설정한다.
Syntax 2 | data point에 관한 line style과 폭을 설정한다.
Syntax 3 | data point에 관한 fill pattern 나 symbol을 설정한다.

SetDetailHeight -- Integer

명시한 범위내의 각 row에 대한 높이를 설정한다.

SetFilter -- Integer

DataWindow control에 관한 filter 기준을 정의한다. 실제 데이터 필터는 Filter 함수에 의하여 수행된다.

SetFocus -- Integer

DataWindow control에 focus를 설정한다.

SetFormat -- Integer

DataWindow control의 명시한 column에 관한 표시 형식을 설정한다.

SetItem - Integer

DataWindow control에 명시된 row와 column의 값을 설정한다.

SetItemStatus -- Integer

명시한 버퍼에서 DataWindow control의 특정 column에 대한 row 상태를 설정한다.

SetPosition -- Integer

Syntax 1 | DataWindow control을 window내에서 항상 제일 위에 보이게 할 것인지 명시한다.
Syntax 2 | DataWindow내의 object를 다른 band로 옮기거나 band내에서 전/후 순서를 옮긴다.

SetRedraw -- Integer

속성 또는 내용이 변경된 후에 DataWindow control을 자동으로 다시 그리는 것을 제어한다.

SetRow -- Integer

DataWindow control내에 명시한 row를 현재 row로 만든다.

SetRowFocusIndicator -- Integer

DataWindow control에 관한 현재 row indicator를 설정한다.

SetSeriesStyle -- Integer

DataWindow control내의 graph에 있는 series를 명시한다.

Syntax 1 | series의 color를 설정한다.
Syntax 2 | linestyle 과 폭을 설정한다.
Syntax 3 | series내의 data marker에 관한 fill pattern 또는 symbol을 설정한다.
Syntax 4 | series 중첩을 명시한다.

SetSort -- Integer

DataWindow control에 관한 sort 기준을 정의한다. 실제로 정렬하는 것은 Sort 함수에 의하여 수행된다.

SetSQLPreview -- Integer

DataWindow control에 관한 현재 SQL 문장을 설정한다.

SetSQLSelect -- Integer

DataWindow control에 관한 현재 SELECT 문장을 변경한다.

SetTabOrder -- Integer

DataWindow control내에 명시한 column의 tab 값을 변경한다.

SetText -- Integer

DataWindow control내에 현재 row 와 column상에있는 eidt control내의 text를 명시한 text로 대체한다.

SetTrans -- Integer

DataWindow control의 내부 transaction object내의 값을 설정한다.

SetTransObject -- Integer

DataWindow control에 관한 transaction object를 설정하고 script로부터 commit하는 능력을 포함한 transaction 제어를 control에 제공한다.

SetValidate -- Integer

DataWindow control의 명시한 column에 관한 평가 규칙(validation rule)을 변경한다.

SetValue -- Integer

DataWindow control의 value list 또는 명시한 column의 code table내에 명시한 item의 값을 설정한다.

ShareData -- Integer

primary DataWindow control 과 secondary DataWindow control 사이에 data를 서로 공유한다.

ShareDataOff -- Integer

DataWindow control에 관한 공유를 해제한다. control이 primary DataWindow control이면, 모든 secondary DataWindow control들의 연결이 끊기고 secondary DataWindow object는 더 이상 data를 포함하지 않는다.

Show -- Integer

DataWindow control을 보이게 한다.

ShowHeadFoot -- Integer

RichText presentation style의 DataWindow control내에서, 편집중인 header 와 footer를 표시하거나 panel을 숨기고 편집중인 메인 텍스트로 되돌아간다.

Sort -- Integer

DataWindow control의 현재 정렬기준에 의하여 row를 정렬한다.

TextLine -- String

현재 row와 column상에 있는 edit control에 대한 정보를 나타낸다.

TriggerEvent -- Integer

DataWindow control내에 명시한 event를 trigger하고 event에 관한 script를 실행한다.

TypeOf -- Object

control type을 리턴한다.

Undo -- Integer

edit control내에서 현재 row와 column상의 마지막 편집을 취소한다.

Update -- Integer

DataWindow control의 모든 insert, delete, update를 database에 보낸다.


Properties for DataWind

Properties for DataWindow controls

Border -- Boolean

control이 경계선을 가지고 있는지 여부를 명시한다.

True | 컨트롤이 경계선을 갖는다.
False | 컨트롤이 경계선을 갖지 않는다.

BorderStyle -- BorderStyle (열거형)

control의 border 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

Powerbuilder가 앞뒤순서의 맨 위로 컨트롤을 옮길 것인지를 명시한다.

ControlMenu -- Boolean

컨트롤 타이틀바내에 컨트롤메뉴 박스를 보여줄 것인지 명시한다.

True | 컨트롤 타이틀바 내에 컨트롤메뉴 박스를 보여준다.
False | 컨트롤 타이틀바 내에 컨트롤메뉴 박스를 보여주지 않는다.

DataObject -- String

컨트롤에 연관된 데이터윈도우 object나 Report object의 이름을 명시한다.

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동적으로 드래그모드로 둘 것인지를 명시한다.

True | 컨트롤을 클릭했을 때, 컨트롤을 자동으로 드래그모드로 둔다.
False | 컨트롤을 클릭했을 때, 컨트롤을 자동으로 드래그모드로 두지 않는다. 사용자가 수동으로 놓을 때는 Drag 함수를 사용하여 컨트롤을 드래그모드로 두어야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 stock 아이콘 또는 보여주기를 원하는 아이콘을 포함하는 파일들의 이름(.ICO file)을 명시한다. 기본아이콘은 컨트롤크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(적절한 drop영역). 컨트롤이 적절하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일은 Windows와 Macintosh platforms에서만 제공된다.

Enabled -- Boolean

컨트롤을 사용 가능하게 할 것인지 명시한다.(선택될 수 있다)

True | 컨트롤을 사용가능 하다.
False | 컨트롤을 사용할 수 없다.

Height -- Integer

데이터윈도우 컨트롤의 높이를 명시한다.(PowerBuilder 단위)

HscrollBar -- Boolean

모든 데이터를 한번에 보여줄 수 없을 때 컨트롤 내에 수평 스크롤바를 보여줄 것인지 명시한다.

True | 수평 스크롤바를 보여준다.
False | 수평 스크롤바를 보여주지 않는다.

HsplitScroll -- Boolean

컨트롤 내에 split bar를 보여줄 것인지 명시한다.

True | split bar를 보여준다.
False | split bar를 보여주지 않는다.

Icon -- String

데이터윈도우 컨트롤이 최소화되었을 때 보여지는 아이콘을 포함하고 있는 ICO 파일의 이름을 명시한다.

* Platform note *

ICO 파일은 Windows와 Macintosh platforms에서만 제공된다.

LiveScroll -- Boolean

사용자가 스크롤 박스를 움직일 동안 데이터윈도우 컨트롤내의 row들을 스크롤한다.

MaxBox -- Boolean

데이터윈도우 타이틀바 내에 Maximize Box를 보여줄 것인지를 명시한다.

True | Maximize Box를 보여준다.
False | Maximize Box를 보여주지 않는다.

MinBox -- Boolean

데이터윈도우 타이틀바내에 Minimize Box를 보여줄 것인지를 명시한다.

True | 최소박스를 보여준다.
False | 최소박스를 보여주지 않는다.

Object -- DWObject

스크립트에서 데이터윈도우 object내에 있는 object를 직접 조작하는데 사용된다. object들은, 예를 들어 칼럼 또는 텍스트 object가 될 것이다.

Resizable -- Boolean

데이터윈도우의 크기를 바꿀 것인지를 명시한다.

True | 데이터윈도우의 크기를 바꾼다.
False | 데이터윈도우의 크기를 바꾸지 않는다.

RightToLeft -- Boolean

문자들을 우측에서 좌측 순으로 보여줄 수 있도록 명시한다. 응용프로그램은 우측에서 좌측으로 보여지는 것을 제공하는 PowerBuilder의 히브리어 또는 아랍어 버전에서 실행되어야 한다.

True | 문자들을 우측에서 좌측 순으로 보여준다.
False | 문자들을 좌측에서 우측 순으로 보여준다.

TabOrder -- Integer

윈도우 또는 user object에 있는 데이터윈도우 컨트롤의 탭 값을 명시한다.(0은 사용자가 데이터윈도우 컨트롤에 탭을 주지 않음을 뜻한다.)

Tag -- String

데이터윈도우 컨트롤에 할당할 태그 값을 명시한다.

Title -- String

데이터윈도우 컨트롤 title bar내에 보여주는 텍스트를 명시한다.

TitleBar -- Boolean

데이터윈도우 컨트롤 내에 title bar를 나타낼 것인지를 명시한다. 데이터윈도우 컨트롤이 title bar를 가지고 있다면 사용자가 데이터윈도우 컨트롤을 옮길 수 있다.

True | 컨트롤 내에 title bar를 보여준다.
False | 컨트롤 내에 title bar를 보이지 않는다.

Visible -- Boolean

데이터윈도우 컨트롤을 보일 것인지를 명시한다.

True | 컨트롤을 보인다.
False | 컨트롤을 보이지 않는다.

VscrollBar -- Boolean

모든 데이터가 한번에 볼 수 없을 때, 컨트롤 내에 수직 스크롤바를 나타낼 것인지를 명시한다.

True | 수직 스크롤바를 나타낸다.
False | 수직 스크롤바를 나타내지 않는다.

Width -- Integer

데이터윈도우 컨트롤의 폭을 명시한다.(PowerBuilder 단위)

X -- Integer

X의 위치를 명시한다(윈도우의 좌측면으로부터 떨어진 거리), PowerBuilder 단위

Y -- Integer

Y의 위치를 명시한다(윈도우의 상단으로부터 떨어진 거리), PowerBuilder 단위


Events for DropDownList

Events for DropDownListBoxes

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DoubleClicked

컨트롤을 더블-클릭할 때 발생한다.

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다.

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다.

Modified

컨트롤이 포커스를 잃어버릴 때, 텍스트가 변경되었을 때, ENTER 또는 TAB 키를 눌렀을 때 발생한다.

Other

PowerBuilder event가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.

SelectionChanged

DropDownListBox의 ListBox부분 내에 item이 선택될 때 발생한다.


Functions for DropDownL

Functions for DropDownListBoxes

AddItem -- Integer

컨트롤의 ListBox 부분의 끝에 아이템을 추가한다. AddItem 함수는 control의 Item[ ] 이나 ItemPicture[ ] property를 갱신하지 않는다.

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Clear -- Integer

컨트롤로부터 선택된 text를 해제한다(clipboard내로 옮기지 않는다).

Copy -- Integer

컨트롤로부터 선택된 text를 복사한다.

Cut -- Integer

컨트롤로부터 선택된 text를 삭제하고 clipboard로 옮긴다..

DeleteItem -- Integer

컨트롤의 ListBox 영역에서 index에 의하여 지시된 item을 삭제한다.

DirList -- Boolean

명시한 파일 패턴과 match되는 type의 파일 list로 DropDownListBox의 ListBox 영역을 나타낸다.

DirSelect -- Boolean

명시된 컨트롤로부터 현재 선택된 내용을 찾고 변수에 넣는다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

FindItem -- Integer

컨트롤의 ListBox 영역에서 명시한 문자열로 시작하는 첫 번째 item을 찾는다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 한다.

InsertItem -- Integer

DropDownListBox의 ListBox 부분에 새로운 item을 추가한다. 이 함수는 컨트롤의 Item[ ] 나 ItemPictureIndex[ ] property를 갱신하지 않는다.

Move -- Integer

명시한 위치로 컨트롤을 옮김다.

Paste -- Integer

컨트롤내의 커서 위치에 clipboard의 내용을 삽입한다.

PointerX -- Integer

컨트롤의 좌측면으로부터 포인터의 위치를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 포인터의 위치를 리턴한다.

Position -- Integer

컨트롤내의 커서 위치를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

ReplaceText -- Integer

컨트롤 내 선택된 text를 명시한 string으로 바꾼다.

Reset -- Integer

모든 item을 컨트롤로부터 삭제한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SelectedLength -- Integer

컨트롤 내 선택된 text의 길이를 리턴한다.

SelectedStart -- Integer

컨트롤 내 선택된 text의 시작하는 위치를 리턴한다.

SelectedText -- String

컨트롤로부터 선택된 text를 포함하는 string을 리턴한다.(AllowEdit property가 Truedu야 한다)

SelectItem -- Integer

컨트롤 내 item을 찾고 반전시킨다. 컨트롤의 위치를 모르고 item text만 알 때에는 Syntax 1을 사용한다. 컨트롤 list내 item의 위치를 알거나 현재 선택을 해제 시키기 원할 때는 Syntax 2를 사용한다.

SelectText -- Integer

시작 위치와 길이에 의하여 명시된 텍스트를 선택한다.(컨트롤이 focus를 가질 때, text를 반전시킨다)

SetFocus -- Integer

box내 첫 번째 item에 focus를 설정한다.

SetPosition -- Integer

윈도우의 전후 순서인 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

컨트롤의 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이지 않게 한다.

Text -- String

index에 의하여 확인된 DropDownListBox의 ListBox영역에있는 item의 텍스트를 리턴한다.

TotalItems -- Integer

DropDownListBox의 ListBox영역에 있는 item 수를 리턴한다.

TriggerEvent -- Integer

컨트롤 내 명시된 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Control

컨트롤의 type를 리턴한다.


Properties for DropDown

Properties for DropDownListBoxes

Accelerator -- Integer

컨트롤에 관한 accelerator처럼 할당하기를 원하는 accelerator 키의 ASCII 값

AllowEdit -- Boolean

컨트롤의 textbox 부분내에 사용자가 text를 입력할 수 있는지 명시한다.

True | textbox내에 text를 입력할 수 있다.
False | textbox내에 text를 입력할 수 없다 ShowList가 true일 때 AllowEdit는 반드시 true여야 한다.

AutoHScroll -- Boolean

컨트롤의 textbox 부분에 데이터를 입력하거나 삭제할 때 자동으로 수평 스크롤 할 것인지를 명시한다.

True | Textbox를 자동으로 수평 스크롤 한다.
False | Textbox를 자동으로 수평 스크롤하지 않는다.

BackColor -- Long

배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

컨트롤이 border를 갖는지를 명시한다. 그렇다 하더라도 property가 False로 설정되어 있다면 DropDownListBox control에 아무런 영향을 주지 않는다.

BorderStyle -- BorderStyle (enumerated)

컨트롤의 border style를 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control이 제일 위쪽으로 이동된다
False | control이 제일 위쪽으로 이동되지 않는다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭 되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을 때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platform에서만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

컨트롤의 텍스트 서체 명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤안에 있는 텍스트에 사용될 수 있는 폰트 문자를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안에 있는 텍스트에 사용될 수 있는 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤안에 있는 텍스트에 사용될 수 있는 폰트피치를 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

HscrollBar -- Boolean

수평 스크롤바의 표시 여부를 명시한다.

True | 수평 스크롤바를 표시한다
False | 수평 스크롤바를 표시하지 않는다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Item[ ] -- String array

DropDownListBox내 ListBox영역의 내용을 명시한다.

Limit -- Integer

DropDownListBox내 SingleLineEdit 부분에 입력할 수 있는 문자들의 최대 수(0에서 32,767까지)를 명시한다.(0은 무제한을 의미한다)

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

ShowList -- Boolean

컨트롤을 나타낼 때 DropDownListBox의 ListBox부분내에 list를 항상 나타낼 것인지 명시한다.

True | Option list를 항상 나타낸다.
False | Option list를 down arrow를 클릭할 때만 나타낸다. property보통 False로 설정된다. ShowList가 true일 때 AllowEdit도 true여야 함을 주의한다.

Sorted -- Boolean

DropDownListBox의 ListBox 부분을 자동으로 오름차순 정렬할 것인지 명시한다.

True | ListBox를 자동으로 정렬한다.
False | ListBox를 정렬하지 않는다.

TabOrder -- Integer

윈도우내 컨트롤의 tab 순서를 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

컨트롤 내에 text를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

VscrollBar -- Boolean

컨트롤 내에 수직 scrollbar를 나타나게 할 것인지 명시한다.

True | Vertical scrollbar를 나타낸다.
False | Vertical scrollbar를 나타내지 않는다.

Weight -- Integer

컨트롤 내 text의 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우의 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우의 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for DropDownPict

Events for DropDownPictureListBoxes

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DoubleClicked

컨트롤을 더블-클릭할 때 발생한다.

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다.

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다.

Modified

컨트롤이 포커스를 잃어버릴 때, 텍스트가 변경되었을 때, ENTER 또는 TAB 키를 눌렀을 때 발생한다.

Other

PowerBuilder event가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.

SelectionChanged

DropDownPictureListBox의 ListBox부분내 item이 선택될 때 발생한다.


Functions for DropDownP

Functions for DropDownPictureListBoxes

AddItem -- Integer

control의 ListBox 영역 끝에 아이템을 추가한다. AddItem 함수는 control의 Item[ ] 이나 ItemPicture[ ] property를 갱신하지 않는다.

AddPicture -- Integer

이미지 리스트에 icon, cursor, bitmap 등을 추가한다. PictureName[ ]은 갱신하지 않는다.

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Clear -- Integer

컨트롤로부터 선택된 text를 해제한다(clipbord내로 옮기지 않는다).

Copy -- Integer

컨트롤로부터 선택된 text를 clipbord내에 복사한다.

Cut -- Integer

컨트롤로부터 선택된 text를 clipbord내에 잘라서 넣는다.

DeleteItem -- Integer

컨트롤의 ListBox 영역에서 index에 의하여 지시된 item을 삭제한다.

DeletePicture -- Integer

image list로부터 명시된 picture를 삭제한다. 이 함수는 PictureName[ ] property를 갱신하지 않는다.

DeletePictures -- Integer

image list로부터 명시된 picture들을 삭제한다. 이 함수는 PictureName[ ] property를 갱신하지 않는다.

DirList -- Boolean

명시한 파일 패턴과 match되는 type의 파일 list로 DropDownPictureListBox의 ListBox영역을 나타낸다.

DirSelect -- Boolean

명시된 컨트롤로부터 현재 선택된 내용을 찾고 변수에 넣는다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

FindItem -- Integer

컨트롤의 ListBox 영역에서 명시한문자열로 시작하는 첫 번째 item을 찾는다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 한다.

InsertItem -- Integer

DropDownPictureListBox의 ListBox 부분에 새로운 item을 추가한다. 이 함수는 컨트롤의 Item[ ] 나 ItemPictureIndex[ ] property를 갱신하지 않는다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

Paste -- Integer

컨트롤내 커서가 위치한 곳에 clipboard의 내용을 삽입한다.

PointerX -- Integer

컨트롤의 좌측면으로 부터 pointer 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로 부터 pointer 거리를 리턴한다.

Position -- Integer

컨트롤내 커서 위치를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

ReplaceText -- Integer

컨트롤내 선택된 text를 명시한 문자열로 바꾼다.

Reset -- Integer

컨트롤로부터 모든 item들을 삭제한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SelectedLength -- Integer

컨트롤내 선택된 text의 길이를 리턴한다.

SelectedStart -- Integer

컨트롤내 선택된 text의 시작 위치를 리턴한다.

SelectedText -- String

컨트롤로부터 선택된 text를 포함하는 문자열을 리턴한다(AllowEdit property는 True여야 한다).

SelectItem -- Integer

컨트롤내 item을 찾고 반전시킨다. 컨트롤의 위치를 모르고 item text만 알 때에는 Syntax 1을 사용한다. 컨트롤 list내 item의 위치를 알거나 현재 선택을 해제 시키기 원할 때는 Syntax 2를 사용한다.

SelectText -- Integer

시작 위치와 길이에 의하여 명시된 텍스트를 선택한다.(컨트롤이 focus를 가질 때, text를 반전시킨다)

SetFocus -- Integer

box내 첫 번째 item에 포커스를 설정한다.

SetFocus -- Integer

box내 첫 번째 item에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

컨트롤의 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이지 않게 한다.

Text -- String

index에 의하여 확인된 DropDownPictureListBox의 ListBox영역에 있는 item의 텍스트를 리턴한다.

TotalItems -- Integer

DropDownPictureListBox의 ListBox영역에 있는 item 수를 리턴한다.

TriggerEvent -- Integer

컨트롤내 명시된 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Control

컨트롤의 type를 리턴한다.


Properties for DropDown

Properties for DropDownPictureListBoxes

Accelerator -- Integer

control에 관한 가속 키 (accelerator key)로 할당할 키의 ASCII값을 명시한다.

AllowEdit -- Boolean

컨트롤의 textbox 부분내에 사용자가 text를 입력할 수 있는지 명시한다.

True | textbox내에 text를 입력할 수 있다.
False | textbox내에 text를 입력할 수 없다 ShowList가 true일 때 AllowEdit는 반드시 true여야 한다.

AutoHScroll -- Boolean

컨트롤의 textbox 부분에 데이터를 입력하거나 삭제할 때 자동으로 수평 스크롤 할 것인지를 명시한다.

True | Textbox를 자동으로 수평 스크롤 한다.
False | Textbox를 자동으로 수평 스크롤하지 않는다.

BackColor -- Long

배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

control의 경계선 유무를 명시한다.

True | control이 경계선을 갖는다
False | control이 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control이 제일 위쪽으로 이동된다
False | control이 제일 위쪽으로 이동되지 않는다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

HScrollBar Boolean

수평 스크롤바의 표시 여부를 명시한다.

True | 수평 스크롤바를 표시한다
False | 수평 스크롤바를 표시하지 않는다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Item[ ] -- String array

DropDownPictureListBox의 초기 item문자열을 명시한다. 이 배열은 초기화한 후에 갱신할 수 없다.

ItemPictureIndex[ ] -- Integer

아이템 property 배열내에 각 아이템에관한 그림 인덱스를 명시한다. 초기화된 이후에는 갱신할 수 없다.

Limit -- Integer

DropDownPictureListBox내의 SingleLineEdit 부분에 입력할 수 있는 문자들의 최대 수(0에서 32,767까지)를 명시한다.(0은 무제한을 의미한다)

PictureHeight-- Integer

그림의 높이를 픽셀(pixel)로 명시한다. 이 property는 이미지 리스트에 이미지들이 없을 때에만 설정할 수 있다. 처음 이미지가 추가될 때 PictureHeight 값이 0이면, 그 이미지 크기는 추가되는 나머지 이미지의 크기를 결정하는데 사용된다.

PictureWidth -- Integer

그림의 폭을 픽셀(pixel)로 명시한다. 이 property는 이미지 리스트에 이미지들이 없을 때에만 설정할 수 있다. 처음 이미지가 추가될 때 PictureWidth 값이 0이면, 그 이미지 크기는 추가되는 나머지 이미지의 크기를 결정하는데 사용된다.

PictureMaskColor -- Long

초기 그림 배열 또는 AddPicture 함수를 이용하여 추가된 사용자-정의 비트맵의 마스크로 사용할 색상 값을 명시한다. 시스템-정의 비트맵은 자신들의 마스크 색상을 알고있으며 이 property의 색상은 무시된다. 이 값은 그림이 추가될 때 사용되며, AddPicture 함수를 호출하는 사이에 변경할 수 있다. 값의 범위는 -2 부터 16,777,215이다.

PictureName[ ] -- String

초기화하는 동안 추가되는 그림을 포함하고있는 파일 이름. 파일 확장자는 .BMP, .ICO, 또는 .CUR 등이다. 초기화된 이후에는 갱신할 수 없다.

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

ShowList -- Boolean

컨트롤을 나타낼 때 DropDownPictureBox의 ListBox부분내에 list를 항상 나타낼 것인지 명시한다.

True | Option list를 항상 나타낸다.
False | Option list를 down arrow를 클릭할때만 나타낸다. property보통 False로 설정된다. ShowList가 true일 때 AllowEdit도 true여야 함을 주의한다.

Sorted -- Boolean

DropDownPictureBox의 ListBox 부분을 자동으로 오름차순 정렬할 것인지 명시한다.

True | ListBox를 자동으로 정렬한다.
False | ListBox를 정렬하지 않는다.

TabOrder -- Integer

윈도우내 컨트롤의 tab 순서를 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

컨트롤내 text를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

VscrollBar -- Boolean

컨트롤 내에 수직 scrollbar를 나타나게 할 것인지 명시한다.

True | Vertical scrollbar를 나타낸다.
False | Vertical scrollbar를 나타내지 않는다.

Weight -- Integer

컨트롤내 text의 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for EditMask con

Events for EditMask controls

Constructor

윈도우의 Open 이벤트 스크립트가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close 이벤트 스크립트가 발생한 직후에 발생한다.

DragDrop

드래그된 컨트롤을 control위에 끌어다 놓을 때 발생한다.

DragEnter

드래그된 컨트롤을 target컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤의 안쪽으로 포함될 때 발생한다.

GetFocus

컨트롤이 포커스를 얻기 직전에 발생한다.(컨트롤이 선택되고 활성화 되기 전에)

LoseFocus

컨트롤이 포커스를 잃어버릴 때 발생한다(비활성화 된다)

Modified

컨트롤이 변경되고 포커스를 잃어버릴 때 발생한다(비활성화 된다)

Other

PowerBuilder의 이벤트에서 가 아닌 윈도우 자체의 메시지가 발생할 때 일어난다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for EditMask

Functions for EditMask controls

CanUndo -- Boolean

Undo 함수가 컨트롤의 마지막 편집을 되돌릴 수 있으면 True를 리턴하고 되돌릴 수 없으면 False를 리턴한다.

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Clear -- Integer

컨트롤로부터 선택된 text를 clear하지만 선택된 text를 클립보드로 옮기지는 않는다.

Copy -- Integer

선택된 text를 컨트롤에서 clipboard로 copy한다.

Cut -- Integer

컨트롤로부터 선택된 text를 잘라서 clipboard에 넣는다.

Drag -- Integer

컨트롤의 끌기를 시작하거나 끝낸다.

GetData -- Integer

컨트롤의 형식화 되지 않은 data를 얻는다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 한다.

LineCount -- Integer

window의 EditMask안에 있는 line 수를 리턴한다.

LineLength -- Integer

커서가 위치한 라인의 길이를 리턴한다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

Paste -- Integer

명시한 컨트롤 안의 삽입포인트 위치에 클립보드의 내용을 삽입한다.

PointerX -- Integer

컨트롤의 좌측면으로부터 포인터의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 포인터의 거리를 리턴한다.

Position -- Integer

컨트롤내의 삽입포인트 위치를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 메시지 큐의 마지막에 명시한 이벤트를 추가한다.

Print -- Integer

컨트롤을 출력한다.

ReplaceText -- Integer

현재 선택된 텍스트를 명시한 문자열로 바꾼다. 선택된 텍스트가 없으면, 삽입포인트에 텍스트를 삽입한다.

Resize -- Integer

컨트롤의 폭과 높이를 변경한다.

Scroll -- Integer

컨트롤의 내용을 명시된 라인 수만큼 위 또는 아래로 옮긴다.

SelectedLength -- Integer

컨트롤 내 문자들의 총수와 선택된 문자 내 공간(길이)를 리턴한다.

SelectedLine -- Integer

컨트롤 안에 삽입포인트가 위치한 라인번호를 리턴한다.

SelectedStart -- Integer

컨트롤 안에 선택된 텍스트의 첫 번째 문자위치를 리턴한다.

SelectedText -- String

어떤 텍스트를 컨트롤 내에 선택할 것인지 결정한다.

SelectText -- Integer

컨트롤내의 텍스트를 명시한 위치에서 시작하고 명시된 문자들의 수만큼 선택한다.

SetFocus -- Integer

컨트롤의 focus를 설정한다.

SetMask -- Integer

컨트롤에 관한 edit mask의 data타입과 내용을 명시한다.

SetPosition -- Integer

윈도우에서 앞뒤 순서인 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

컨트롤의 속성이 변경된 후에 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 한다.

TextLine -- String

현재 위치한 삽입포인트 라인의 전체 텍스트를 리턴한다.

TriggerEvent -- Integer

컨트롤 내에 명시된 이벤트를 유발하고 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control의 type을 리턴한다.

Undo -- Integer

control내의 마지막 편집을 취소한다.


Properties for EditMask

Properties for EditMask controls

Accelerator -- Integer

컨트롤에 관한 가속키 처럼 사용자가 할당하기를 원하는 키의 ASCII값을 명시한다.

Alignment -- Alignment (열거형)

컨트롤 안의 텍스트의 정렬을 명시한다.

Center!

Justify!

Left!

Right!

AutoHScroll -- Boolean

데이터가 컨트롤로부터 입력되고 삭제될 때 PowerBuilder가 자동적으로 왼쪽 또는 오른쪽으로 스크롤 할 것인지를 명시한다.

True | 자동으로 수평으로 스크롤한다.
False | 자동으로 스크롤하지 않는다.

AutoSkip -- Boolean

edit mask에 마지막 문자가 입력될 때 다음 컨트롤로 옮길 것 인지의 여부를 명시한다.

True | 자동으로 다음 컨트롤로 건너뛴다.
False | 다음 컨트롤로 건너뛰지 않는다.

AutoVScroll -- Boolean

데이터가 컨트롤로부터 입력되고 삭제될 때 PowerBuilder가 자동적으로 위 또는 아래로 스크롤 할 것인지를 명시한다.

True | 자동적으로 수직 스크롤 한다.
False | 자동으로 스크롤 하지 않는다.

BackColor -- Long

배경색의 수치값을 명시한다. : -2에서 16,777,215까지

색상에 관한 좀더 많은 정보에 대해서는 PowerScript Reference를 참조한다.

Border -- Boolean

컨트롤의 경계를 명시한다.

True | 컨트롤이 경계를 갖는다.
False | 컨트롤이 경계를 갖지 않는다.

BorderStyle -- BorderStyle (열거형)

컨트롤의 경계 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

PowerBuilder가 윈도우 안에서 컨트롤의 앞뒤순서를 맨 위로 옮길 것인지를 명시한다.

True | 컨트롤의 맨 위로 옮긴다.
False | 컨트롤의 맨 위로 옮기지 않는다.

DisplayData -- String

컨트롤 안에 나타낼 초기치를 명시한다.

DisplayOnly -- Boolean

컨트롤 안의 텍스트를 보여주기만 하고 사용자가 변경할 수 없도록 할 것인지 명시한다.

True | 텍스트를 보여주기만 한다.
False | 텍스트를 사용자가 바꿀 수 있다.

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동적으로 드래그모드로 둘 것인지를 명시한다.

True | 컨트롤을 클릭했을 때, 컨트롤을 자동적으로 드래그모드에 둔다.
False | 컨트롤을 클릭했을 때, 컨트롤을 자동적으로 드래그모드에 두지 않는다. 사용자는 Drag 함수 사용에 의하여 컨트롤을 수동으로 드래그모드에 놓아야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , stock 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다. (적절한 drop 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 윈도우와 Macintosh platforms에만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

컨트롤의 텍스트의 서체 명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤안에 있는 텍스트에 사용될 수 있는 폰트 문자를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안에 있는 텍스트에 사용될 수 있는 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤 안에 있는 텍스트에 사용될 수 있는 폰트피치를 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

HscrollBar -- Boolean

모든 데이터를 한번에 볼 수 없을 때 컨트롤 내에 수평 스크롤바를 나타낼 것인지 명시한다.

True | 수평 스크롤바를 나타낸다.
False | 수평 스크롤바를 나타내지 않는다.

HideSelection -- Boolean

컨트롤이 포커스를 가지지 않을 때 선택된 텍스트의 반전상태를 그대로 유지시킬 것인지 여부를 명시한다.

True | 텍스트를 반전상태로 두지 않는다.
False | 텍스트의 반전상태를 유지시킨다.

IgnoreDefaultButton -- Boolean

사용자가 엔터키를 눌렀을 때 윈도우의 기본설정(Default) 명령 버튼에 관한 클릭이벤트를 발생시킬 것인지를 명시한다.

True | Clicked 이벤트를 트리거한다.
False | Clicked 이벤트를 트리거하지 않는다.

Increment -- Double

spin 컨트롤의 증가값을 명시한다.

Italic -- Boolean

컨트롤 안에 있는 텍스트를 이탤릭체로 할 것인지를 명시한다.

True | 텍스트는 이탤릭체다.
False | 텍스트는 이탤릭체가 아니다.

Limit -- Integer

컨트롤 안에서 입력될 수 있는 문자들의 최대숫자(0에서 32,767까지)를 명시한다.(0은 무제한을 뜻한다.)

Mask -- String

컨트롤 안의 데이터를 형식화하고 편집하는데 사용할 마스크를 명시한다.

MaskDataType -- MaskDataType (열거형)

컨트롤의 데이터 타입을 명시한다.

DateMask!

DateTimeMask!

DecimalMask!

NumericMask!

StringMask!

TimeMask!

MinMax -- String

spin 컨트롤에 관한 최소값과 최대값을 명시한다.

Pointer -- String

컨트롤에 사용할 포인터의 이름이나 포인터를 포함하고 있는 파일을 명시한다.

RightToLeft -- Boolean

문자들을 우측에서 좌측으로 나타낼 수 있도록 명시한다. 응용프로그램은 반드시 우측에서 좌측으로 나타내는 것을 지원해주는 오퍼레이팅 시스템하에서 PowerBuilder의 히브리어 또는 아랍어 버전으로 실행 중이어야 한다.

True | 문자들을 우측에서 좌측으로 나타낸다.
False | 문자들의 순서를 나타낸다.

Spin -- Boolean

spin값을 스크롤 할 것인지를 명시한다.

True | spin값을 스크롤 한다.
False | spin값을 스크롤 하지 않는다.

TabOrder -- Integer

윈도우 안에 있는 컨트롤의 탭 값을 명시한다.(0은 사용자가 탭을 옮길 수 없다는 것을 뜻한다.)

TabStop[ ] -- Integer

컨트롤 내에 정지 위치를 명시한다.

Tag -- String

컨트롤 내에 할당된 tag 값을 명시한다.

Text -- String

컨트롤 내에 나타낸 텍스트를 명시한다.

TextColor -- Long

컨트롤 내에 텍스트에 사용될 색상을 명시한다. 색상에 관한 좀 더 많은 정보에 대해서는 PowerScript Reference를 참고한다.

TextCase -- TextCase (열거형)

사용자가 입력한 텍스트를 나타낼 때 사용할 텍스트 상태를 명시한다.

AnyCase!

Lower!

Upper!

TextSize -- Integer

컨트롤 내에 텍스트의 크기를 명시한다(포인트단위). 크기는 음수로 저장된다.

하위버전과의 호환성을 위하여, 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

UnderLine -- Boolean

컨트롤 내에 텍스트를 밑줄을 그을 것인지를 명시한다.

True | 텍스트에 밑줄을 긋는다.
False | 텍스트에 밑줄이 긋지 않는다.

UseCodeTable -- Boolean

PowerBuilder가 칼럼의 데이터를 평가하기 위하여 코드테이블을 사용할 것인지 명시한다.

True | 데이터를 평가하기 위해서 코드테이블을 사용한다.
False | 데이터를 평가하기 위해서 코드테이블을 사용하지 않는다.

Visible -- Boolean

컨트롤을 보일 것인지 명시한다.

True | 컨트롤을 보인다.
False | 컨트롤을 보이지 않는다.

VscrollBar -- Boolean

컨트롤내의 모든 데이터를 한번에 볼 수 없을 때 수직 스크롤바를 나타낼 것인지 명시한다.

True | 수직 스크롤바를 나타낸다.
False | 수직 스크롤바를 나타지 않는다

Weight -- Integer

컨트롤내의 텍스트의 두께를 명시한다. (예를 들어, 400은 보통이고 700은 강조다)

Width -- Integer

컨트롤의 폭을 명시한다.(PowerBuilder 단위)

X -- Integer

X 위치를 명시한다(윈도우의 좌측면으로부터 거리), PowerBuilder 단위

Y -- Integer

Y의 위치를 명시한다(윈도우의 상단으로부터 거리), PowerBuilder 단위


Events for Graphs

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open 이벤트 스크립트가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close 이벤트 스크립트가 발생한 직후에 발생한다.

DoubleClicked

컨트롤을 더블-클릭할 때 발생한다.

DragDrop

드래그된 컨트롤을 control위에 끌어다 놓을 때 발생한다.

DragEnter

드래그된 컨트롤을 target컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤의 안쪽으로 포함될 때 발생한다.

GetFocus

컨트롤이 포커스를 얻기 직전에 발생한다.(컨트롤이 선택되고 활성화 되기 전에)

LoseFocus

컨트롤이 포커스를 잃어버릴 때 발생한다(비활성화 된다)

Other

PowerBuilder의 이벤트에서 가 아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for Graphs

AddCategory -- Integer

category를 graph에 추가한다.

AddData -- Long

graph에 관한 명시한 series의 끝에 값을 추가한다.

Adds a value to the end of the specified series for the graph.

AddSeries -- Integer

graph에 series를 추가하고 series 번호를 할당한다.

CategoryCount -- Integer

graph의 category를 계산한다.

CategoryName -- String

graph내 명시된 category의 이름을 얻는다.

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Clipboard -- Integer

clipboard에 BMP 형식의 graph를 복사한다.

DataCount -- Long

graph의 명시된 series내 data point의 수를 리턴한다.

DeleteCategory -- Integer

그래프의 series에서 명시한 category와 그 값을 삭제한다.

DeleteData -- Integer

그래프의 series에서 명시한 데이터 포인트내의 값을 삭제한다.

DeleteSeries -- Integer

그래프에서 명시한 series와 그 값을 삭제한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

FindCategory -- Integer

graph내에서 명시한 catagory의 번호를 얻는다.

FindSeries -- Integer

series가 그래프에 추가되었을 때 PowerBuilder가 할당한 번호를 리턴한다.

GetData -- Double

graph내의 series에서 명시한 data point 값을 얻는다.

GetDataValue 함수를 참고한다.

GetDataPieExplode -- Integer

pie graph에서 분리된 pie 조각의 백분율을 나타낸다.

GetDataStyle -- Integer

series내에서 data point의 모양을 찾는다. 각 data point는 series내에서 개별적인 모양 설정을 갖을 수 있다. color, line, style, fill, pattern, symbol등에서 어떤 것의 설정상태를 체크하기 원하는가에 따라 문법들이 서로 다르다.

GetDataValue -- Integer

graph의 series에서 명시한 data 값을 리턴한다.

GetSeriesStyle -- Integer

graph에서 series의 모양을 찾는다. 각각의 data point에 관한 모양 설정은 series에서의 설정 상태를 무시할 수 있다, 따라서 함수로부터 얻은 값은 graph의 현재 상태에 영향을 미치지 않을수도 있다. 문법들은 어떤 것의 설정상태를 체크하기 원하는가에 따라 서로 다르다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 한다.

ImportClipboard -- Long

clipbord내의 내용을 명시한 column부터 시작하여 graph에 복사한다.

ImportFile -- Long

명시한 file의 내용을 명시한 column부터 시작하여 graph에 넣는다.

ImportString -- Long

문자열의 내용을 명시한 column부터 시작하여 graph에 넣는다.

InsertCategory -- Integer

graph내의 현재 category 앞에 새로운 category를 삽입한다.

InsertData -- Long

graph내에서 명시한 data point이전에 새로운 data point를 삽입하고 현재 data point는 오른쪽으로 옮긴다.

InsertSeries -- Integer

graph내에 현재 series 이전에 새로운 series를 삽입한다.

ModifyData -- Integer

graph에서 series내에 명시한 data point의 값을 명시한 값으로 변경하고, 선택적으로 명시한 tick mark에 관하여 data를 수정한다.

Move -- Integer

명시한 위치로 컨트롤을 옮긴다.

ObjectAtPointer -- GrObjectType

series 포인터의 번호를 그래프에 저장하고 명시한 데이터 포인트 번호를 참조 값에 저장하고, object 타입을 확인한다.

PointerX -- Integer

control 좌측면으로 부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control 상단으로부터 포인터 까지의 거리를 리턴한다.

PostEvent -- Boolean

control에 관한 message queue 끝에 이벤트를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Reset -- Integer

명시된 graph내의 data를 삭제한다.

ResetDataColors -- Integer

데이터 포인트의 색상을 series 색상으로 재설정한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SaveAs -- Integer

그래프 내용을 명시한 형식의 파일로 저장한다.

* Platform note

각 platform이 지원하는 파일 형식 정보는, PowerScript Reference를 참조한다.

SeriesCount -- Integer

그래프에 series가 얼마만큼 있는지 알아낸다.

SeriesName -- String

그래프내에서 명시한 series 이름을 구한다.

SetDataPieExplode -- Integer

파이 그래프에서 pie 조각을 분리한다.

SetDataStyle -- Integer

그래프내의 데이터 포인트 모양을 명시한다. colors, line style 과 폭, 또는 fill pattern 이나 symbol등 무엇을 설정하기 원하는가에 따라 문법이 서로 다르다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우내에서의 control 위치를 명시한다.

SetRedraw -- Integer

property가 변경된후 control을 자동으로 다시 그릴것인지 제어한다.

SetSeriesStyle -- Integer

그래프내의 series 모양을 명시한다. 색상, line style 과 폭, fill pattern 이나symbol, 또는 series의 중첩여부 등 무엇을 변경시키기 원하는가에 따라 여러 가지 문법이 존재한다.

Show -- Integer

control을 보이게 한다.

TriggerEvent -- Integer

control에서 명시한 event를 trigger하고, event에 관한 script를 실행한다.

TypeOf -- Object

control의 type를 리턴한다.


Properties for Graphs

BackColor -- Long

배경색 값을 명시한다.(-2 부터 16,777,215)

Border -- Boolean

control이 경계선을 갖는지 명시한다.

BorderStyle -- BorderStyle (열거형)

control의 경계선 style를 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

PowerBuilder가 윈도우나 DataWindow control의 맨 위로 control을 옮길 것인지를 명시한다.

Category -- grAxis

graph에서 category 축의 property를 명시한다.

CategorySort -- grSortType

category를 정렬하는 방법을 명시한다.

Depth -- Integer

graph에서 폭의 깊이를 percent로 명시한다.

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭 되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭 되었을 때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

* Platform note *

ICO 파일들은 윈도우와 Macintosh platforms에만 제공된다.

Elevation -- Integer

전후 각도를 명시한다.

Enabled -- Boolean

control을 사용 가능하게 할 것인지(선택할 수 있다) 명시한다.

True | Control을 선택할 수 있다
False | Control을 선택할 수 없다

FocusRectangle -- Boolean

control이 focus를 가질 때 점선으로 된 사각형 프레임을 나타낼 것인지 명시한다.

True | Control이 focus를 가질 때 테두리를 갖는다
False | Control이 focus를 가질 때 테두리를 갖지 않는다

GraphType -- grGraphType (열거형)

graph의 type을 명시한다.

Area3D!

AreaGraph!

Bar3DGraph!

Bar3DObjGraph!

BarGraph!

BarStack3DObjGraph!

BarStackGraph!

Col3DGraph!

Col3DObjGraph!

ColGraph!

ColStack3DObjGraph!

ColStackGraph!

Line3D!

LineGraph!

Pie3D!

PieGraph!

ScatterGraph!

Height -- Integer

control의 높이를 명시한다.(PowerBuilder 단위)

Legend -- grLegendType (열거형)

graph legend 영역에 있는 text의 정렬을 명시한다.

AtBottom!

AtLeft!

AtRight!

AtTop!

NoLegend!

LegendDispAttr -- grDispAttr

graph legend 영역내에서 text style, size, color, rotation등을 포함하는 text에 관한 style을 명시한다.

OverlapPercent -- Integer

graph overlap에서 다른 series의 data가 차지하는 폭의 백분율을 명시한다.

Perspective -- Integer

window 전면으로부터 graph의 거리를 명시한다.

PieDispAttr -- grDispAttr

pie graph label내의 text style, size, color, and rotation등과 같은 text의 property를 명시한다.

Pointer -- String

graph에 사용할 내장(stock) pointer 또는 pointer를 포함하는 file 이름을 명시한다.

Rotation -- Integer

graph를 좌측에서 우측으로 얼마나 회전시킬 것인지 명시한다.

Series -- grAxis

graph내에 series를 명시한다.

SeriesSort -- grSortType

series를 정렬하는 방법을 명시한다.

ShadeColor -- Long

graph내에 그림자부분에 사용될 색깔을 명시한다.

Spacing -- Integer

그래프내의 데이터 표시를 위한 공란 간격을 백분율로 명시한다.

TabOrder -- Integer

tab 순서 내에서 control의 tab value를 명시한다. (0은 사용자가 control에 tab을 줄 수 없음을 뜻한다)

Tag -- String

control의 tag 값을 명시한다.

TextColor -- Long

control내의 text에 사용될 color를 명시한다.

Title -- String

graph title의 text를 명시한다.

TitleDispAttr -- grDispAttr

graph legend 영역 내에 text에 관한 style, size, color, rotation 등의 style을 명시한다.

Values -- grAxis

graph의 value축 값을 명시한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다
False | Control을 보이지 않게 한다

Width -- Integer

control내에서 text의 두께를 명시한다. 예를들어, 400은 보통, 700은 강조다.

X -- Integer

X의 위치(parent window의 좌측으로부터 떨어진 거리)를 명시한다. PowerBuilder 단위.

Y -- Integer

Y의 위치(parent window의 상단으로부터 떨어진 거리)를 명시한다. PowerBuilder 단위.


Functions for GroupBoxe

Functions for GroupBoxes

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 끌기를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 한다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 포인터의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 포인터의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 메시지 큐의 마지막에 명시한 이벤트를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetFocus -- Integer

컨트롤의 focus를 설정한다.

SetPosition -- Integer

윈도우내에서 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

컨트롤의 속성이 변경된 후에 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 한다.

TriggerEvent -- Integer

컨트롤내에 명시된 이벤트를 유발하고 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control의 type을 리턴한다.


Properties for GroupBox

Properties for GroupBoxes

BackColor -- Long

배경색 값을 명시한다(-2에서 16,777,215까지).

color에 대한 더 많은 정보를 얻으려면 PowerScript Reference를 참고한다.

BorderStyle -- BorderStyle (열거형)

컨트롤의 border style를 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

PowerBuilder가 윈도우내에서 control을 맨 위로 컨트롤을 옮길 것인지를 명시한다.

True | 컨트롤을 맨 위로 옮긴다.
False | 컨트롤을 맨 위로 옮기지 않는다.

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동으로 Drag mode로 둘 것인지 명시한다.

True | 컨트롤을 클릭할 때, 자동으로 Drag mode가 된다.
False | 컨트롤을 클릭할 때, 자동으로 Drag mode가 되지 않는다. 사용자는 Drag 함수를 사용하여 컨트롤을 수동으로 드래그모드에 놓아야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , 내장(stock) 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(drop 가능한 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

컨트롤의 텍스트 서체 명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤안에 있는 텍스트에 사용할 폰트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안에 있는 텍스트에 사용할 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤 안에 있는 텍스트에 사용할 폰트피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

Italic -- Boolean

컨트롤 안에 있는 텍스트를 이탤릭체로 할 것인지를 명시한다.

True | 텍스트가 이탤릭체다.
False | 텍스트가 이탤릭체가 아니다.

Pointer -- String

control에 사용할 내장(stock) pointer 이름 또는 pointer를 포함하고있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우내 컨트롤의 tab 값을 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

컨트롤에 할당할 tag 값을 명시한다.

Text -- String

컨트롤내 text를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for HScrollBars

Constructor

윈도우의 Open 이벤트 스크립트가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close 이벤트 스크립트가 발생한 직후에 발생한다.

DragDrop

드래그된 컨트롤을 control위에 끌어다 놓을 때 발생한다.

DragEnter

드래그된 컨트롤을 target컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤의 안쪽으로 포함될 때 발생한다.

GetFocus

컨트롤이 포커스를 얻기 직전에 발생한다.(컨트롤이 선택되고 활성화되기 전에)

LineLeft

control의 왼쪽 방향키를 클릭할 때 발생한다.

LineRight

control의 오른쪽 방향키를 클릭할 때 발생한다.

LoseFocus

control이 focus를 잃어버릴 때 발생한다. (becomes inactive).

Moved

scroll box를 옮길 때 발생한다(새로운 위치를 결정하기 위하여 Position property를 사용한다).

Other

PowerBuilder event가 아닌 Window message가 일어날 때 발생한다.

PageLeft

scroll box의 왼쪽 공간을 click할 때 발생한다.

PageRight

scroll box의 오른쪽 공간을 click할 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for HScrollBa

Functions for HScrollBars

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer의 거리를 리턴한다.

PostEvent -- Boolean

event를 컨트롤에 관한 message queue 끝에 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤 크기를 변경한다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 컨트롤 위치를 명시한다.

SetRedraw -- Integer

property가 변경된 후에 컨트롤을 다시 그릴 것인지 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤내의 명시된 event를 trigger하고 event에 관한 script를 실행한다.

TypeOf -- Object

컨트롤의 type를 리턴한다.


Properties for HScrollB

Properties for HScrollBars

BringToTop -- Boolean

PowerBuilder가 컨트롤을 윈도우의 앞뒤순서에서 맨 위로 옮길 것인지 명시한다.

True | 컨트롤을 맨위로 옮긴다
False | 컨트롤을 맨위로 옮기지 않는다

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동으로 Drag mode로 둘 것인지 명시한다.

True | 컨트롤을 클릭할 때, 자동으로 Drag mode가 된다.
False | 컨트롤을 클릭할 때, 자동으로 Drag mode가 되지 않는다. 사용자는 Drag 함수를 사용하여 컨트롤을 수동으로 드래그모드에 놓아야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , 내장(stock) 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(drop 가능한 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platform에서만 제공된다.

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

MaxPosition -- Integer

scroll box가 컨트롤의 우측가장자리에 닿을 때 Position property의 값을 명시한다.

MinPosition -- Integer

scroll box가 컨트롤의 좌측가장자리에 닿을 때 Position property의 값을 명시한다.

Pointer -- String

control에 사용할 내장(stock) pointer 이름 또는 pointer를 포함하고있는 파일 이름을 명시한다.

Position -- Integer

scroll box의 MinPosition 과 MaxPosition 사이 값을 명시한다.

StdHeight -- Boolean

PowerBuilder가 컨트롤 높이를 표준높이(standard height)로 사용할 것인지 명시한다.

True | 컨트롤 높이를 표준높이로 사용한다.
False | 컨트롤 높이를 표준높이로 사용하지 않는다.

TabOrder -- Integer

윈도우 내 컨트롤의 탭 값을 명시한다(0은 사용자가 컨트롤에 탭을 사용할 수 없음을 뜻한다).

Tag -- String

컨트롤에 할당할 tag 값을 명시한다.

Visible -- Boolean

컨트롤의 보임 여부를 명시한다.

True | 컨트롤을 보이게 한다.
False | 컨트롤을 보이지 않게 한다

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위에서)

X -- Integer

X 위치를 명시한다(윈도우의 좌측면으로부터 떨어진 거리), PowerBuilder 단위

Y -- Integer

Y 위치를 명시한다(윈도우의 상단으로부터 떨어진 거리), PowerBuilder 단위


Functions for Lines

ClassName -- String

control에 할당된 이름을 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control 보이지 않게 한다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다(BeginX, BeginY, EndX, EndY property가 변경된다).

Resize -- Integer

컨트롤의 길이를 변경한다(BeginX, BeginY, EndX, EndY property의 설정내용이 변경된다)

Show -- Integer

컨트롤을 보이게 한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for Lines

BeginX -- Integer

line 시작점의 X의 위치를 명시한다(window의 좌측면으로부터의 거리), PowerBuilder 단위.

BeginY -- Integer

line 시작점의 Y의 위치를 명시한다(window의 상단으로부터의 거리), PowerBuilder 단위.

EndX -- Integer

line 끝점의 Y의 위치를 명시한다(window의 좌측면으로부터의 거리), PowerBuilder 단위.

EndY -- Integer

line 끝점의 Y의 위치를 명시한다(window의 상단으로부터의 거리), PowerBuilder 단위.

LineColor -- Long

line의 색상 수치값을 명시한다( -2 에서 16,777,215까지) 색상에 관한 정보를 얻으려면, PowerScript Reference를 참고한다.

LineStyle -- LineStyle (열거형)

line style을 명시한다.

Continuous!

Dash!

DashDot!

DashDotDot!

Dot!

Transparent!

LineThickness -- Integer

line의 굵기를 명시한다, PowerBuilder 단위. LineThickness가 한 pixel보다 크다면, LineStyle은 Continuous!다.

Tag -- String

컨트롤에 할당된 tag 값을 명시한다.

Visible -- Boolean

컨트롤을 보이도록 명시한다.

True | 컨트롤을 보이게 한다.
False | 컨트롤을 보이지 않게 한다


Events for ListBoxes

Constructor

윈도우의 Open event 직전에 발생한다.

Destructor

윈도우의 Close event 직후에 발생한다.

DoubleClicked

컨트롤을 더블-클릭할 때 발생한다(선택되고 활성화된다)

DragDrop

드래그된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

드래그된 컨트롤이 컨트롤에 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤 안으로 들어갈 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다(선택되고 활성화되기 전에).

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다.

Other

PowerBuilder event가 아닌 Controls message가 일어날 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.

SelectionChanged

컨트롤 내 item이 선택될 때 발생한다.


Functions for ListBoxes

AddItem -- Integer

listbox의 끝에 새로운 item을 추가한다. 컨트롤의 Sorted property가 True면 , item을 추가한 후에 item들을 다시 정렬한다. AddItem 함수는 컨트롤의 Item[] property를 갱신하지 않는다.

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

DeleteItem -- Integer

listbox의 index에 의하여 지시된 item을 삭제한다.

DirList -- Boolean

명시한 file pattern과 일치하는 type의 파일을 가진 listbox를 나타낸다.

DirSelect -- Boolean

컨트롤에 관한 현재 선택 상태를 리턴하고, 명시한 변수에 그 내용을 넣는다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

FindItem -- Integer

listbox에서 명시한 문자열로 시작하는 최초 item(명시된 index 다음)을 찾는다

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이게 한다.

InsertItem -- Integer

ListBox에 index에 의하여 지시된 item 이전 위치에 새로운 item을 추가한다. 컨트롤의 Sorted property가 True면, item이 추가된 이후에 item들을 다시 정렬한다.

Move -- Integer

명시한 위치로 컨트롤을 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 떨어진 pointer의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 떨어진 pointer의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 인쇄한다.

Reset -- Integer

컨트롤로부터 모든 item을 제거한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SelectedIndex -- Integer

현재 선택된 ListBox내의 item index를 리턴한다. item이 하나이상 선택되었다면, 처음 선택된 item의 index를 리턴한다.

SelectedItem -- String

처음 선택된 item의 text를 리턴한다.

SelectItem -- Integer

컨트롤내의 아이템을 검색하고 반전시킨다.

Use Syntax 1 : item의 text는 알고 있으나 위치를 모를 때 사용한다.

Use Syntax 2 : 컨트롤 리스트내의 item 위치를 알고 있거나 현재 선택을 지우려고 할 때 사용한다. SelectItem은 MultiSelect property가 True일 때 ListBox에 아무런 영향을 미치지 않는다. 대신에, list내 다른 item의 선택 상태에 영향을 주지 않으면서 다른 item을 선택하려면 SetState를 사용한다.

SetFocus -- Integer

컨트롤에 포커스를 설정한다.

SetPosition -- Integer

윈도우에서 컨트롤의 전후순서에 따른 위치를 명시한다.

SetRedraw -- Integer

각 property가 변경된 후에 자동으로 컨트롤을 다시 그릴 것인지 명시한다.

SetState -- Integer

index로 명시한 item의 상태(선택 또는 선택해제)를 설정한다. SetState는 컨트롤이 multiselect일때만 행한다(MultiSelect property가 True일때).

SetTop -- Integer

index에 의해 지시된 item을 컨트롤의 맨 위에 두기 위해서 컨트롤 내 item들을 스크롤한다.

Show -- Integer

컨트롤을 보이게 만든다.

State -- Integer

index에 의해 명시된 item이 선택(반전상태)되었다면 1을 리턴하고 선택되지 않았다면 0을 리턴한다.

Text -- String

index에 의하여 명시된 item의 text를 리턴한다.

Top -- Integer

컨트롤의 상단에 있는 현재 item의 index number를 리턴한다.

TotalItems -- Integer

컨트롤내의 item 합계를 리턴한다.

TotalSelected -- Integer

컨트롤 내에 선택된 item의 합계를 리턴한다.

TriggerEvent -- Integer

컨트롤내 명시된 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨틀롤의 type을 리턴한다.


Properties for ListBoxe

Properties for ListBoxes

Accelerator -- Integer

컨트롤에 accelerator key처럼 할당하기를 원하는 key의 ASCII 값을 명시한다.

BackColor -- Long

배경색의 수치 값을 명시한다(-2에서 16,777,215까지) 색상에 대하여 좀 더 많은 정보를 얻으려면 PowerScript Reference를 참고한다.

Border -- Boolean

컨트롤이 경계선을 갖는지 여부를 명시한다.

True | Control이 경계선(border)를 갖는다
False | Control이 경계선(border)를 갖지 않는다

BorderStyle -- BorderStyle (열거형)

컨트롤의 border style를 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

PowerBuilder가 컨트롤을 전후순서에서 맨 위로 옮길 것인지를 명시한다.

True | Control을 맨 위로 옮긴다
False | Control을 맨 위로 옮기지 않는다

DisableNoScroll -- Boolean

scrollbar의 모양을 명시한다.

True | 스크롤바가 항상 나타나지만 모든 아이템이 control내에 한번에 표시되면 스크롤바는 사용할 수 없는 상태로 나타난다.
False | scrollbar가 필요에 의해서만 나타난다 (item의 수와 listbox의 높이에 기초하여)

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동적으로 드래그모드로 둘 것인지를 명시한다.

True | 컨트롤을 클릭했을 때, 컨트롤을 자동적으로 드래그모드에 둔다.
False | 컨트롤을 클릭했을 때, 컨트롤을 자동적으로 드래그모드에 두지 않는다. 사용자는 Drag 함수 사용에 의하여 컨트롤을 수동으로 드래그모드에 놓아야 한다

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , stock 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다 (적절한 drop 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 윈도우와 Macintosh platforms에만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다(선택할 수 있다).

True | Control을 선택할 수 있다
False | Control을 선택할 수 없다

ExtendedSelect -- Boolean

사용자가 listbox내 여러 item들을 동시에 선택할 수 있는지를 명시한다.

True | item을 클릭하고 item을 선택하기 위하여 마우스를 위 또는 아래로 드래그 함으로써 여러 item을 선택할 수 있다; item을 차례로 선택하려면 CLICK/SHIFT+CLICK을 사용하고 여러 아이템을 임의로 선택하려면 CTRL+CLICK를 사용한다.
False | 사용자가 여러 item을 선택할 수 없다. MultiSelect를 사용한다.

MultiSelect property는 item에 간단하게 클릭 함으로써 listbox내에서 여러 item을 선택할 수 있도록 해준다. MultiSelect = True 이고 ExtendedSelect = True 일 때, ExtendedSelect의 상태가 먼저 적용된다.

FaceName -- String

컨트롤의 text를 나타내는 typeface의 이름을 명시한다.(예를 들어, ARIAL 또는 COURIER)

FontCharSet -- FontCharSet (enumerated)

컨트롤의 텍스트로 사용할 폰트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤의 text에 사용될 font family(type style)를 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤의 text에 사용될 font pitch를 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위).

HscrollBar -- Boolean

수평 scrollbar를 나타낼 것인지 여부를 명시한다.

True | 수평 scrollbar를 나타낸다
False | 수평 scrollbar를 나타내지 않는다

Italic -- Boolean

컨트롤의 text를 italic으로 할 것인지를 명시한다.

True | Text는 italic이다
False | Text는 italic이 아니다

Item[ ] -- String

컨트롤내의 item을 명시한다.

MultiSelect -- Boolean

ListBox에서 여러 item을 동시에 선택할 것인지 여부를 명시한다.

True | 사용자가 multiple item을 선택할 수 있다
False | 사용자가 multiple item을 선택할 수 없다

Pointer -- String

컨트롤에서 사용할 내장 포인터의 이름 또는, 포인터를 포함하고있는 파일 이름을 명시한다.

RightToLeft -- Boolean

문자들을 우측에서 좌측 순으로 나타낼 수 있도록 명시한다. 응용프로그램은 반드시 우측에서 좌측으로 나타내는 것을 지원하는 operating system하에서 PowerBuilder의 히브리어 또는 아랍어 버전으로 실행 중이어야 한다

True | 문자를 우측에서 좌측으로 나타낸다
False | 문자를 좌측에서 우측으로 나타낸다

Sorted -- Boolean

ListBox내의 item을 정렬할 것인지 명시한다.

True | Item을 정렬한다
False | Item을 정렬하지 않는다

TabOrder -- Integer

컨트롤에 tab 값을 명시한다(0은 컨트롤에 tab을 줄 수 없음을 뜻한다).

TabStop[ ] -- Integer array

ListBox내 tab 정지 위치를 명시한다. tab 정지는 문자 부분에 있고, tab 정지는 공란으로 구분된다. 첫번째 탭 정지 값만 할당하면, TabStop[1], 처음 지정한 탭 정지 문자 수와 동일하게 탭 정지가 이루어진다. 여러 개의 탭 정지를 입력하면, 명시한 위치에 탭이 정지한다. 컨트롤 내에서 16개의 탭 정지를 정의할 수 있다; 기본 설정된 배열은 TabStop[8]이고, 매 8문자 마다 탭이 정지한다.

Tag -- String

컨트롤에 할당할 tag value를 명시한다.

TextColor -- Long

text에 사용될 색상의 수치 값을 명시한다(-2에서 16,777,215까지) 색상에 관한 좀 더 많은 정보를 얻으려면 PowerScript Reference를 참고한다.

TextSize -- Integer

컨트롤내 text의 size를 명시한다(point 단위). 하위버전과의 호환을 위하여 텍스트 크기는 음수로 저장된다.예를 들어, 10- point text size는 -10으로 저장된다.

Underline -- Boolean

컨트롤내의 text에 밑줄을 그을 것인지를 명시한다.

True | Text에 밑줄을 긋는다
False | Text에 밑줄을 긋지 않는다

Visible -- Boolean

컨트롤을 보일 것인지 명시한다.

True | Control을 보이게 한다
False | Control을 보이지 않게 한다

VscrollBar -- Boolean

수직 scrollbar를 ListBox의 오른쪽에 보여줄 것인지 명시한다.

True | Vertical scrollbar를 나타낸다
False | Vertical scrollbar를 나타내지 않는다

Weight -- Integer

컨트롤내의 text 두께를 명시한다(예를 들어 400은 보통, 700을 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

X 위치(윈도우의 좌측면으로부터 떨어진 거리)를 명시한다(PowerBuilder 단위).

Y -- Integer

Y 위치(윈도우의 상단으로부터 떨어진 거리)를 명시한다(PowerBuilder 단위).


Events for ListViews

BeginDrag

왼쪽 마우스 버튼으로 드래그 작용을 시작할 때 발생한다. DragAuto property가 True로 설정되어있으면, 드래그가 자동으로 시작된다. DragAuto property가 False로 설정되어있으면, 드래그 작용은 반드시 프로그램으로 시작하여야 한다.

BeginLabelEdit

ListView 아이템 레이블을 편집하기 시작할 때 발생한다.

Return 1 | 새로운 텍스트를 받아들이지 않는다
Return 0 | 새로운 텍스트를 받아들인다

BeginRightDrag

오른쪽 마우스 버튼으로 드래그 작용을 시작할 때 발생한다. DragAuto property가 True로 설정되어있으면, 드래그가 자동으로 시작된다. DragAuto property가 False로 설정되어있으면, 드래그 작용은 반드시 프로그램으로 시작하여야 한다.

Clicked

control이 클릭 되었을 때 발생한다.

ColumnClick

칼럼을 클릭하였을 때 발생한다.

Constructor

object가 생성되었을 때, 윈도우내의 Open 이벤트 발생직전에 먼저 발생한다.

DeleteAllItems

ListView내의 모든 아이템이 삭제되었을 때 발생한다.

DeleteItem

ListView 아이템이 삭제 되었을 때 발생한다.

Destructor

object가 제거되었을 때, 윈도우내의 Close 이벤트 발생직전에 먼저 발생한다.

DoubleClicked

control이 더블-클릭 되었을 때 발생한다.

DragDrop

드래그된 control이 ListView control 상에 drop될 때 발생한다.

DragEnter

드래그된 control이 대상 control에 들어갈 때 발생한다 (표시 영역 주위에 있는 경계선에 들어가는 것도 포함한다).

DragLeave

드래그된 control이 대상 control을 떠날 때 발생한다 (탭 페이지 표시 영역으로 들어가는 것도 포함한다).

DragWithin

드래그된 control이 대상 control내에 포함될 때 발생한다 (ListView 아이템 상에 위치하는 것은 제외)

EndLabelEdit

ListView 아이템 레이블 편집을 종료하였을 때 발생한다.

Return 1 | 새로운 텍스트를 받아들이지 않는다
Return 0 | 새로운 텍스트를 받아들인다

GetFocus

control이 focus를 받기 직전 (선택된 후 활성화되기 직전)에 발생한다.

InsertItem

아이템이 삽입되었을 때 발생한다.

ItemChanged

아이템이 변경되었을 때 발생한다.

ItemChanging

아이템을 변경중일 때 발생한다.

Return 1 | 변경을 허락하지 않는다
Return 0 | 변경을 허락한다

Key

사용자가 키를 누를 때 발생한다.

LoseFocus

control이 focus를 잃을 때 (비활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트 메시지가 아닌 Windows 메시지가 발생할 때 발생한다

RightClicked

control이 오른쪽 클릭 되었을 때 발생한다.

RightDoubleClicked

control이 오른쪽 더블-클릭 되었을 때 발생한다.

Sort

두 아이템들이 비교될 때 발생한다.


Functions for ListViews

AddColumn -- Integer

ListView control report view에 칼럼을 추가한다.

AddItem -- Integer

ListView control에 아이템을 추가한다.

AddLargePicture -- Integer

large image 리스트에 icon, cursor, 또는 bitmap 등을 추가한다.

AddSmallPicture -- Integer

small image 리스트에 icon, cursor, 또는 bitmap 등을 추가한다.

AddstatePicture -- Integer

state image 리스트에 icon, cursor, 또는 bitmap 등을 추가한다.

Arrange -- Integer

ListView control large 또는 small icon view의 아이템을 배열한다.

ClassName -- String

control 이름을 리턴한다.

DeleteColumn -- Integer

ListView control에서 칼럼을 삭제한다.

DeleteColumns -- Integer

ListView control에서 모든 칼럼을 삭제한다.

DeleteItem -- Integer

ListView control에서 아이템을 삭제한다.

DeleteItems -- Integer

ListView control에서 모든 아이템을 삭제한다.

DeleteLargePicture -- Integer

large image 리스트에서 명시한 icon, cursor, 또는 bitmap 등을 삭제한다.

DeleteLargePictures -- Integer

large image 리스트에서 모든 icon, cursor, 또는 bitmap 등을 삭제한다.

DeleteSmallPicture -- Integer

small image 리스트에서 명시한 icon, cursor, 또는 bitmap 등을 삭제한다.

DeleteSmallPictures -- Integer

small image 리스트에서 모든 icon, cursor, 또는 bitmap 등을 삭제한다.

DeleteStatePicture -- Integer

state image 리스트에서 명시한 icon, cursor, 또는 bitmap 등을 삭제한다.

DeleteStatePictures -- Integer

state image 리스트에서 모든 icon, cursor, 또는 bitmap 등을 삭제한다.

Drag -- Integer

ListView 아이템의 드래깅을 시작하거나 종료한다.

EditLabel -- Integer

명시한 ListView 아이템 레이블의 편집을 시작한다.

FindItem -- Long

명시한 탐색 조건 만족하는 아이템을 찾는다.

GetColumn -- Integer

Syntax 2: ListView control report view의 명시한 칼럼에관한 property를 리턴한다.

GetItem -- Integer

명시한 아이템에 관한 정보를 구한다.

GetOrigin -- Integer

ListView 아이템의 좌측-상단 X 와 Y 좌표를 찾는다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

명시한 ListView 아이템을 숨긴다.

InsertColumn -- Integer

ListView control report view에 칼럼을 삽입한다.

InsertItem -- Long

ListView control에 아이템을 삽입한다.

Move -- Integer

control이나 object를 명시한 위치로 이동한다.

PointerX -- Integer

object의 좌측면으로부터 포인터 위치까지의 거리를 구한다.

PointerY -- Integer

object의 상단으로부터 포인터 위치까지의 거리를 구한다.

PostEvent -- Boolean

object의 이벤트 큐 마지막에 이벤트를 추가한다.

Print -- Integer

print job에 object 또는 텍스트를 포함시킨다. 스크린에 보이는 부분만 인쇄된다.

Resize -- Integer

control 크기를 명시한 차원으로 재조정한다.

SelectedIndex -- Integer

ListView control내에 선택된 아이템 번호를 리턴한다.

SetColumn -- Integer

Syntax 2: ListView control report view내의 특정 칼럼에 대한 property를 설정한다.

SetFocus -- Integer

명시한 object 또는 control에 focus를 설정한다.

SetItem -- Integer

명시한 ListView 아이템에 관한 정보를 설정한다.

SetOverlayPicture -- Integer

그림 인덱스를 중첩 그림 인덱스에 대응시킨다. 4개의 중첩 그림 인덱스만 사용 가능하다.

SetPosition -- Integer

윈도우내에서 ListView control의 위치를 설정한다.

SetRedraw -- Integer

property가 변경되면 object를 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

object 또는 control이 숨겨져 있으면, 나타나게 한다. object가 이미 나타나 있으면, 제일 위쪽으로 가져 온다.

Sort -- Integer

ListView 아이템들을 정렬한다.

TotalColumns -- Integer

ListView control report view내의 칼럼 수를 리턴한다.

TotalItems -- Integer

ListView control내의 아이템 수를 리턴한다.

TotalSelected -- Integer

ListView control내에 선택된 아이템 번호를 리턴한다.

TriggerEvent -- Integer

명시한 이벤트를 트리거하고 그 이벤트에관한 스크립트를 실행한다.

TypeOf -- Object

control의 타입을 리턴한다.


Properties for ListView

Properties for ListViews

Accelerator -- Integer

control에 사용할 가속키(accelerator key)의 ASCII 값을 명시한다.

AutoArrange -- Boolean

large와 small 아이콘 뷰에서 자동으로 아이콘을 정렬할 것인지 명시한다.

BackColor -- Long

배경색의 수치 값을 명시한다 : -2 부터 16,777,215

Border -- Boolean

control이 경계선을 갖는지 명시한다.

True | control이 경계선을 갖는다
False | 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 맨 위로 이동 시킬 것인지 여부를 명시한다.

True | control을 맨 위에 나타낸다
False | control을 이동 시키지 않는다

ButtonHeader -- Boolean

report view의 칼럼 타이틀을 버튼처럼 나타낼 것인지 명시한다.

DeleteItems -- Boolean

DELETE 문장을 사용하여 ListView control의 아이템을 삭제할 수 있도록 할 것인지 명시한다.

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가도록 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | 자동으로 Drag 모드에 들어가지 않는다. Drag 함수를 이용하여 control이 Drag 모드가 되도록 하여야 한다

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , stock 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(적절한 drop 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platforms에서만 제공된다.

EditLabels -- Boolean

선택된 아이템에 클릭하여 아이템 레이블을 편집할 수 있도록 할 것인지 명시한다. 반드시 아이템을 먼저 선택한 후, 클릭하여야 한다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 클릭할 수 있다.
False | 컨트롤을 클릭할 수 없다.

ExtendedSelect -- Boolean

리스트박스에서 한 번에 여러 아이템선택이 가능하게 할 것인지 명시한다.

True | 아이템에 클릭한 후 위 또는 아래로 드래깅 함으로써 여러 아이템을 선택할 수 있다; 연속적인 아이템 그룹을 선택하려면 CLICK/SHIFT+CLICK을 사용하고, 여러 아이템을 선택하려면 CTRL+CLICK을 사용한다.
False | 여러 아이템을 선택할 수 없다.

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FixedLocations -- Boolean

control내의 새로운 위치로 아이템을 드래그하지 못하도록 할 것인지 명시한다.

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

HideSelection -- Boolean

control이 focus를 갖지 않을 때 선택된 텍스트를 반전 시킬 것인지 명시한다.

True | 반전된 상태를 유지하지 않는다
False | 텍스트의 반전된 상태를 유지한다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Item[ ] -- String

control내의 아이템들을 명시한다. 초기화된 이후에는 갱신할 수 없다.

ItemPictureIndex[ ] -- Integer

아이템 property 배열내의 각 아이템에관한 그림 인덱스를 명시한다. 그림 인덱스는 icon, bitmap, 또는 cursor등과 연관되어있다. 초기화된 이후에는 갱신할 수 없다.

LabelWrap -- Boolean

large icon 과 small icon view의 ListView 아이템 아래에 긴 레이블의 자동 줄바꿈이 일어나도록 할 것인지 명시한다.

True | 레이블의 자동 줄바꿈이 일어난다
False | 자동 줄바꿈이 일어나지 않는다

LargePictureHeight -- Integer

large icon view에 사용된 그림의 높이를 PowerBuilder 단위로 명시한다. 이 값은 그림 인덱스 리스트에 large picture가 추가되기 전에만 설정 가능하다. large picture 높이가 0이면, large picture 인덱스에 처음 추가된 그림 높이를 사용한다.

LargePictureMaskColor -- Long

large icon view에 사용된 투명 색상을 명시한다. 이 색상은 초기화 그림이 추가될 때 또는 AddLargePicture 함수와 함께 사용된다.

LargePictureName[ ] -- String

large icon view에 사용된 그림 이름을 명시한다. 그림은 사용자가 명시하거나 PowerBuilder 라이브러리에 내장된 icon, cursor, 또는 bitmap 등이다. 초기화 이후에는 갱신할 수 없다.

LargePictureWidth -- Integer

large icon view에 사용된 그림 폭을 PowerBuilder 단위로 명시한다. 이 값은 large picture 인덱스 리스트에 large picture가 추가되기 전에만 설정할 수 있다. large picture 폭이 0이면, large picture 인덱스에 처음 추가된 그림 폭을 사용한다.

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

Scrolling -- Boolean

control내에 모든 아이템이 보이지 않을 경우 수직 스크롤이 가능하게 할 것인지 명시한다.

True | 스크롤이 가능하다
False | 스크롤이 불가능하다

ShowHeader -- Boolean

report view에 칼럼 타이틀을 나타낼 것인지 명시한다.

True | 타이틀을 나타낸다
False | 타이틀을 나타내지 않는다

SmallPictureHeight -- Integer

small icon view에 사용된 그림의 높이를 PowerBuilder 단위로 명시한다. 이 값은 그림 인덱스 리스트에 small picture가 추가되기 전에만 설정 가능하다. small picture 높이가 0이면, small picture 인덱스에 처음 추가된 그림 높이를 사용한다.

SmallPictureMaskColor -- Long

small icon view에 사용된 투명 색상을 명시한다. 이 색상은 초기화 그림이 추가될 때 또는 AddSmallPicture 함수와 함께 사용된다.

SmallPictureName[ ] -- String

small icon view에 사용된 그림 이름을 명시한다. 그림은 사용자가 명시하거나 PowerBuilder 라이브러리에 내장된 icon, cursor, 또는 bitmap 등이다. 초기화 이후에는 갱신할 수 없다.

SmallPictureWidth -- Integer

small icon view에 사용된 그림 폭을 PowerBuilder 단위로 명시한다. 이 값은 small picture 인덱스 리스트에 small picture가 추가되기 전에만 설정할 수 있다. small picture 폭이 0이면, small picture 인덱스에 처음 추가된 그림 폭을 사용한다.

SortType -- grSortType

아이템 레이블을 알파벳순으로 정렬할 것인지 명시한다.

Ascending!

Descending!

UserDefined!

Unsorted!

StatePictureHeight -- Integer

state picture의 높이를 PowerBuilder 단위로 명시한다. 이 값은 state picture 인덱스 리스트에 state picture가 추가되기 전에만 설정 가능하다. state picture 높이가 0이면, state picture 인덱스에 처음 추가된 그림 높이를 사용한다.

StatePictureMaskColor -- Long

state picture에 사용된 투명 색상을 명시한다. 이 색상은 초기화 그림이 추가될 때 또는 AddStatePicture 함수와 함께 사용된다.

StatePictureName[ ] -- String

state picture로 사용된 그림 이름을 명시한다. 그림은 사용자가 명시하거나 PowerBuilder 라이브러리에 내장된 icon, cursor, 또는 bitmap 등이다. 초기화 이후에는 갱신할 수 없다.

StatePictureWidth -- Integer

state picture의 폭을 PowerBuilder 단위로 명시한다. 이 값은 state picture 인덱스 리스트에 state picture가 추가되기 전에만 설정할 수 있다. state picture 폭이 0이면, state picture 인덱스에 처음 추가된 그림 폭을 사용한다.

TabOrder -- Integer

윈도우내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

Tag -- String

control에 할당된 태그 값을 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

View -- ListViewView(열거형)

ListBox의 layout을 명시한다.

ListViewLargeIcon! | 아이템이 왼쪽에서 오른쪽으로 배열된다. large picture를 사용한다
ListViewSmallIcon! | 아이템이 오른쪽에서 왼쪽으로 배열된다. small picture를 사용한다
ListViewReport! | 위에서 아래쪽으로 배열된다. small picture를 사용한다

추가적인 칼럼 정보는 각 아이템과 연관 시킬 수 있다. 적어도 한 칼럼은 반드시 이 view안의 view 데이터로 생성되어 있어야 한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for MultiLineEdi

Events for MultiLineEdit controls

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 coontrol내에 들어와있을 때 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

LoseFocus

control이 focus를 잃을때(비 활성화 될 때) 발생한다.

Modified

control 텍스트가 변경된 후 사용자가 ENTER 또는 TAB을 누르거나 다른 control로 focus가 변경될 때 발생한다.

Other

PowerBuilder 이벤트가아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.


Functions for MultiLine

Functions for MultiLineEdit controls

CanUndo -- Boolean

Undo 함수를 control의 마지막 편집을 취소(undo)하는데 사용할 수 있으면 True를 리턴하고, 사용할 수 없으면 False를 리턴한다.

ClassName -- String

control에 할당된 이름을 리턴한다.

Clear -- Integer

control에 선택되어있는 텍스트의 선택을 해제한다 (클립보드에 위치시키지 않는다).

Copy -- Integer

control에 선택되어있는 텍스트를 복사하여 클립보드에 위치시킨다(삭제하지는 않는다).

Cut -- Integer

control에 선택되어있는 텍스트를 잘라내어 클립보드에 위치시킨다(삭제한다).

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

LineCount -- Integer

MultiLineEdit내의 라인 수를 리턴한다.

LineLength -- Integer

삽입 포인트가 위치한 라인의 길이를 리턴한다.

Move -- Integer

control을 명시한 위치로 이동한다.

Paste -- Integer

클립보드의 내용을 control의 삽입포인트에 삽입하고 선택된 텍스트의 내용을 대체한다.

PointerX -- Integer

control의 좌측면으로부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

Position -- Integer

control내의 삽입 포인트 위치를 리턴한다.

PostEvent -- Boolean

control의 메시지 큐(queue) 끝에 이벤트를 추가한다.

Print -- Integer

control을 인쇄한다.

ReplaceText -- Integer

현재 선택되어있는 텍스트를 명시한 문자열로 대체한다. 텍스트가 선택되어있지 않으면, 현재 삽입 포인트에 명시한 텍스트가 삽입된다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

Scroll -- Integer

명시한 라인 번호에 따라 control의 위 또는 아래쪽으로 이동한다.

SelectedLength -- Integer

control내에서 선택된 텍스트의 길이를 리턴한다.

SelectedLine -- Integer

삽입 포인트 위치의 라인 번호를 리턴한다.

SelectedStart -- Integer

control내에 선택된 텍스트의 시작 위치를 리턴한다.

SelectedText -- String

control내에 선택되어있는 텍스트를 문자열로 리턴한다.

SelectText -- Integer

명시한 시작위치에서 명시한 길이만큼 control내의 텍스트를 선택한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

각각의 property가 변경된 이후 control을 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

control을 보이게 한다.

TextLine -- String

삽입 포인트가 위치한 라인의 전체 텍스트를 리턴한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.

Undo -- Integer

control내에서 이전에 편집한 내용을 취소한다.


Properties for MultiLin

Properties for MultiLineEdit controls

Accelerator -- Integer

control에 관한 가속 키 (accelerator key)로 할당할 키의 ASCII값을 명시한다.

Alignment -- Alignment (열거형)

control내의 텍스트에 관한 정렬방법을 명시한다.

Center!

Justify!

Left!

Right!

AutoHScroll -- Boolean

데이터가 입력되거나 삭제되었을 때 자동으로 수평 스크롤 할것인지 명시한다.

True | 자동으로 수평 스크롤한다
False | 자동으로 수평 스크롤하지 않는다

AutoVScroll -- Boolean

데이터가 입력되거나 삭제되었을 때 자동으로 수직 스크롤 할것인지 명시한다.

True | 자동으로 수직 스크롤한다
False | 자동으로 수직 스크롤하지 않고 처음위치로 되돌아온다

BackColor -- Long

배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

control의 경계선 유무를 명시한다.

True | control이 경계선을 갖는다
False | control이 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control을 제일 위쪽으로 이동시킨다
False | control을 제일 위쪽으로 이동시키지 않는다

DisplayOnly -- Boolean

control내의 텍스트가 표시-전용(display-only)이고 사용자가 변경할 수 없는지 명시한다.

True | 텍스트를 사용자가 변경할 수 없다
False | 텍스트는 사용자에 의하여 변경될 수 있다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platform에서만 지원된다

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

HideSelection -- Boolean

conrol이 focus를 갖지 않을 때 선택된 텍스트의 선택상태(반전)를 유지시킬 것인지 명시한다.

True | 텍스트는 반전상태를 유지하지 않는다
False | 텍스트는 반전상태를 유지한다

HscrollBar -- Boolean

수평 스크롤바를 나타낼 것인지 명시한다.

True | 수평 스크롤바를 나타낸다
False | 수평 스크롤바를 나타내지 않는다

IgnoreDefaultButton -- Boolean

ENTER 키를 눌렀을 때 트리거되는 윈도우 Default command 버튼의 Clicked 이벤트를 무시할 것인지 명시한다.

True | Clicked 이벤트를 트리거하지 않고 MultiLineEdit control에 새로운 라인을 추가한다
False | (기본설정 값) Clicked 이벤트를 트리거 하고 MultiLineEdit control에 새로운 라인을 추가하지 않는다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Limit -- Integer

control에 입력할 수 있는 최대 문자 수 (0 부터 32,767)를 명시한다 (0은 제한 없음을 의미한다).

Pointer -- String

control에 관하여 사용할 내장 포인터 이름 또는 포인터를 포함하고있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

TabStop[ ] -- Integer 배열

PictureListBox내의 탭 정지 위치를 명시한다. 탭 정지 위치는 문자 위치 내에 있으며, 탭 정지 구분문자는 공란이다. 첫 번째 탭 정지위치만 할당하면, TabStop[1], 탭 정지 위치들은 첫 번째 탭 정지로 명시된 문자 수 만큼의 간격을 갖는다. 하나 이상의 탭 정지가 입력되면, 명시한 위치에서 탭이 정지된다. control내에 16 탭 정지를 정의할 수 있다; 기본 설정된 배열은 TabStop[8]이며, 각각 8문자 간격으로 탭이 정지된다.

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

control에 표시되는 텍스트를 명시한다.

TextCase -- TextCase (열거형)

control에 입력된 문자의 대소문자 구분을 명시한다.

AnyCase!

Lower!

Upper!

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

VscrollBar -- Boolean

control 오른쪽에 수직 스크롤바를 표시할 것인지 명시한다.

True | 수직 스크롤바를 표시한다
False | 수직 스크롤바를 표시하지 않는다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for OLE controls

Clicked

컨트롤을 클릭할 때(선택 또는 선택해제 될 때) 발생한다.

Close

표시된 윈도우를 제거하기 전에 (닫기 전에) 발생한다.

Constructor

윈도우의 Open 이벤트가 발생하기 직전에 발생한다.

DataChange

서버 응용프로그램이 변경된 데이터를 가진 컨트롤을 통보하였을 때 발생한다.

Destructor

윈도우의 Close 이벤트가 발생한 직후에 발생한다.

DoubleClicked

컨트롤을 더블-클릭할 때 발생한다.

DragDrop

드래그된 컨트롤이 컨트롤 위에 darop될 때 발생한다.

DragEnter

드래그된 컨트롤이 컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤 안으로 겹칠 때 발생한다.

Error

OLE automation동안 에러가 일어날 때 발생한다.

ExternalException

명령을 실행하는 동안 OLE 서버가 예외를 생성하였을 때 (property의 구함 및 설정, 함수 호출) OLE automation동안 발생한다.

GetFocus

컨트롤이 포커스를 받기 직전에 발생한다(활성화되기 직전).

LoseFocus

컨트롤이 포커스를 잃어버릴 때 발생한다(비활성화 될때).

Other

PowerBuilder event가 아닌 오퍼레이팅 환경의 메시지가 일어날 때 발생한다.

PropertyChanged

이 메시지를 control에 보내는 것을 OLE Server가 지원할 때 발생한다.

PropertyRequestEdit

이 메시지를 control에 보내는 것을 OLE Server가 지원할 때 발생한다.

RButtonDown

컨트롤내에서 오른쪽 마우스 버튼을 클릭할 때 발생한다.

Rename

서버 응용프로그램이 이름이 변경된 object를 가진 컨트롤을 통보하였을 때 발생한다.

Save

서버 응용프로그램이 저장된 데이터를 가진 control을 통보할 때 발생한다.

ViewChange

서버 응용프로그램이 사용자가 변경한 것을 보여주기 위한 control을 통보할 때 발생한다.


Functions for OLE contr

Functions for OLE controls

Activate -- Integer

서버의 다른 장소나 offsite의 object를 활성화한다.

ClassName -- String

컨트롤에 할당한 이름을 리턴한다.

Clear -- Integer

OLE object를 해제한 후 저장하지 않고서 참조를 삭제한다.

Copy -- Integer

컨트롤의 내용을 클립보드로 복사한다.

Cut -- Integer

컨트롤의 내용을 클립보드로 복사하고 컨트롤을 지운다.

DoVerb -- Integer

명시된 verb를 실행한다.

Drag -- Integer

object를 drag 모드로 놓는다.

GetData -- Integer

Uniform Data Transfer를 제공하는 OLE 서버로부터 caller-supplied 내의 데이터를 리턴한다.

GetNativePointer -- Integer

OLE object하에 있는 포인터를 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이게 만든다.

InsertClass -- Integer

clasee ID로부터 생성된 새로운 object를 삽입한다.

InsertFile -- Integer

source가 template file에 있는 새로운 object를 삽입한다.

InsertObject -- Integer

사용자가 standard dialog box를 나타내고 선택한 것을 기초로 하여 삽입한다.

LinkTo -- Integer

file과 선택적으로 file내의 item을 link한다.

Move -- Integer

명시한 위치로 컨트롤을 옮긴다.

Open -- Integer

문서 파일을 open하고 컨트롤 안에 object를 불러들이거나 전에 오픈된 storage내에 substorage를 open하고 object를 불러들인다.

Paste -- Integer

클립보드의 내용을 컨트롤 내에 붙인다.

PasteLink -- Integer

컨트롤내 클립보드의 내용에 link를 붙인다.

PasteSpecial -- Integer

사용자가 Paste 또는 PasteLink를 선택하는 것을 허락하는 dialog box를 함께 나타낸다.

PointerX -- Integer

컨트롤의 좌측면으로부터 포인터의 떨어진 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 떨어진 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 메시지 큐의 끝에 이벤트를 추가한다.

Print -- Integer

컨트롤을 출력한다.

ReleaseNativePointer -- Integer

OLE object하에 있는 포인터를 해제한다.

Resize -- Integer

컨트롤의 크기를 변경한다.

Save -- Integer

기억장소로부터 전에 불러들인 object를 저장한다.

SaveAs -- Integer

요청된 기억장소내의 member로써 포함된 object를 저장하거나 요청된 기억장소 파일에 포함된 object를 저장한다.

SelectObject -- Integer

컨트롤의 내부 상태를 설정한다(update menu).

SetData -- Integer

caller-supplied 형식내 data를 Uniform Data Transfer를 제공하는 OLE 서버로 보낸다.

SetFocus -- Integer

컨트롤에 포커스를 설정한다.

SetPosition -- Integer

윈도우의 순서인 컨트롤의 위치를 명시한다.

SetRedraw -- Integer

property들이 각각 변경한 후에 컨트롤을 다시 그릴 것인지를 자동으로 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤에 명시한 이벤트를 trigger하고 이벤트의 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type를 리턴한다.

UpdateLinksDialog -- Integer

file이 옮겨졌다면 update link information를 위하여 OLE dialog를 띄운다


Properties for OLE cont

Properties for OLE controls

Activation -- omActivation

OLE object를 활성화하는 방법을 명시한다.

BackColor -- Long

배경색의 수치 값을 명시한다(-2에서 16,777,215까지)

color에 대해 좀 더 많은 정보를 얻으려면 PowerScript Reference를 참조한다.

Border -- Boolean

컨트롤이 border를 갖는지 명시한다.

True | 컨트롤이 border를 갖는다
False | 컨트롤이 border를 갖지 않는다.

BorderStyle -- BorderStyle (열거형)

컨트롤의 border style를 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

PowerBuilder가 컨트롤을 제일위로 옮길 것인지 명시한다.

True | 컨트롤을 제일위로 옮긴다.
False | 컨트롤을 제일위로 옮기지 않는다.

ClassLongName -- String(읽기전용)

컨트롤내 OLE object와 연관된 서버 응용프로그램에 관한 long name이다.

ClassShortName -- String(읽기전용)

컨트롤내 OLE object와 연관된 서버 응용프로그램에 관한 short name이다.

ContentsAllowed -- omContentsAllowed

컨트롤내 OLE object를 삽입, link 할 것인지 또는 Insert 함수 실행 시 호출되어 삽입될 때 허락하는 다른 method를 명시한다.

DisplayName -- String

컨트롤이 활성화되었을 때, 사용자의 OLE control에 관한 User-readable 이름이다. 이 이름은 OLE 대화상자와 object 이름을 보여주는 윈도우에 표신된다. 값을 명시하지 않으면, 컨트롤 이름(예를들면 ole_1)이 DisplayName으로 사용된다.

DisplayType -- omDisplayType

컨트롤내에 OLE object를 나타낼 방법을 명시한다. 컨트롤은 실제 내용이나 object에 나타내기 위한 아이콘으로 나타낼 수 있다.

DocFileName -- String(읽기전용)

file을 포함하고 있는 object의 이름이다. object가 disk file에 저장되지 않는다면, property의 값은 빈문자열("")이다.

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | 컨트롤을 클릭할 때, 컨트롤은 자동으로 Drag 모드가 된다.
False | 컨트롤을 클릭할 때, 컨트롤은 자동으로 drag 모드가 되지 않는다. drag 함수를 사용하여 직접 drag 모드가 되도록 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 지원된다

Enabled -- Boolean

컨트롤을 사용 가능하게 할 것인지(선택할 수 있게 할 것인지) 명시한다.

True | Control을 선택할 수 있다.
False | Control을 선택할 수 없다.

FocusRectangle -- Boolean

focus를 가졌을 때 control 프레임으로 점 사각형 (focus 사각형)을 나타낼 것인지 명시한다.

True | focus를 가졌을 때 프레임을 나타낸다
False | 프레임을 나타내지 않는다

Height -- Integer

control의 높이를 PowerBuilder 단위로 명시한다.

IsDragTarget -- Boolean

OLE object가 컨트롤위에 drop될 수 있는지 명시한다.

True | OLE object를 컨트롤 위에 drop할 수 있다.
False | OLE object를 컨트롤 위에 drop할 수 없다.

LinkItem -- String(읽기전용)

object가 연결(link)된 item의 전체 link 이름. 예를 들어 object가 C:.XLS!A1:B2에 연결되어 있다면, LinkItem은 C:.XLS!A1:B2를 포함할 것이다.

LinkUpdateOptions -- omLinkUpdate-Options

컨트롤내 연결된 object를 어떻게 update할 것인지 명시한다. 자동일 경우, link는 object가 오픈될 때 와 서버 응용프로그램내에서 object가 변할 때 마다 update 된다. 수동일 경우, link는 update되지 않을 것이다.

Object -- omObject

스크립트내에서 서버 명령을 control과 함께 linked 또는 embedded된 OLE object에 적용하기위하여 사용한다.

ObjectData -- Blob

object를 삽입 되었을때, object 자신은 ObjectData property내의 blob으로써 저장된다. object가 link되었다면, property는 link 정보와 저장하고 이미지를 가져온다 (나타내기위하여).

ParentStorage -- omStorage(읽기전용)

parent storage를 명시한다.

Pointer -- String

컨트롤에 사용할 내장(stock) pointer 또는 pointer를 포함하고 있는 파일 이름을 명시한다.

Resizable -- Boolean

컨트롤의 크기를 변경하게 할 것인지 명시한다.

True | 컨트롤의 크기를 변경할 수 있다.
False | 컨트롤의 크기를 변경할 수 없다.

TabOrder -- Integer

윈도우내 컨트롤의 tag 값을 명시한다.(0은 컨트롤에 tab을 줄 수 없음을 뜻한다).

Tag -- String

컨트롤에 할당된 tag 값을 명시한다.

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | 컨트롤을 보이게 한다.
False | 컨트롤을 보이지 않게 한다.

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

X의 위치를 명시한다(윈도우의 좌측면으로부터 떨어진 거리), PowerBuilder 단위

Y -- Integer

Y의 위치를 명시한다(윈도우의 상단으로부터 떨어진 거리), PowerBuilder 단위


Events for OLE custom c

Events for OLE custom controls

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

DataChange

서버 응용프로그램이 데이터가 변경된 control을 통보하였을 때 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DoubleClicked

control이 더블-클릭 되었을 때 (선택된 후 활성화 되었을 때) 발생한다.

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

Error

OLE automation동안 에러가 발생하였을 때 발생한다.

ExternalException

OLE 서버가 명령을 실행하는 동안 예외를 생성하였을 때 (property값의 구함 및 설정, 함수 호출) OLE automation동안 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다 (선택된 후 활성화되기 직전).

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다 (비 활성화될 때).

Other

PowerBuilder event가 아닌 오퍼레이팅 환경의 message가 일어날 때 발생한다.

PropertyChanged

property값이 변경된 것을 통보하는 메시지를 보내는 것을 OLE Server가 지원할 때 발생한다.

PropertyRequestEdit

변경된 property값을 메시지로 보내는 것을 OLE Server가 지원할 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for OLE custo

Functions for OLE custom controls

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetData -- Integer

Uniform Data Transfer를 지원하는 OLE server로부터 사용자가 명시한 형식의 데이터를 리턴한다.

GetNativePointer -- Integer

OLE object하에 있는 포인터를 리턴한다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer까지의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer까지의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

ReleaseNativePointer -- Integer

OLE object에 있는 포인터를 제거한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetAutomationLocale -- Integer

automation 프로그래밍에 관한 언어를 설정한다.

SetData -- Integer

호출자-지원 형식의 데이터를 Uniform Data Transfer를 지원하는 OLE 서버로 보낸다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

컨트롤 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤내에 명시한 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for OLE cust

Properties for OLE custom controls

Alignment -- Alignment (열거형)

control내의 텍스트 정렬을 명시한다.

Left!

Center!

Right!

BackColor -- Long

배경색 값을 명시한다 : -2 부터 16,777,215

Border -- Boolean

control이 경계선을 갖는지 명시한다.

True | 경계선을 갖는다
False | 경계선을 갖지 않는다

BorderStyle -- BorderStyle(열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우내의 제일 위쪽으로 옮길 것인지 명시한다.

True | control을 제일 위쪽으로 옮긴다
False | 제일 위쪽으로 옮기지 않는다

Cancel -- Boolean

컨트롤이 Cancel button처럼 작용할 것인지 명시한다.(사용자가 ESC 키를 누른다면 Cancel button은 Clicked event를 받는다)

True | Cancel button처럼 작용한다.
False | Cancel button처럼 작용하지 않는다.

ClassLongName -- String

control (읽기-전용)내에 OLE object와 연관된 서버 응용프로그램에 관한 long name을 명시한다.

ClassShortName -- String

control (읽기-전용)내에 OLE object와 연관된 서버 응용프로그램에 관한 short name을 명시한다.

DisplayName -- String

사용자의 OLE control에 관한 user-readable 이름을 명시한다. 이 이름은 OLE 대화 상자에 와 object 이름을 보여주는 윈도우에 표시된다. 이 값을 명시하지 않으면 control 이름 (예를들어 ole_1)이 DisplayName으로 사용된다.

Default -- Boolean

컨트롤을 기본설정 PictureButton으로 할 것인지 명시한다. 기본 설정 컨트롤은 두꺼운 경계선(thick border)를 갖고있으며 컨트롤을 선택하지 않고 ENTER 키를 누르면 Clicked event를 받는다.

True | 기본설정 PictureButton으로 작용한다.
False | 기본설정 PictureButton으로 작용하지 않는다

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을 때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 지원된다

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FocusRectangle -- Boolean

focus를 가졌을 때 control 프레임으로 점 사각형 (focus 사각형)을 나타낼 것인지 명시한다.

True | focus를 가졌을 때 프레임을 나타낸다
False | 프레임을 나타내지 않는다

FontCharSet -- FontCharSet(열거형)

컨트롤내의 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안의 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤내의 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 폰트피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

IsDragTarget -- Boolean

control상에 데이터를 drop 할 수 있는지 명시한다.

True | control에 데이터를 drop할 수 있다
False | control에 데이터를 drop할 수 없다

Italic -- Boolean

컨트롤 안에 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)를 이탤릭체로 할 것인지 명시한다.

True | 텍스트가 이탤릭체다.
False | 이탤릭체가 아니다.

Object -- omObject

서버 데이터에 연결한 control의 링크 정보를 명시한다.

Pointer -- String

컨트롤에 사용할 내장 pointer의 이름 또는 pointer를 포함한 파일 이름을 명시한다.

TabOrder -- Integer

윈도우내에서 컨트롤의 tab 값을 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

컨트롤에 할당된 tag 값을 명시한다

TextColor -- Long

텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 크기를 point로 명시한다. 이전 버전과의 호환을 위하여, 음수로 저장된다; 예를들어, 10-point 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

컨트롤내의 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)에 밑줄을 그을 것인지 명시한다.

True | Text에 밑줄을 긋는다.
False | Text에 밑줄을 긋지 않는다.

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

Weight -- Integer

컨트롤내의 텍스트로 사용하기 원하는 OCX(OCX가 이러한 property로 사용하기 위하여 디자인 되었을 때)의 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우의 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Functions for Ovals

ClassName -- String

control에 할당된 이름을 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

Show -- Integer

control을 보이게 한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for Ovals

FillColor -- Long

control을 채우는데 사용할 색상의 값을 명시한다: -2 에서 16,777,215

FillPattern -- FillPattern (열거형)

control의 채움 패턴을 명시한다

BDiagonal! : 좌측상단에서 우측하단으로 그려진 줄

Diamond!

FDiagonal! : 좌측하단에서 우측상단으로 그려진 줄

Horizontal!

Solid!

Square!

Vertical!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

LineColor -- Long

라인 색상값을 명시한다: -2 에서 16,777,215.

LineStyle -- LineStyle (열거형)

스타일을 명시한다.

Continuous!

Dash!

DashDot!

DashDotDot!

Dot!

Transparent!

LineThickness -- Integer

control을 그리는데 사용될 라인의 두께를 PowerBuilder 단위로 명시한다. LineThickness가 1 픽셀(pixel)이상이면 (4 PowerBuilder 단위), LineStyle은 Continuous!이다.

Tag -- String

control에 할당된 태그 값을 명시한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for PictureButto

Events for PictureButtons

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DragDrop

drag된 컨트롤이 컨트롤위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다 (선택된 후 활성화되기 직전).

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다 (비 활성화될 때).

Other

PowerBuilder event가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for PictureBu

Functions for PictureButtons

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer까지의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer까지의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPosition -- Integer

윈도우내에서의 컨트롤 위치를 명시한다.

SetRedraw -- Integer

컨트롤 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤내에 명시한 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for PictureB

Properties for PictureButtons

HtextAlign -- Alignment (열거형)

control내의 텍스트를 어떻게 정렬할 것인지 명시한다.

Center!

Justify!

Left!

Right!

BringToTop -- Boolean

PowerBuilder가 컨트롤을 윈도우의 제일위로 옮길 것인지 명시한다.

True | 제일위로 옮긴다.
False | 제일위로 옮기지 않는다.

Cancel -- Boolean

컨트롤이 Cancel button처럼 작용할 것인지 명시한다.(사용자가 ESC 키를 누른다면 Cancel button은 Clicked event를 받는다)

True | Cancel button처럼 작용한다.
False | Cancel button처럼 작용하지 않는다.

Default -- Boolean

컨트롤을 기본설정 PictureButton으로 할 것인지 명시한다. 기본 설정 컨트롤은 두꺼운 경계선(thick border)를 갖고있으며 컨트롤을 선택하지 않고 ENTER 키를 누르면 Clicked event를 받는다.

True | 기본설정 PictureButton으로 작용한다.
False | 기본설정 PictureButton으로 작용하지 않는다

DisabledName -- String

control이 사용 불가능한 상태로 되었을 때 표시할 그림(비트맵 이미지)의 이름을 명시한다. 확장자를 지정하지 않으면, PowerBuilder가 BMP, RLE, 또는 WMF 등의 확장자를 추가한다.

Platform note

WMF 파일은 Windows platform에서만 지원한다

DragAuto -- Boolean

컨트롤이 자동으로 Drag mode로 들어가게 할 것인지 명시한다.

True | 컨트롤을 클릭할 때, 자동으로 Drag mode가 된다
False | 컨트롤을 클릭할 때, 자동으로 Drag mode가 되지 않는다. 사용자는 반드시 Drag 함수를 사용하여 컨트롤이 Drag mode가 되도록 하여야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 표시할 내장 아이콘 또는 아이콘을 포함하고 있는 파일 이름(.ICO 파일)을 명시한다. 기본적인 아이콘은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(적절한 drop 영역). 컨트롤을 drop 시킬 수 없는 영역 위에 있으면, No-Drop 아이콘을 보여준다.

Platform note

ICO 파일들은 Windows와 Macintosh platforms에만 제공된다.

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 사용할 수 있다.
False | 컨트롤을 사용할 수 없다.

FaceName -- String

컨트롤의 텍스트 서체명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤내의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안의 텍스트에 사용될 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤내의 텍스트에 사용될 폰트피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

Italic -- Boolean

컨트롤 안에 있는 텍스트를 이탤릭체로 할 것인지 명시한다.

True | 텍스트가 이탤릭체다.
False | 이탤릭체가 아니다.

OriginalSize -- Boolean

비트맵 이미지 (그림)의 width와 height property를 원래 값으로 설정할 것인지 명시한다.

True | 폭과 높이를 원래 값으로 설정한다
False | 현재 폭과 높이가 원래 값으로 변경되지 않는다

현재 폭과 높이를 무시하려면, Window painter에서 OriginalSize를 True로 설정한다. 이 property는 스크립트에서 변경할 수 없다.

PictureName -- String

그림을 포함하고있는 파일 이름을 명시한다. 파일 확장자 BMP 또는 RLE가 요구된다.

Pointer -- String

컨트롤에 사용할 내장 pointer의 이름 또는 pointer를 포함한 파일 이름을 명시한다.

TabOrder -- Integer

윈도우 내에서 컨트롤의 tab 값을 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

컨트롤에 할당된 tag 값을 명시한다

Text -- String

컨트롤에 나타낼 text를 명시한다.

TextSize -- Integer

텍스트 크기를 point로 명시한다. 이전 버전과의 호환을 위하여, 음수로 저장된다; 예를들어, 10-point 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

컨트롤내의 text에 밑줄을 그을 것인지 명시한다.

True | Text에 밑줄을 긋는다.
False | Text에 밑줄을 긋지 않는다.

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

VtextAlign -- VTextAlign (열거형)

control내의 텍스트를 어떻게 정렬할 것인지 명시한다.

Bottom!

MultiLine!

Top!

VCenter!

MultiLine!을 제외한 모든 값은 텍스트가 한 줄이라고 가정한다.

Weight -- Integer

컨트롤내의 text 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우의 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for PictureListB

Events for PictureListBoxes

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DoubleClicked

control이 더블-클릭되었을 때 (선택되고 화성화 되었을 때) 발생한다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 coontrol내에 들어와있을 때 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

LoseFocus

control이 focus를 잃을때(비 활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트가아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.

SelectionChanged

control내의 아이템이 선택되었을 때 발생한다.


Functions for PictureLi

Functions for PictureListBoxes

AddItem -- Integer

PictureListBox 끝에 아이템을 추가한다. control의 Sorted property가 True면, 아이템이 추가된 후 아이템들이 다시 정렬된다. AddItem 함수는 control의 Item[ ] 이나 ItemPicture[ ] property를 갱신하지 않는다.

AddPicture -- Integer

이미지 리스트에 icon, cursor, bitmap 등을 추가한다. PictureName[ ]은 갱신하지 않는다.

ClassName -- String

control 이름을 리턴한다.

DeleteItem -- Integer

PictureListBox의 인덱스로 지정한 아이템을 삭제한다.

DeletePicture -- Integer

이미지 리스트에서 명시한 그림을 삭제한다. PictureName[ ]을 갱신하지는 않는다.

DeletePictures -- Integer

이미지 리스트의 모든 그림들을 삭제한다. PictureName[ ]을 갱신하지는 않는다.

DirList -- Boolean

명시한 파일 패턴과 일치하는 파일 리스트를 가진 PictureListBox를 나타낸다.

DirSelect -- Boolean

control의 현재 선택된 내용을 리턴하고 명시한 변수에 그 값을 넣는다.

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

FindItem -- Integer

PictureListBox에서 명시한 문자열로 시작하는 첫 번째(명시한 인덱스 이후 첫 번째) 아이템을 찾는다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

명시한 TreeView 아이템을 숨긴다.

InsertItem -- Long

인덱스로 지정한 아이템 이전에 새로운 아이템을 추가한다. control의 Sorted property가 True면, 아이템이 추가된 후 아이템들을 다시 정렬한다.

Move -- Integer

control이나 object를 명시한 위치로 이동한다.

PointerX -- Integer

object의 좌측면으로부터 포인터 위치까지의 거리를 구한다.

PointerY -- Integer

object의 상단으로부터 포인터 위치까지의 거리를 구한다.

PostEvent -- Boolean

control의 이벤트 큐 마지막에 이벤트를 추가한다.

Print -- Integer

control을 인쇄한다.

Reset -- Integer

control의 모든 아이템을 제거한다.

Resize -- Integer

control의 크기를 변경한다.

SelectedIndex -- Integer

PictureListBox에서 현재 선택된 아이템의 인덱스를 리턴한다. 둘 이상의 아이템이 선택되어 있으면, 첫 번째로 선택된 아이템의 인덱스를 리턴한다.

SelectedItem -- String

첫 번째로 선택된 아이템의 텍스트를 리턴한다.

SelectItem -- Integer

control에서 아이템을 찾고 반전시킨다. 아이템 텍스트를 알고 위치를 알지 못할 때에는 Syntax 1을 이용한다. 아이템의 위치를 알거나 현재 선택을 지우고자 할 때에는 Syntax 2를 이용한다. MultiSelect property가 True인 PictureListBox에서는 효과가 없다. 대신, 다른 아이템들의 선택된 상태에 영향을 주지 않으면서 아이템을 선택하려면 SetState 함수를 사용한다.

SetFocus -- Integer

명시한 object 또는 control에 focus를 설정한다.

SetPosition -- Integer

윈도우내에서 TreeView control의 위치를 설정한다.

SetRedraw -- Integer

property가 변경되면 object를 자동으로 다시 그릴 것인지 제어한다.

SetState -- Integer

명시한 인덱스로 지정한 아이템의 상태 (반전 또는 반전되지않은 상태)를 설정한다. SetState는 다중 선택이 가능한 control에서만 작용한다 (즉, MultiSelect property가 True인 control).

SetTop -- Integer

인덱스로 지정한 아이템을 control의 제일 처음으로 위치시키기 위하여 아이템을 스크롤한다.

Show -- Integer

control을 나타나게 한다.

State -- Integer

인덱스로 지정한 아이템이 선택되어 있으면 (반전되어 있으면) 1을 리턴하고 선택되어있지 않으면 0을 리턴한다.

Text -- String

인덱스로 지정한 아이템의 텍스트를 리턴한다.

Top -- Integer

control에서 현재 제일 첫 번째 위치한 아이템의 인덱스 번호를 리턴한다.

TotalItems -- Integer

아이템의 총 수를 리턴한다.

TotalSelected -- Integer

선택된 아이템의 총 수를 리턴한다.

TriggerEvent -- Integer

명시한 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control의 타입을 리턴한다.


Properties for PictureL

Properties for PictureListBoxes

Accelerator -- Integer

control에 관한 가속 키 (accelerator key)로 할당할 키의 ASCII값을 명시한다.

BackColor -- Long

배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

control의 경계선 유무를 명시한다.

True | control이 경계선을 갖는다
False | control이 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control이 제일 위쪽으로 이동된다
False | control이 제일 위쪽으로 이동되지 않는다

DisableNoScroll -- Boolean

스크롤바의 표현을 명시한다.

True | 스크롤바가 항상 표시되지만, 모든 아이템에 접근할 수 있을 경우는 사용할 수 없는 상태가 된다
False | 스크롤바가 필요할 경우만 표시된다 (아이템의 수와 리스트박스의 높이에 기초한다)

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

ExtendedSelect -- Boolean

리스트박스에서 한 번에 여러 아이템선택이 가능하게 할 것인지 명시한다.

True | 아이템에 클릭한 후 위 또는 아래로 드래깅 함으로써 여러 아이템을 선택할 수 있다. 연속적인 아이템 그룹을 선택하려면 CLICK/SHIFT+CLICK을 사용하고, 여러 아이템을 선택하려면 CTRL+CLICK을 사용한다.
False | 여러 아이템을 선택할 수 없다.

MultiSelect와의 사용

MultiSelect property는 단순히 아이템에 클릭하여 리스트박스에서 여러 아이템을 선택하도록 허락한다. MultiSelect = True 이고 ExtendedSelect = True면, ExtendedSelect는 앞의 설명과 동일하게 작용한다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

HscrollBar -- Boolean

수평 스크롤바의 표시 여부를 명시한다.

True | 수평 스크롤바를 표시한다
False | 수평 스크롤바를 표시하지 않는다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Item[ ] -- String

control내의 아이템들을 명시한다. 초기화된 이후에는 갱신할 수 없다.

ItemPictureIndex[ ] -- Integer

아이템 property 배열내의 각 아이템에 관한 그림 인덱스를 명시한다. 초기화된 이후에는 갱신할 수 없다.

MultiSelect -- Boolean

한 번에 PictureListBox내의 여러 아이템을 선택할 수 있도록 할 것인지 명시한다.

True | 여러 아이템을 선택할 수 있다
False | 여러 아이템을 선택할 수 없다

PictureHeight -- Integer

그림의 높이를 픽셀(pixel)로 명시한다. 이 property는 이미지 리스트에 이미지들이 없을 때에만 설정할 수 있다. 처음 이미지가 추가될 때 PictureHeight 값이 0이면, 그 이미지 크기는 추가되는 나머지 이미지의 크기를 결정하는데 사용된다.

PictureWidth -- Integer

그림의 폭을 픽셀(pixel)로 명시한다. 이 property는 이미지 리스트에 이미지들이 없을 때에만 설정할 수 있다. 처음 이미지가 추가될 때 PictureWidth 값이 0이면, 그 이미지 크기는 추가되는 나머지 이미지의 크기를 결정하는데 사용된다.

PictureMaskColor -- Long

초기 그림 배열 또는 AddPicture 함수를 이용하여 추가된 사용자-정의 비트맵의 마스크로 사용할 색상 값을 명시한다. 시스템-정의 비트맵은 자신들의 마스크 색상을 알고있으며 이 property의 색상은 무시된다. 이 값은 그림이 추가될 때 사용되며, AddPicture 함수를 호출하는 사이에 변경할 수 있다. 값의 범위는 -2 부터 16,777,215이다.

PictureName[ ] -- String

초기화 하는동안 추가되는 그림을 포함하고있는 파일 이름. 파일 확장자는 .BMP, .ICO, 또는 .CUR 등이다. 초기화된 이후에는 갱신할 수 없다.

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

Sorted -- Boolean

PictureListBox의 아이템들이 정렬되어있는지 명시한다.

True | 아이템들이 정렬되어있다
False | 아이템들은 정렬되어있지 않다

TabOrder -- Integer

윈도우내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

TabStop[ ] -- Integer 배열

PictureListBox내의 탭 정지 위치를 명시한다. 탭 정지 위치는 문자 위치 내에 있으며, 탭 정지 구분문자는 공란이다. 첫 번째 탭 정지위치만 할당하면, TabStop[1], 탭 정지 위치들은 첫 번째 탭 정지로 명시된 문자 수 만큼의 간격을 갖는다. 하나 이상의 탭 정지가 입력되면, 명시한 위치에서 탭이 정지된다. control내에 16 탭 정지를 정의할 수 있다; 기본 설정된 배열은 TabStop[8]이며, 각각 8문자 간격으로 탭이 정지된다.

Tag -- String

control에 할당된 태그 값을 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

VscrollBar -- Boolean

PictureListBox 오른쪽에 수직 스크롤바를 표시할 것인지 명시한다.

True | 수직 스크롤바를 표시한다
False | 수직 스크롤바를 표시하지 않는다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로 부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로 부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for Pictures

Clicked

컨트롤을 클릭할 때 발생한다.

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생한 직후에 발생한다.

DoubleClicked

control이 더블-클릭 되었을 때 (선택된 후 활성화 되었을 때) 발생한다.

DragDrop

drag된 컨트롤이 컨트롤 위에 drop될 때 발생한다.

DragEnter

drag된 컨트롤이 컨트롤 안으로 들어가기 시작할 때 발생한다.

DragLeave

drag된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

drag된 컨트롤이 컨트롤 안에 겹칠 때 발생한다.

GetFocus

컨트롤이 focus를 받기 직전에 발생한다 (선택된 후 활성화되기 직전).

LoseFocus

컨트롤이 focus를 잃어버릴 때 발생한다 (비 활성화될 때).

Other

PowerBuilder event가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

컨트롤 위에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for Pictures

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

Draw -- Integer

parent 윈도우내의 명시한 위치에 그림을 그린다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시한 위치로 옮긴다.

PointerX -- Integer

컨트롤의 좌측면으로부터 pointer까지의 거리를 리턴한다.

PointerY -- Integer

컨트롤의 상단으로부터 pointer까지의 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 message queue의 끝에 event를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 size를 변경한다.

SetFocus -- Integer

컨트롤에 focus를 설정한다.

SetPicture -- Integer

control에 관한 새로운 비트맵을 구축한다.

SetPosition -- Integer

윈도우내에서의 컨트롤 위치를 명시한다.

SetRedraw -- Integer

컨트롤 property가 변경된 후에 컨트롤을 자동으로 다시 그릴 것인지를 제어한다.

Show -- Integer

컨트롤을 보이게 만든다.

TriggerEvent -- Integer

컨트롤내 명시한 event를 trigger하고 event에 관한 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for Pictures

Border -- Boolean

control이 경계선을 갖는지 명시한다.

True | control이 경계선을 갖는다
False | 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control을 제일 위쪽으로 이동시킨다
False | control을 제일 위쪽으로 이동시키지 않는다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 지원된다

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FocusRectangle -- Boolean

focus를 가졌을 때 그림 프레임으로 점 사각형 (focus 사각형)을 나타낼 것인지 명시한다.

True | focus를 가졌을 때 프레임을 나타낸다
False | 프레임을 나타내지 않는다

Height -- Integer

control의 높이를 PowerBuilder 단위로 명시한다.

Invert -- Boolean

control의 색상을 반전시켜 나타낼 것인지 명시한다.

True | 색상을 반전시킨다
False | 색상을 반전시키지 않는다

OriginalSize -- Boolean

비트맵 이미지 (그림)의 width와 height property를 원래 값으로 설정할 것인지 명시한다.

True | 폭과 높이를 원래 값으로 설정한다
False | 현재 폭과 높이가 원래 값으로 변경되지 않는다

현재 폭과 높이를 무시하려면, Window painter에서 OriginalSize를 True로 설정한다. 이 property는 스크립트에서 변경할 수 없다.

PictureName -- String

그림을 포함하고있는 파일 이름을 명시한다. 파일 확장자 BMP 또는 RLE가 요구된다.

Pointer -- String

컨트롤에 사용할 내장 pointer의 이름 또는 pointer를 포함한 파일 이름을 명시한다.

TabOrder -- Integer

윈도우내 컨트롤의 tab 값을 명시한다(0은 컨트롤에 tab을 옮길 수 없다).

Tag -- String

컨트롤에 할당된 tag 값을 명시한다

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우의 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for RadioButtons

Clicked

control이 클릭(선택) 되었을 때 발생한다

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 control내에 들어와있을 때 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

LoseFocus

control이 focus를 잃을 때(비 활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.


Functions for RadioButt

Functions for RadioButtons

ClassName -- String

control에 할당된 이름을 리턴한다.

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

PointerX -- Integer

control의 좌측면으로부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

PostEvent -- Boolean

control의 메시지 큐(queue) 끝에 이벤트를 추가한다.

Print -- Integer

control을 인쇄한다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

각각의 property가 변경된 이후 control을 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

control을 보이게 한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for RadioBut

Properties for RadioButtons

Automatic -- Boolean

컨트롤을 클릭할 때 컨트롤에 표시마크를 나타낼 것인지 명시한다.

True | 클릭할 때 표시마크를 나타낸다.
False | 클릭할 때 표시마크를 나타내지 않는다.

BackColor -- Long

배경색 값을 명시한다 : -2 부터 16,777,215

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우내의 제일 위쪽으로 옮길 것인지 명시한다.

True | control을 제일 위쪽으로 옮긴다
False | 제일 위쪽으로 옮기지 않는다

Checked -- Boolean

아이템이 선택된 상태로 할 것인지 명시한다.

True | 선택되어진 상태가 된다
False | 선택되어진 상태가 되지 않는다

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

LeftText -- Boolean

텍스트를 control의 왼쪽에 나타낼 것인지 명시한다.

True | 텍스트를 좌측에 나타낸다
False | 텍스트를 좌측에 나타내지 않는다

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우 내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다). GroupBox내에서는, 지정한 순서대로 라디오버튼 사이를 이동하려면 상/하 방향키를 사용한다. GroupBox내에 탭을 허용하려면, GroupBox 탭 값을 0으로 변경하고 라디오버튼 값을 0이 아닌 값으로 할당한다 (GroupBox내에 있는 라디오버튼의 기본적인 탭 값은 0이다).

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

control에 표시되는 텍스트를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Functions for Rectangle

Functions for Rectangles

ClassName -- String

control에 할당된 이름을 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

Show -- Integer

control을 보이게 한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for Rectangl

Properties for Rectangles

FillColor -- Long

control을 채우는데 사용할 색상의 값을 명시한다: -2에서 16,777,215

FillPattern -- FillPattern (열거형)

control의 채움 패턴을 명시한다

BDiagonal! : 좌측상단에서 우측하단으로 그려진 줄

Diamond!

FDiagonal! : 좌측하단에서 우측상단으로 그려진 줄

Horizontal!

Solid!

Square!

Vertical!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

LineColor -- Long

라인 색상값을 명시한다: -2에서 16,777,215.

LineStyle -- LineStyle (열거형)

스타일을 명시한다.

Continuous!

Dash!

DashDot!

DashDotDot!

Dot!

Transparent!

LineThickness -- Integer

control을 그리는데 사용될 라인의 두께를 PowerBuilder 단위로 명시한다. LineThickness가 1 픽셀(pixel)이상이면 (4 PowerBuilder 단위), LineStyle은 Continuous!이다.

Tag -- String

control에 할당된 태그 값을 명시한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for the RichText

Events for the RichTextEdit control

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DoubleClicked

RichTextEdit control에 더블-클릭할 때 발생한다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 coontrol내에 들어와있을 때 발생한다.

FileExists

RichTextEdit내의 문서를 파일에 저장할 때, 그 파일이 이미 존재하면 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

InputFieldSelected

입력 필드에 더블-클릭하거나 클릭한 후 ENTER 키를 누를 때 발생한다.

Key

키를 누를 때 발생한다.

LoseFocus

control이 focus를 잃을때(비 활성화 될 때) 발생한다.

Modified

RichTextEdit의 control 내용을 처음으로 변경하고, 저장하지 않은 상태일 때 발생한다. Modified 이벤트 스크립트에서 저장할 필요가있는 문서임을 나타내는 플래그를 설정할 수 있다.

MouseDown

control 상에서 왼쪽 또는 중간 마우스 버튼을 눌렀을 때 발생한다.

MouseMove

control내에서 마우스를 움직였을 때 발생한다.

MouseUp

control 상에서 왼쪽 또는 중간 마우스 버튼을 놓았을 때 발생한다.

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 발생할 때 일어난다.

PictureSelected

더블-클릭 또는 클릭한 후 ENTER 키를 눌러서 비트맵을 선택할 때 발생한다.

PrintFooter

control의 내용을 인쇄하고 그 페이지에 관한 꼬리말(footer)이 인쇄될 때 발생한다. 페이지 번호에 관한 정보는 PrintHeader를 참조한다.

PrintHeader

control의 내용을 인쇄하고 새로운 페이지에 머리말이 인쇄될 때 발생한다.

Page numbers

PrintHeader 또는 PrintFooter 스크립트에서 설정한 머리말 또는 꼬리말 입력 필드를 포함시킴으로써 인쇄되는 페이지 번호를 제어할 수 있다. 즉, 모든 문서들에 관하여 연속적인 페이지 번호를 부여하거나 각 문서별로 페이지 번호를 새로 부여하는 것 등을 결정할 수 있다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다. 팝업 메뉴가 사용 가능한 상태일 경우, 이 이벤트는 발생하지 않는다.

RButtonUp

control 상에서 오른쪽 마우스 버튼을 놓았을 때 발생한다.


Functions for the RichT

Functions for the RichTextEdit control

CanUndo -- Boolean

Undo 함수를 control의 마지막 편집을 취소(undo)하는데 사용할 수 있으면 True를 리턴하고, 사용할 수 없으면 False를 리턴한다.

ClassName -- String

control에 할당된 이름을 리턴한다.

Clear -- Integer

control에 선택되어있는 텍스트의 선택을 해제한다 (클립보드에 위치시키지 않는다).

Copy -- Long

선택된 RichTextEdit control 내용을 클립보드에 복사한다(삭제하지는 않는다).

CopyRTF -- String

선택된 RichTextEdit control 내용을 rich 텍스트 형식으로 문자열에 복사한다.

Cut -- Long

선택된 RichTextEdit control 내용을 잘라내어 (삭제하여) 클립보드에 복사한다.

DataSource -- Integer

DataWindow와 동일한 이름의 입력 필드를 가진 RichTextEdit control을 연관시킨다.

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

Find -- Integer

control에서 텍스트를 찾는다.

FindNext -- Integer

Find 함수로 명시된 텍스트가 다음으로 나타나는 곳을 찾는다.

GetAlignment -- Alignment

선택된 텍스트의 정렬상태를 알아낸다.

GetParagraphSetting -- Long

삽입 포인트를 포함하고있는 단락의 들여쓰기, 왼쪽여백, 또는 오른쪽여백 크기를 구한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

GetSpacing -- Spacing

선택된 텍스트의 줄 간격을 구한다.

GetTextColor -- Long

선택된 텍스트의 색상을 리턴한다.

GetTextStyle -- Boolean

선택된 텍스트의 설정상태를 구한다.

Hide -- Integer

control을 보이지 않게 한다.

InputFieldChangeData -- Integer

주어진 입력 필드의 모든 데이터 값을 수정한다.

InputFieldCurrentName -- String

선택한 입력 필드 이름을 구한다.

InputFieldDeleteCurrent -- Integer

현재 선택한 입력 필드를 삭제한다. (즉, 동일한 이름의 모든 입력 필드를 삭제하지않고, 현재 선택한 입력 필드만 삭제한다.)

InputFieldGetData -- String

명시한 입력 필드내의 데이터를 구한다.

InputFieldInsert -- Integer

삽입 포인트 위치에 입력 필드를 삽입한다.

InputFieldLocate -- String

입력 필드가 있는곳을 찾는다. 모든 입력 필드를 찾거나 명시한 입력 필드만 찾을 수 있다.

InsertDocument -- Integer

RichTextEdit control 명시한 파일을 삽입한다. 이 파일은 현재 내용을 대체하거나 삽입 포인트 위치에 추가된다. 파일은 rich 텍스트 형식(RTF) 또는 ASCII 텍스트가 가능하다.

InsertPicture -- Integer

삽입 포인트 위치에 명시한 비트맵 파일을 삽입한다.

IsPreview -- Boolean

RichTextEdit control이 미리보기 모드에 있는지 체크한다.

LineCount -- Integer

문서내의 전체 라인수를 리턴한다.

LineLength -- Integer

현재 라인의 길이를 리턴한다.

Move -- Integer

control을 명시한 위치로 이동한다.

PageCount -- Integer

문서의 페이지 수를 리턴한다.

Paste -- Integer

클립보드의 내용을 control의 삽입포인트에 삽입하고 선택된 텍스트의 내용을 대체한다.

PasteRTF -- Long

문자열이 rich 텍스트 형식의 텍스트를 포함하고있을 때 삽입 포인트 위치에 그 문자열을 삽입한다. header 또는 footer에 문자열을 삽입할 것인지 명시하는 것도 가능하다.

PointerX -- Integer

control의 좌측면으로부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

Position -- Integer

control내의 삽입 포인트 위치 또는 선택된 텍스트 위치를 리턴한다.

PostEvent -- Boolean

control의 메시지 큐(queue) 끝에 이벤트를 추가한다.

Preview -- Integer

문서의 미리보기 (header/footer, page 크기 등을 볼 수 있다) 상태와 정상적인 RTE control 상태를 전환한다.

Print -- Integer

control의 내용을 인쇄한다. 페이지 범위와 그 밖의 설정사항 등을 명시할 수 있다.

ReplaceText -- Integer

현재 선택되어있는 텍스트를 명시한 문자열로 대체한다. 텍스트가 선택되어있지 않으면, 현재 삽입 포인트에 명시한 텍스트가 삽입된다.

Resize -- Integer

control의 크기를 변경한다.

SaveDocument -- Integer

파일내의 현재 문서를 rich 텍스트 형식 (RTF) 또는 ASCII 텍스트로 저장한다.

Scroll -- Integer

명시한 방향으로 명시한 수의 라인만큼 RichTextEdit를 스크롤한다.

ScrollNextPage -- Integer

RichTextEdit 문서의 다음 페이지로 스크롤한다. 현재 페이지가 문서 instance의 마지막 페이지라면, 다음 instance로 스크롤한다.

ScrollNextRow -- Long

다음 row와 문서 instance로 RichTextEdit를 스크롤 한다.

ScrollPriorPage -- Long

RichTextEdit 문서의 이전 페이지로 스크롤한다. 현재 페이지가 문서 instance의 첫번째 페이지라면, 이전 instance로 스크롤한다.

ScrollPriorRow -- Long

이전 row와 문서 instance로 RichTextEdit를 스크롤 한다.

ScrollToRow -- Long

명시한 row와 문서 instance로 RichTextEdit를 스크롤 한다.

SelectedColumn -- Integer

삽입 포인트 바로 다음 칼럼의 문자 수를 리턴한다.

SelectedLength -- Long

선택된 텍스트 길이를 리턴한다.

SelectedLine -- Long

삽입 포인트가 현재 위치한 라인 번호를 리턴한다.

SelectedPage -- Long

삽입 포인트가 현재 위치한 페이지 번호를 리턴한다.

SelectedStart -- Integer

라인의 시작으로부터 선택된 텍스트의 시작위치를 리턴한다.

SelectedText -- String

선택된 텍스트를 포함하고있는 문자열을 리턴한다.

SelectText -- Long

RichTextEdit control에서 텍스트를 선택한다.

SelectTextAll -- Integer

control내의 모든 텍스트를 선택한다.

SelectTextLine -- Integer

삽입 포인트가 위치한 라인의 모든 텍스트를 선택한다.

SelectTextWord -- Integer

삽입 포인트가 위치한 단어를 선택한다.

SetAlignment -- Integer

선택한 단락의 정렬방법을 설정한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetParagraphSetting -- Integer

단락의 들여쓰기, 좌측여백, 우측여백 크기를 명시한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

각각의 property가 변경된 이후 control을 자동으로 다시 그릴 것인지 제어한다.

SetSpacing -- Integer

선택한 단락의 줄 간격을 설정한다.

SetTextColor -- Integer

선택한 텍스트의 색상을 설정한다.

SetTextStyle -- Integer

선택한 텍스트의 font property를 설정한다.

Show -- Integer

control을 보이게 한다.

ShowHeadFoot -- Integer

RichTextEdit 문서 내에서 머리말과 꼬리말 편집을 허락한다.

TextLine -- String

삽입 포인트가 위치한 라인의 전체 텍스트를 리턴한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.

Undo -- Integer

편집중인 함수의 실행을 취소할 수 있는 것이라면, control내에서 이전에 편집한 내용을 취소한다. (어떤 편집 함수는 실행을 취소할 수 없다.)


Properties for the Rich

Properties for the RichTextEdit control

Accelerator -- Integer

control에 관한 가속 키 (accelerator key)로 할당할 키의 ASCII값을 명시한다.

BackColor -- Long

RichTextEdit의 편집영역 텍스트의 배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

control의 경계선 유무를 명시한다.

True | control이 경계선을 갖는다
False | control이 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BottomMargin -- Long

인쇄 페이지의 하단여백 폭을 명시한다.

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control이 제일 위쪽으로 이동된다
False | control이 제일 위쪽으로 이동되지 않는다

DisplayOnly -- Boolean

사용자가 내용을 변경할 수 있는지 명시한다.

True | 텍스트 및 입력 필드내용을 변경할 수 없다
False | 내용을 변경할 수 있다

DocumentName -- String

control의 내용을 인쇄할 때 print queue에 이름을 나타낼 것인지 명시한다.

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용 하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Platform note

ICO 파일들은 Windows 와 Macintosh platform에서만 지원된다.

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
Fals | control을 선택할 수 없다

HeaderFooter -- Boolean

RichTextEdit control이 header/footer 영역을 갖는지 명시한다. 이 property는 반드시 painter 내에서 설정해야 하고 실행하는 동안 변경할 수 없다.

True | control이 header/footer 영역을 갖는다
False | header/footer 영역을 갖지 않는다

문서가 header 또는 footer를 가지고있고 header/footer 영역을 지원하지않는 control내에 오픈되어 있다면, 문서내의 header/footer 정보는 무시된다. 문서가 이러한 파일 내에 저장된다면, header/footer 정보는 유실된다.

Height -- Integer

control의 높이를 PowerBuilder 단위로 명시한다.

HScrollBar -- Boolean

RichTextEdit control이 수평 스크롤바를 갖는지 명시한다.

True | 스크롤바를 표시한다
False | 스크롤바를 표시하지 않는다

InputFieldBackColor -- Long

모든 입력 필드의 기본설정 배경색상을 명시한다: -2 부터 16,777,215.

InputFieldNamesVisible -- Boolean

입력 필드내에 입력필드 값 대신 입력필드 이름을 나타낼 것인지 명시한다.

True | 입력필드 이름을 나타낸다
False | 입력필드의 값을 나타낸다

InputFieldsVisible -- Boolean

이 property는 현재 사용 불가능하다. 입력 필드를 보이게 할 것인지 명시한다.

True | 입력 필드를 보이게 한다
False | 입력 필드를 숨긴다

LeftMargin -- Long

인쇄 페이지의 좌측여백 폭을 명시한다.

Modified -- Boolean

문서가 오픈되거나 마지막으로 저장된 이후 수정되었는지 명시한다. Modified는 문서가 저장되지 않은 상태인지를 나타내는 control의 "dirty" flag이다.

True | 문서가 수정되었다
False | 문서가 수정되지 않았다

문서가 새로 오픈되거나 저장되어 처음상태가 변경되면, Modified 상태가 설정되고 Modified 이벤트가 트리거된다.

PicturesAsFrame -- Boolean

이 property의 값이 True면, 프레임으로써 그래픽(비트맵)이 표시된다.

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

PopMenu -- Boolean

control 상에서 오른쪽 마우스 버튼을 클릭함으로써 팝업 메뉴를 사용하게 할 것인가 명시한다. 이 메뉴는 사용자에게 cut, paste, insert a file, select formatting 등의 옵션을 제공한다.

True | Popup 메뉴를 사용할 수 있다
False | Popup 메뉴를 사용할 수 없다

Resizable -- Boolean

control 크기를 조절할 수 있는지 명시한다.

True | control 크기를 조절할 수 있다
False | control 크기를 조절할 수 없다

ReturnsVisible -- Boolean

carriage return을 보이게 할 것인지 명시한다.

True | carriage return을 보이게 한다
False | carriage return을 숨긴다

RightMargin -- Long

인쇄된 용지의 오른쪽 여백 폭을 명시한다.

RulerBar -- Boolean

편집영역 위쪽에 ruler bar를 보이게 할 것인지 명시한다. ruler bar가 보이면, tab bar 상에서 탭과 여백을 설정하는 동안 그 간격을 보면서 측정할 수 있다 (TabBar property 참조).

True | ruler bar를 보이게 한다
False | ruler bar를 숨긴다

RichTextEdit popup 메뉴 사용이 가능하면, ruler bar를 나타내거나 숨기는데 사용할 수 있다 (PopMenu property 참조).

SpacesVisible -- Boolean

공란을 보이게 할 것인지 명시한다.

True | 공란을 보이게 한다
False | 공란을 숨긴다

TabBar -- Boolean

탭 설정을 위한 bar를 편집영역 위쪽에 나타낼 것인지 명시한다.

True | Tab bar를 보이게 한다
False | Tab bar를 숨긴다

popup 메뉴 사용이 가능하면, tab bar를 나타내거나 숨기는데 사용할 수 있다 (PopMenu property 참조).

TabOrder -- Integer

윈도우 내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다). RichTextEdit는 내용에 탭 값을 허용하기 때문에, 탭으로 control을 벗어날 수 없다.

TabsVisible -- Boolean

탭을 보이게 할것인지 명시한다.

True | 탭을 보이게 한다
False | 탭을 숨긴다

Tag -- String

control에 할당된 태그 값을 명시한다.

ToolBar -- Boolean

텍스트 형식을위한 tool bar를 편집 영역 위쪽에 나타낼 것인지 명시한다.

True | tool bar를 보이게 한다
False | tool bar를 보이지않게 한다

popup 메뉴 사용이 가능하면, tool bar를 나타내거나 숨기는데 사용할 수 있다 (PopMenu property 참조).

TopMargin -- Lon g

인쇄된 페이지의 상단 여백 폭을 명시한다.

UndoDepth -- Integer

Undo 함수로 작업을 취소하기위한 최대 수를 설정한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

VScrollBar -- Boolean

RichTextEdit control이 수직 스크롤바를 가질 것인지 명시한다.

True | 스크롤바를 나타낸다
False | 스크롤바를 나타내지 않는다

Width -- Integer

control의 폭을 PowerBuilder 단위로 명시한다.

WordWrap -- Boolean

라인의 여백에 도달하면 텍스트가 자동으로 다음라인으로 옮겨갈 것인지 명시한다.

True | 자동 word wrap이 가능하다
False | 자동 word wrap 기능을 사용할 수 없다

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Functions for RoundRect

Functions for RoundRectangles

ClassName -- String

control에 할당된 이름을 리턴한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

Show -- Integer

control을 보이게 한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for RoundRec

Properties for RoundRectangles

CornerHeight -- Integer

control 모서리의 수직부분 반경을 PowerBuilder 단위로 명시한다.

CornerWidth -- Integer

control 모서리의 수평부분 반경을 PowerBuilder 단위로 명시한다.

FillColor -- Long

control을 채우는데 사용할 색상의 값을 명시한다: -2 에서 16,777,215

FillPattern -- FillPattern (열거형)

control의 채움 패턴을 명시한다

BDiagonal! : 좌측상단에서 우측하단으로 그려진 줄

Diamond!

FDiagonal! : 좌측하단에서 우측상단으로 그려진 줄

Horizontal!

Solid!

Square!

Vertical!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

LineColor -- Long

라인 색상값을 명시한다: -2 에서 16,777,215.

LineStyle -- LineStyle (열거형)

스타일을 명시한다.

Continuous!

Dash!

DashDot!

DashDotDot!

Dot!

Transparent!

LineThickness -- Integer

control을 그리는데 사용될 라인의 두께를 PowerBuilder 단위로 명시한다. LineThickness가 1 픽셀(pixel)이상이면 (4 PowerBuilder 단위), LineStyle은 Continuous!이다.

Tag -- String

control에 할당된 태그 값을 명시한다.

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for SingleLineEd

Events for SingleLineEdit controls

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 control내에 들어와있을 때 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

LoseFocus

control이 focus를 잃을 때(비 활성화 될 때) 발생한다.

Modified

control 텍스트가 변경된 후 사용자가 ENTER 또는 TAB을 누르거나 다른 control로 focus가 변경될 때 발생한다.

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.


Functions for SingleLin

Functions for SingleLineEdit controls

CanUndo -- Boolean

Undo 함수를 control의 마지막 편집을 취소(undo)하는데 사용할 수 있으면 True를 리턴하고, 사용할 수 없으면 False를 리턴한다.

ClassName -- String

control에 할당된 이름을 리턴한다.

Clear -- Integer

control에 선택되어있는 텍스트의 선택을 해제한다 (클립보드에 위치시키지 않는다).

Copy -- Integer

control에 선택되어있는 텍스트를 복사하여 클립보드에 위치시킨다(삭제하지는 않는다).

Cut -- Integer

control에 선택되어있는 텍스트를 잘라내어 클립보드에 위치시킨다(삭제한다).

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

Paste -- Integer

클립보드의 내용을 control의 삽입포인트에 삽입하고 선택된 텍스트의 내용을 대체한다.

PointerX -- Integer

control의 좌측면으로부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

Position -- Integer

control내의 삽입 포인트 위치를 리턴한다.

PostEvent -- Boolean

control의 메시지 큐(queue) 끝에 이벤트를 추가한다.

Print -- Integer

control을 인쇄한다.

ReplaceText -- Integer

현재 선택되어있는 텍스트를 명시한 문자열로 대체한다. 텍스트가 선택되어있지 않으면, 현재 삽입 포인트에 명시한 텍스트가 삽입된다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

SelectedLength -- Integer

control내에서 선택된 텍스트의 길이를 리턴한다.

SelectedStart -- Integer

control내에 선택된 텍스트의 시작 위치를 리턴한다.

SelectedText -- String

control내에 선택되어 있는 텍스트를 문자열로 리턴한다.

SelectText --Integer

명시한 시작위치에서 명시한 길이만큼 control내의 텍스트를 선택한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

각각의 property가 변경된 이후 control을 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

control을 보이게 한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.

Undo -- Integer

control내에서 이전에 편집한 내용을 취소한다.


Properties for SingleLi

Properties for SingleLineEdit controls

Accelerator -- Integer

control에 관한 가속 키 (accelerator key)로 할당할 키의 ASCII값을 명시한다.

AutoHScroll -- Boolean

데이터가 입력되거나 삭제되었을 때 자동으로 수평 스크롤 할 것인지 명시한다.

True | 자동으로 수평 스크롤한다
False | 자동으로 수평 스크롤하지 않는다

BackColor -- Long

배경색 값을 명시한다: -1 부터 16,777,215

Border -- Boolean

control의 경계선 유무를 명시한다.

True | control이 경계선을 갖는다
False | control이 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox

BringToTop -- Boolean

control을 윈도우의 제일 위쪽으로 이동시킬 것인지 명시한다.

True | control을 제일 위쪽으로 이동시킨다
False | control을 제일 위쪽으로 이동시키지 않는다

DisplayOnly -- Boolean

control내의 텍스트가 표시-전용(display-only)이고 사용자가 변경할 수 없는지 명시한다.

True | 텍스트를 사용자가 변경할 수 없다
False | 텍스트는 사용자에 의하여 변경될 수 있다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다.

반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Platform note

ICO 파일들은 Windows와 Macintosh platform에서만 지원된다

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

HideSelection -- Boolean

control이 focus를 갖지 않을 때 선택된 텍스트의 선택상태(반전)를 유지시킬 것인지 명시한다.

True | 텍스트는 반전상태를 유지하지 않는다
False | 텍스트는 반전상태를 유지한다

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Limit -- Integer

control에 입력할 수 있는 최대 문자 수 (0 부터 32,767)를 명시한다 (0은 제한 없음을 의미한다).

Password -- Boolean

control이 패스워드 필드인지 (문자를 입력하면 에스터리스크(*)로 표시할 것인지) 명시한다.

True | 패스워드 필드이다
False | 패스워드 필드가 아니다

Pointer-- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우 내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

control에 표시되는 텍스트를 명시한다.

TextCase -- TextCase (열거형)

control에 입력된 문자의 대소문자 구분을 명시한다.

AnyCase!

Lower!

Upper!

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for StaticText c

Events for StaticText controls

Clicked

control이 클릭(선택) 되었을 때 발생한다

Constructor

윈도우의 Open 이벤트 발생 직전에 일어난다.

Destructor

윈도우의 Close 이벤트 발생 직후에 일어난다.

DoubleClicked

control이 더블-클릭(선택과 활성화) 되었을 때 발생한다.

DragDrop

드래그된 control이 drop 되었을 때 발생한다.

DragEnter

드래그된 control이 들어올 때 발생한다.

DragLeave

드래그된 control이 떠나갈 때 발생한다.

DragWithin

드래그된 control이 대상 control내에 들어와있을 때 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

LoseFocus

control이 focus를 잃을때(비 활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 발생할 때 일어난다.

RButtonDown

control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.


Functions for StaticTex

Functions for StaticText controls

ClassName -- String

control에 할당된 이름을 리턴한다.

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

PointerX -- Integer

control의 좌측면으로 부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

PostEvent -- Boolean

control의 메시지 큐(queue) 끝에 이벤트를 추가한다.

Print -- Integer

control을 인쇄한다.

Resize -- Integer

control을 포함하고있는 박스의 크기를 변경한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

각각의 property가 변경된 이후 control을 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

control을 보이게 한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for StaticTe

Properties for StaticText controls

Alignment -- Alignment (열거형)

control내의 텍스트 정렬을 명시한다.

Left!

Center!

Right!

BackColor -- Long

배경색 값을 명시한다 : -2 부터 16,777,215

Border -- Boolean

control이 경계선을 갖는지 명시한다.

True | 경계선을 갖는다
False | 경계선을 갖지 않는다

BorderColor -- Long

경계선 색상을 명시한다 : -2 부터 16,777,215

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 윈도우내의 제일 위쪽으로 옮길 것인지 명시한다.

True | control을 제일 위쪽으로 옮긴다
False | 제일 위쪽으로 옮기지 않는다

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | control이 클릭되었을때, 자동으로 Drag 모드에 들어가지 않는다. 반드시 Drag 함수를 이용하여 Drag 모드에 들어가도록 조치 하여야 한다.

DragIcon -- String

control을 드래그할 때 표시될 내장 아이콘 또는 아이콘을 포함하고 있는 파일 (ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 control 크기의 박스이다. control을 드래그할 때, 그 control이 drop 가능한 영역에 있으면 이 아이콘이 표시된다. control을 drop할 수 없는 영역에 있으면 No-Drop 아이콘이 표시된다.

Enabled -- Boolean

control의 사용가능 여부 (선택가능 여부)를 명시한다.

True | control을 선택할 수 있다
False | control을 선택할 수 없다

FaceName -- String

control의 텍스트로 표시될 typeface 이름을 명시한다 (예를들어, ARIAL 또는 COURIER 등)

FillPattern -- FillPattern (열거형)

control의 채움 패턴을 명시한다

BDiagonal! : 좌측상단에서 우측하단으로 그려진 줄

Diamond!

FDiagonal! : 좌측하단에서 우측상단으로 그려진 줄

Horizontal!

Solid!

Square!

Vertical!

FocusRectangle -- Boolean

control이 focus를 가질 때 점 사각형 (focus 사각형)을 나타낼 것인지 명시한다.

True | 점 사각형을 나타낸다
False | 점 사각형을 나타내지 않는다

FontCharSet -- FontCharSet (열거형)

control의 텍스트로 사용될 폰트 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

control의 텍스트로 사용될 폰트 그룹 (타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

control의 텍스트로 사용될 폰트 피치(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

control을 포함하고있는 박스의 높이를 PowerBuilder 단위로 명시한다.

Italic -- Boolean

control의 텍스트가 이탤릭인지 명시한다.

True | 텍스트가 이탤릭이다
False | 이탤릭이 아니다

Pointer -- String

control을 위하여 사용할 내장 포인터 또는 포인트를 포함하고 있는 파일 이름을 명시한다.

RightToLeft -- Boolean

우측-에서-좌측(right-to-left order)으로 표시되는 문자를 명시한다. 응용프로그램은 반드시 우측-에서-좌측으로 표시되는 것을 지원하는 오퍼레이팅 시스템하에서 PowerBuilder의 Hebrew 또는 Arabic 버전으로 실행 중이어야 한다.

True | 문자들이 우측-에서-좌측(right-to-left order)으로 표시된다
False | 문자들이 좌측-에서-우측(left-to-right order)으로 표시된다

TabOrder -- Integer

윈도우내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

Tag -- String

control에 할당된 태그 값을 명시한다.

Text -- String

control에 표시되는 텍스트를 명시한다.

TextColor -- Long

control의 텍스트 색상을 명시한다: -2 부터 16,777,215

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

control의 텍스트 두께를 명시한다; 예를들면, 400은 보통이고 700은 강조이다

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for the Tab cont

Events for the Tab control

Clicked

사용자가 tab page의 표시 영역을 제외한 Tab 컨트롤을 클릭할 때 발생한다. tab page 경우는, user object에 관한 Clicked 이벤트가 대신 발생한다.

Constructor

object를 생성할 때, 윈도우의 Open 이벤트가 발생하기 직전에 발생한다.

Destructor

object를 제거할 때, 윈도우의 Close 이벤트 발생직후에 발생한다.

DoubleClicked

사용자가 tab page의 표시 영역을 제외한 Tab 컨트롤 내에서 더블 클릭할 때 발생한다. tab page의 경우는, user object에 관한 DoubleClicked 이벤트(pbm_bndoubleclicked)가 대신 트리거된다.

DragDrop

드래그된 컨트롤이 컨트롤의 tab 영역 내에 drop될 때 발생한다.

DragEnter

드래그된 컨트롤이 컨트롤 안으로 들어갈 때 (표시 영역 주위의 경계선 포함) 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 (tab page의 표시 영역을 가로질러 떠날 때 포함) 발생한다.

DragWithin

드래그된 control이 control내에 포함될 때 (탭 페이지 표시 영역 내에 포함되는 것을 제외) 발생한다.

GetFocus

control이 focus를 받기 직전 (선택되고 활성화되기 직전)에 발생한다.

Key

사용자가 key를 누를 때 발생한다.

LoseFocus

control이 focus를 잃을 때(비 활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트가 아닌 Windows 메시지가 일어날 때 발생한다.

RightClicked

사용자가 tab page의 표시 영역을 제외한 Tab 컨트롤 위에서 마우스 오른쪽 버튼을 클릭할 때 발생한다. 사용자가 tab page위에서 오른쪽 버튼을 클릭하면, control 또는 그 탭 페이지 user object에 RButtonDown 이벤트가 발생한다.

RightDoubleClicked

사용자가 tab page의 표시 영역을 제외한 Tab 컨트롤 내에서 마우스 오른쪽 버튼을 더블-클릭할 때 발생한다. tab page 경우, user object의 RightDoubleClicked 이벤트(pbm_rbuttondblclk)가 대신 발생한다.

SelectionChanged

다른 tab으로 선택을 변경한 직후에 발생한다. SelectionChanged는 tab이 생성되고 초기 선택이 확정될 때 trigger된다.

SelectionChanging

다른 tab으로 선택을 변경하기 직전에 발생한다. 선택 변경을 막기 위해서, 이벤트 스크립트내에서 1을 리턴한다. SelectionChanging은 tab이 생성되고 초기 선택이 확정될 때 trigger된다.


Functions for the Tab c

Functions for the Tab control

ClassName -- String

control에 할당된 이름을 리턴한다.

CloseTab -- Integer

OpenTab 함수로 오픈된 탭 페이지를 닫는다.

Drag -- Integer

control의 드래깅을 시작하거나 종료한다.

GetParent -- PowerObject

Tab control의 parent를 리턴한다.

Hide -- Integer

control을 보이지 않게 한다.

Move -- Integer

control을 명시한 위치로 이동한다.

MoveTab -- Integer

탭을 새로운 위치로 이동 시킨다.

OpenTab -- Integer

탭 페이지로 명시한 user object를 오픈하고, 스크립트에서 property들을 사용 가능하게 한다.

OpenTabWithParm -- Integer

탭 페이지로 명시한 user object를 오픈하고, 스크립트에서 property들을 사용 가능하게 하고, Message object에 파라미터를 저장한다.

PointerX -- Integer

control의 좌측면으로부터 포인터까지의 거리를 리턴한다.

PointerY -- Integer

control의 상단으로부터 포인터까지의 거리를 리턴한다.

PostEvent -- Boolean

명시한 object의 이벤트 큐(queue) 끝에 이벤트를 추가한다.

Print -- Integer

control의 내용을 인쇄한다. 페이지 범위와 그 밖의 설정사항 등을 명시할 수 있다.

Resize -- Integer

폭과 높이 argument로 크기를 명시하여 탭 페이지 크기를 변경한다.

SelectTab -- Integer

탭 페이지를 선택한다.

SetFocus -- Integer

control에 focus를 설정한다.

SetPosition -- Integer

윈도우 내에서의 control 위치를 명시한다.

SetRedraw -- Integer

control을 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

control을 보이게 한다.

TabPostEvent -- Integer

각 탭 페이지의 message 큐 끝에 이벤트를 추가한다.

TabTriggerEvent -- Integer

모든 탭 페이지와 각 페이지에 이벤트를 보내고, 그 이벤트와 연관된 스크립트를 실행한다.

TriggerEvent -- Integer

control내에 명시된 이벤트를 트리고하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control 타입을 리턴한다.


Properties for the Tab

Properties for the Tab control

Alignment -- Alignment (열거형)

모든 탭에 관한 레이블의 정렬방식을 명시한다.

Left!

Center!

Right!

BackColor -- Long

배경색상 값을 명시한다 : -2 부터 16,777,215

BoldSelectedText -- Boolean

선택한 탭을 강조체로 할 것인지 명시한다.

True | 선택한 탭 텍스트를 강조체로 한다
False | 선택한 탭 텍스트를 다른 탭과 동일하게 설정한다

BringToTop -- Boolean

control을 윈도우의 맨 위로 옮길 것인지 명시한다.

True | 맨 위로 옮긴다
False | 맨 위로 옮기지 않는다

CreateOnDemand -- Boolean

Tab control이 생성될 때 모든 탭 페이지상에 있는 control의 그래픽-표현을 생성할 것인지 명시한다.

True | tab page가 선택될 때까지 탭 페이지의 그래픽-표현을 생성하지 않는다
False | (기본설정 값) Tab 컨트롤이 생성될 때 tab page의 그래픽-표현이 생성된다.

CreateOnDemand가 True일 때, Tab 컨트롤내의 모든 tab page상에 있는 컨트롤은 Tab 컨트롤이 생성될 때 생성되지만, 보이지않는 tab page의 컨트롤에 관한 Constructor event는 사용자가 그 tab page를 보이게 할 때까지 트리거 되지 않는다. 컨트롤의 Constructor event가 실행될 때까지, 컨트롤의 그래픽-표현은 생성되지 않고, handle도 사용할 수 없다. 선택된 탭 페이지상의 컨트롤에 관한 Constructor event는 Tab 컨트롤이 생성될 때 항상 trigger된다. 많은 control을 가진 탭 페이지의 경우 그래픽-표현의 생성이 지연되면 윈도우는 더 빨리 오픈될 것이다. 그러나, 스크립트는 탭 페이지상의 control에 관한 Constructor 이벤트가 실행되고 그래픽-표현이 생성될 때 까지 그 control을 참조할 수 없다.

Control[ ] -- UserObject

Tab 컨트롤안의 tab page 배열을 명시한다.

DragAuto -- Boolean

control이 자동으로 Drag 모드에 들어가게 할 것인지 명시한다.

True | control이 클릭 되었을 때, 자동으로 Drag 모드가 된다
False | control이 클릭 되었을 때, 자동으로 Drag 모드가 되지 않는다. 반드시 Drag 함수를 사용하여 Drag 모드에 들어가도록 만들어야 한다.

DragIcon -- String

control을 드래그할 때 표시하고자 하는 내장 아이콘 또는 아이콘을 포함하고있는 파일(ICO 파일) 이름을 명시한다. 기본 설정된 아이콘은 그 control 크기의 박스이다. control을 드래그할 때, drop할 수 있는 control 영역 위에 오면 아이콘이 표시된다. control을 drop 할 수 없는 영역 위에 있을 때에는 No-Drop 아이콘이 표시된다.

* Platform note *

ICO 파일은 Windows와 Macintosh platform에서만 지원된다.

Enabled -- Boolean

control을 사용할 수 있는지 여부 (선택할 수 있는지 여부)를 명시한다.

True | 선택 가능하다
False | 선택할 수 없다

FaceName -- String

탭의 텍스트 레이블로 사용될 typeface 이름을 명시한다 (예, ARIAL 또는 COURIER).

FixedWidth -- Boolean

tab이 고정된 폭을 갖는지 명시한다. 즉, 레이블 텍스트 길이에 의하여 줄어들지 않는다는 것을 의미한다.

True | Tab의 폭을 고정한다.(폭은 가장 긴 레이블에 의하여 결정된다)
False | 텍스트 레이블의 길이에 맞게 Tab 폭이 조정된다.

FocusOnButtonDown -- Boolean

사용자가 tab 위에 클릭할 때 각각의 tab이 포커스를 가지는지 명시한다.

True | 사용자가 클릭한 탭이 focus를 갖는다 (탭 주위에 점으로된 사각형이 표시된다)
False | tab은 어느 경우에라도 focus를 갖지 않고, 선택된 tab page가 맨 앞으로 온다.

FontCharSet -- FontCharSet (열거형)

탭의 텍스트 레이블에 관한 문자 세트를 명시한다.

ANSI!

ChineseBig5!

DefaultCharset!

HangEul!

OEM!

Shiftjis!

Symbol!

FontFamily -- FontFamily (열거형)

tab의 텍스트 레이블에 관한 font family(타입, 스타일)을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

tab의 텍스트 레이블에 관한 font pitch(간격)을 명시한다.

Default!

Fixed!

Variable!

Height -- Integer

컨트롤의 높이를 명시한다.(PowerBuilder 단위)

Italic -- Boolean

탭 텍스트를 이탤릭으로 할 것인지 명시한다.

True | 텍스트 레이블이 이탤릭이다
False | 이탤릭이 아니다

Multiline -- Boolean

하나 이상의 row내에 탭을 나타낼 수 있는지 명시한다.

True | 단일 row내에 모든 tab에 관한 장소가 없으면, tab들은 여려 row안에 배열될 것이다.
False | 단일 row내 모든 tab에 관한 장소가 없으면, 나타나지 않은 탭으로 스크롤 할 수 있도록 양방향(↔) control이 표시될 것이다.

PerpendicularText -- Boolean

탭 레이블을 탭 페이지에 수직으로 나타낼 것인지 명시한다.

True | 텍스트가 탭 페이지에 수직이 되어, 결과적으로 좁은 탭이 된다
False | 텍스트가 탭 페이지를 따르게 되어, 결과적으로 넓은 탭이 된다

PictureOnRight -- Boolean

탭 레이블의 한 부분인 그림이 텍스트의 오른쪽으로 오게 할 것인지 명시한다

True | 그림을 오른쪽에 놓는다
False | 그림을 왼쪽에 놓는다

Pointer -- String

control에 사용될 내장 포인터 또는 포인터를 포함하고있는 파일 이름을 명시한다.

PowerTips -- Boolean

마우스 포인터가 탭 위에 머무를 때 탭 페이지에 관한 PowerTipText를 표시할 것인지 명시한다. PowerTips는 탭이 그림으로 된 레이블일 경우 유용하다.

True | PowerTipText를 나타낸다
False | PowerTips을 나타내지 않는다

RaggedRight -- Boolean

탭을 control의 모서리까지 채워서 나타낼 것인지 명시한다.

True | 레이블 텍스트와 FixedWidth property에 의하여 결정된 탭 크기를 유지한다.
False | 모서리까지 채워서 탭을 나타낸다

SelectedTab -- Integer

선택된 탭의 인덱스 번호를 명시한다.

ShowPicture -- Boolean

각 tab에 관하여 선택된 그림을 나타낼 것인지 명시한다.

True | 각 tab에 관한 그림을 보여준다
False | 그림을 보여주지 않는다.

ShowText -- Boolean

각 tab label에 관하여 명시된 텍스트를 나타낼 것인지 명시한다.

True | 각 tab에 관한 텍스트를 보여준다
False | 각 tab에 관한 텍스트를 보여주지 않는다.

TabOrder -- Integer

윈도우 내에서 control의 탭 값을 명시한다 (0은 control에 탭으로 이동할 수 없음을 의미한다)

TabPosition -- TabPosition (열거형)

탭을 Tab control 주위의 어떤 곳에 나타낼 것인지 명시한다.

TabsOnBottom! | 바닥에 나타낸다
TabsOnBottomAndTop! | 선택되기 이전의 탭은 상단에 나타내고, 선택한 탭과 이전에 선택하였던 탭은 바닥에 나타낸다
TabsOnLeft! | 왼쪽에 나타낸다
TabsOnLeftAndRight! | 선택되기 이전의 탭과 선택한 탭은 왼쪽에 나타내고, 이전에 선택하였던 탭은 오른쪽에 나타낸다
TabsOnRight! | 오른쪽에 나타낸다
TabsOnRightAndLeft! | 선택되기 이전의 탭은 왼쪽에 나타내고, 선택한 탭과 이전에 선택하였던 탭은 오른쪽에 나타낸다
TabsOnTop! | 상단에 나타낸다
TabsOnTopAndBottom! | 선택되기 이전의 탭과 선택한 탭은 상단에 나타내고, 이전에 선택하였던 탭은 바닥에 나타낸다

Tag -- String

control에 할당된 태그 값을 명시한다.

TextSize -- Integer

control내의 텍스트 크기를 포인트(point)로 명시한다. 이전 버전과의 호환을 위하여, 그 크기는 음수로 저장된다; 예를들어, 10-포인트 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

control 텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄이 있다
False | 텍스트에 밑줄이 없다

Visible -- Boolean

control을 보이게 할 것인지 명시한다.

True | control을 보이게 한다
False | control을 보이지 않게 한다

Weight -- Integer

컨트롤내 텍스트의 두께를 명시한다. 예를 들어 400은 보통이고 700은 강조다.

Width -- Integer

control을 포함하고있는 박스의 폭을 픽셀(pixel)로 명시한다.

X -- Integer

X 위치 (윈도우 좌측면으로부터의 거리)를 PowerBuilder 단위로 명시한다.

Y -- Integer

Y 위치 (윈도우 상단으로부터의 거리)를 PowerBuilder 단위로 명시한다.


Events for TreeViews

BeginDrag

왼쪽 마우스 버튼으로 드래그 작용을 시작할 때 발생한다. DragAuto property가 True로 설정되어있으면, 드래그가 자동으로 시작된다. DragAuto property가 False로 설정되어있으면, 드래그 작용은 반드시 프로그램으로 시작하여야 한다.

BeginLabelEdit

TreeView 아이템 레이블을 편집하기 시작할 때 발생한다.

Return 1 | 새로운 텍스트를 받아들이지 않는다
Return 0 | 새로운 텍스트를 받아들인다

BeginRightDrag

오른쪽 마우스 버튼으로 드래그 작용을 시작할 때 발생한다. DragAuto property가 True로 설정되어있으면, 드래그가 자동으로 시작된다. DragAuto property가 False로 설정되어있으면, 드래그 작용은 반드시 프로그램으로 시작하여야 한다.

Clicked

control이 클릭 되었을 때 발생한다.

Constructor

object가 생성되었을 때, 윈도우내의 Open 이벤트 발생직전에 먼저 발생한다.

DeleteItem

TreeView 아이템이 삭제 되었을 때 발생한다.

Destructor

object가 제거되었을 때, 윈도우내의 Close 이벤트 발생직전에 먼저 발생한다.

DoubleClicked

control이 더블-클릭 되었을 때 발생한다.

DragDrop

드래그된 control이 TreeView control 상에 drop될 때 발생한다.

DragEnter

드래그된 control이 대상 control에 들어갈 때 발생한다 (표시 영역 주위에 있는 경계선에 들어가는 것도 포함한다).

DragLeave

드래그된 control이 대상 control을 떠날 때 발생한다 (탭 페이지 표시 영역으로 들어가는 것도 포함한다).

DragWithin

드래그된 control이 대상 control내에 포함될 때 발생한다 (TreeView 아이템 상에 위치하는 것은 제외)

EndLabelEdit

TreeView 아이템 레이블 편집을 종료하였을 때 발생한다.

Return 1 | 새로운 텍스트를 받아들이지 않는다
Return 0 | 새로운 텍스트를 받아들인다

GetFocus

control이 focus를 받기 직전 (선택된 후 활성화되기 직전)에 발생한다.

ItemCollapsed

아이템을 축소하였을 때 발생한다.

ItemCollapsing

아이템이 축소될 때 발생한다.

Return 1 | 축소된 형태를 받아들이지 않는다
Return 0 | 축소된 형태를 받아들인다

ItemExpanded

아이템이 확장 되었을 때 발생한다.

ItemExpanding

아이템이 확장될 때 발생한다.

Return 1 | 확장된 형태를 받아들이지 않는다
Return 0 | 확장된 형태를 받아들인다

아이템이 확장될 때 마다 자식 아이템들을 나타내기 원한다면, ItemExpanding 이벤트에서 명시하여야 한다. ItemPopulate 또는 Item Expanding 이벤트 중에 자식(children) 아이템이 생성되지 않으면, 아이템은 확장되지 않는다.

ItemPopulate

아이템이 처음 확장될 때 발생한다.

Return 1 | 확장을 방지한다
Return 0 | 확장을 허락한다

ItemPopulate 또는 Item Expanding 이벤트 중에 자식(children) 아이템이 생성되지 않으면, 아이템은 확장되지 않는다.

Key

사용자가 키를 누를 때 발생한다.

LoseFocus

control이 focus를 잃을 때 (비활성화 될 때) 발생한다.

Other

PowerBuilder 이벤트 메시지가 아닌 Windows 메시지가 발생할 때 발생한다

RightClicked

control이 오른쪽 클릭 되었을 때 발생한다.

RightDoubleClicked

control이 오른쪽 더블-클릭 되었을 때 발생한다.

SelectionChanged

선택이 변경되었을 때 발생한다.

SelectionChanging

선택이 변경될 때 발생한다.

Return 1 | 선택 변경을 방지한다
Return 0 | 선택 변경을 허락한다.

Sort

두 아이템들이 비교될 때 발생한다.


Functions for TreeViews

AddPicture -- Integer

이미지 리스트에 icon, cursor, bitmap 등을 추가한다. PictureName[ ]은 갱신하지 않는다.

AddStatePicture -- Integer

state 이미지 리스트에 icon, cursor, bitmap 등을 추가한다. StatePictureName[ ]은 갱신하지 않는다.

ClassName -- String

control 이름을 리턴한다.

CollapseItem -- Integer

명시한 TreeView 아이템을 취합한다.

DeleteItem -- Integer

명시한 TreeView 아이템을 삭제한다.

DeletePicture -- Integer

이미지 리스트에서 명시한 icon, cursor, 또는 bitmap을 삭제한다.

DeletePictures -- Integer

이미지 리스트에서 모든 icon, cursor, 또는 bitmap을 삭제한다.

DeleteStatePicture -- Integer

state 이미지 리스트에서 명시한 icon, cursor, 또는 bitmap을 삭제한다.

DeleteStatePictures -- Integer

state 이미지 리스트에서 모든 icon, cursor, 또는 bitmap을 삭제한다.

Drag -- Integer

TreeView 아이템의 드래깅을 시작하거나 종료한다.

EditLabel -- Integer

명시한 TreeView 아이템 레이블의 편집을 시작한다.

ExpandAll -- Integer

명시한 TreeView 아이템에 속한 아이템과 하위 레벨들을 확장한다.

ExpandItem -- Integer

명시한 TreeView 아이템을 확장한다.

FindItem -- Long

명시한 TreeView 아이템에 관한 handle을 리턴한다.

GetItem -- Integer

명시한 아이템에 관한 정보를 구한다.

GetParent -- PowerObject

parent object 이름을 리턴한다.

Hide -- Integer

명시한 TreeView 아이템을 숨긴다.

InsertItem -- Long

아이템을 TreeView control의 명시한 레벨에 삽입한다.

InsertItemFirst -- Long

명시한 아이템을 TreeView control의 레벨에 첫 번째 아이템으로 삽입한다.

InsertItemLast -- Long

명시한 아이템을 TreeView control의 레벨에 마지막 아이템으로 삽입한다.

InsertItemSort -- Long

명시한 아이템을 정렬 순서에 맞게 삽입한다.

Move -- Integer

control이나 object를 명시한 위치로 이동한다.

PointerX -- Integer

object의 좌측면으로부터 포인터 위치까지의 거리를 구한다.

PointerY -- Integer

object의 상단으로부터 포인터 위치까지의 거리를 구한다.

PostEvent -- Boolean

object의 이벤트 큐 마지막에 이벤트를 추가한다.

Print -- Integer

print job에 object 또는 텍스트를 포함시킨다.

Resize -- Integer

control 크기를 명시한 차원으로 재조정한다.

SelectItem -- Integer

control에서 아이템을 찾고 반전시킨다. 아이템 텍스트를 알고 위치를 알지 못할때에는 Syntax 1을 이용한다. 아이템의 위치를 알거나 현재 선택을 지우고자 할 때에는 Syntax 2를 이용한다.

SetDropHighlight -- Integer

명시한 아이템을 DragDrop 작업의 target으로 지정한다.

SetFirstVisible -- Integer

명시한 아이템을 TreeView control에서 첫 번째로 보이는 아이템으로 설정한다. 명시한 아이템이 화면상에 나타나있지 않을 경우에는 control의 상단으로 스크롤한다. 화면상에 나타나 있으면 그 아이템이 선택된다.

SetFocus -- Integer

명시한 object 또는 control에 focus를 설정한다.

SetItem -- Integer

명시한 TreeView 아이템에 관한 정보를 설정한다.

SetLevelPictures -- Integer

명시한 레벨에서 모든 아이템에 관한 그림 인덱스를 지정한다.

SetOverlayPicture -- Integer

그림 인덱스를 중첩 그림 인덱스에 대응시킨다. 4개의 중첩 그림 인덱스만 사용 가능하다.

SetPosition -- Integer

윈도우내에서 TreeView control의 위치를 설정한다.

SetRedraw -- Integer

property가 변경되면 object를 자동으로 다시 그릴 것인지 제어한다.

Show -- Integer

object 또는 control이 숨겨져 있으면, 나타나게 한다. object가 이미 나타나 있으면, 제일 위쪽으로 가져 온다.

Sort -- Integer

명시한 TreeView 아이템의 자식들을 정렬한다.

Sortall -- Integer

명시한 TreeView 아이템의 자식들과 모든 하위레벨을 정렬한다.

TriggerEvent -- Integer

명시한 이벤트를 트리거하고 그 이벤트에 관한 스크립트를 실행한다.

TypeOf -- Object

control의 타입을 리턴한다.


Properties for TreeView

Properties for TreeViews

Accelerator -- Integer

control에 사용할 가속키(accelerator key)의 ASCII 값을 명시한다.

BackColor -- Long

배경색의 수치 값을 명시한다 : -2 부터 16,777,215

Border -- Boolean

control이 경계선을 갖는지 명시한다.

True | control이 경계선을 갖는다
False | 경계선을 갖지 않는다

BorderStyle -- BorderStyle (열거형)

control의 경계선 스타일을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

control을 맨 위로 이동 시킬 것인지 여부를 명시한다.

True | control을 맨 위에 나타낸다
False | control을 이동 시키지 않는다

DeleteItems -- Boolean

DELETE 문장을 사용하여 TreeView control의 아이템을 삭제할 수 있도록 할 것인지 여부를 명시한다.

True | control에서 아이템을 삭제할 수 있다
False | 아이템을 삭제할 수 없다

DisableDragDrop -- Boolean

아이템에 클릭하고 드래그할 때 BeginDrag와 같은 드래그에 관련된 이벤트를 발생시키지 않도록 한다.

True | Drag 이벤트가 트리거 되지 않는다
False | Drag 이벤트가 트리거 된다

DragAuto -- Boolean

control을 자동으로 Drag 모드에 들어가도록 할 것인지 명시한다.

True | control이 클릭되면, 자동으로 Drag 모드에 들어간다
False | 자동으로 Drag 모드에 들어가지 않는다. Drag 함수를 이용하여 control이 Drag 모드가 되도록 하여야 한다

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , stock 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다.(적절한 drop 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platforms에서만 제공된다.

EditLabels -- Boolean

선택된 아이템에 클릭하여 아이템 레이블을 편집할 수 있도록 할 것인지 명시한다.

True | 아이템 레이블을 편집할 수 있다
False | 레이블을 편집할 수 없다

Enabled -- Boolean

컨트롤의 사용가능 여부를 명시한다.

True | 컨트롤을 클릭할 수 있다.
False | 컨트롤을 클릭할 수 없다.

FaceName -- String

컨트롤의 텍스트 서체명을 명시한다.(예를 들어, ARIAL 또는 COURIE).

FontCharSet -- FontCharSet (열거형)

컨트롤안에 있는 텍스트에 사용될 수 있는 폰트 문자를 명시한다.

ANSI!

ChineseBig5!

DefaultCharSet!

Hangeul!

OEM!

ShiftJIS!

Symbol!

FontFamily -- FontFamily (열거형)

컨트롤 안에 있는 텍스트에 사용될 수 있는 폰트스타일을 명시한다.

AnyFont!

Decorative!

Modern!

Roman!

Script!

Swiss!

FontPitch -- FontPitch (열거형)

컨트롤안에 있는 텍스트에 사용될 수 있는 폰트피치를 명시한다.

Default!

Fixed!

Variable!

HasButtons -- Boolean

TreeView parent 아이템이 확장(-) 또는 축소(+)를 나타내는 + 와 - 버튼들을 가질 것인지 명시한다.

True | parent 아이템이 버튼을 갖는다
False | 버튼을 갖지 않는다

HasLines -- Boolean

TreeView 아이템을 라인으로 연결할 것인지 여부를 명시한다.

True | 아이템들이 라인으로 연결된다
False | 라인으로 연결되지 않는다

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

HideSelection -- Boolean

control이 focus를 갖지 않을 때 선택된 텍스트를 반전 시킬 것인지 명시한다.

True | 반전된 상태를 유지하지 않는다
False | 텍스트의 반전된 상태를 유지한다

Indent -- Integer

TreeView 아이템의 들여쓰기 크기를 PowerBuilder 단위로 명시한다.

Italic -- Boolean

컨트롤 안에 있는 텍스트를 이탤릭체로 할 것인지를 명시한다.

True | 텍스트는 이탤릭체다.
False | 텍스트는 이탤릭체가 아니다

LinesAtRoot -- Boolean

TreeView 루트 아이템과 라인으로 연결할 것인지 여부를 명시한다.

True | 루트 아이템과 라인으로 연결된다
False | 라인으로 연결되지 않는다

PictureHeight -- Integer

TreeView 아이템 그림의 높이를 PowerBuilder 단위로 명시한다. 이 값은 그림 인덱스 리스트에 그림이 추가되기 전에만 가능하다. 그림 높이를 0으로 설정하면, 그림 인덱스 리스트에 처음으로 추가된 그림의 높이를 사용한다.

PictureMaskColor -- Long

TreeView 아이템 그림에 사용될 투명한 색상을 명시한다. 그림이 처음에 추가될 때 또는 AddPicture 함수로 추가될 때 사용되며, 그림을 추가하면서 변경할 수도 있다.

PictureName[ ] -- String

TreeView에 사용할 그림 이름을 명시한다. 그림은 아이콘, 커서, 사용자가 지정한 비트맵이나 PowerBuilder 라이브러리에 저장된 그림 등이다. 초기화한 이후에는 변경할 수 없다.

PictureWidth -- Integer

TreeView 아이템 그림의 폭을 PowerBuilder 단위로 명시한다. 이 값은 그림 인덱스 리스트에 그림을 추가하기 전에만 설정할 수 있다. 그림 폭이 0이면, 그림 인덱스 리스트에 처음으로 추가된 그림의 폭을 사용한다.

Pointer -- String

control에 사용할 등록된 포인터 또는 그 포인터를 포함하고있는 파일 이름을 명시한다.

SortType -- grSortType

아이템 이름에 기초하여 아이템을 알파벳 순으로 정렬한다.

Ascending!

Descending!

UserDefined!

Unsorted!

StatePictureHeight -- Integer

state 그림의 높이를 PowerBuilder 단위로 명시한다. 이 값은 state 그림 리스트에 state 그림을 추가하기 전에만 설정할 수 있다. state 그림 폭이 0이면, state 그림 인덱스 리스트에 처음으로 추가된 그림의 폭을 사용한다.

StatePictureMaskColor -- Long

state 그림에 사용될 투명한 색상을 명시한다. 그림이 처음에 추가될 때 또는 AddStatePicture 함수로 추가될 때 사용되며, 그림을 추가하면서 변경할 수도 있다.

StatePictureName[ ] -- String

state 그림으로 사용할 그림 이름을 명시한다. 그림은 아이콘, 커서, 사용자가 지정한 비트맵이나 PowerBuilder 라이브러리에 저장된 그림등이다. 초기화한 이후에는 변경할 수 없다.

StatePictureWidth -- Integer

state 그림의 폭을 PowerBuilder 단위로 명시한다. 이 값은 state 그림 인덱스 리스트에 그림을 추가하기 전에만 설정할 수 있다. state 그림 폭이 0이면, state 그림 인덱스 리스트에 처음으로 추가된 그림의 폭을 사용한다.

TabOrder -- Integer

윈도우내 control의 탭 값을 명시한다 (0은 컨트롤에 tab을 옮길 수 없음을 의미한다).

Tag -- String

control에 할당된 태그 값을 명시한다.

TextColor -- Long

텍스트로 사용될 색상 값을 명시한다 : -2 부터 16,777,215.

TextSize -- Integer

텍스트 크기를 point로 명시한다. 이전 버전과의 호환을 위하여, 음수로 저장된다; 예를들어, 10-point 텍스트 크기는 -10으로 저장된다.

Underline -- Boolean

텍스트의 밑줄 여부를 명시한다.

True | 텍스트에 밑줄을 나타낸다
False | 밑줄을 나타내지 않는다

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | Control을 보이게 한다.
False | Control을 보이지 않게 한다.

Weight -- Integer

컨트롤내 text의 두께를 명시한다(예를 들어 400은 보통, 700은 강조).

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위).

X -- Integer

윈도우의 좌측면으로부터 X의 위치를 명시한다(PowerBuilder 단위).

Y -- Integer

윈도우의 상단으로부터 Y의 위치를 명시한다(PowerBuilder 단위).


Events for UserObjects

Constructor

윈도우의 Open event가 발생하기 직전에 일어난다.

Destructor

윈도우의 Close event가 발생하기 직전에 일어난다.

DragDrop

드래그된 컨트롤이 object위에 drop될 때 일어난다.

DragEnter

드래그된 컨트롤이 object안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 object를 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 object에 겹칠 때 발생한다.

Other

PowerBuilder event에서가 아닌 Windows message가 일어날 때 발생한다.

RButtonDown

object내에서 마우스 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for UserObjec

Functions for UserObjects

AddItem -- Integer

(VBX 사용자 object는 AddItem method만 지원한다) 리스트에 아이템을 추가한다.

ClassName -- String

object에 할당된 이름을 리턴한다.

DeleteItem -- Integer

(VBX 사용자 object는 RemoveItem method만 지원한다) 리스트에서 아이템을 삭제한다.

Drag -- Integer

object의 드래깅을 시작하거나 끝낸다.

EventParmDouble -- Integer

double변수에 명시한 numeric event parameter를 저장한다

* Platform note *

VBX user object는 Windows 3.1 과 Windows 95에서만 제공된다.

EventParmString -- Integer

명시한 이벤트 파라미터 문자열을 string 변수에 저장한다.

* Platform note *

VBX user object는 Windows 3.1 과 Windows 95에서만 제공된다.


Properties for UserObje

Properties for UserObjects

BackColor -- Long

배경색의 수치값을 명시한다.(-2 에서부터 16,777,215까지) color에 관한 좀더 많은 정보를 얻으려면 PowerScript Reference를 참고한다.

Border -- Boolean

object가 border를 가질 것인지 명시한다.

True | Object가 border를 갖는다.
False | Object border를 갖지 않는다.

BorderStyle -- BorderStyle (열거형)

object의 border style을 명시한다.

StyleBox!

StyleLowered!

StyleRaised!

StyleShadowBox!

BringToTop -- Boolean

컨트롤을 윈도우의 맨 위로 옮길 것인지 명시한다.

True | Object를 맨 위로 옮긴다.
False | Object 맨 위로 옮기지 않는다.

ClassName -- String(External user object만 가능)

object에 할당된 이름을 리턴한다.

ColumnsPerPage -- Integer

page상에 있는 칼럼의 수를 리턴한다. 기본값은 0이다.(page마다 10칼럼) PowerBuilder는 사용자가 스크롤바를 클릭할 때 object를 수평으로 스크롤하기 위한 PowerBuilder 단위의 수를 결정하기 위하여 UnitsPerColumn과 ColumnsPerPage를 곱한다.

Control[ ] -- WindowObject

컨트롤 object들을 명시한다. 사용자는 스크립트내에서 배열의 내용을 변경할 수 없다.

DragAuto -- Boolean

PowerBuilder가 object를 자동으로 Drag 모드로 둘 것인지 명시한다.

True | object를 클릭할 때, 자동으로 Drage 모드로 둔다.
False | object를 클릭할 때, 자동으로 Drag 모드로 두지 않는다. 사용자가 object를 수동으로 Drag 모드에 두려면 Drag 함수를 사용하여야 한다.

DragIcon -- String

object에 사용할 내장(stock) icon 또는 icon을 포함하고 있는 파일 이름을 명시한다(ICO 파일). 기본 아이콘은 object 크기의 box 모양이다. 사용자가 object를 드래그할 때, object가 drop될 수 있는 영역 위에 있을 때 아이콘이 나타난다(적절한 drop 영역). object가 적절하지 않은 drop 영역 위에 있을 때, No-Drop 아이콘을 보여준다.

* Platform 정보 *

ICO 파일들은 Windows 와 Macintosh platform에서만 지원된다.

Enabled -- Boolean

object를 사용 가능하게 할 것인지 명시한다(선택할 수 있다).

True | Object를 선택할 수 있다.
False | Object를 선택할 수 없다.

Height -- Integer

PowerBuilder 단위로 object의 높이를 명시한다.

HScrollBar -- Boolean

수평 스크롤바를 보여줄 것인지 명시한다.

True | 수평 스크롤바를 보여준다.
False | 수평 스크롤바를 보여주지 않는다.

LibraryName -- String(External user object만 가능)

external user object class가 포함하고 있는 dynamic-link library(DLL) 이름을 리턴한다.

LinesPerPage -- Integer

page상에 라인의 수를 명시한다. 기본값은 0이다.(page마다 10줄) PowerBuilder는 사용자가 스크롤바를 클릭할 때 object를 수직으로 스크롤 하기위한 PowerBuilde 단위의 수를 결정하기 위해서 UnitsPerLine과 LinesPerPage를 곱한다.

ObjectType -- UserObjects (열거형)

user object의 type을 리턴한다.

CustomVisual!

ExternalVisual!

VBXVisual!

PictureMaskColor -- Long

배경색을 변경할 picture내의 색상 수치 값을 명시한다. PictureName이 bitmap과 UserObject가 탭 페이지일 때만 가능하다.(값은 -2에서 16,777,215까지). 색상에 관한 좀더 많은 정보를 얻으려면, PowerScript Reference를 참조한다.

PictureName -- String

열거형 데이터 타입 또는 tab page 위에 보여진 bitmap, cursor, icon의 파일명인 포인터의 값을 명시한다. property는 UserObject가 tab page일 때만 적용한다.

Pointer -- String

내장(stock) pointer 또는 object에 사용될 포인터를 포함하고 있는 파일의 이름을 명시한다.

PowerTipText -- String

탭 컨트롤의 PowerTip의 property가 True일 때, PowerTip에 나타낼 텍스트를 명시한다. property는 UserObject가 tab page일 때만 적용한다.

Style -- Long

컨트롤에 object를 나타내는 방법을 사용할 추가적인 style를 명시한다.(external user object만)

TabBackColor -- Long

탭 배경색의 수치 값을 명시한다.(-2에서 16,777,215까지). property는 UserObject가 tab page일때만 적용한다. 색상에 관한 좀 더 많은 정보 대해서는 PowerScript Reference를 참고한다.

TabTextColor -- Long

탭의 텍스트 색상 수치값을 명시한다.(-2에서 16,777,215까지). property는 UserObject가 tab page일때만 적용한다. 색상에 관한 좀 더 많은 정보 대해서는 PowerScript Reference를 참고한다.

TabOrder -- Integer

user object내에 있는 컨트롤의 탭값을 명시한다(0은 컨트롤에서 탭을 사용할 수 없음을 뜻한다).

Tag -- String

object에 할당된 tag 값을 명시한다.

Text -- String

object내에 나타낼 텍스트 값을 명시한다.

UnitsPerColumn -- Integer

사용자가 수평스크롤바 내의 왼쪽 또는 오른쪽화살표 키를 클릭했을 때 오른쪽 또는 왼쪽으로 스크롤 하기 원하는 PowerBuilder 단위의 수를 명시한다. 기본값은 0이다.(윈도우 폭의 100분의 1). UnitsPerColumn이 0일 때, PowerBuilder 컨트롤들은 자동적으로 수평으로 스크롤한다. PowerBuilder는 사용자가 스크롤바를 클릭 할 때, user object를 수평으로 스크롤하기 위해서 PowerBuilder 단위의 수를 결정하는 UnitsPerColumn과 ColumnsPerPage를 곱한다.

UnitsPerLine -- Integer

사용자가 컨트롤의 수직 스크롤바 내에 위 또는 아래 화살표를 클릭할 때, 위 또는 아래로 스크롤할 PowerBuilder 단위의 수를 명시한다. 기본값은 0이다(user object 높이의 100분의 1이다). UnitsPerLine이 0일 때, PowerBuilder 컨트롤은 자동적으로 수직 스크롤한다. PowerBuilder는 사용자가 스크롤바를 클릭 할 때, user object를 수직으로 스크롤하기 위해서 PowerBuilder 단위의 수를 결정하는 UnitsPerPage와 UnitsPerLine을 곱한다.

Visible -- Boolean

object를 보이게 할 것인지 명시한다.

True | Object를 보이게 한다.
False | Object를 보이지 않게 한다.

VScrollBar -- Boolean

수직 스크롤바를 나타낼 것인지 명시한다.

True | 수직 스크롤바를 보여준다.
False | 수직 스크롤바를 보이지 않는다.

Width -- Integer

PowerBuilder 단위에서 object의 폭을 명시한다.

X -- Integer

PowerBuilder 단위에서 object의 X 위치를 명시한다( 화면의 좌측면으로부터 떨어진 거리)

Y -- Integer

PowerBuilder 단위에서 object의 Y 위치를 명시한다( 화면의 상단으로부터 떨어진 거리).


Events for VScrollBars

Constructor

윈도우의 Open event가 발생하기 직전에 발생한다.

Destructor

윈도우의 Close event가 발생하기 직전에 발생한다.

DragDrop

드래그된 컨트롤이 drop될 때 발생한다.

DragEnter

드래그된 컨트롤이 컨트롤 안으로 들어갈 때 발생한다.

DragLeave

드래그된 컨트롤이 컨트롤을 떠날 때 발생한다.

DragWithin

드래그된 컨트롤이 컨트롤에 겹칠 때 발생한다.

GetFocus

컨트롤이 포커스를 받기 직전에 발생한다(컨트롤이 선택되고 활성화된다).

LineDown

컨트롤의 아래화살표 키를 클릭할 때 발생한다.

LineUp

컨트롤의 위 화살표 키를 클릭할 때 발생한다.

LoseFocus

컨트롤이 포커스를 잃어버릴 때 발생한다(활성화된다).

Moved

스크롤 박스를 옮길 때 발생한다.(새로운 위치를 결정할 때 Position property를 사용한다).

Other

PowerBuilder event가 아니라 Windows message가 일어날 때 발생한다.

PageDown

스크롤 박스 아래로 클릭할 때

PageUp

스크롤 박스 위로 클릭할 때

RButtonDown

컨트롤 위에서 마우스의 오른쪽 버튼을 눌렀을 때 발생한다.


Functions for VScrollBa

Functions for VScrollBars

ClassName -- String

컨트롤에 할당된 이름을 리턴한다.

Drag -- Integer

컨트롤의 drag를 시작하거나 끝낸다.

GetParent -- PowerObject

parent object의 이름을 리턴한다.

Hide -- Integer

컨트롤을 보이지 않게 만든다.

Move -- Integer

컨트롤을 명시된 위치로 옮긴다.

PointerX -- Integer

포인터가 컨트롤의 좌측면으로부터 떨어진 거리를 리턴한다.

PointerY -- Integer

포인터가 컨트롤의 상단으로부터 떨어진 거리를 리턴한다.

PostEvent -- Boolean

컨트롤에 관한 메시지 큐 끝에 이벤트를 추가한다.

Print -- Integer

컨트롤을 출력한다.

Resize -- Integer

컨트롤의 크기를 변경한다.

SetFocus -- Integer

포커스를 명시한 컨트롤에 설정한다.

SetPosition -- Integer

컨트롤의 위치를 윈도우의 앞 뒤 순서로 명시한다.

SetRedraw -- Integer

컨트롤의 각 속성을 변경한 후에 컨트롤을 자동으로 다시 그리는 것을 제어한다.

Show -- Integer

컨트롤을 보이지 않게 한다.

TriggerEvent -- Integer

컨트롤내에 명시된 이벤트를 trigger하고 이벤트의 스크립트를 실행한다.

TypeOf -- Object

컨트롤의 type을 리턴한다.


Properties for VScrollB

Properties for VScrollBars

BringToTop -- Boolean

윈도우 내에서 control를 맨 위로 옮길 것인지 명시한다.

True | 컨트롤을 맨 위로 옮긴다
False | 컨트롤을 맨 위로 옮기지 않는다

DragAuto -- Boolean

PowerBuilder가 컨트롤을 자동으로 Drag mode에 둘 것인지 명시한다.

True | 컨트롤을 클릭할 때, 자동으로 Drag mode가 된다.
False | 컨트롤을 클릭할 때, 자동으로 Drag mode가 되지 않는다. 사용자는 Drag 함수를 사용하여 컨트롤을 수동으로 드래그모드에 놓아야 한다.

DragIcon -- String

사용자가 컨트롤을 드래그할 때 , 내장(stock) 아이콘 또는 아이콘을 포함하고 있는 파일의 이름(.ICO 파일)을 명시한다. 기본적인 아이콘 모양은 컨트롤 크기의 box모양이다. 사용 자가 컨트롤을 드래그할 때, 컨트롤을 drop 시킬 수 있는 영역 위에 오면 아이콘을 보여준다. (drop 가능한 영역). 컨트롤이 적당하지 않은 영역 위에 있으면, No-Drop 아이콘을 보여준다.

* Platform note *

ICO 파일들은 Windows와 Macintosh platform에서만 제공된다.

Height -- Integer

컨트롤의 높이를 명시한다(PowerBuilder 단위)

MaxPosition -- Integer

scroll box가 컨트롤의 밑바닥에 닿을 때 Position property의 값을 명시한다.

MinPosition -- Integer

scroll box가 컨트롤의 꼭대기에 닿을 때 Position property의 값을 명시한다.

Pointer -- String

control에 사용할 내장(stock) pointer 이름 또는 pointer를 포함하고있는 파일 이름을 명시한다.

Position -- Integer

scroll box의 MinPosition 과 MaxPosition 사이 값을 명시한다.

StdWidth -- Boolean

VScrollBar에 표준 기본 폭을 사용할 것인지 명시한다.

True | 기본 폭을 사용한다.
False | 기본 폭을 사용하지 않는다.

TabOrder -- Integer

윈도우내 컨트롤의 탭 값을 명시한다(0은 사용자가 컨트롤에 탭을 사용할 수 없음을 뜻한다).

Tag -- String

컨트롤에 할당할 tag 값을 명시한다.

Visible -- Boolean

컨트롤을 보이게 할 것인지 명시한다.

True | 컨트롤을 보이게 한다.
False | 컨트롤을 보이지 않게 한다

Width -- Integer

컨트롤의 폭을 명시한다(PowerBuilder 단위에서)

X -- Integer

X 위치를 명시한다(윈도우의 좌측면으로부터 떨어진 거리), PowerBuilder 단위

Y -- Integer

Y 위치를 명시한다(윈도우의 상단으로부터 떨어진 거리), PowerBuilder 단위


BuildModel PowerScript function

설명

SetTraceFileName 함수로 명시한 trace 파일에 기초하여 분석을 수행하거나 tree model을 추적한다. 옵선 argument는 구축과정을 모니터하거나 중단할 수 있도록 한다.

BuileModel함수를 호출하기 전에 SetTraceFileName을 이용하여 모델이될 추적 파일을 반드시 명시하여야 한다.

제어

Profiling and TraceTree objects

문법

instancename.BuildModel ( progressobject, eventname, triggerpercent )

Argument

instancename Profiling 또는 TraceTree object의 실체(instance) 명

progressobject (선택사항) 처리된 수를 나타내는 PowerObject

eventname (선택사항) 정의한 이벤트 명을 명시하는 string

triggerpercent (선택사항) eventname 이벤트를 트리거하기 전에 BuildModel 함수가 처리된 수를 확인하는 long값

Return 값

ErrorReturn.

다음 값중 하나를 리턴한다:

▶ Success! 처리 성공

▶ FileNotSetError! TraceFileName이 설정되지 않았다

▶ ModelExistsError! 이미 구축된 모델이다

▶ EnterpriseOnlyFeature! 이 함수는 PowerBuilder의 Enterprise 판에서만 지원된다

▶ EventNotFoundError! 통과된 progressobject를 발견할 수 없기 때문에, 모델을 구축할 수 없다

▶ EventWrongPrototypeError! 이벤트를 찾았지만 적절한 prototype을 가지고있지 않기 때문에, 모델을 구축할 수 없다

▶ SourcePBLError! source 라이브러리를 찾을 수 없기 때문에, 모델을 구축할 수 없다

용법

BuildModel 함수는 추적 파일로부터 raw 데이터를 추출하고 PowerScript 함수에 의하여 실행될 수 있는 object에 사상(map) 시킨다. 구축과정을 기록하지않고 추적 파일의 모델을 구축하기 원한다면, 선택 argument를 포함시키지 말고 BuildModel 함수를 호출한다. 모델이 생성되는 동안 처리 정보를 받기 원하거나 처리하는 시간이 너무 길어서 중단할 수 있도록하기 원한다면, 선택 argument를 사용하여 BuildModel 함수를 호출한다.

통과된 progressobject상의 eventname 이벤트는 통과된 argument에 의한 수 만큼 활성화 되었을 때 트리거 된다. triggerpercent의 값이 0이면, eventname은 활성화될때마다 트리거된다. triggerpercent가 100보다 크면, 은 eventname 결코 트리거되지 않는다. 이 이벤트는 다음과 같은 문법을 사용하여 정의한다:

eventname ( currentactivity, totalnumberofactivities )

Argument

eventname 이벤트 명

currentactivity 현재 활성화된 수를 확인하기위한 long 값

totalnumberofactivities 추적파일 내에서 활성화된 총 수를 확인하기위한 long 값

Eventname은 boolean 값을 리턴한다. FALSE를 리턴하면, BuildModel 함수에의한 처리는 취소되고 모든 임시 저장내용은 지워져서 처리가 초기화 된다. BuildModel 처리가 너무 길어서 중단할 필요가 있다면, eventname으로부터 FALSE 값을 리턴할 수 있다. eventname에 관하여 작성된 스크립트는 처리과정을 어떻게 관찰할 것인가 결정한다. 예를들어, 모든 처리과정을 나타내거나 취소를 여부 체크를 위하여 간단히 나타낼 수도 있다.

예제

다음 예제는 추적 파일의 수행 분석 모델을 생성한다 :

Profiling lpro_model

String ls_filename

lpro_model = CREATE Profiling

lpro_model.SetTraceFileName(ls_filename)

lpro_model.BuildModel()

다음 예제는 추적 파일의 trace tree 모델을 생성한다:

TraceTree ltct_model

String ls_filename

ltct_model = CREATE TraceTree

ltct_model.SetTraceFileName(ls_filename)

ltct_model.BuildModel()

다음 예제는 수행 분석 모델 (performance analysis model)을 생성한다. BuildModel의 eventanme argument는 ue_progress이고 처리가 5% 진행될 때마다 트리거된다. 구축과정은 Cancel 버튼을 포함하고 있는 w_progress에 보여준다:

Profiling lpro_model

String ls_filename

Boolean lb_cancel

lpro_model = CREATE Profiling

lb_cancel = false

lpro_model.SetTraceFileName(ls_filename)

Open(w_progress)

// w_progress 윈도우를 초기화하기 위하여

// window function of_init를 호출한다

w_progress.of_init(lpro_model.NumberOfActivities, &

'Building Model', This, 'ue_cancel')

lpro_model.BuildModel(This, 'ue_progress', 5)

// w_progress에서 cancel 버튼을 클릭하면 lb_cancel은

// true로 설정되고 ue_progress는 false를 리턴한다

IF lb_cancel THEN

Close(w_progress)

RETURN -1

END IF


#ClassList PowerScript function

설명

수행분석 모델 (performance analysis model)에 포함된 class 리스트를제공한다.

제어

Profiling object

문법

instancename.ClassList ( list )

Argument

instancename Profiling object의 instance 이름

list 모델에 포함된 각 class에 관한 ProfileClass object를 저장하고 있는 ClassList로 ProfileClass 타입의 unbounded 배열

Return 값

ErrorReturn.

다음 값 중에서 리턴한다:

* Success! 처리성공

* ModelNotExistsError! 모델이 존재하지 않음

용법

수행분석 모델에 포함되어있는 class 리스트를 추출하기 위하여 ClassList 함수를 사용한다. 이 함수를 사용하기전에 반드시 BuildModel 함수를 이용하여 trace 파일로부터 수행분석 모델을 생성하여 놓아야 한다. 나열된 각 class는 ProfileClass object로 정의되고 class 이름, parent class와 타입, 그 class와 연관된 루틴의 리스트 등을 제공한다. class는 무순위로 나열된다.

예제

다음 예제는 수행분석 모델에 포함된 class를 리스트한다:

ProfileClass lproclass_list[], lproclass_class

Profiling lpro_model

Long ll_limitclass, ll_indexclass

lpro_model = CREATE Profiling

lpro_model.BuildModel()

lpro_model.ClassList(lproclass_list)

ll_limitclass = UpperBound(lproclass_list)

FOR ll_indexclass = 1 TO ll_limitclass

lproclass_class = lproclass_list[ll_indexclass]

...

참고

BuildModel


#ConnectToRemoteObject PowerScript function

설명

PowerBuilder OLEObject 변수와 연관시키고 서버 응용프로그램을 시작한다.

제어

OLEObject objects

문법

oleobject.ConnectToRemoteObject ( hostname, filename {, classname } )

Argument

oleobject OLE object에 접속하려는 OLEObject 변수 이름. OLE control의 Object property인 OLEObject는 명시할 수 없다.

hostname COM 서버가 위치한 remote 호스트 이름

filename OLE storage 파일 명. 빈 문자열()은 명시할 수 없다. COM은 로컬 (클라이언트) 기계상에서 filename을 찾는다. 만일 filename이 remote 호스트에 위치하고 있으면, 그 위치는 반드시 공유에 의하여 로컬 호스트로 사용할 수 있도록 하여야 한다. Remote 호스트상의 파일을 명시하려면 remote 드라이브의 공유 이름을 사용한다. 예를 들어, \\hostname\shared_directory\test.ext

classname (선택사항) OLE 서버 응용프로그램과 OLE를 통하여 서버가 관리할 수 있는 object 타입을 확인하기위한 OLE class 이름. classname과 filename을 생략하면 (OLE structured atorage 파일), PowerBuilder는 filename내의 class ID를 사용한다. 그 반대의 경우, PowerBuilder는 어떤 서버 응용프로그램을 실행할 것인지 결정하기 위하여 filename의 확장자를 사용한다.

Return 값

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 다음 값을 리턴한다:

-1 부적절한 호출: argument가 control의 Object property 이다

-2 Class 이름을 찾을 수 없다

-3 Object가 생성되어있지 않다

-4 object에 접속할 수 없다

-5 현재 활성화된 object에 접속할 수 없다

-6 파일 이름이 올바르지 않다

-7 파일을 찾을 수 없거나 오픈할 수 없다

-8 load한 파일이 서버에 의하여 지원되지 않는다

-9 그 밖의 에러발생

-10 이 platform을 지원하지 않는다

-11 서버 이름이 올바르지 않다

-12 서버가 작업을 지원하지 않는다

-13 remote 호스트 접근이 거부되어있다

-14 서버가 사용할 수 없는 상태다

용법

OLEObject 변수는 PowerBuilder 응용프로그램이 OLE object를 프로그램적으로 관리하기 위하여 서버 응용프로그램에 요청하는 OLE automation을 위하여 사용된다. ConnectToRemoteObject는 remote 활동을 지원하는 서버에서만 사용된다.

추가정보

다음 정보는 remote 호스트상의 OLE object를 생성 또는 실체화하고 바인딩하는데 적용된다.

OLE automation에 관한 일반적인 정보는, ConnectToObject를 참조한다.

DCOM지원 ConnectToRemoteObject과 ConnectToNewRemoteObject 는 DCOM (Distributed Component Object Model)을 사용한다. DCOM에관한 지원이 모든 platform에서 유용한 것은 아니다. 이제, DCOM service pack을 사용하면 Windows NT 4.x 과 Windows 95에서 사용할 수 있다. Windows 95상의 DCOM은 현재 안전(secure) remote 활성화를 지원하지 않는다. 따라서 Windows 95에서는 DCOM 서버가 아니라 DCOM 클라이언트에 관하여 사용할 수 있다.

안전(Security) 서버의 안전모드는 remote object상에 object들을 정확히 넣을 수 있도록 환경설정을 한다. 안전모드는 registry(등록) 키에 의하여 환경이 설정된다. 서버에 끼워넣기 허락 여부에 관한 속성을 정확히 명시하고 클라이언트 접근을 허락할 수 있도록 실행중인 object들을 접속하여야 한다. registry는 수동 또는 DCOMCNFG.EXE 나 OLE Viewer 등과 같은 도구로 수정할 수 있다.

Registry 등록 서버 응용프로그램은 반드시 서버와 클라이언트에 모두 등록되어야 한다.

OLE structured storage 파일이 아닌 다른 파일들을 찾으려면, 반드시 파일 확장자를 포함시켜서 registry에 등록하여야 한다. structured storage 파일이면, COM은 그 파일을 읽고 그 파일에서 서버를 추출한다; 반대의 경우, 파일 확장자에 관한 registry 등록을 사용하여 적절한 서버 응용프로그램을 끼워넣는다.

DCOM 서버가 custom 인터페이스를 사용하면, 인터페이스에 관한 proxy/stub DLL은 반드시 클라이언트 상에 등록되어 있어야 한다. proxy/stub DLL은 custom 인터페이스 설계자에 의하여 생성된다.

예제

다음 예제는 OLEObject를 선언, 생성하고 falco라는 remote 호스트의 Excel worksheet에 접속한다. Worksheet 편의 드라이브는 local 호스트상에 f:\excel로 매핑되어 있다:

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToRemoteObject( &

"falco", "f:\excel\expense.xls")

다음 예제는 remote 호스트의 동일한 object에 접속하지만 Excel 차트를 오픈하지 않는다:

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToRemoteObject( &

"falco", "f:\excel\expense.xls", "Excel.chart")

참고

ConnectToNewRemoteObject

ConnectToObject

DisconnectObject


#ConnectToNewRemoteObject PowerScript function

설명

명시한 remote 서버 응용프로그램내에 새로운 OLE object를 생성하고 (서버 상에서 security가 이를 허용하는 경우) 새로운 object를 PowerBuilder OLEObject 변수와 연관시킨다. ConnectToNewRemoteObject는 필요할 경우 서버 응용프로그램을 시작한다.

제어

OLEObject objects

문법

oleobject.ConnectToNewRemoteObject ( hostname, classname )

Argument

oleobject OLE object에 연결하려는 OLEObject 변수 이름. OLEObject가 OLE control의 Object property이면 명시할 수 없다

hostname COM 서버가 위치한 remote 호스트 이름

classname OLE 서버 응용프로그램과 서버가 OLE를 경우하여 취급할 수 있는 object 타입을 확인해 주는 OLE class 이름

Return 값

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 부적절한 호출: argument가 control의 Object property 이다

-2 Class 이름을 찾을 수 없다

-3 Object가 생성되어있지 않다

-4 object에 접속할 수 없다

-9 그 밖의 에러발생

-10 이 platform을 지원하지 않는다

-11 서버 이름이 올바르지 않다

-12 서버가 작업을 지원하지 않는다

-13 remote 호스트 접근이 거부되어있다

-14 서버가 사용할 수 없는 상태다

용법

OLEObject 변수는 PowerBuilder 응용프로그램이 OLE object를 프로그램적으로 관리하기 위하여 서버 응용프로그램에 요청하는 OLE automation을 위하여 사용된다. ConnectToNewRemoteObject는 remote 활동을 지원하는 서버에서만 사용된다.

추가정보

OLE automation에 관한 추가 정보는 ConnectToObject를 참조한다.

Remote 호스트상의 object 접속에 관한 추가 정보는 ConnectToRemoteObject를 참조한다.

예제

다음 예제는 OLEObject 변수를 생성하고 ulysses라는 remote 호스상에 새로운 Excel object를 생성하고 접속하기 위하여 ConnectToNewRemoteObject를 호출한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToNewRemoteObject( &

"ulysses", "Excel.application")

참고

ConnectToObject

ConnectToRemoteObject


#CreateInstance PowerScript function

설명

remote object의 실체(instance)를 생성한다.

제어

Connection objects

문법

connection.CreateInstance (objectvariable {, classname } )

Argument

connection 접속을 설치한 Connection object 이름

objectvariable 생성되었거나 다른 class로부터 상속된 object와 동일한 데이터 타입의 global, instance, local 변수

classname (선택사항) 생성될 class의 데이터 타입

Return 값

Long.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

50 분산 서비스 에러

52 분산 통신 에러

53 요청된 서버가 활성화 되어있지 않음

54 서버가 요청을 받아들이지 못함

55 요청이 비정상적으로 종료됨

56 요청에대한 응답이 완전하지 않음

62 서버 통신량이 많음

용법

CreateInstance를 호출하기 전에, 서버에 접속할 필요가 있다. 서버에 접속하려면 ConnectToServer 함수를 호출한다.

CreateInstance는 remote 서버상에 object를 생성하도록 해준다. Object를 자신 컴퓨터에 생성하려면 CREATE 문장을 사용한다.

클라이언트 응용프로그램에 remote object의 class 정의를 설치할 때, 클라이언트 상의 정의는 서버 응용프로그램에 설치된 remote object 정의와 동일한 이름을 갖는다. 이 타입으로 정의된 변수들은 local object나 remote object 참조를 유지할 수 있다. 따라서, 실행 시, 응용프로그램의 요구에 따라 object를 local로 실체화 (CREATE 문장 사용) 하거나 remote로 실체화 (CreateInstance 함수 사용) 할 수 있다. 어떤 경우든, object를 한번 생성하면, object의 실제 (physical) 위치는 이 object를 사용하는 클라이언트-측 스크립트에 존재한다.

사용하지 않게 된 함수 CreateInstance 함수는 SetConnect 함수를 대치한다. SetConnect 함수는 사용하지 않으며, 가까운 다음 버전부터 포함되지 않게될 것이다. 가능한 빨리 모든 SetConnect 를 CreateInstance로 대체하도록 한다.

예제

다음 문장은 결과에 따라 object를 local 또는 remote로 생성한다. Remote object 를 생성하기 위하여 CreateInstance 함수를 사용하고 Local object를 생성하기 위하여 CREATE 문장을 사용한다:

boolean bWantRemote

connection myconnect

uo_customer iuo_customer

//remote object를 원하는지 local object를

//원하는지 결정한다

IF bWantRemote THEN

//remote object를 생성한다

IF myconnect.CreateInstance(iuo_customer) <> 0 THEN

//에러 처리

...

END IF

ELSE

// local object를 생성한다

iuo_customer = CREATE uo_customer

END IF

//object 의 함수를 호출한다

//서버 또는 클라이언트 어느 쪽에 생성된

//object도 동일하게 호출한다

IF isValid(iou_customer) THEN

iuo_customer.GetCustomerData()

END IF

참고

ConnectToServer


#DebugBreak PowerScript function

설명

실행을 보류하고 Debug 윈도우를 오픈한다.

문법

DebugBreak ( )

Return 값

없음

용법

응용프로그램 실행을 보류하고 테스트하려는 위치에 DebugBreak 함수를 삽입한다. 디버깅을 가능하게 하고 개발환경에서 응용프로그램을 실행한다.

PowerBuilder가 DebugBreak 함수를 만나면 Debug 윈도우가 오픈되고 현재 내용을 나타낸다.

예제

다음 문장은 변수의 NULL 값 여부를 테스트하고 NULL 값이면 Debug 윈도우를 오픈한다:

IF IsNull(auo_ext) THEN DebugBreak()


DestroyModel PowerScript function

설명

현재의 수행 분석 모델 또는 추적 트리 모델을 제거한다.

제어

Profiling and TraceTree objects

문법

instancename.DestroyModel ( )

Argument

instancename Profiling 또는 TraceTree object의 instance 명

Return 값

ErrorReturn.

다음 값을 리턴한다:

* Success! 처리성공

* ModelNotExistsError! 모델이 존재하지 않는다

용법

BuildModel 함수를 이용하여 수행분석 또는 추적 트리 모델 생성이 완료되었을 때, 그 모델과 연관된 모든 object들을 제거하려면 반드시 DestroyModel 함수를 호출하여야 한다. 메모리에 할당된 모델은 object가 제거될 때까지 메모리를 점유한다.

예제

다음 예제는 BuildModel 함수를 사용하여 생성되어 있는 수행분석 모델을 제거한다:

lpro_model.DestroyModel()

DESTROY lpro_model

참고

BuildModel


#EntryList PowerScript function

설명

추적 트리 모델에 포함된 최상위-레벨의 등록내용 리스트를 제공한다.

제어

TraceTree objects

문법

instancename.EntryList ( list )

Argument

instancename TraceTree object의 instance 명

list 추적 트리 모델에서 각 최상위-레벨에 관한 TraceTreeNode object를 저장하고있는 EntryList내의 TraceTreeNode 타입의 무제한 (unbound) 배열 변수

Return 값

ErrorReturn.

다음 값을 리턴한다:

* Success! 처리성공

* ModelNotExistsError! 모델이 존재하지 않는다

용법

추적 트리 모델에 포함된 최상위-레벨 입력내용이나 노드(node)를 추출하기 위하여 EntryList 함수를 사용한다. 각각의 최상위-레벨 내용은 TraceTreeNode object로 정의되고 node에 의하여 활성화된 타입으로 재표현된다.

이 함수를 사용하기 전에 반드시 BuildModel 함수를 사용하여 추적 트리 모델을 생성해 놓아야 한다.

예제

다음 예제는 추적 트리 모델내의 최상위-레벨 내용이나 노드(node)를 구하고 각 노드에 관한 정보를 추출하여 나열한다. of_dumpnode 함수는 argument로 TraceTreeNode object와 레벨을 취하고 그 노드에 관한 정보를 포함하고있는 문자열을 리턴한다:

TraceTree ltct_model

TraceTreeNode ltctn_list[], ltctn_node

Long ll_index,ll_limit

String ls_line

ltct_model = CREATE TraceTree

ltct_model.BuildModel()

ltct_model.EntryList(ltctn_list)

ll_limit = UpperBound(ltctn_list)

FOR ll_index = 1 TO ll_limit

ltctn_node = ltctn_list[ll_index]

ls_line += of_dumpnode(ltctn_node,0)

NEXT

...


#FindClassDefinition PowerScript function

설명

하나이상의 PowerBuilder 라이브러리 (PBL)에서 object를 찾고 class 정의에 관한 정보를 제공한다.

문법

FindClassDefinition ( classname {, librarylist } )

Argument

classname 정보를 원하는 object (class 또는 class 정의도 호출된다) 이름

librarylist (선택사항) PBL의 전체 경로를 포함한 문자열의 배열. librarylist를 생략하면, FindClassDefinition은 실행중인 응용프로그램과 연관된 라이브러리 리스트를 탐색한다.

Return 값

ClassDefinition.

classname 정의에 관한 정보를 가진 object 참조를 리턴한다. Argument 값 중에 NULL이 있으면, FindClassDefinition은 NULL을 리턴한다.

용법

class 정의 정보를 포함하고 있는 ClassDefinition object를 구하는 방법은 두 가지 이다:

* 응용프로그램내에 실체화된(instantiated) object : ClassDefinition property를 사용한다

* PBL내에 저장된 object : FindClassDefinition 함수를 호출한다

예제

다음 예제는 w_genapp_frame에 관한 class 정의를 찾기 위하여 실행중인 응용프로그램에 관한 라이브러리를 탐색한다:

ClassDefinition cd_windef

cd_windef = FindClassDefinition("w_genapp_frame")

다음 예제는 w_genapp_frame에 관한 class 정의를 찾기 위하여 배열 ls_libraries내의 라이브러리들을 탐색한다:

ClassDefinition cd_windef

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

cd_windef = FindClassDefinition("w_genapp_frame", ls_libraries)

참고

FindFunctionDefinition

FindMatchingFunction

FindTypeDefinition


#FindFunctionDefinition PowerScript function

설명

하나 이상의 PowerBuilder 라이브러리 (PBL)에서 global 함수를 탐색하고 스크립트 정의에 관한 정보를 제공한다.

문법

FindFunctionDefinition ( functionname {, librarylist } )

Argument

functionname 정보를 원하는 global 함수 이름

librarylist (선택사항) PBL 전체경로를 포함한 string 배열. librarylist를 생략하면 실행중인 응용프로그램과 연관된 라이브러리 리스트를 탐색한다

Return 값

ScriptDefinition.

functionname 스크립트에 관한 정보를 포함한 object 참조를 리턴한다. Argument 값 중에 NULL이 있으면, FindFunctionDefinition은 NULL을 리턴한다.

용법

global function에 관한 class 정의를 구하기 위하여 FindClassDefinition을 호출할 수 있다. 그러나, ScriptDefinition object는 함수들에 관한 다양한 정보를 제공한다.

예제

다음 예제는 f_myfunction에 관한 함수 정의를 찾기 위하여 실행중인 응용프로그램에 관한 라이브러리 들을 탐색한다:

ScriptDefinition sd_myfunc

sd_myfunc = FindFunctionDefinition("f_myfunction")

다음 예제는 w_genapp_frame에 관한 함수 정의를 찾기 위하여 배열 ls_libraries내의 라이브러리들을 탐색한다:

ScriptDefinition sd_myfunc

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

sd_myfunc = FindFunctionDefinition( "f_myfunction", ls_libraries)

참고

FindClassDefinition

FindMatchingFunction

FindTypeDefinition


#FindMatchingFunction PowerScript function

설명

class내에서 명시한 내용과 일치하는 함수가 무엇인지 찾는다. 내용은 스크립트 이름과 argument 리스트를 조합하여 명시한다.

제어

ClassDefinition objects

문법

classdefobject.FindMatchingFunction ( scriptname, argumentlist )

Argument

classdefobject 함수를 찾기 위한 class를 나타내는 ClassDefinition object 이름

scriptname 함수 이름

argumentlist 함수 argument 데이터 타입의 무제한 string 배열 변수가 참조(reference)에 의하여 통과 되었다면, 문자열은 데이터 타입 이전에 반드시 ref를 포함 시켜야 한다. 변수가 배열이라면, 데이터 타입 이후에 대괄호([ ])를 포함시켜야 한다. 문법은 다음과 같다 : { ref } 데이터 타입 { [ ] }

Return 값

ScriptDefinition.

일치하는 함수에관한 정보를 갖는 object instance를 리턴한다. 일치하는 함수를 찾지 못하면, FindMatchingFunction은 NULL을 리턴한다. Argument 값 중에 NULL이 있어도, NULL을 리턴한다.

용법

함수를 탐색하면서, PowerBuilder는 계층적으로 상속을 수집한다. 발견한 함수는 현재 objecr 또는 그 조상 중 어디에선가 정의된 것이다.

참조(reference)에 의한 argument 통과 참조에 의하여 통과된 argument를 가진 함수를 찾으려면, 반드시 ref 키워드를 명시하여야 한다. 함수 argument에 관한 VariableDefinition을 가지고 있다면, argument가 참조에 의하여 통과된 것인지 판단하기 위하여 CallingConvention argument를 체크한다.

PowerBuilder 함수에관한 문서에서, 참조에 의하여 통과된 argument들은 단순한 값이 아닌 변수로 표시된다. PowerBuilder Brower는 참조에 의하여 통과된 argument들은 나타내지 않는다.

예제

다음 예제는 PowerBuilder window object 함수 OpenUserObjectWithParm과 일치하는 ScriptDefinition을 구하고 4 개의 argument 들을 찾는다. 일치하는 것을 찾으면, 스크립트에 관한 레포트를 생성하기 위하여, uf_scriptinfo 함수를 호출한다:

string ls_args[]

ScriptDefinition sd

ls_args[1] = "ref dragobject"

ls_args[2] = "double"

ls_args[3] = "integer"

ls_args[4] = "integer"

sd = c_obj.FindMatchingFunction( "OpenUserObjectWithParm", ls_args)

IF NOT IsValid(sd) THEN

mle_1.Text = "No matching script"

ELSE

mle_1.Text = uf_scriptinfo(sd)

END IF

uf_scriptinfo 함수는 명시한 내용과 일치하는 함수에관한 정보를 구하고 문자열을 구축한다. Scriptobj는 이 함수로 통과된 ScriptDefinition이다:

string s, lineend

integer li

lineend = "~r~n"

// Script name

s = s + scriptobj.Name + lineend

// Data type of the return value

s = s + scriptobj.ReturnType.DataTypeOf + lineend

// List argument names

s = s + "Arguments:" + lineend

FOR li = 1 to UpperBound(scriptobj.ArgumentList)

s = s + scriptobj.ArgumentList[li].Name + lineend

NEXT

// List local variables

s = s + "Local variables:" + lineend

FOR li = 1 to UpperBound(scriptobj.LocalVariableList)

s = s + scriptobj.LocalVariableList[li].Name + lineend

NEXT

RETURN s

참조

FindClassDefinition

FindFunctionDefinition

FindTypeDefinition


#FindTypeDefinition PowerScript function

설명

하나 이상의 PowerBuilder 라이브러리 (PBL) 내에서 타입을 찾고 타입 정의에 관한 정보를 제공한다. 또한, system 타입에 관한 정의를 구할 수도 있다.

문법

FindTypeDefinition ( typename {, librarylist } )

Argument

typename 정보를 원하는 단순 데이터 타입, 열거형 데이터 타입 또는 class 이름. 중첩된 타입에 관한 정보를 찾으려면, 다음과 같은 형식을 사용한다: libraryEntryName`typename

librarylist (선택사항) PBL의 천체 경로를 포함한 문자열 배열. librarylist를 생략하면 FindTypeDefinition은 현재 실행중인 응용프로그램과 연관된 라이브러리 리스트를 탐색한다. PowerBuilder는 또한 열거형 (enumerated) 데이터 타입과 시스템 class와 같은 미리 구축된 정의에 관한 라이브러리도 탐색한다

Return 값

TypeDefinition.

typename의 정의에관한 정보를 가진 object 참조를 리턴한다. Argument 값중에 NULL이 있으면, FindTypeDefinition은 NULL을 리턴한다.

용법

리턴된 TypeDefinition object는 활성화된 ClassDefinition, SimpleTypeDefinition, 또는 EnumerationDefinition object가 될 것이다. 이 중에서 어떤 것인지 찾으려면 Category property를 사용할 수 있다.

class에 관한 정보를 구하려면, FindClassDefinition을 대신 호출한다. argument들은 동일하고 리턴된 object가 ClassDefinition object인지 체크하는 단계를 줄일 수 있다.

Global 함수에 관한 정보를 구하려면, FindFunctionDefinition을 호출한다.

예제

다음 예제는 grGraphType 열거형 데이터 타입에관한 TypeDefinition object를 구한다. 정의된 타입의 category를 체크하고, EnumeratedType 이면 EnumerationDefinition object 타입을 할당한 후 문자열에 그 이름을 저장한다:

TypeDefinition td_graphtype

EnumerationDefinition ed_graphtype

string enumname

td_graphtype = FindTypeDefinition("grgraphtype")

IF td_graphtype.Category = EnumeratedType! THEN

ed_graphtype = td_graphtype

enumname = ed_graphtype.Enumeration[1].Name

END IF

다음 예제는 argument로 definition 이름을 사용하는 함수이다. argument는 typename이다. 이 함수는 TypeDefinition object 이름을 찾고, category를 체크한 후, 적절한 definition object를 할당한다:

TypeDefinition td_def

SimpleTypeDefinition std_def

EnumerationDefinition ed_def

ClassDefinition cd_def

td_def = FindTypeDefinition(typename)

CHOOSE CASE td_def.Category

CASE SimpleType!

std_def = td_def

CASE EnumeratedType!

ed_def = td_def

CASE ClassOrStructureType!

cd_def = td_def

END CHOOSE

다음 예제는 w_genapp_frame에 관한 class 정의를 찾기위하여 ls_libraries 배열내의 라이브러리 들을 탐색한다:

w_genapp_frame:

TypeDefinition td_windef

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

td_windef = FindTypeDefinition("w_genapp_frame", ls_libraries)

참고

FindClassDefinition

FindFunctionDefinition

FindMatchingFunction


#GarbageCollect PowerScript function

설명

강제적으로garbage collection을 즉시 발생시킨다.

문법

GarbageCollect ( )

Return 값

없음

용법

강제적으로 garbage collection을 즉시 발생 시킨다. PowerBuilder는 사용되지 않는 object를 확인하여 통과 시키고, 순환적 참조도 포함, 사용되지 않는 object와 class를 삭제한다.

예제

다음 문장은 garbage collection을 일으킨다:

GarbageCollect()

참고

GarbageCollectGetTimeLimit

GarbageCollectSetTimeLimit


#GarbageCollectGetTimeLimit PowerScript function

설명

garbage collection에 관하여 현재 설정된 최소 간격을 구한다.

문법

GarbageCollectGetTimeLimit ( )

Return 값

Long.

현재의 최소 garbage collection 간격을 리턴한다.

용법

현재 garbage collection 통과 사이의 최소 기간을 읽는다.

예제

다음 문장은 garbage collection 사이의 간격을 메모리 변수 CollectTime에 리턴한다:

long CollectTime

CollectTime = GarbageCollectGetTimeLimit()

참고

GarbageCollect

GarbageCollectSetTimeLimit


#GarbageCollectSetTimeLimit PowerScript function

설명

garbage collection 통과 사이의 최소 간격을 설정한다.

문법

GarbageCollectSetTimeLimit ( newtimeinmilliseconds )

Argument

newtimeinmilliseconds garbage collection 주기 사이의 최소 시간을 설정하기 위한 long ( 1/1000 초) 값. NULL 값을 설정하면 기존의 간격은 변하지 않는다

Return 값

Long.

이 함수를 호출하기 이전에 존재하고 있는 간격을 리턴한다. 새로운 시간이 NULL이면, NULL이 리턴되고 현재 간격은 변하지 않는다.

용법

garbage collection 통과 사이의 최소 간격을 명시한다: garbage collection은 이 간격이 끝나기 전까지 일어나지 않는다.

Garbage collection은 매우 큰 값을 최소값으로 설정함으로써 효과적으로 사용할 수 없게 만들 수 있다. garbage collection이 사용 불가능한 상태이변, 사용되지 않는 class는 class cache에서 비워지지 않는다.

예제

다음 예제는 garbage collection 간격을 설정한다:

long NewTime

Time = 1000 /* 1 초*/

NewTime = GarbageCollectSetTimeLimit(Time)

참고

GarbageCollect

GarbageCollectGetTimeLimit


#GenerateHTMLForm PowerScript function

설명

DataWindow control 이나 DataStore 내의 여러 row에 관하여 칼럼을 포함한 HTML Form element를 생성한다. 이 함수는 또한 HTML Style element를 포함하고 있는 style sheet 정보를 리턴한다.

제어

DataWindow controls, DataStore objects, and child DataWindows

문법

dwcontrol.GenerateHTMLForm ( syntax, style, action { , startrow, endrow, startcolumn, endcolumn {, buffer } } )

Argument

dwcontrol 내용을 HTML Form 문법으로 변환하려는 DataWindow object를 가지고 있는 DataWindow control or DataStore 이름

syntax HTML Form 문법에 위치할 문자열. 이 값은 참조에 의하여 통과된다

style HTML style sheet에 위치할 문자열. 이 값은 참조에 의하여 통과된다

action Form element에 관한 ACTION 속성을 명시하는 문자열

startrow (선택사항) HTML Form 문법으로 변환할 첫 번째 row (long 타입). 기본설정 값은 1이다

endrow (선택사항) HTML Form 문법으로 변환할 마지막 row (long 타입). 기본설정 값은 DataWindow의 마지막 row이다

startcolumn (선택사항) HTML Form 문법으로 변환할 첫 번째 칼럼을 명시하는 integer 또는 string 값. 기본설정 값은 첫번째 칼럼이다.

endcolumn (선택사항) HTML Form 문법으로 변환할 마지막 칼럼을 명시하는 integer 또는 string 값. 기본설정 값은 마지막 칼럼이다.

buffer (선택사항) row를 변환할 버퍼를 명시하는 dwBuffer 열거형 데이터 타입의 값

l Primary! (기본설정 값)

l Delete!

l Filter!

Return 값

Integer.

처리에 성공하면 문법내의 바이트 수를 리턴하고 에러가 발생하면 1을 리턴한다.

용법

DataWindow control 이나 DataStore의 내용으로부터 HTML Form 문법을 생성하기 위하여 이 함수를 호출한다. 이 함수를 호출한 이후에, 반드시 적절한 HTML element로 Form syntax와 style sheet를 결합하여 HTML 페이지 정의를 완전하게 하여야 한다.

PowerBuilder는 고유한 element 이름을 생성한다 GenerateHTMLForm 함수는 하나의 form 내에서 여러 row들을 표시할 때 HTML 이름이 충돌하는 것을 방지하기 위하여 모든 element에 관한 고유한 필드 이름을 생성한다. 고유한 필드 이름들은 각 이름에 a _nextsequentialnumber 접미사를 추가함으로써 생성된다.

Freeform DataWindow object내의 static 텍스트 detail 밴드내의 모든 static 텍스트는 생성된 HTML form syntax로 통과된다. startcolumn 과 endcolumn argument를 사용하여 칼럼 수의 제한을 가지고 변환한다면, 제외시킨 칼럼에 관한 헤더는 detail 밴드로부터 제거된다.

예제

다음의 Web.PB 예제는 GenerateHTMLForm 함수를 호출한 다음 완전한 HTML 페이지를 생성하고 Web browser로 리턴한다:

String ls_syntax, ls_style, ls_action

String ls_html

Integer li_return

ls_action = "/cgi-bin/pbcgi60.exe/myapp/uo_webtest/f_emplist"

li_return = ds_1.GenerateHTMLForm (ls_syntax, ls_style, ls_action)

IF li_return = -1 THEN

ls_html = "Unable to create HTML form."

ELSE

ls_html = "<HTML>"

ls_html += ls_style

ls_html += "<BODY>"

ls_html += "<H1>Employee Information</H1>"

ls_html += ls_syntax

ls_html += "</BODY></HTML>"

END IF

RETURN ls_html

참고

SaveAs


#GetArgElement PowerScript function

설명

명시된 argument 값을 리턴한다.

제어

Window ActiveX controls

문법

activexcontrol.GetArgElement ( index )

Argument

activexcontrol PowerBuilder window ActiveX control의 실체 (instance) 확인자. HTML에서 사용될 때, ActiveX control은 OBJECT element의 NAME attribute이다. 다른 환경에서 사용할 때에는, PowerBuilder window ActiveX를 포함하고 있는 control의 참조 (reference) 이다.

index argument가 리턴할 integer를 명시한다

Return 값

Any.

명시한 argument를 리턴한다.

용법

참조 (reference)에 의하여 통과된 argument내의 갱신된 값에 접근하기 위하여 InvokePBFunction 또는 TriggerPBEvent를 호출한 이후에 이 함수를 호출한다.

JavaScript 스크립트에서는 참조에 의하여 통과된 argument에 접근하기 위하여 반드시 이 함수를 사용하여야 한다. SetArgElement 호출을 경우하여 argument 리스트가 설치되어 있다면, VBScript 스크립트는 이 함수를 사용할 수 있다.

예제

다음 JavaScript 예제는 GetArgElement 함수를 호출한다:

...

theArg = f.textToPB.value;

PBRX1.SetArgElement(1, theArg);

theFunc = "of_argref";

retcd = PBRX1.InvokePBFunction(theFunc, numargs);

rc = parseInt(PBRX1.GetLastReturn());

IF (rc != 1) {

alert("Error. Empty string.");

}

backByRef = PBRX1.GetArgElement(1);

...

참고

SetArgElement

LastFunction

InvokePBFunction

TriggerPBEvent


#GetChanges PowerScript function

설명

DataWindow 또는 DataStore에 가해진 변경을 retrieve하여 blob에 넣는다.

이 함수는 주로 분산 응용프로그램에서 사용된다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.GetChanges ( changeblob {, cookie } )

Argument

dwcontrol 변경된 내용을 구하려는 DataWindow control 또는 DataStore 이름

changeblob 리턴된 DataWindow 변경내용이 위치할 blob

cookie (선택사항) 뒤따르는 SetChanges 함수의 호출이 성공할 수 있는지 결정하기 위하여 changeblob과 비교할 읽기-전용 blob (GetSateStatus에 의하여 생성된다)

Return 값

Long.

처리에 성공하면 DataWindow change blob내의 row 수를 리턴하고 에러가 발생하면 다음 값을 리턴한다:

▶ -1 내부에러 발생

▶ -2 DataWindow change blob과 cookie에 의하여 생성된 DataWindow의 상태 사이에 충돌이 존재한다; SetChanges 함수 내에서 이 blob을 사용하여 호출을 시도하면 DataWindow는 실패하게 될 것이다.

▶ -3 DataWindow change blob과 cookie에 의하여 생성된 DataWindow의 상태 사이에 충돌이 존재한다; 그러나 change blob으로부터의 부분적 변경은 적용할 수 있다

용법

GetChanges 함수는 2 개 이상의 DataWindow나 DataStore를 동기화 시키기 위하여 SetChanges와 함께 사용된다. GetChanges는 DataWindow나 DataStore내에서 변경된 row들에 관한 데이터 버퍼와 상태 flag를 retrieve하고 이 정보를 blob에 위치시킨다. 다음에 SetChanges 함수는 이 blob의 내용을 다른 DataWindow나 DataStore에 적용시킨다.

일반적으로, change blob은 New!, NewModified!, 또는 DataModified!의 상태를 갖는 row들만 포함시키는 GetChanges에 의하여 생성된다. 그러나 AutoCommit transaction property가 True로 설정되어있는 상태에서 부분적 Update가 성공한 직후에 GetChanges를 호출한다면, 그 change blob의 결과는 데이터베이스 갱신 성공의 결과로 인하여 NotModified!로 재설정(reset)된 row들을 포함하게 될 것이다.

서로다른 클라이언트 상의 여러 대상(target) DataWindows (또는 DataStores)의 소스로써 서버상에 단일 DataStore가 활성화 되어있는 상황에서는, SetChanges의 성공가능성을 결정하기 위하여 GetStateStatus와 함께 GetChanges를 사용할 수 있다. 이것은 SetChanges가 어떤 방법으로든 실패하게 될 때 (왜냐하면 blob내의 변경은 이전에 다른 클라이언트에 의하여 이미 만들어진 변경과 충돌하기 때문이다) change blob이 네트웍을 타고 이동하는 것을 방지하도록 해 준다.

SetChanges의 성공 가능성을 결정하려면, 다음이 필요하다:

1 SetChanges를 원하는 DataStore 상에서 GetStateStatus 함수를 호출한다. GetStateStatus는 DataStore의 state를 체크하고 cookie라는 참조(reference) argument에서 state 정보를 사용 가능하도록 만든다. ccokie는 일반적으로 DataWindow change blob보다 많이 작다.

2 cookie를 클라이언트로 보낸다.

3 GetStateStatus 함수로부터 retrieve된 cookie를 파라미터로 통과시키면서, 변경을 적용하려는 DataWindow상에서 GetChanges 함수를 호출한다. GetChanges로부터 리턴되는 값은 DataWindow blob의 state와 DataStore state사이에 일어날 수 있는 충돌의 가능성 여부를 나타낸다.

GetChanges로부터 리턴되는 값이 충돌가능성이 있음을 나타내면, FailOnAnyConflict! argument를 명시한 경우 다음에 호출하는 SetChanges는 실패할 것이다. 그러나, GetChanges로 부터 리턴되는 값이 충돌이 없음을 나타내어도, SetChanges는 실패할 가능성이 있다. 예를들어, 다른 클라이언트 session이 SetChanges를 호출하였거나 cookie를 retireve한 이후로 DataStore의 다른 state를 실행한 어떤 다른 것을 처리중일 때, SetChanges는 실패하게 될 것이다.

예제

다음 문장은 클라이언트상의 DataWindow에 관한 변경을 잡기위하여 GetChanges를 사용하였다. GetChanges가 성공한다면, 클라이언트는 서버상의 DataStore에 변경을 적용시키기 위한 remote object 함수를 호출하고 데이터베이스를 갱신한다:

blob lblb_changes

long ll_rv

ll_rv = dw_employee.GetChanges(lblb_changes)

IF ll_rv = -1 THEN

MessageBox("Error", "GetChanges call failed!")

ELSE

iuo_employee.UpdateData(lblb_changes)

END IF

참고

GetFullState

GetStateStatus

SetChanges

SetFullState


GetChildrenList PowerScript function

설명

추적 트리 모델에 포함된 루틴의 children 리스트를 제공한다.

제어

TraceTreeObject, TraceTreeRoutine, and TraceTreeGarbageCollect objects

문법

instancename.GetChildrenList ( list )

Argument

Instancename TraceTreeObject, TraceTreeRoutine, 또는 TraceTreeGarbageCollect object의 실체(instance) 이름

list 한 루틴의 각 child에 관한 TraceTreeNod object를 저장하고있는 GetChildrenList내의 TraceTreeNode 데이터 타입의 무제한 배열 변수. 이 argument는 참조(reference)에 의하여 통과된다.

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

추적 트리 모델에 포함된 루틴 (class 및 class를 호출하는 루틴)의 children 리스트를 추출하려면 GetChildrenList 함수를 호출한다. 각각의 child 리스트는 TraceTreeNode로써 정의되어있고 child에 의하여 다시 표현된 활성화 타입을 제공한다.

이 함수를 사용하기 전에 반드시 BuildModel 함수를 사용하여 추적 파일로부터 추적 트리 모델을 생성하여 놓아야 한다.

GetChildrenList 함수가 TraceTreeGarbageCollect object에 관하여 호출되었을 때, 각 child는 보통 garbage collect object에 의하여 제거된 내용을 리스트 한다.

예제

다음 예제는 추적 트리 모델에 포함된 노드의 활성화 타입을 체크한다. 활성화 타입이 어떤 루틴에의하여 나타난 것이면, 그 루틴을 포함하고 있는 class 이름을 결정하고 그 루틴에 의하여 호출된 class와 루틴들을 리스트한다:

TraceTree ltct_node

TraceTreeNode ltctn_list

...

CHOOSE CASE node.ActivityType

CASE ActRoutine!

TraceTreeRoutine ltctrt_rout

ltctrt_rout = ltct_node

result += "Enter " + ltctrt_rout.ClassName &

+ "." + ltctrt_rout.name + " " &

+ String(ltctrt_rout.ObjectID) + " " &

+ String(ltctrt_rout.EnterTimerValue) &

+ "~r~n" ltctrt_rout.GetChildrenList(ltctn_list)

...

참고

BuildModel


GetCompanyName PowerScript function

설명

현재 실행중인 context에 관한 회사명을 리턴한다.

제어

ContextInformation objects

문법

servicereference.GetCompanyName ( name )

Argument

servicereference ContextInformation service instance의 참조(reference)

name 회사 이름 위치에 있는 함수에 넣을 문자열. 이 argument는 참조(refernce)에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

회사명 (예를들어 Sybase, Inc)을 결정하기 위하여 이 함수를 호출한다.

예제

다음 예제는 GetCompanyName 함수를 호출한다:

String ls_company

Integer li_return

ContextInformation lci_info

li_return = lci_info.GetCompanyName(ls_company)

IF li_return = 1 THEN

sle_co_name.text = ls_company

END IF


GetContextKeywords PowerScript function

설명

명시한 키워드와 연관한 하나 이상의 값을 retrieve한다.

제어

ContextKeyword objects

문법

servicereference.GetContextKeywords ( name, values )

Argument

servicereference ContextKeyword service instance의 참조 (reference)

name 해당 값을 리턴하는 함수의 키워드를 명시하는 문자열

values name에 해당하는 함수에 위치할 무제한 string 배열. 이 argument는 참조 (reference)에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 values내의 요소 수를 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

환경 변수에 접근하려면 이 함수를 호출한다. 환경변수는 실행 상태에 따라 서로다른 기능을 가진다:

▶ PowerBuilder 실행 시 함수는 유일한 키워드를 가진 각각의 DOS와 UNIX 환경 변수에 접근한다

▶ PowerBuilder window plug-in 함수는 EMBED tag에 명시한 키워드에 접근한다. 이들 키워드는 유일할 필요가 없다. EMBED tag에 명시한 키워드가 없으면, 명시한 이름을 가진 DOS 또는 UNIX 환경 변수에 접근하려고 시도한다

▶ PowerBuilder window ActiveX 함수는 유일한 키워드를 가진 DOS 환경 변수에 접근한다

Macintosh Macintosh는 환경변수를 사용하지 않는다.

예제

다음 예제는 GetContextKeywords 함수를 호출한다:

String ls_keyword

Integer li_count, li_return

ContextKeyword lcx_key

li_return = this.GetContextService("Keyword", lcx_key)

ls_keyword = sle_name.Text

lcx_key.GetContextKeywords(ls_keyword, is_values)

FOR li_count = 1 to UpperBound(is_values)

lb_parms.AddItem(is_values[li_count])

NEXT

참고

GetContextService


GetFixesVersion PowerScript function

설명

현재 실행중인 PowerBuilder의 fix level을 리턴한다. 예를들어, 현재 버전이 6.5.03이라면, fix 버전 03을 리턴한다.

제어

ContextInformation objects

문법

servicereference.GetFixesVersion ( fixversion )

Argument

servicereference ContextInformation service instance를 참조한다.

fixversion fix 버전을 저장할 정수. 이 argument는 참조에 의하여 통과된다.

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 ?1을 리턴한다.

용법

현재 fix 버전을 결정하기위하여 이 함수를 호출한다.

예제

다음 예제는 GetFixesVersion 함수를 호출한다.

String ls_name

Constant String ls_currver = "6.0.02"

Integer li_majver, li_minver, li_fixver

ContextInformation lci_info

this.GetContextService ("ContextInformation", lci_info)

lci_info.GetMajorVersion(li_majver)

lci_info.GetMinorVersion(li_minver)

lci_info.GetFixesVersion(li_fixver)

IF li_majver <> 6 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_minver <> 0 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_fixver <> 2 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

END IF

참고

GetCompanyName

GetHostName

GetMajorVersion

GetMinorVersion

GetName

GetShortName

GetVersionName


GetFullState PowerScript 함수

설명

DataWindow나 DataStore의 완전한 상태를 retrieve하여 blob에 넣는다.

이 함수는 주로 분산 응용프로그램에 사용된다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.GetFullState ( dwasblob )

Argument

dwcontrol 상태 정보를 retrieve 하려는 DataWindow control 이나 DataStore 이름

dwasblob 리턴된 DataWindow가 위치하게 될 blob

Return 값

Long.

처리에 성공하면 DataWindow blob내의 row수를 리턴하고 에러가 발생하면 -1을 리턴한다. DataWindow control 이나 DataStore가 연관된 DataWindow object를 갖고있지 않으면 -1을 리턴한다.

용법

GetFullState는 DataWindow object, 데이터 버퍼, 그리고 상태 flag등 DataWindow 또는 DataStore의 전체 상태를 retrieve하여 blob에 넣는다. GetFullState에 의하여 생성된 blob에 다른 DataWindow를 적용시키기 위하여 SetFullState를 설정할 때, 대상 DataWindow는 source DataWindow를 생성하기에 충분한 정보를 갖는다.

GetFullState에 의하여 생성된 blob은 명시된 DataWindow object를 포함하기 때문에, SetFullState를 반복하여 호출하면 대상 DataWindow control 또는 DataStore에 관한 DataWindow object는 겹쳐써지게 된다. 만일 SetFullState의 target이 연관된 DataWindow object를 갖고있지 않으면, blob은 object를 할당하게 된다. 이 경우, SetFullState는 target의 DataObject 속성 설정상태에 영향을 준다.

서버상에 DataStore를 가지고있는 클라이언트의 DataWindow를 동기화하기 위하여 GetFullState와 SetFullState를 사용할 때, DataStore의 DataWindow object가 클라이언트에 나타내려는 presentation 스타일인지 확인할 필요가 있다.

예제

다음 문장은 DataStore로 데이터를 retrieve하고 DataStore의 모든 상태를 blob에 넣기위하여 GetFullState를 사용한다:

// Instance 변수 : datastore ids_datastore

long ll_rv

ids_datastore = create datastore

ids_datastore.dataobject = "d_emplist"

ids_datastore.SetTransObject (SQLCA)

ids_datastore.Retrieve()

ll_rv = ids_datastore.GetFullState(ablb_data)

참고

GetChanges

GetStateStatus

SetChanges

SetFullState


GetHostObject PowerScript function

설명

context의 host object 참조를 제공한다.

Host object 지원 현재 host object 지원은 Internet Explorer 하에서 실행중인 ActiveX 윈도우 내에서만 적용된다. 이 상황에서 GetHostObject는 IWebBrowserApp ActiveX automation server object 참조를 리턴한다.

제어

ContextInformation objects

문법

servicereference.GetHostObject ( hostobject )

Argument 설명

servicereference Context Information 서비스 instance 참조

hostobject ActiveX automation server object 참조가 위치할 PowerObject

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

context object model 참조를 구하기 위하여 이 함수를 호출한다. Internet Explorer 3.0이상 버전하에서 window ActiveX를 실행 중이고 hostobject가 OleObject 변수를 실체화하지 않았다면, 함수는 hosting browser를 제어하는데 사용할 수 있는 ActiveX automation server object 참조를 리턴한다. host object 지원을 사용할 수 없다면, 함수는 -1을 리턴하고 hostobject는 NULL이된다.

예제

다음 예제는 GetHostObject 함수를 호출한다. ici_info는 GetContextService 함수를 통하여 알 수 있는 ContextInformation 타입의 instance 변수이다; ole1은 OLEObject 타입의 instance 변수이다:

Integer li_return

li_return = ici_info.GetHostObject(ole1)

IF li_return = 1 THEN

sle_1.Text = "GetHostObject succeeded"

ELSE

sle_1.Text = "GetHostObject failed"

cb_goback.Enabled = FALSE

cb_navigate.Enabled = FALSE

END IF

참고

GetCompanyName

GetFixesVersion

GetMajorVersion

GetMinorVersion

GetName

GetShortName

GetVersionName


GetURL PowerScript function

설명

명시한 URL에 관한 HTML을 리턴한다.

제어

Inet objects

문법

servicereference.GetURL ( urlname, data )

Argument

servicereference Internet service instance 참조

urlname data내에 리턴할 소스 데이터를 명시하는 string

data urlname에 관한 HTML 소스를 다루는 InternetData 함수를 무시하고 있는 InternetResult 자손

Return 값

Integer.

다음 값을 리턴한다:

1 처리성공

-1 일반적인 에러

-2 올바르지않은 URL

-4 Internet에 접속할 수 없음

Usage

URL에 관한 HTML에 접근하려면 이 함수를 호출한다.

data는 InternetResult로부터 상속된 standard class user object를 참조하고 InternetData 함수를 무시한다. 이 무시된 함수는 리턴된 HTML과 함께 사용자가 원하는 처리를 수행하게 된다. Internet은 데이터를 비동기로 (asynchronousrly) 리턴하기 때문에, data는 반드시 함수 실행 후에 남아있는 변수를 참조한다 (window-level instance 변수 등과 같이).

추가정보

InternetResult standard class user object와 InternetData 함수에 관한 더 자세한 정보는 PowerBuilder Browser를 참고한다.

예제

다음 예제는 GetURL 함수를 호출한다. iinet_base는 inet 타입의 instance 변수이다:

iir_msgbox = CREATE n_ir_msgbox

iinet_base.GetURL(sle_url.text, iir_msgbox)

참고

HyperLinkToURL

InternetData

PostURL


GetVersionName PowerScript function

설명

현재의 PowerBuilder 실행 context에 관한 완전한 버전 정보를 구한다. 완전한 버전 정보는 major 버전, minor 버전, 그리고 fix 레벨을 포함한다 (예, 6.0.03).

제어

ContextInformation objects

문법

servicereference.GetVersionName ( name )

Argument

servicereference ContextInformation service instance 참조

name 버전 이름이 위치할 string. 이 argument는 참조에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

현재 context의 maintenance 레벨을 결정하려면 이 함수를 호출한다.

예제

다음 예제는 GetVersionName 함수를 호출한다. ici_info는 ContextInformation 타입의 instance 변수이다:

String ls_name

String ls_version

Constant String ls_currver = "6.0.02"

GetContextService("ContextInformation", ici_info)

ici_info.GetVersionName(ls_version)

IF ls_version <> ls_currver THEN

MessageBox("Error", "Must be at Version " + ls_currver)

END IF

참고

GetCompanyName

GetFixesVersion

GetHostObject

GetMajorVersion

GetMinorVersion

GetName

GetVersionName

GetShortName


HyperLinkToURL PowerScript function

설명

기본설정 Web browser를 오픈하고, 명시한 URL을 나타낸다.

제어

Inet objects

문법

servicereference.HyperlinkToURL ( url )

Argument

servicereference Internet service instance 참조

url 기본설정 Web browser에 오픈하기 위한 URL

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

PowerBuilder 응용프로그램에서 URL을 나타내려면 이 함수를 호출한다.

예제

다음 예제는 HyperlinkToURL 함수를 호출한다. iinet_base는 inet 타입의 instance 변수이다:

GetContextService("Internet", iinet_base)

iinet_base.HyperlinkToURL(sle_url.text)

참고

GetURL

PostURL


IncomingCallList PowerScript function

설명

성능 분석 모델에 포함된 루틴 호출자 리스트를 제공한다.

제어

ProfileRoutine object

문법

iinstancename.IncomingCallList ( list, aggregrateduplicateroutinecalls )

Argument

instancename ProfileRoutine object의 Instance 이름

list 루틴 호출자에 관한 ProfileCall object를 저장할 ProfileCall 데이터 타입의 무제한 배열 변수. 이 argument는 참조에 의하여 통과된다

aggregateduplicateroutinecalls 루틴의 중복 호출을 ProfileCall object로 생성할 것인지 여부를 나타내는 boolean

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

성능 분석 모델에 포함된 루틴 호출자 리스트를 추출하기 위하여 이 함수를 사용한다. 각 호출자는 ProfileCall object로 정의되고 호출된 루틴과 호출중인 루틴, 호출 횟수, 소요 시간 등을 제공한다. 호출자는 특별한 순서 없이 리스트 된다.

BuildModel 함수를 사용하여 추적 파일로부터 성능 분석 모델을 미리 생성해 놓아야 한다.

aggregateduplicateroutinecalls argument는 중복된 루틴의 호출을 ProfileCall object로 생성할 것인지 여부를 나타낸다. 이 argument는 line tracing이 사용가능한 상태이고 호출하고있는 루틴이 하나 이상의 라인에서 현재 루틴을 호출하지 않는 한 영향이 없다. aggregateduplicateroutinecalls가 TRUE면, 모든 호출에 대한 새로운 ProfileCall object가 생성된다.

예제

다음 예제는 성능 분석 모델에 포함된 루틴의 리스트를 구한 다음 호출된 각 루틴의 리스트를 구한다:

Long ll_cnt

ProfileCall lproc_call[]

lpro_model.BuildModel()

lpro_model.RoutineList(i_routinelist)

FOR ll_cnt = 1 TO UpperBound(iprort_list)

iprort_list[ll_cnt].IncomingCallList(lproc_call, TRUE)

...

NEXT

참고

BuildModel

OutGoingCallList


InternetData PowerScript function

설명

GetURL 또는 PostURL 함수에 의하여 리턴된 HTML 데이터를 처리한다. Context object는 이 함수를 호출한다; 사용자는 이 함수를 직접 부르지 말아야 한다. 대신, InternetResult standard class user object의 자손에서 이 함수는 무시된다.

제어

InternetResult objects

문법

servicereference.InternetData ( data )

Argument

servicereference Internet service instance 참조

data GetURL 또는 PostURL 함수에 의하여 요청된 완전한 데이터를 가지고 있는 blob

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

InternetResult의 자손 user object에서 이 함수는 무시된다. 무시된 함수는 반드시 값에 의하여 통과된 blob 타입의 argument를 하나 포함하고 있어야 한다. 이 함수는 상황에 따라 적절히 data를 처리하고 integer를 리턴한다.

이 함수를 직접 호출하지 말아야 한다 이 함수를 호출하는 코드를 실행하지 말아야한다. GetURL 과 PostURL 함수는 InternetResult 자손을 실체화한 (instantiate) 참조 argument를 포함하고 있다. 이들 함수의 실행이 끝나면 Context object는 InternetData 함수를 호출하고, data내의 HTML을 리턴한다.

예제

다음 예제는 GetURL 함수로부터 data를 나타내기 위하여 InternetData 함수를 억제시키는 코드를 보여준다:

MessageBox("HTML from GetURL", String(data))

RETURN 1

참고

GetURL

PostURL


LineList PowerScript function

설명

성능 분석 모델에 포함된 루틴내의 라인 리스트를 제공한다.

제어

ProfileRoutine object

문법

iinstancename.LineList ( list )

Argument

instancename ProfileRoutine object의 instance 이름

list 루틴내의 각 라인에 관한 ProfileLine object를 저장할 ProfileLine 데이터 타입의 무제한 배열. 이 argument는 참조에 의하여 통과된다.

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

성능 분석 모델에 포함된 루틴내의 라인 리스트를 추출하기 위하여 이 함수를 사용한다. BuildModel 함수를 사용하여 추적 파일로부터 성능 분석 모델을 미리 생성해 놓아야 한다. 각 라인은 ProfileLine object로 정의되고 라인을 사용한 횟수, 라인으로부터의 모든 호출, 그리고 그 라인에 소요된 시간 및 호출한 모든 함수를 제공한다. 라인은 번호 순서로 나열된다.

라인은 데이터베이스 문장과 object는 리턴하지 않는다. 라인 정보가 추적 파일에 기록되어 있지 않으면, 라인은 리턴되지 않는다.

예제

다음 예제는 성능 분석 모델에 포함된 루틴 리스트를 구한 다음 각 루틴의 라인 리스트를 구한다:

Long ll_cnt

ProfileLine lproln_line[]

lpro_model.BuildModel()

lpro_model.RoutineList(iprort_list)

FOR ll_cnt = 1 TO UpperBound(iprort_list)

iprort_list[ll_cnt].LineList(lproln_line)

...

NEXT

참고

BuildModel


NextActivity PowerScript function

설명

추적 파일내의 다음 활동을 제공한다.

제어

TraceFile objects

문법

instancename.NextActivity ( )

Argument

instancename TraceFile object의 instance

Return 값

TraceActivityNode

용법

추적 파일내의 다음 활동 (activity)을 읽기 위하여 NextActivity를 사용한다. 활동은 TraceActivityNode object로 리턴 된다. 더 이상의 활동이 없거나 파일이 오픈 되어 있지 않으면 invalid object가 리턴된다. 어떤 종류의 에러가 발생하였는지 결정하기 위하여 TraceFile object의 LastError property를 사용할 수 있다.

이 함수를 사용하려면, Open 함수와 함께 추적 파일을 미리 오픈하여 놓아야 한다. 추적 파일 내용에 직접 접근하기 위하여 TraceFile object에 의하여 제공된 다른 property 및 함수들과 함께 NextActivity와 Open 함수를 사용한다. 예를들어, 모델링 object를 사용하는 대신 추적 데이터의 자신만의 분석을 수행하기 원한다면 이들 함수를 사용할 수 있다.

예제

다음 예제는 추적 파일을 오픈한 다음 활동 타입에 의거하여 각 활동에 관한 적절한 정보를 리포트하기 위하여 사용자-정의 함수 of_dumpactivitynode를 사용한다:

String ls_filename, ls_line

TraceFile ltf_file

TraceActivityNode ltan_node

ls_filename = sle_filename.text

ltf_file = CREATE TraceFile

ltf_file.Open(ls_filename)

ls_line = "CollectionTime = " + &

String(ltf_file.CollectionTime) + "~r~n" + &

"Num Activities = " + &

String(ltf_file.NumberOfActivities) + "~r~n

mle_output.text = ls_line

ltan_node = ltf_file.NextActivity()

DO WHILE IsValid(ltan_node)

ls_line = of_dumpactivitynode(ltan_node)

ltan_node = ltf_file.NextActivity()

mle_output.text = ls_line

LOOP

참고

Open

Close

Reset


OutgoingCallList PowerScript function

설명

성능 분석 모델에 포함된 다른 루틴을 호출한 리스트를 제공한다.

제어

ProfileLine and ProfileRoutine objects

문법

instancename.OutgoingCallList ( list, aggregrateduplicateroutinecalls )

Argument

instancename ProfileLine 또는 ProfileRoutine object의 instance 이름

list 각각의 다른 루틴 호출에 관하여 저장할 ProfileCall 데이터 타입의 무제한 배열 변수. 이 argument는 참조에 의하여 통과된다

aggregateduplicateroutinecalls 루틴의 중복 호출을 생성할 것인지 여부를 나타내는 boolean

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

성능 분석 모델내의 다른 루틴을 호출한 리스트를 추출하기 위하여 OutgoingCallList 함수를 사용한다. 반드시 BuildModel 함수를 사용하여 추적 파일로부터 성능 분석 모델을 미리 생성해 놓아야 한다. 각 호출자는 ProfileCall object로 정의되고 호출된 루틴과 호출중인 루틴, 호출 횟수, 그리고 소요 시간을 제공한다. 루틴들은 특별한 순서없이 나열된다.

aggregateduplicateroutinecalls argument는 중복된 루틴 호출을 ProfileCall object에 생성할 것인지 여부를 나타낸다. 이 argument는 line tracing이 사용 가능한 상태이고 호출하고있는 루틴이 하나 이상의 라인에서 현재 루틴을 호출하지 않는 한 영향이 없다. aggregateduplicateroutinecalls가 TRUE면, 모든 호출에 대한 새로운 ProfileCall object가 생성된다.

예제

다음 예제는 성능 분석 모델 내에 포함된 루틴 리스트를 구한 다음 각 루틴에 의하여 호출된 루틴들의 리스트를 구한다:

Long ll_cnt

ProfileCall lproc_call[]

lpro_model.BuildModel()

lpro_model.RoutineList(iprort_list)

FOR ll_cnt = 1 TO UpperBound(iprort_list)

iprort_list[ll_cnt].OutgoingCallList(lproc_call, TRUE)

...

NEXT

참고

BuildModel

InComingCallList


PopulateError PowerScript function

설명

SystemError 이벤트를 발생시키지 않고 Error object를 채운다.

문법

PopulateError ( number, text )

Argument

number Error object의 number property에 저장될 integer

text Error object의 text property에 저장될 string

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 리턴값은 보통 사용하지 않는다.

용법

Error object를 나타내려는 값이 스크립트내의 변수에 대한 현재 값에 따른다면, Error object내의 number 와 text 필드에 값을 할당하기 위하여 PopulateError를 사용할 수 있다 (Error object의 나머지 필드는 자동으로 그 에러의 라인 번호를 포함하여 나타나게 될 것이다). 다음에 SystemError를 트리거 시키기 위하여 argument 없이 SignalError를 호출할 수 있다. SystemError 이벤트 스크립트 내에 발생시킨 에러를 인식하고 다루기 위한 코드를 포함시킬 필요가 있다. SystemError 이벤트에 스크립트가 없으면, SignalError 함수는 아무행동도 하지 않는다.

예제

다음 문장은 스크립트 변수에 따라 Error object내의 number와 text 값을 설정한다음, 처리가 완료되면 SystemError 이벤트를 트리거한다:

// 다음 함수는 테이블 이름과 레코드 번호를 취하고

// customer record id와 어떤 일을 하도록 gf_DoSomething

// 루틴을 호출한다.

// 이 루틴은 처리에 성공하면 0을 에러가 발생하면 음수를

// 리턴한다.

li_result = gf_DoSomething("Company", record_id)

IF (li_result < 0) THEN

CHOOSE CASE li_result

CASE -1

PopulateError(1, "No company record exists &

record id: " + record_id)

CASE -2

PopulateError(2, "That company record is currently locked. &

Please try again later.")

CASE -3

PopulateError(3, "The company record could not be updated.")

CASE else

PopulateError(999, "Update failed.")

END CHOOSE

SignalError()

END IF

참고

SignalError


PostURL PowerScript function

설명

HTTP Post를 수행하여, PowerBuilder 응용프로그램이 CGI, NSAPI, 또는 ISAPI를 통하여 요청을 보낼 수 있도록 한다.

제어

Inet objects

문법

servicereference.PostURL ( urlname, urldata, headers, data )

Argument

servicereference Internet service instance 참조

urlname URL 이름

urldata urlname에 의하여 명시된 URL argument를 나타내는 blob

headers HTML header를 나타내는 문자열. Netscape은 각각의 HTTP header 다음에 개행 문자 (~n)가 필요하고 모든 header 다음에 마지막 개행 문자가 필요하다

data 함수가 HTML을 리턴할 InternetResult instance

Return 값

Integer.

다음 값을 리턴한다:

1 처리성공

-1 일반적인 에러

-2 올바르지 않은 URL

-4 Internet에 접속할 수 없음

-6 Internet 요청 실패

용법

CGI, NSAPI, 또는 ISAPI 함수를 이끌어 내려면 이 함수를 호출한다.

data는 InternetResult로부터 상속되고 InternetData 함수를 억제하는 standard class user object를 참조한다. 억제된 함수는 리턴된 HTML과 함께 사용자가 원하는 처리를 수행하게 된다. Internet은 데이터를 비동기로 (asynchronously) 리턴하기 때문에, data는 반드시 함수를 실행한 이후에 남아있는 변수를 참조한다 (instance 변수처럼).

추가정보

InternetResult standard class user object와 InternetData 함수에 관한 더 자세한 정보는 PowerBuilder Browser를 사용한다.

예제

다음 예제는 PostURL 함수를 호출한다. iinet_base는 inet 타입의 instance 변수이다:

Blob lblb_args

String ls_headers

String ls_url

Long ll_length

iir_msgbox = CREATE n_ir_msgbox

ls_url = "http://coltrane.sybase.com/"

ls_url += "cgi-bin/pbcgi60.exe/"

ls_url += "myapp/n_cst_html/f_test?"

lblb_args = blob("")

ll_length = Len(lblb_args)

ls_headers = "Content-Length: " + String(ll_length) + "~n~n"

iinet_base.PostURL(ls_url, lblb_args, ls_headers, iir_msgbox)

참고

GetURL

HyperLinkToURL

InternetData


ResetArgElements PowerScript function

설명

argument 리스트를 지운다.

제어

Window ActiveX controls

문법

activexcontrol.ResetArgElements ( )

Argument

activexcontrol PowerBuilder window ActiveX control의 instance 식별자. HTML에서 사용될 때, 이것은 object element의 NAME attribute이다. 다른 환경에서 사용될 때, 이것은 PowerBuilder window ActiveX를 포함하고있는 control 참조이다.

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

InvokePBFunction 나 TriggerPBEvent 함수를 호출한 이후에 argument 리스트를 지우려면 이 함수를 사용한다.

SetArgElement로 argument 리스트를 나타내었다면, 이들 argument로 이벤트나 함수를 호출하기 위하여 InvokePBFunction나 TriggerPBEvent를 사용한 다음에 argument 리스트를 지우려면 반드시 이 함수를 호출하여야 한다.

예제

다음 JavaScript 예제는 ResetArgElements 함수를 호출한다:

...

retcd = PBRX1.TriggerPBEvent(theEvent, numargs);

rc = parseInt(PBRX1.GetLastReturn());

IF (rc != 1) {

alert("Error. Empty string.");

}

PBRX1.ResetArgElements();

...

다음 VBScript 예제는 ResetArgElements 함수를 호출한다:

...

retcd = PBRX1.TriggerPBEvent(theEvent, numargs)

rc = PBRX1.GetLastReturn()

IF rc <> 1 THEN

msgbox "Error. Empty string."

END IF

PBRX1.ResetArgElements()

...

참고

GetLastReturn

InvokePBFunction

SetArgElement

TriggerPBEvent


RoutineList PowerScript function

설명

성능 분석 모델에 포함되어 있는 루틴들의 리스트를 제공한다.

제어

ProfileClass and Profiling objects

문법

instancename.RoutineList ( list )

Argument

instancename ProfileClass 또는 Profiling object의 instance 이름

list class내의 모델에 존재하는 각 루틴에 관하여 저장할 ProfileRoutine 데이터 타입의 무한 배열 변수. 이 argument는 참조에 의하여 통과된다

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

특정 class내의 성능 분석 모델 (performance analysis model)에 포함된 루틴의 리스트를 추출하려면 이 함수를 사용한다. 반드시 BuildModel 함수를 사용하여 추적 파일로부터 성능 분석 모델을 미리 생성해 놓아야 한다. 각 루틴은 ProfileRoutine object로 정의되고 루틴 내에서의 소요시간, 호출된 모든 루틴, 각 루틴이 호출된 횟수, 루틴이 속해있는 class 등을 제공 한다. 루틴들은 특별한 순서없이 나열된다.

class에 관한 object 생성과 제거는 이 리스트 내의 루틴에 의하여 나타내진다.

예제

다음 예제는 성능 분석 모델의 각 class에 포함된 루틴들을 나열한다:

Long ll_cnt

ProfileCall lproc_call[]

lpro_model.BuildModel()

lpro_model.RoutineList(iprort_list)

...

참고

ClassList


SaveAsAscii PowerScript function

설명

DataWindow 또는 DataStore의 내용을 표준 ASCII 텍스트 파일로 저장한다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.SaveAsAscii ( filename {, separatorcharacter {, quotecharacter {, lineending } } } )

Argumen

dwcontrol 저장하려는 내용을 가진 DataWindow control 또는 DataStore 이름

filename 내용을 저장하려는 파일 이름 (string)

separatorcharacter (선택사항) 구분 값으로 사용할 문자 (string). 이 옵션을 생략하면 기본적으로 tab 문자가 된다

quotecharacter (선택사항) wrap 값으로 사용할 문자 (string). 이 옵션을 생략하면, 기본설정 문자는 없다

lineending (선택사항) 각 라인의 끝에 위치할 값 (string). 이 옵션을 생략하면, 기본설정 값은 carriage return과 개행 문자를 합한 값 (~r~n) 이다

Return 값

Long.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

SaveAsAscii 함수는 SaveAs (Text!) 함수와 SaveAs (HTMLTable!) 함수에 argument가 추가된 형태다. 이 함수는 화면상에 나타나는 모양에 더 근접한 형식을 갖는다. argument들은 ASCII 파일의 내용을 어떻게 분리하고 구분할 것인지 제어하도록 해준다. PowerBuilder는 각 DataWindow object들(computed column과 group total도 포함할 수 있다)을 하나의 cell로 할당한다. cell이 비어있으면, PowerBuilder는 출력 파일의 separatorcharacter 사이에 quotecharacter를 넣는다.

예제

다음 문장은 dw_Quarter의 내용을 H:\Q2\RESULTS.TXT 파일에 저장한다. 저장된 파일은 분리 문자로 ampersand (&), wrap 값으로 single quote ('), 기본 설정된 라인의 끝 (~r~n)을 가지는 ASCII 파일이다. computed column들도 저장된 정보에 포함된다:

dw_Quarter.SaveAsAscii("H:\Q2\RESULTS.TXT","&","'")

참고

SaveAs


SetArgElement PowerScript function

설명

명시한 argument 요소의 값을 설정한다.

제어

Window ActiveX controls

문법

activexcontrol.SetArgElement ( index, argument )

Argument

activexcontrol PowerBuilder window ActiveX control의 instance. HTML에서 사용될 때, 이 argument는 object element의 NAME attribute이다. 다른 환경에서 사용될 때, 이 argument는 PowerBuilder window ActiveX를 포함하고있는 control을 참조한다

index argument 위치를 명시하는 integer

argument argument 값

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

함수에 통과된 argument를 명시하기 위하여 InvokePBFunction 또는 TriggerPBEvent 함수를 호출하기 전에 이 함수를 호출한다.

JavaScript 스크립트에서는 함수와 이벤트 argument들을 명시하기 위하여 반드시 이 함수를 사용하여야 한다. VBScript 스크립트에서는 이 함수를 사용하거나 직접 argument 배열을 명시할 수 있다.

예제

다음의 JavaScript 예제는 SetArgElement 함수를 호출한다:

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);

...

참고

GetArgElement

GetLastReturn

InvokePBFunction

TriggerPBEvent


SetAutomationPointer PowerScript function

설명

OLEObject object의 automation pointer를 다른 object의 automation pointer로 설정한다.

제어

OLEObject

문법

oleobject.SetAutomationPointer ( object )

Argument

oleobject automation pointer를 설정하려는 OLEObject 변수 이름. OLEObject가 OLE control의 Object property면 명시할 수 없다

object oleobject내의 pointer 변수를 설정하기 위하여 사용하려는 automation pointer를 포함하고 있는 OLEObject 이름

Return 값

Integer.

처리에 성공하면 0을 리턴하고 object가 올바르지 못한 OLE automation pointer를 포함하고 있으면 -1을 리턴한다.

용법

SetAutomationPointer는 OLE에 의하여 사용된 automation pointer를 OLEObject의 자손에 할당한다.

예제

다음 예제는 OLEObject 변수를 생성하고 새로운 Excel object를 생성하고 연결하기 위하여 ConnectToNewObject를 호출한다. 또한 oleobjectchild (OLEObject의 자손) 타입의 object를 생성하고 자손 object의 automation pointer를 OLEObject object에 있는 automation pointer의 값으로 설정한다. 다음에 자손 object를 사용하고있는 worksheet내 값을 설정하고 다른 파일로 저장한 다음, object들을 제거한다:

OLEObject ole1

oleobjectchild oleChild

integer rs

ole1= CREATE OLEObject

rs = ole1.ConnectToNewObject("Excel.Application")

oleChild = CREATE oleobjectchild

rs = oleChild.SetAutomationPointer(ole1 )

IF ( rs = 0 ) THEN

oleChild.workbooks.open("d:\temp\expenses.xls")

oleChild.cells(1,1).value = 11111

oleChild.activeworkbook.saveas("d:\temp\newexp.xls")

oleChild.activeworkbook.close()

oleChild.quit()

END IF

ole1.disconnectobject()

DESTROY oleChild

DESTROY ole1

참고

GetAutomationNativePointer

ReleaseAutomationNativePointer


SetAutomationTimeout PowerScript function

설명

PowerBuilder client가 서버의 OLE 프로시저 호출을 취소하기 전에 기다리는 시간을 1/1000초 단위로 설정한다.

제어

OLEObject objects

문법

oleobject.SetAutomationTimeout ( interval )

Argument

oleobject timeout 기간을 설정하려는 object를 포함하고 있는 OLEObject 이름

interval PowerBuilder 클라이언트가 프로시저 호출을 취소하기 전에 얼마나 기다릴 석이지 명시한 값 (32-bit signed long integer). 기본설정 값은 300,000 밀리초 (5분) 이다. 0 또는 음수 값을 명시하면 기본설정 값으로 재 설정 된다

Return 값

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

이 함수는 IMessageFilter interface의 PowerBuilder 실행 간격 값을 통과 시키고 PowerBuilder가 OLE 프로시저 호출을 완료하는데 필요한 시간을 결정한다. PowerBuilder가 OLE 클라이언트일 때에만 적용되고, PowerBuilder가 OLE 서버일 때에는 적용되지 않는다.

대부분의 상황에서, 사용자가 SetAutomationTimeout 함수를 호출할 필요가 없다. 기본설정 값인 5분이 통상적으로 적용된다. 5분이상의 시간이 필요할 것으로 예상되는 특별한 OLE 요청으로 인하여 기본설정 값을 변경할 경우에만 SetAutomationTimeout 함수를 사용한다.

timeout 기간이 경과하면 runtime 에러 1037이 발생한다. SetAutomationTimeout 함수로 명시한 값은 연관된 다른 object 호출을 포함하여 현재 session의 모든 OLE transaction에 적용된다.

예제

다음 예제는 Excel worksheet에 접속하기 위하여 ConnectToObject 함수를 호출하고 timeout 기간을 900,000 밀리 초(15분)로 설정한다:

OLEObject ole1

integer rs

long interval

interval = 900000

ole1 = create OLEObject

rs = ole1.ConnectToObject("Excel.Application")

rs = ole1.SetAutomationTimeOut(interval)


SetChanges PowerScript function

설명

GetChanges가 잡은 변경을 DataWindow나 DataStore에 적용한다.

이 함수는 주로 분산 응용프로그램에서 사용한다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.SetChanges ( changeblob {, resolution } )

Argument

dwcontrol 변경을 적용하려는 DataWindow control 또는 DataStore 이름

changeblob 변경을 적용하려는 GetChanges로부터 생성된 읽기-전용 change blob

resolution (선택사항)

충동을 어떻게 해결할 것인지 나타내는 dwConflictResolution 열거형 데이터 타입의 값:

※ FailOnAnyConflict! (기본설정값)

※ AllowPartialChanges!

Return 값

Long.

다음 값중에서 리턴한다:

1 모든 변경이 적용되었다

2 부분적 갱신이 성공되었다; 충돌부분은 배제되었다

-1 실패하였다

-2 DataWindow changeblob과 DataWindow 상태 사이에 충돌이 있다

-3 명시된 Column이 일치하지 않는다

용법

이 함수는 두 개 이상의 DataWindow control 또는 DataStore를 동기화 하기 위하여 GetChanges와 함께 사용된다. GetChanges는 DataWindow control 또는 DataStore에서 변경된 row들의 데이터 버퍼와 상태 flag 등을 blob에 retrieve한다. 다음에 SetChanges는 이 blob의 내용을 다른 DataWindow control 이나 DataStore에 적용한다.

서로다른 클라이언트상의 여러 target DataWindow (또는 DataStore)의 source로써 서버상에 단일 DataStore가 활성화 되어있는 상황에서는, SetChanges의 성공 여부를 결정하기 위하여 GetStateStatus와 함께 GetChanges를 사용할 수 있다. 이것은 SetChanges 호출이 실패하게 될 때 (다른 클라이언트에 의하여 이미 변경된 내용과 blob 충돌이 있기 때문) 네트웍상의 다른 change blob에 영향을 주지 않도록 하게한다.

SetChnages의 성공 여부를 결정하려면, 다음이 필요하다:

1 SetChnages를 호출하려는 DataStore 상에서 GetStateStatus 함수를 호출한다. GetStateStatus는 DataStore의 state를 체크하고 cookie라는 참조(reference) argument에 유용한 state 정보를 만든다. cookie는 일반적으로 DataWindow change blob보다 크기가 많이 작다.

2 cookie를 클라이언트에 보낸다.

3 변경을 적용하려는 DataWindow상에서 GetStateStatus로부터 retrieve된 cookie를 파라미터로 통과시켜 GetChanges를 호출한다. GetChanges의 리턴값은 DataWindow blob과 DataStore 상태(state) 와의 사이에 모든 부분적 충돌 여부를 나타내게 된다.

GetChages의 리턴 값이 부분적 충돌이 있음을 나타내면, FailOnAnyConflict! argument를 명시하여 뒤따르는 SetChanges 호출은 실패하도록 할 수 있을 것이다. 그러나, GetChanges로 부터의 리턴 값이 충돌이 없음을 나타내면, DataStore의 상태(state)는 사용자가 GetStateStatus 와 GetChanges를 호출한 이후에 변경된 것일 수도 있기 때문에, SetChanges 호출이 아직 실패일 수도 있다.

예제

다음 문장은 remote object에 관한 스크립트이다. 클라이언트상의 DataWindow control 변경 내용을 서버상의 DataStore에 적용시키기 위하여 SetChanges를 사용하였다. 클라이언트상에서의 변경 내용은 함수의 argument로 통과된 change blob에 포함되어 있다. 변경 내용을 DataStore에 적용한 다음, 서버는 데이터베이스를 갱신한다:

// Instance 변수 : datastore ids_datastore

// Function argument : blob ablb_data

long ll_rv

ids_datastore.SetChanges(ablb_data)

ll_rv = ids_datastore.Update()

IF ll_rv > 0 THEN

COMMIT;

ELSE

ROLLBACK;

END IF

RETURN ll_rv

참고

GetChanges

GetFullState

GetStateStatus

SetFullState


SetFullState PowerScript function

설명

GetFullState에 의하여 retrieve된 DataWindow blob의 내용을 DataWindow 또는 DataStore에 적용 시킨다.

이 함수는 주로 분산 응용프로그램에 사용된다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.SetFullState ( dwasblob )

Argument

dwcontrol blob을 적용시키려는 DataWindow 또는 DataStore 이름

dwasblob DataWindow 또는 DataStore에 적용시키려는 상태 정보를 포함하고 있는 blob

Return 값

Long.

에러가 발생하면 -1을 리턴하고 성공하면 다음 값을 리턴한다:

1 DataWindow object들이 일치한다; 이전 데이터와 상태는 겹쳐써진다

2 DataWindow object들이 일치하지 않는다; 이전 object, 데이터, 상태는 대치된다

3 DataWindow control 또는 DataStore와 연관된 DataWindow object가 없다; DataWindow blob으로부터 새로 할당된다

용법

GetFullState는 DataWindow object, 데이터 버퍼, 상태 flag등 DataWindow control 또는 DataStore에 모든 상태를 blob에 retrieve 한다. GetFullState에 의하여 생성된 blob을 다른 DataWindow에 적용시키기 위하여 SetFullState를 사용할 때, target DataWindow는 source DataWindow를 생성하기 위한 충분한 정보를 가지고 있다.

GetFullState에 의하여 생성된 blob은 명시된 DataWindow object를 포함하고 있기 때문에, SetFullState를 반복하여 호출하면 target DataWindow control 또는 DataStore에 관한 DataWindow object는 겹쳐써지게 될 것이다. 이 경우, SetFullState는 target의 DataObject 속성 설정상태에 영향을 준다.

서버상에 DataStore를 가지고있는 클라이언트의 DataWindow를 동기화하기 위하여 GetFullState와 SetFullState를 사용할 때, DataStore의 DataWindow object가 클라이언트에 나타내려는 presentation 스타일인지 확인할 필요가 있다.

예제

분산 클라이언트 응용프로그램내의 다음 문장은 데이터베이스 정보를 DataStore에 retrieve하고 DataStore의 내용을 blob에 넣기 위하여 remote object 함수를 호출한다. 서버가 blob을 클라이언트로 통과시킨 후, 클라이언트는 그 blob을 DataWindow control에 적용 시키기 위하여 SetFullState를 사용한다:

// Global 변수 : connection myconnect

// Instance 변수 : uo_employee iuo_employee

blob lblb_data

long ll_rv

myconnect.CreateInstance(iuo_employee)

iuo_employee.RetrieveData(lblb_data)

ll_rv = dw_empdata.SetFullState(lblb_data)

if ll_rv = -1 then

MessageBox("Error", "SetFullState call failed!")

end if

참고

GetChanges

GetFullState

GetStateStatus

SetChanges


Start PowerScript 함수

[설명]

pipeline object를 실행하여, pipeline object의 SQL query에 의하여 명시된 내용에 따라 source로부터 대상(destination)으로 데이터를 옮긴다. 이 pipeline object는 pipeline system object로부터 상속 받은 사용자 object의 속성이다.

[적용]

Pipeline objects

[문법]

pipelineobject.Start ( sourcetrans, destinationtrans, errordatawindow {, arg1, arg2,..., argn} )

[Argument]

pipelineobject | 실행할 pipeline object를 포함하고있는 pipeline user object 이름
sourcetrans | source 데이터베이스에 연결할 transaction object 이름
destinationtrans | target 데이터베이스에 연결할 transaction object 이름
errordatawindow | pipeline-error DataWindow를 나타내기 위한 DataWindow control 이름. DataWindow control에 DataWindow object를 할당할 필요가 없다. 만일 DataWindow object를 할당하게 되면, pipeline에 의하여 사용된 것으로 대치된다.
argn | Data Pipeline painter내에 있는 pipeline object에 관하여 명시한 retrieval argument들

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 음수 값을 리턴한다:

-1 | pipe 오픈 실패 (Pipe open failed)
-2 | 칼럼이 너무 많다 (Too many columns)
-3 | 테이블이 이미 존재한다 (Table already exists)
-4 | 테이블이 존재하지 않는다 (Table does not exist)
-5 | 접속 실패 (Missing connection)
-6 | 잘못된 argument (Wrong arguments)
-7 | 칼럼이 일치하지 않는다 (Column mismatch)
-8 | source SQL의 치명적 에러 (Fatal SQL error in source)
-9 | destination SQL의 치명적 에러 (Fatal SQL error in destination)
-10 | 최대 에러 수를 초과하였다 (Maximum number of errors exceeded)
-12 | 테이블 syntax가 잘못되었다 (Bad table syntax)
-13 | 필요한 키가 제공되지 않았다 (Key required but not supplied)
-15 | pipe가 이미 진행중이다 (Pipe already in progress)
-16 | source 데이터베이스 에러 (Error in source database)
-17 | destination 데이터베이스 에러 (Error in destination database)
-18 | destination 데이터베이스가 읽기-전용 이다 (Destination database is read-only)

argument 값중에 NULL이 있으면, Start 함수는 NULL을 리턴한다.

[용법]

pipeline transfer는 여러 개의 PowerBuilder object를 수반하며, 다음과 같은 것들이 필요하다:

▶Data Pipeline painter에 정의한 pipeline object. 이곳에는 어떤 데이터가 옮겨질 것인지 와 source 데이터베이스의 테이블로부터 target 데이터베이스 테이블로 데이터를 어떻게 옮길 것인지를 명시한 SQL 문장이 포함되어있다.

▶pipeline system object로부터 상속된 user object. user object는 pipeline transfer의 처리과정을 체크하는 property를 상속 받는다. painter에서, instance 변수를 정의하고 pipeline 이벤트에 관한 스크립트를 작성한다.

▶pipeline-error DataWindow에 관한 DataWindow control을 포함하고있는 윈도우. 이 control은 pipeline 실행 중 에러가 발생하면 PowerBuilder의 pipeline-error DataWindow를 나타낼 것이다.

윈도우는 pipeline의 실행, 에러교정, 실행 취소 등을 위한 버튼, 메뉴, 또는 다른 방법들을 포함할 수 있다. 이들 행동에 관한 스크립트에는 Start, Repair, Cancel 함수 등이 사용될 것이다.

응용프로그램이 pipeline을 실행하기 전에(먼저 source와 destination 데이터베이스에 접속하는 것이 필요하다), user object의 instance를 생성하고, pipeline object를 user object의 DataObject property에 할당한다. 다음에 Start 함수를 호출하여 pipeline을 실행한다.

pipeline을 실행할 때, pipe된 데이터는 Data Pipeline painter에 만들어 놓은 설정내용에 따라 받아들여 진다. 사용자는 다음 내용을 명시할 수 있다:

▶pipeline이 종료될 때 데이터를 commit 한다. 에러 제한 수를 초과하면, 모든 데이터가 rollback 된다.

▶일정 간격으로 데이터를 commit 한다. 에러 제한 수를 초과하면, 이미 옮겨진 모든 row는 commit 된다.

Data Pipeline painter에 pipeline object에 관한 정보를 명시하고 commit에 영향을 주는 설정방법 등에 관한 정보는 PowerBuilder User's Guide를 참조한다. 응용프로그램에서 pipeline을 사용하는 더 자세한 정보는, Application Techniques를 참조한다.

pipeline object를 user object의 DataObject property에 동적으로 할당할 때, 사용자는 반드시 dynamic library에 pipeline object를 포함시키는 것을 기억하여야 한다.

[예제]

* 다음 스크립트는 pipeline user object의 instance를 생성하고, pipeline object를 pipeline user object의 DataObject property에 할당한 후, pipeline을 실행한다. i_src와 i_dst는 이전에 선언되고 생성한 transaction object이다. 다른 스크립트는 데이터베이스 접속을 설치한다.

u_pipe는 pipeline system object에서 상속된 user object이다. i_upipe는 u_pipe 타입의 instance 변수이다. p_pipe는 Data Pipeline painter에 생성된 pipeline object이다.

i_upipe = CREATE u_pipe

i_upipe.DataObject = "p_pipe"

i_upipe.Start(i_src, i_dst, dw_1)

[참고]

Cancel

Repair


Stop PowerScript function

설명

timing object 활성화를 해제한다.

제어

Timing objects

문법

timingobject.Stop ( )

Argument

timingobject 활성화를 해제하려는 timin object 이름

Return 값

Integer.

처리에 성공하면 1을 리턴하고 timer가 실행중이지 않거나 timer를 중지할 수 없으면 -1을 리턴한다.

용법

timing object 활성화를 해제하려면 이 함수를 사용한다. 중지된 timer는 Start 함수로 다시 활성화될 수 있다.

예제

다음 문장은 timing object instance MyTimer를 중지한다:

(자세한 예제는 Start 함수를 참조한다)

MyTimer.Stop()

참고

Start


SystemRoutine PowerScript function

설명

성능 분석 모델의 system root를 routine node로 제공한다.

제어

Profiling object

문법

instancename.SystemRoutine ( theroutine )

Argument

instancename Profiling object으 instance 이름

theroutine routine node로 재표현할 system root를 포함하고 있는 ProfileRoutine 타입의 값. 이 argument는 참조로 통과된다

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ ModelNotExistsError! 모델이 존재하지 않는다

용법

성능 분석 모델의 system root를 routine node로 추출하려면 이 함수를 사용한다. BuildModel 함수를 사용하여 추적 파일로부터 성능분석 모델을 미리 생성해 놓아야 한다. routine node는 ProfileRoutine object로 정의되고 호출한 routine들의 routine내에서의 소요 시간을 제공한다.

예제

다음 예제는 성능 분석 모델의 system root를 routine node로 재 표현한다:

Profiling lpro_model

ProfileRoutine lprort_routine

lpro_model.BuildModel()

lpro_model.SystemRoutine(lprort_routine)

...

참고

BuildModel


ToAnsi PowerScript function

설명

character 문자열을 ANSI blob으로 변환한다.

문법

ToAnsi ( string )

Argument

string ANSI blob으로 변환하려는 character 문자열

Return 값

Blob.

처리에 성공하면 ANSI blob을 리턴하고 실패하면 비어있는 blob을 리턴한다.

용법

PowerBuilder의 Unicode 버전을 사용하고 있다면, ToAnsi 함수는 Unicode character string을 ANSI blob으로 변환한다. PowerBuilder의 ANSI 버전을 사용하고 있다면, ToAnsi 함수는 ANSI character string을 blob으로 변환한다. PowerBuilder의 ANSI 버전에서, ToAnsi함수는 Blob(string)과 동일한 결과를 갖는다.

Unicode 파일 형식 Unicode 파일은 파일의 시작 위치에 Unicode 파일임을 나타내는 두 바이트 문자를 가지고 있다. stream 모드로 Unicode 파일을 오픈한다면, 처음 두 바이트는 건너 뛰게된다.

예제

다음 예제는 ToAnsi 함수를 사용하여 string을 ANSI blob으로 변환한 다음 blob을 파일에 기록한다. string은 실행중인 PowerBuilder 버전에 따라 Unicode 또는 ANSI 파일일 수 있다:

integer li_filenum

blob lblb_text

string ls_native

ls_native = "Sample text in native format"

li_filenum = FileOpen("ansi_out.txt", StreamMode!, Write!, LockWrite!, Replace!)

lblb_text = ToAnsi(ls_native)

FileWrite(li_filenum, lblb_text)

FileClose(li_filenum)

참고

ToUnicode


ToUnicode PowerScript function

설명

character 문자열을 Unicode blob으로 변환 한다.

문법

ToUnicode ( string )

Argument

string Unicode blob으로 변환하려는 character string

Return 값

Blob.

처리에 성공하면 Unicode blob을 리턴하고 실패하면 빈 blob을 리턴한다.

용법

PowerBuilder의 Unicode 버전을 사용중이면, ToUnicode 함수는 Unicode character string을 blob으로 변환한다. PowerBuilder의 ANSI 버전을 사용 중이면, ToUnicode 함수는 ANSI character string을 Unicode blob으로 변환한다. PowerBuilder Unicode 버전에서, ToUnicode는 Blob(string)과 동일한 결과를 갖는다.

Unicode 파일 형식 Unicode 파일은 파일의 시작 위치에 Unicode 파일임을 나타내는 두 바이트 문자를 가지고 있다.

예제

다음 예제는 multiline edit에 입력되어 있는 string을 Unicode blob으로 변환하기 위하여 ToUnicode 함수를 사용한다. character string의 파일 형식은 실행중인 PowerBuilder 버전에 따른다.

blob lblb_text

string ls_native

ls_native = mle_entry.Text

lblb_text = ToUnicode(ls_native)

참고

ToAnsi


TraceBegin PowerScript function

설명

기록이 시작되었음을 나타내는 추적 파일에 activity 타입 값을 삽입하고 모든 사용 가능한 응용프로그램 추적 활동 기록을 시작한다. TraceBegin 함수를 호출하기 전에, 반드시 TraceOpen 함수를 사용하여 추적 파일을 오픈해 놓아야 한다.

문법

TraceBegin ( identifier )

Argument

identifier 추적 block을 확인하는데 사용되는, 추적 파일에 기록된, 읽기-전용 문자열. indentifier가 NULL이면, 추적 파일에 빈 문자열("")이 위치한다.

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FileNotOpenError! TraceOpen 함수를 아직 호출하지 않았다

▶ TraceStartedError! TraceBegin 함수가 이미 호출되었다

용법

TraceBegin 함수를 호출하면 기록이 시작되었다는 것을 알리기 위하여 추적 파일에 activity 타입의 값 ActBegin!을 삽입하고 추적을 위하여 선택한 모든 응용프로그램의 활동을 기록하기 시작한다.

TraceBegin은 TraceOpen 함수를 호출한 다음에만 호출할 수 있다. 그리고 기록될 모든 활동은 TraceBegin 함수를 호출하기 전에 반드시 TraceEnableActivity 함수를 사용하여 사용가능한 상태가 되어있어야 한다.

응용프로그램 실행 전체에 관한 추적 파일을 생성하기 원하면, 전형적으로 응용프로그램의 open 스크립트에 TraceBegin 함수를 포함시킨다. 응용프로그램의 일부분 실행에 관한 추적 파일을 생성하기 원하면, 자료를 수집하기 원하는 스크립트에 TraceBegin 함수를 포함시킨다.

추적 파일내에 추적 block을 확인하기 위하여 identifier argument를 사용할 수 있다. 추적 block은 TraceBegin과 TraceEnd 호출 사이에 기록된 데이터를 나타낸다. 응용프로그램의 여러 부분에서 추적을 하면 하나의 추적 파일에 여러 개의 추적 block이 존재할 수 있다.

예제

다음 예제는 single line edit box에 입력한 이름의 추적 파일을 오픈하고 dropdown listbox에서 timer 종류를 선택한다. 다음에 추적할 코드의 첫 번째 block에 관한 활동을 기록하기 시작한다:

TimerKind ltk_kind

CHOOSE CASE ddlb_timestamp.text

CASE "None"

ltk_kind = TimerNone!

CASE "Clock"

ltk_kind = Clock!

CASE "Process"

ltk_kind = Process!

CASE "Thread"

ltk_kind = Thread!

END CHOOSE

TraceOpen(sle_filename.text,ltk_kind)

TraceEnableActivity(ActESQL!)

TraceEnableActivity(ActGarbageCollect!)

TraceEnableActivity(ActObjectCreate!)

TraceEnableActivity(ActObjectDestroy!)

TraceBegin("Trace_block_1")

참고

TraceOpen

TraceEnableActivity

TraceEnd


TraceClose PowerScript function

설명

추적 파일을 닫는다.

문법

TraceClose ( )

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FileNotOpenError! TraceOpen 함수를 아직 호출하지 않았다

▶ FileCloseError! 기록 파일이 최대가 되었다

용법

TraceClose 함수는 추적 파일을 닫는다. TraceEnd 함수가 호출되어있지 않으면, 처리를 시작하지 전에 먼저 TraceEnd 함수를 호출한다.

전형적으로 TraceClose 함수는 응용프로그램의 Close 스크립트에 포함시킨다.

예제

다음 예제는 응용프로그램 추적 활동 기록을 중지하고 오픈된 추적 파일을 닫는다:

TraceEnd()

TraceClose()

참고

TraceBegin

TraceEnd

TraceOpen


TraceDisableActivity PowerScript function

설명

명시한 추적 활동의 기록을 불가능하게 한다.

문법

TraceDisableActivity ( activity )

Argument

activity 기록을 할 수 없도록 하기 위한 활동을 나타내는 TraceActivity 타입의 열거형 데이터 값.

▶ ActError! 시스템 에러와 경고 발생

▶ ActESQL! 삽입된 SQL 문장 등록과 종료

▶ ActGarbageCollect! garbage collection의 시작과 종료

▶ ActLine!

▶ ActObjectCreate! object 생성 등록과 종료

▶ ActObjectDestroy! object 제거 등록과 종료

▶ ActProfile! ActRoutine!, ActESQL!, ActObjectCreate!, ActObjectDestroy!, ActGarbageCollect! 값 생략

▶ ActRoutine!

▶ ActTrace! ActLine!을 제외한 모든 활동 생략

▶ ActUser! 사용자가 선택한 활동 발생

Return 값

ErrorReturn.

다음값을 리턴한다:

▶ Success! 처리성공

▶ FileNotOpenError! TraceOpen 함수가 아직 호출되어있지 않다

▶ TraceStartedError! TraceBegin 이후와 TraceEnd 호출전에 TraceDisableActivity를 호출하였다

용법

명시한 추적 활동의 기록을 할 수 없도록 하기 위하여 이 함수를 사용한다. 응용프로그램의 일부분만 추적하고 (따라서 TraceBegin을 여러 번 호출하게 된다) 응용프로그램의 각 부분에서 서로 다른 활동하기 원할 때 전형적으로 이 함수를 사용한다.

TraceDisableActivity로 명시하지 않는 한, TraceEnableActivity로 기록 가능하게 한 활동들은 응용프로그램 실행 전체를 통하여 그대로 유지된다.

TraceDisableActivity 함수를 호출하기 전에 반드시 항상 TraceEnd 함수를 호출하여야 한다.

예제

다음 예제는 첫 번째 block에 관한 활동을 기록한다. 다음에 기록을 중지하고 두 번째 추적 block에서 두 개의 활동 타입을 기록할 수 없도록 한다. 기록이 다시 시작될 때, 기록할 수 없도록 표시하지 않은 활동들은 TraceClose가 호출될 때까지 그 상태로 남는다.

TraceEnableActivity(ActESQL!)

TraceEnableActivity(ActGarbageCollect)

TraceEnableActivity(ActObjectCreate!)

TraceEnableActivity(ActObjectDestroy!)

TraceBegin("Trace_block_1")

TraceEnd()

TraceDisableActivity(ActESQL!)

TraceDisableActivity(ActGarbageCollect!)

TraceBegin("Trace_block_2")

참고

TraceEnd

TraceEnableActivity


TraceEnableActivity PowerScript function

설명

명시한 추적 활동의 기록을 가능하게 한다.

문법

TraceEnableActivity ( activity )

Argument

activity 기록될 활동들을 나타내기 위한 열거형 데이터 타입 TraceActivity의 값.

▶ ActError! 시스템 에러와 경고 발생

▶ ActESQL! 삽입된 SQL 문장 등록과 종료

▶ ActGarbageCollect! garbage collection의 시작과 종료

▶ ActLine!

▶ ActObjectCreate! object 생성 등록과 종료

▶ ActObjectDestroy! object 제거 등록과 종료

▶ ActProfile! ActRoutine!, ActESQL!, ActObjectCreate!, ActObjectDestroy!, ActGarbageCollect! 값 생략

▶ ActRoutine!

▶ ActTrace! ActLine!을 제외한 모든 활동 생략

▶ ActUser! 사용자가 선택한 활동 발생

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FileNotOpenError! TraceOpen 함수가 아직 호출되어있지 않다

▶ TraceStartedError! TraceBegin 이후와 TraceEnd 호출전에 TraceDisableActivity를 호출하였다

용법

TraceOpen 함수 다음에 TraceEnableActivity 함수를 호출한다. TraceEnableactivity 함수는 추적 파일에 기록할 활동 타입들을 명시하도록 해준다. 기본적으로 기록되는 활동 타입은 ActUser! 값에의하여 확인되는 사용자-정의 활동 타입이다. 이 활동은 TraceOpen 함수 호출에 의하여 사용가능하게 된다. TraceBegin 함수를 호출하기 전에 기록할 활동들을 명시하도록 반드시 TraceEnableActivity 함수를 호출하여야 한다.

TraceOpen 함수 호출은 활동 타입을 기본설정 (즉, ActUser! 활동) 기록으로 재설정 한다.

ActError! 와 ActUser! 값은 추적 파일에 문자열을 통과시킬 것을 요구하기 때문에, 이 정보를 기록하려면 반드시 TraceError와 TraceUser 함수를 호출하여야 한다.

TraceDisableActivity로 명시하지 않는 한, TraceEnableActivity로 기록 가능하게 한 활동들은 응용프로그램 실행 전체를 통하여 그대로 유지된다.

예제

다음 에제는 single line edit box에 입력된 이름의 추적 파일을 오픈하고 dropdown listbox에서 timer 종류를 선택한다. 다음에 첫 번째 block에 관한 활동을 기록하기 시작한다.

TimerKindltk_kind

CHOOSE CASE ddlb_timestamp.text

CASE "None"

ltk_kind = TimerNone!

CASE "Clock"

ltk_kind = Clock!

CASE "Process"

ltk_kind = Process!

CASE "Thread"

ltk_kind = Thread!

END CHOOSE

TraceOpen(sle_filename.text,ltk_kind)

TraceEnableActivity(ActRoutine!)

TraceEnableActivity(ActESQL!)

TraceEnableActivity(ActGarbageCollect!)

TraceEnableActivity(ActError!)

TraceEnableActivity(ActCreateObject!)

TraceEnableActivity(ActDestroyObject!)

TraceBegin("Trace_block_1")

참고

TraceOpen

TraceBegin

TraceDisableActivity


TraceEnd PowerScript function

설명

기록의 끝을 나타내기 위하여 추적 파일에 활동 타입의 값을 삽입하고 응용프로그램의 추적 활동 기록을 중지한다.

문법

TraceEnd ( )

Return 값

ErrorReturn. 다음 값을 리턴한다:

▶ Success! 처리성공

▶ FileNotOpenError! TraceOpen 함수가 아직 호출되지 않았다

▶ TraceNotStartedError! TraceBegin 함수가 아직 호출되지 않았다

용법

TraceEnd 함수를 호출하면 기록이 끝났음을 나타내기 위하여 추적 파일에 활동 타입의 값 ActBegin!을 삽입하고 추적을 위하여 선택한 모든 응용프로그램 활동의 기록을 중지한다.

TraceClose 함수를 호출할 때 TraceEnd 함수가 미리 호출되어있지 않으면, TraceClose 함수는 처리전에 TraceEnd 함수를 먼저 호출한다.

응용프로그램 실행 전체에 관한 추적 파일을 생성하기 원하면, 전형적으로 응용프로그램의 Close 스크립트에 TraceEnd 함수를 포함시킨다. 응용프로그램의 일부분 실행에 관한 추적 파일을 생성하기 원하면, 자료를 수집하기 원하는 스크립트의 마지막에 TraceEnd 함수를 포함시킨다.

예제

다음 예제는 응용프로그램 추적 활동 기록을 중지한 다음 오픈된 추적 파일을 닫는다:

TraceEnd()

TraceClose()

참고

TraceOpen

TraceBegin

TraceClose

TraceDisableActivity


TraceError PowerScript function

설명

에러 메시지를 기록하고 이러한 활동 타입 추적이 사용 가능한 상태이면 추적 파일에 레벨도 함께 기록한다.

문법

TraceError ( severity, message )

Argument

severity 에러 종류를 나타내기 위한 번호 (long)

message 추적 파일에 추가하려는 에러 메시지 값

Return 값

ErrorReturn.

이 함수는 항상 Success!를 리턴한다.

severity 또는 message가 NULL 이면, TraceError 함수는 NULL을 리턴하고 추적 파일에 아무것도 기록하지 않는다.

용법

TraceError 함수는 TraceEnableActivity 함수로 활동타입 ActError!의 값을 사용가능하게 하였을 때 추적 파일에 기록하고 TraceBegin 함수를 호출한다. 자신만의 에러 메시지를 기록하기 위하여 TraceError 함수를 사용한다. 이 함수는 더 자세한 문제들을 구별하기 위하여 사용한다는 점을 제외하고는 TraceUser와 동일하다. severity 와 message값은 수정없이 추적 파일로 통과된다.

예제

다음 예제는 데이터베이스 retrieve에 실패하였을 때 추적 파일에 에러 메시지를 기록한다:

dw_1.SetTransObject(SQLCA)

TraceUser(100, "Starting database retrieval")

IF dw_1.Retrieve() = -1 THEN

TraceError(999, "Retrieve for dw_1 failed")

ELSE

TraceUser(200, "Database retrieval complete")

END IF

참고

TraceEnableActivity

TraceUser


TraceOpen PowerScript function

설명

명시한 이름의 추적 파일을 오픈하고 응용프로그램 추적 활동을 가능하게 한다.

문법

TraceOpen ( filename, timer )

Argument

filename 추적 파일을 구별하기 위하여 사용되는 읽기-전용 문자열

timer 열거형 데이터 타입 TimerKind의 값:

▶ Clock! wall clock 타이머 사용

▶ Process! process 타이머 사용

▶ Thread! thread 타이머 사용

▶ TimeNone! 타이머 값을 기록하지 않음

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ FileAlreadyOpenError! TraceOpen 함수가 이미 호출되었다

▶ FileOpenError! 기록할 파일을 오픈할 수 없다

▶ EnterpriseOnlyFeature! 이 함수는 PowerBuilder의 Enterprise 판에서만 지원된다.

filename이 NULL이면, TraceOpen은 NULL을 리턴한다.

용법

TraceOpen은 명시한 추적 파일을 오픈하고 응용프로그램 추적 활동 기록을 가능하게 한다. 추적 파일을 오픈할 때, TraceOpen 함수는 현재 응용프로그램과 라이브러리 리스트를 기록한다. 또한, 기본설정된 활동 타입과 ActUser! 값에 의하여 구별되는 사용자-정의 활동 타입 기록을 가능하게 한다.

TraceOpen을 호출한 다음에, TraceEnableActivity 함수를 사용하여 추적 파일에 추가로 기록될 활동을 선택할 수 있다. TraceOpen과 TraceEnableActivity를 호출한 다음에는, 기록을 시작하기 위하여 반드시 TraceBegin 함수를 호출하여야 한다.

응용프로그램 추적 활동 기록을 중지하려면, 반드시 TraceEnd 함수를 호출하고 추적 파일을 닫기 위하여 TraceClose를 호출하여야 한다. TraceOpen을 호출하면 기본설정된 ActUser! 활동 타입의 기록으로 재설정 된다.

TraceOpen 함수는 전형적으로 응용프로그램의 Open 스크립트에 포함한다.

주의 추적 파일을 실행할 공간이 부족하면, 에러를 생성하지 않는다. 그러나 기록은 중지되고, 분석을 위하여 추적 파일을 사용할 수 없다.

Windows NT 와 Windows 95에서의 타이머 값 기본적으로, 기계의 시작 시간과 같은, 외적 활동을 측정하는, clock 타이머를 사용하여 각 활동의 시작과 마지막이 기록된다. clock 타이머 측정 시간은 1/1000 초이다. 기계의 CPU 속도에 따라, 타이머 측정 능력은 1/1000초 미만일 수 있다. 타이머의 측정 능력은 타이머가 측정할 수 있는 최소 단위이다.

또한 process 또는 thread가 실행되었을 때 1/1000초 단위로 측정을 시작하는 process 또는 thread 타이머를 사용할 수 있다. 분산 응용프로그램에서는 thread 타이머를 사용한다. process 와 thread 타이머 모두 process 또는 thread 실행 시간을 더 정확히 제공하지만, clock 타이머보다 측정 능력은 떨어진다.

분석 할 때 시간 정보가 필요치 않으면, 추적 파일에서 시간 정보를 생략할 수 있다.

Windows 3.1, UNIX, Macintosh에서의 타이머 값 Windows 3.1, UNIX, Macintosh 등에서 실행 중이면, 다른 종류의 타이머 값을 명시하여도 효과가 없다.

수집 시간 추적 파일내의 timestamp는 추적 데이터의 수집 시간을 포함한다.

예제

다음 예제는 single line edit box에 입력된 추적 파일 이름과 dropdown listbox에서 선택한 타이머 종류를 가진 추적 파일을 오픈한다. 다음에, 추적할 코드의 첫 번째 블록에 관한 활동 기록을 가능하게 한다:

TimerKindltk_kind

CHOOSE CASE ddlb_timestamp.text

CASE "None"

ltk_kind = TimerNone!

CASE "Clock"

ltk_kind = Clock!

CASE "Process"

ltk_kind = Process!

CASE "Thread"

ltk_kind = Thread!

END CHOOSE

TraceOpen(sle_filename.text,ltk_kind)

참고

TraceBegin

TraceClose

TraceEnableActivity

TraceEnd


TraceUser PowerScript function

설명

추적 파일에 명시한 활동 타입의 값을 기록한다.

문법

TraceUser (info, message )

Argument

info 기록된 활동과 연관시키려는 참조 번호 (long)

message 추적 파일에 추가시키려는 활동 타입의 값 (string)

Return 값

ErrorReturn.

이 함수는 항상 Success!를 리턴한다.

info 또는 message가 NULL이면, TraceUser는 NULL을 리턴하고 log 파일에 아무 것도 기록하지 않는다.

용법

TraceUser는 활동 타입의 ActUser! 값을 추적 파일에 기록한다. 이것은 기본 설정된 활동 타입이고 TraceOpen 함수가 호출될 때 사용 가능하다. 응용프로그램이 실행되는 동안 특정 활동이 발생할 때 자신만의 메시지를 기록하기 위하여 TraceUser 함수를 사용한다. 예를들어, 특정한 리턴 값이 발생할 때마다 또는 코드의 시작과 마지막에 기록하기 원할 수 있을 것이다. TraceUser 함수는 TraceError 함수가 더욱 다양한 문제들을 구별할 수 있다는 점을 제외하고는 TraceError와 동일하게 작용한다.

예제

다음 예제는 데이터베이스 retrieve가 시작되고 완료되었을 때 추적 파일에 사용자 메시지를 기록한다:

dw_1.SetTransObject(SQLCA)

TraceUser(100, "Starting database retrieval")

IF dw_1.Retrieve() = -1 THEN

TraceError(999, "Retrieve for dw_1 failed")

ELSE

TraceUser(200, "Database retrieval complete")

END IF

참고

TraceEnableActivity

TraceError


Abs PowerScript function

[설명]

절대값을 계산한다.

[문법]

Abs ( n )

[Argument]

n 절대값을 알아내기 위한 수치

[Return 값]

n 데이터 타입.

데이터의 절대값을 되돌리고, NULL일 경우에는 NULL을 되돌린다.

[예제]

다음 문장들은 변수 num을 4로 설정한다.

integer i, num

i = 4

num = Abs(i)

num = Abs(4)

num = Abs(+4)

num = Abs(-4)

다음 문장은 4.2.를 되돌린다.

Abs(-4.2)


AcceptText PowerScript function

[설명]

DataWinow 편집 control의 내용을 DataWindow control 또는 DataStore 버퍼의 현재 아이템에 적용시킨다. 편집 control에 있는 데이터는 그 아이템에 저장되기 전에 반드시 그 칼럼의 validation rule을 통과하여야 한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.AcceptText ( )

[Argument]

dwcontrol 편집 control에있는 데이터를 받아들이기 위한 DataWindow control, DataStore 또는 child DataWindow의 이름.

[Return 값]

Integer.

편집 control의 내용을 받아들일 경우에는 1, validation rule을 통과하지 못한 경우처럼 그 내용을 받아들이지 못할 경우에는 -1을 되돌린다. 또한, dwcontrol이 NULL일 경우에는 NULL을 되돌린다.

[용도]

DataWindow control내의 아이템에서 다른 아이템으로 이동할 때, 그 control은 사용자가 편집한 데이터를 평가하고 받아들이게 된다. DataWindow 아이템을 수정하고 그 윈도내의 다른 control로 focus를 직접 변경하는 경우, DataWindow control은 편집 control에 남아있는 그 수정된 데이터를 받아들이지 않게 된다. 이러한 상황에서 AcceptText 함수를 사용하면 수정된 데이터를 그 아이템에 적용시킬수 있다. AcceptText는 전형적으로 DataWindow의 LoseFocus event를 벗어난 후 사용자 event내에서 호출된다.

단, ItemChanged event에서 호출한 AcceptText는 아무런 영향을 주지 않는다.

[Events]

AcceptText는 ItemChanged나 ItemError event를 발생시킬 수도 있다.

[예제]

이예는 DataWindow object의 칼럼에서 사원번호를 입력하고 '확인' 버튼을 클릭한 경우를 설명한 것이다. `확인' 버튼에 관한 Clicked event 스크립트에서 입력된 내용을 평가하기 위하여 AcceptText 함수를 호출하고 그 결과를 DataWindow control에 저장하였다. 다음 스크립트는 사원번호에 관한 행(row)을 구하기 위하여 Retrieve 함수내에서 입력한 아이템(사원번호)을 이용하였다.

IF dw_sabun.AcceptText( ) = 1 THEN // 입력한 사원번호가 validation rule에 적합하면

dw_emp.Retrieve(dw_emp.GetItemString & // 그 사원번호에 관한 내용을 발췌한다.

(dw_emp.GetRow( ), dw_emp.GetColumn( )))

END IF

다음은 child DataWindow에서 텍스트를 받아들이는 명령버튼의 Clicked event에 관한 스크립트이다.

DataWindowChild dwc

integer rtn_code

rtn_code = dw_emp.GetChild("sabun_id", dwc)

// 에러를 체크하기위한 문장

dwc.SetTransObject(SQLCA)

dwc.Retrieve("인수(argument)")

... //다른 처리를 위한 문장

dwc.AcceptText( )

[참고]

Update


Activate PowerScript function

[설명]

OLE container에 있는 object를 활성화하고, 서버 명령을 사용하는 object를 사용하여 작업하는 것을 허락한다.

[Platform 정보]

이 함수 및 다른 OLE 함수들은 Macintosh와 UNIX 환경에서 무시된다.

[적용]

OLE 2.0 control과 OLE DWObjects

[문법]

objectref.Activate ( activationtype )

[Argument]

objectref | OLE 2.0 control 또는 활성화 하려는 object를 포함하고있는 DataWindow control내의 OLE DWObject 이름. OLE DWObject 이름의 문법은 dwcontrol.Object.dwobjectname 이어야 한다.
activationtype(옵션) | OLE object와 작업할 장소를 명시하기 위하여 활성화 타입을 명시하는 것으로 활성화 타입은 다음과 같다: * InPlace!(기본설정값) object는 control내에서 활성화된다. 서버 응용프로그램에 의하여 마련된 메뉴의 일부는 PowerBuilder 응용프로그램의 메뉴와 병합된다. * OffSite! object는 서버 응용 프로그램내에서 활성화되고, 사용자에게 서버 응용 프로그램의 기능을 더 많이 사용할 수 있도록 한다. OLE 2.0 control의 경우, activationtype을 명시하여야 한다.

[Return 값]

Integer.

활성화에 성공하였을 경우에는 0, 에러가 발생하였을 경우에는 다음 중 하나를 되돌린다.

-1 Container가 비어있다.

-2 object에 관한 명령(verb)이 올바르지 않다.

-3 object에 의하여 명령(verb)을 사용할 수 없다.

-4 object에 의하여 제공되는 명령(verb)이 없다.

-5 object가 지금 명령(verb)을 실행할 수 없다.

-9 그 밖의 에러

argument의 값이 NULL일 경우에, Activate 함수는 NULL을 되돌린다.

[예제]

서버 응용프로그램내에 있는 ole_1에서 object를 활성화 하는 경우.

integer result

result = ole_1.Activate(OffSite!)

Microsoft Graph 서버 응용 프로그램에있는 dw_1 DataWindow control에서 OLE DWObject ole_graph를 활성화 하는 경우.

integer result

result = dw_1.Object.ole_graph.Activate(OffSite!)

[참고]

DoVerb

OLEActivate

SelectObject


AddCategory PowerScript function

[설명]

그래프의 category 축에 새로운 category를 추가한다. AddCategory는 string 타입의 데이터를 가지는 category 축을 위한 함수이다.

[적용]

윈도와 사용자 object에 있는 그래프 control에 적용되고, DataWindow object에있는 그래프는 DataWindow로 부터 직접 데이터를 가지고 오기 때문에 적용되지 않는다.

[문법]

controlname.AddCategory ( categoryname )

[Argument]

controlname | category를 추가하려는 그래프의 이름.
categoryname | controlname에 추가하려는 문자열로 된 category 이름. category는 category 축에 나타나게 된다.

[Return 값]

Integer.

추가에 성공하였을 경우에는 그 category에 할당된 번호를 되돌리고, category 축에 동일한 이름이 이미 존재할 경우에는 그 이름에 해당하는 번호를 되돌린다. 또한, 에러가 발생하면 1을 되돌리고, 인수(argument)값이 NULL일 경우에는 NULL을 되돌린다.

[용도]

AddCategory는 category 축의 끝에 category를 추가한다. 그 category는 데이터를 할당할 수 있도록 비어있는 상태가 된다. 모든 category를 그래프와 연관시키려면 category 축에 꺽자(√) 표시를 한다.

category 축의 데이터 타입이 string 이면, category 이름으로 빈문자열("")을 명시할 수 있다. 그러나, category 이름은 고유한 것이어야 하므로, 빈문자열은 한 번만 사용할 수 있다. 또한, category 이름은 대소문자를 구별하므로, 동일한 이름이라도 대소문자를 다르게 적용하면 고유한 이름으로 인식한다.

category 축의 데이터 타입이 date, DateTime, number, time등일 때 category를 추가하려면, InsertCategory 함수를 사용한다. category들이 나열되어있는 중간에 category를 삽입하려면, InsertCategory 함수를 사용한다. 또한, AddCategory처럼 끝에 category를 추가할때에도 InsertCategory를 사용할 수 있다.

그래프내에 데이터를 추가하려면, AddData 또는 InsertData 함수를 사용한다. 새로운 category에 데이터 값을 추가하거나, 기존의 category에 데이터를 추가 또는 변경할 수도 있다. 그래프에 category들의 묶음(series)을 추가하려면, AddSeries 함수를 사용한다.

[예제]

다음은 그래프 gr_product_data에 PCs라는 이름의 category를 추가하는 문장이다.

gr_product_data.AddCategory("PCs")

[참고]

AddData

AddSeries

DeleteData

DeleteSeries


AddColumn PowerScript function

[설명]

명시한 이름, 정렬방법과 폭으로 칼럼을 추가한다.

[적용]

ListView controls

[문법]

listviewname.AddColumn ( label, alignment, width )

[Argument]

listviewname | 칼럼을 추가하고자 하는 ListView control 이름
label | 추가하는 칼럼의 이름
alignment | 추가하는 칼럼의 정렬 방법
width | 추가하는 칼럼의 폭

[Return 값]

Integer.

추가에 성공하면 칼럼의 인덱스 번호를 되돌리고, 에러가 발생하면 -1을 되돌린다.

[용법]

report view의 내용을 디스플레이하기 전에 ListView control에 칼럼을 위치시켜야 한다.

[예제]

다음은 ListView control의 ListView event에서 3개의 칼럼을 생성하는 문장이다.

(단, ListView의 속성에서 View 형식을 Report로 설정하여야 한다.)

integer index

FOR index = 3 to 25

This.AddItem("Category " + String(index), 1)

NEXT

This.AddColumn("Name" , Left! , 1000)

This.AddColumn("Size" , Left! , 400)

This.AddColumn("Date" , Left! , 300)


AddData

AddData PowerScript function

(Syntax 1 -- Scatter Graph를 제외한 모든 그래프)

[설명]

그래프내의 series에 데이터를 추가한다. scatter 그래프를 제외한 모든 그래프에서 사용하는 문법이다.

[적용]

윈도와 사용자 object내의 Graph control. DataWindow object에있는 그래프는 DataWindow로 부터 직접 데이터를 가지고 오기 때문에 적용되지 않는다.

[문법]

controlname.AddData ( seriesnumber, datavalue {, categoryvalue} )

[Argument]

controlname | series에 데이터를 추가하려는 그래프 이름. 그래프는 반드시 scatter 타입이 아니어야 한다.
seriesnumber | 데이터를 추가할 series를 구별하기위한 번호
datavalue | 추가하려는 데이터 값.
Categoryvalue (선택사항) | category 축에있는 category의 데이터 값. categoryvalue의 데이터 타입은 반드시 category 축의 데이터 타입과 일치하여야 한다. 대부분의 경우 categoryvalue를 포함시켜야 한다. 그렇지 않을 경우, series에 추가한 데이터는 category화 되지않은 값으로 된다.

[Return 값]

Long.

데이터 추가에 성공하면 series내의 데이터 값 위치를 되돌리고, 에러가 발생하면 1을 되돌린다. 또한, 인수(argument)가 NULL이면, NULL을 되돌린다.

[용법]

이 문법을 사용하면, AddData 함수는 지정한 series나 category의 끝에 값을 추가한다. 만일 categoryvalue가 새로운 category라면, category는 series 끝에 데이터 포인트의 꺽자(√) 표시를위한 이름과 함께 추가된다. 그래프 축이 정렬되어있는 경우에는, 새 category는 그 순서에 해당하는 위치에 추가된다. category가 이미 존재하는 경우, 해당 데이터 포인트의 이전 데이터는 새로 추가되는 데이터로 대치된다.

예를들어, series 1의 3번째 category 이름이 March 이고, series 4에 데이터를 추가하면서 category 이름을 March로 명시하였다면 series 4의 3번째 데이터 포인트에 March로 명시한 데이터가 추가된다.

그래프 축의 데이터 타입이 string일 경우, category 이름으로 빈 문자열("")을 지정할 수 있다. 그러나 category 이름은 반드시 고유해야 하므로, 빈 문자열의 category 이름은 한 번반 사용할 수 있다. 만일 데이터를 추가하기 위하여 category를 지정하지않고 AddData 함수를 사용한다면, category 없는 데이터 포인트를 가지게 될 것이다. (그러나 이것은 빈 문자열("")의 category 이름과는 구별되는 것이다.) series의 중간에 데이터를 삽입하려면 InsertData 함수를 사용하면 된다. 또한, AddCategory처럼 끝에 category를 추가할때에도 InsertCategory를 사용할 수 있다.

[예제]

다음 문장은 Costs라 명명된 series에 데이터값 1250을 추가하고, 데이터 포인트를 gr_product_data 그래프의 Jan이라는 이름의 category에 할당하는 것이다.

integer SeriesNbr

// series 번호를 알아낸다.

SeriesNbr = gr_product_data.FindSeries("Costs")

// 데이터 값 1250을 추가하고, 데이터 포인트를 Jan에 할당한다.

gr_product_data.AddData(SeriesNbr, 1250, "Jan")

다음 문장은 gr_product_data 그래프의 Costs라 명명된 series의 끝에 1250을 추가하지만 데이터 포인트는 category에 할당하지 않는 경우이다.

integer SeriesNbr

// series 번호를 알아낸다.

SeriesNbr = gr_product_data.FindSeries("Costs")

// Series끝에 데이터를 추가한다.

gr_product_data.AddData(SeriesNbr, 1250)

[참고]

DeleteData

FindSeries

GetData

InsertData

AddData Syntax2

AddData PowerScript function

(Syntax 2 -- Scatter Graph)

[설명]

scatter 그래프의 series에 데이터를 추가한다.

[문법]

controlname.AddData ( seriesnumber, xvalue, yvalue )

[Argument]

controlname | series에 데이터를 추가하려는 scatter graph의 이름. 그래프 타입은 반드시 scatter여야 한다.
seriesnumber | 데이터를 추가하려는 series를 구별하기위한 번호
xvalue | 데이터를 추가하려는 데이터 포인트의 x 값
yvalue | 데이터를 추가하려는 데이터 포인트의 y 값

[Return 값]

Long.

데이터 추가에 성공하면 series내의 데이터값 위치를 되롤리고, 에러가 발생하면 1을 되돌린다. 또한, 인수(argument)의 값이 NULL일 경우에는 NULL을 되돌린다.

[예제]

이 문장은 scatter 그래프 gr_sales_yr의 Costs라 명명된 series에 데이터 포인트 x 와 y 값을 추가하는 것이다.

integer SeriesNbr

// series 번호를 알아낸다.

SeriesNbr = gr_sales_yr.FindSeries("Costs")

gr_sales_yr.AddData(SeriesNbr, 12, 3)

[참고]

DeleteData

FindSeries

GetData

AddData Syntax1


AddItem

AddItem PowerScript function

(Syntax 1 -- ListBox, DropDownListBox)

[설명]

listbox에 아이템을 추가한다.

[적용]

ListBox, DropDownListBox controls

[문법]

listboxname.AddItem ( item )

[Argument]

listboxname | 아이템을 추가하려는 ListBox 또는 DropDownListBox의 이름
item | 추가할 아이템을 기술한 문자열

[Return 값]

Integer.

새 아이템의 위치를 되돌린다. 만일 리스트가 정렬되어 있다면, 그 되돌려진 위치는 아이템이 정렬된 이후의 위치이다. 아이템 추가에 실패하면 -1을 되돌린다. 만일 인수(argument)가 NULL 이라면, NULL을 되돌린다.

[용도]

ListBox가 이미 아이템들을 포함하고 있다면, AddItem 함수는 그 리스트의 끝에 새로운 아이템을 추가한다. 만일 리스트가 정렬되어 있다면 (Sorted 속성이 TRUE 이면), PowerBuilder는 아이템이 추가된 이후에 재 정렬하게 된다.

리스트는 중복된 아이템을 가질 수 있다. 그 이유는, 리스트내의 아이템들은 리스트내에서 아이템 이름에 의하여 추적되는 것이아니라, 그 위치에 의하여 추적되기 때문에 가능하다.

AddItem 과 InsertItem은 그 아이템의 속성 배열을 갱신하지 않기 때문에, 실행되는 동안 아이템을 찾기 위하여 FindItem을 이용할 수 있다.

수평 스크롤 바를 사용하는 많은 아이템 추가

ListBox나 DropDownListBox의 ListBox 영역이 많은 수의 아이템을 가지고 있다면, HScrollBar를 사용하고자 할 것이다. 이때에는, Redraw를 off로 설정하기 위하여 SetRedraw 함수를 호출하고, 아이템을 추가한 후, Redraw를 on으로 설정하기 위하여 SetRedraw 함수를 다시한번 호출한 다음, HScrollBar 속성을 TRUE로 설정하면 된다. 그렇지않으면 아이템을 추가하는데 더 많은 시간이 필요하게된다.

VBX controls

만일 AddItem method를 지원하는 VBX control을 위하여 생성된 VBX object를 가지고 있다면, 그 method를 사용하지 말고 AddItem 이나 InsertItem 함수를 사용하도록 한다.

[예제]

이 예제는 ListBox lb_Actions에 'Edit File' 아이템을 추가하는 것이다.

integer rownbr

string s

s = "Edit File"

rownbr = lb_Actions.AddItem(s)

만일 lb_Actions에 'Add' 와 'Run' 아이템이 포함되어있고 Sorted 속성이 FALSE 라면, 'Edit File' 아이템은 3번째 아이템이 되기 때문에 위의 문장은 3을 되돌릴 것이다. 만일 Sorted 속성이 TRUE 라면, 'Edit File' 아이템은 기존의 아이템과 알파벳 순으로 정렬할 때 2번째에 해당하므로 위의 문장은 2를 되돌릴 것이다.

[참고]

DeleteItem

FindItem

InsertItem

Reset

TotalItems

AddItem:Syntax2

AddItem:Syntax3

AddItem:Syntax4

AddItem PowerScript function

Syntax 2 - PictureListBox, DropDownPictureListBox

[설명]

picture listbox에 새 아이템을 추가한다.

[적용]

PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.AddItem ( item {, pictureindex } )

[Argument]

listboxname | 아이템을 추가하려는 PictureListBox 또는 DropDownPictureListBox의 이름
item | 추가하려는 아이템을 기술한 문자열
Pictureindex | (선택사항)새로 추가된 아이템과 연결시키기 위한 그림의 인덱스를 나타낸 정수

[Return 값]

Integer.

새 아이템의 위치를 되돌린다. 만일 리스트가 정렬되어 있다면, 그 위치는 리스트가 정렬된 이후의 아이템 위치이다. 아이템 추가에 실패하면 -1을 되돌리고, 인수(argument)의 값이 NULL일 경우에는 NULL을 되돌린다.

[용법]

pictureindex를 지정하지 않으면, 새로 추가된 아이템은 그림을 갖지않게 된다.

지정한 pictureindex가 존재하지 않으면, 그 번호는 그림과 함께 저장된 상태로 남아있게 된다. 그림을 그림배열에서 추가하게 되면, 아이템은 해당 번호에 상응하는 그림을 나타내게 된다.

[예제]

이 예제는 아이템 Cardinal을 PictureListBox plb_birds에 추가하는 것이다.

integer li_pic, li_position

string ls_name, ls_pic

li_pic = plb_birds.AddPicture("c:\pics\cardinal.bmp")

ls_name = "Cardinal"

li_position = plb_birds.AddItem(ls_name, li_pic)

만일 plb_birds에 'Robin' 과 'Swallow' 아이템이 포함되어있고 Sorted 속성이 FALSE 라면, 'Cardinal' 아이템은 3번째 아이템이 되기 때문에 위의 문장은 3을 되돌릴 것이다. 만일 Sorted 속성이 TRUE 라면, 'Cardinal' 아이템은 기존의 아이템과 알파벳 순으로 정렬할 때 1번째에 해당하므로 위의 문장은 1을 되돌릴 것이다.

[참고]

DeleteItem

FindItem

InsertItem

Reset

TotalItems

AddItem:Syntax1

AddItem:Syntax3

AddItem:Syntax4

AddItem PowerScript function

(Syntax 3 - ListView)

[설명]

ListView control에 아이템을 추가한다.

[적용]

ListView controls

[문법]

listviewname.AddItem ( label, pictureindex )

[Argument]

listviewname | 그림 또는 아이템을 추가하려는 ListView control 이름
label | 추가하려는 아이템의 이름
pictureindex | 새로 추가된 아이템과 연관시키기 위한 그림의 색인

[Return 값]

Integer.

아이템 추가에 성공하면 그 아이템의 색인을 되돌리고, 에러가 발생하면 -1을 되돌린다.

[용법]

ListView에 추가하려는 아이템의 이름과 그림 색인만 지정하고자 할 때에는 이 문법을 사용한다. 만일 이름과 그림 색인 이외에 더 지정할 필요가 있을 때에는 이 함수의 Syntax 4를 이용하도록 한다.

[예제]

이 예제는 클릭할 때마다 ListView 아이템을 추가하기 위하여 CommandButton Clicked event에서 AddItem을 사용한 경우이다.

string ls_name

count ++ //Instance 변수인 counter를 1 증가시킨다.

ls_name = "Item"+ string(count) //아이템 명을 기술한다.

lv_1.AddItem(ls_name, count) //아이템 이름과 그림 색인을 이용하여 아이템을 추가한다.

(단, 그림 색인은 ListView Property에서 미리 지정해 놓은 것이다.)

[참고]

DeleteItem

FindItem

InsertItem

Reset

TotalItems

AddItem:Syntax1

AddItem:Syntax2

AddItem:Syntax4

AddItem PowerScript function

(Syntax 4 - ListView)

[설명]

ListView 아이템의 모든 참조하여 ListView control에 아이템을 추가한다.

[적용]

ListView controls

[문법]

listviewname.AddItem ( item )

[Argument]

listviewname | 그림이나 아이템을 추가하려는 List View control의 이름
item | 추가하려는 아이템

[Return 값]

Integer.

추가에 성공하면 그 아이템의 위치를 되돌리고, 에러가 발생하면 -1을 되돌린다.

[용법]

추가하려는 아이템에 관한 모든 속성을 명시하고자 한다면 이 문법을 사용한다. 만일 아이템 이름과 그림 색인만 지정할 때에는 Syntax 3을 사용한다.

[예제]

이 예제는 클릭할때마다 ListView 아이템을 추가하기 위하여 CommandButton Clicked event에서 AddItem을 사용한 경우이다.

count = count + 1 //Instance 변수를 1 증가 시킨다

listviewitem l_lvi // listview 아이템의 인스턴스를 만든다

l_lvi.PictureIndex = 2 //필요한 속성을 명시한다.

l_lvi.Label = "Item "+ string(count)

lv_1.AddItem(l_lvi) //인스턴스의 속성을 참조하여

//ListView의 아이템을 추가한다.

[참고]

DeleteItem

FindItem

InsertItem

Reset

TotalItems

AddItem:Syntax1

AddItem:Syntax2

AddItem:Syntax3


AddLargePicture PowerSoft function

[설명]

large image list에 비트맵, 아이콘 또는 커서를 추가한다.

[적용]

ListView controls

[문법]

listviewname.AddLargePicture ( picturename )

[Argument]

listviewname | 비트맵, 아이콘 또는 커서를 추가하려는 ListView control의 이름
picturename | large image list에 추가하려는 비트맵, 아이콘 또는 커서의 이름

[Return 값]

Integer.

추가에 성공하면 1, 에러가 발생하면 -1을 되돌린다.

[용법]

ListView에 큰 그림을 추가하면, ListView내에서 기존의 그림 다음으로 사용가능한 그림 색인이 부여된다. 예를들어, ListView에 2개의 그림이 있다면 추가된 다음 그림은 그림 색인 번호 3이 부여되는 것이다.

큰 그림을 추가하기전에, LargePictureWidth 와 LargePictureHeight 속성을 설정함으로서 그 그림에 관한 크기를 지정할 수 있다. 첫 번째 추가하는 그림에관한 크기를 결정하게 되면, 그 크기는 모든 그림에 영향을 주게 된다. 그러나, 그림을 추가한 후에 속성을 변경시키는 것은 영향을 주지 않는다.

그림을 추가하기 전에 LargePictureWidth 와 LargePictureHeight 값을 지정하지 않는다면, 첫 번째 그림의 크기가 추가되는 모든 그림의 크기를 결정하게 된다. 비트맵을 추가할 때, AddLargePicture 함수를 호출하기 전에 LargePictureMaskColor 속성을 설정함으로써 투명하게될 비트맵의 색상을 지정할 수 있다. 또한 이들을 호출하면서 LargePictureMaskColor 속성을 변경하는 것도 가능하다.

[예제]

이 예제는 large picture 색인에 `folder.ico'를 추가하는 문장이다.

//large picture를 추가한다.

integer index

index = AddLargePicture ("folder.ico") //아이콘을 추가하고 색인 번호를 할당받는다.

[참고]

DeleteLargePicture


AddPicture PowerSoft function

[설명]

메인 이미지 리스트에 비트맵, 아이콘 또는 커서를 추가한다.

[적용]

PictureListBox, DropDownPictureListBox, TreeView controls

[문법]

controlname.AddPicture ( picturename )

[Argument]

controlname | 메인 이미지 리스트에 아이콘, 커서 또는 비트맵 등을 추가하려는 control 이름
picturename | 메인 이미지 리스트에 추가하기위한 아이콘, 커서 또는 비트맵 등의 이름

[Return 값]

Integer.

추가에 성공하면 그림 인덱스 번호를 되돌리고, 에러가 발생하면 -1을 되돌린다.

[용법]

그림은 control에 추가된 순서에따라 인덱스 번호를 할당받는다.

AddPicture 함수가 실행되는 동안 추가되는 그림은 PictureName 속성 배열을 갱신하지 않는다. AddPicture로부터 돌아오는 값은 해당 control과 관련된 그림의 번호를 나타내는 것이다.

그림을 추가하기전에, PictureWidth 와 PictureHeight 속성을 설정함으로서 그 그림에 관한 크기를 지정할 수 있다. 첫 번째 추가하는 그림에관한 크기를 결정하게 되면, 그 크기는 모든 그림에 영향을 주게 된다. 그러나, 그림을 추가한 후에 속성을 변경시키는 것은 영향을 주지 않는다.

그림을 추가하기 전에 PictureWidth 와 PictureHeight 값을 지정하지 않는다면, 첫 번째 그림의 크기가 추가되는 모든 그림의 크기를 결정하게 된다. 비트맵을 추가할 때, AddPicture 함수를 호출하기 전에 PictureMaskColor 속성을 설정함으로써 투명하게될 비트맵의 색상을 지정할 수 있다. 또한 이들을 호출하면서 PictureMaskColor 속성을 변경하는 것도 가능하다.

[예제]

이 예제는 TreeView control에 그림을 추가하고 새로운 TreeView 아이템과 그 그림을 연관시키는 문장이다.

long ll_tvi

integer li_picture

//그림을 추가하고 번호를 알아낸다.

li_picture = tv_list.AddPicture("c:\apps_pb5\staff.ico")

ll_tvi = tv_list.FindItem(RootTreeItem! , 0)

//아이템과 그림을 연관시킨다.

tv_list.InsertItemFirst(ll_tvi , "Dept." , li_picture)

[참고]

DeletePicture


AddSeries PowerSoft function

[설명]

그래프에 series를 추가하, 이름을 지정한다. 새 series는 또한 그 번호를 할당 받는다. 그래프의 series는 추가되는 순서에 따라 연속적으로 번호가 부여된다,

[적용]

윈도우와 object내의 Graph control. DataWindow object내의 그래프는 DataWindow로부터 데이터를 직접 가져오기 때문에 적용되지 않는다.

[문법]

controlname.AddSeries ( seriesname )

[Argument]

controlname | series에 추가하려는 그래프 이름
seriesname | controlname에 추가하려는 series 이름

[Return 값]

Integer.

추가에 성공하면 series에 할당된 번호를 되돌리고, seriesname이 중복된다면 존재하고 있던 series의 번호를 되돌린다. 에러가 발생하면 -1을 되돌리고, argument 값이 NULL일 경우에는 NULL을 되돌린다.

[용법]

seriesname을 그래프 controlname에 추가하고 그 series 번호를 할당한다. 번호는 그래프 내에서 series를 구별하기 위하여 사용되며, 순차적으로 할당된다. 첫 번째로 추가되는 series는 번호 1을 할당 받고 그래프에서 첫 번째 series로 표시된다.

series 이름은 그래프 내에서 반드시 고유한 것이어야 한다. 만일 이미 존재하고 있는 이름을 지정하면, AddSeries 함수는 기존의 series 번호를 되돌린다. 또한 대소문자를 다르게 지정하면 서로 다른 이름으로 인식한다. series 이름으로 빈 문자열("")을 지정할 수 있지만, 고유한 이름을 가져야 하므로 한 번만 사용이 가능하다.

리스트 중간에 series를 삽입하고자 한다면, InsertSeries 를 사용한다. InsertSeries는 AddSeries와 같이 리스트 끝에 series를 추가할 때에도 사용할 수 있다.

그래프내의 series에 데이터를 추가하려면, AddData 또는 InsertData 함수를 사용한다. series에 category를 추가하려면, InsertCategory 나 AddCategory 함수를 사용한다.

[예제]

이 문장은 gr_product_data 그래프에 'Costs'라는 series를 추가한다.

integer series_nbr

series_nbr = gr_product_data.AddSeries("Costs")

이 문장은 gr_product_data 그래프에 이름없는 series를 추가한다.

integer series_nbr

series_nbr = gr_product_data.AddSeries("")

[참고]

AddCategory

AddData

DeleteData

DeleteSeries

FindSeries

InsertCategory

InsertSeries

SeriesCount

SeriesName


AddSmallPicture PowerScript function

[설명]

small image list에 비트맵, 아이콘, 커서 등을 추가한다.

[적용]

ListView controls

[문법]

listviewname.AddSmallPicture ( picturename )

[Argument]

listviewname | small image에 추가하려는 ListView control의 이름
picturename | ListView control small image list에 추가하려는 비트맵, 아이콘, 커서 등의 이름

[Return 값]

Integer.

추가에 성공하면 그림 인덱스를 되돌리고 에러가 발생하면 -1을 되돌린다.

[용법]

ListView에 작은 그림을 추가하면, ListView내에서 기존의 그림 다음으로 사용 가능한 그림 색인이 부여된다. 예를 들어, ListView에 2개의 그림이 있었다면 추가된 다음 그림은 그림 색인 번호 3이 부여되는 것이다.

작은 그림을 추가하기 전에, SmallPictureWidth 와 SmallPictureHeight 속성을 설정 함으로써 그 그림에 관한 크기를 지정할 수 있다. 첫 번째 추가하는 그림에 관한 크기를 결정하게 되면, 그 크기는 모든 그림에 영향을 주게 된다. 그러나, 그림을 추가한 후에 속성을 변경시키는 것은 영향을 주지 않는다.

그림을 추가하기 전에 SmallPictureWidth 와 SmallPictureHeight 값을 지정하지 않는다면, 첫 번째 그림의 크기가 추가되는 모든 그림의 크기를 결정하게 된다. 비트맵을 추가할 때, AddPicture 함수를 호출하기 전에 SmallPictureMaskColor 속성을 설정함으로써 투명하게 될 비트맵의 색상을 지정할 수 있다. 또한 이들을 호출하면서 SmallPictureMaskColor 속성을 변경하는 것도 가능하다.

[예제]

이 문장은 small picture index에 "shortcut.ico"를 추가한다.

integer index

index = AddSmallPicture ("shortcut.ico")

[참고]

DeleteSmallPicture


AddStatePicture PowerScript function

[설명]

state 이미지 리스트에 비트맵, 아이콘 또는 커서를 추가한다.

[적용]

ListView and TreeView controls

[문법]

controlname.AddStatePicture ( picturename )

[Argument]

controlname 비트맵, 커서, 아이콘 등을 추가하는 ListView or TreeView control의 이름

picturename 추가하려는 비트맵, 아이콘, 커서의 이름

[Return 값]

Integer.

추가에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다.

[용법]

StatePictureWidth 또는 StatePictureHeight를 지정하였다면, 그 그림은 그 속성에 지정한 크기를 갖게된다.

비트맵을 추가할 때에는 AddPicture 함수를 호출하기 전에 StatePictureMaskColor 속성을 설정 함으로써 투명하게 표시될 비트맵의 색상을 지정할 수 있다. 또한 이들을 호출해서 StatePictureMaskColor 속성을 변경하는 것도 가능하다.

[예제]

이 예제는 'frog.ico'를 state picture index에 추가하는 문장이다.

integer index

index = AddStatePicture ("frog.ico")

[참고]

DeleteStatePicture


Arrange PowerScript function

[설명]

row 내의 아이콘을 정돈한다.

[적용]

ListView controls

[문법]

listviewname.Arrange ( )

[Argument]

listviewname

아이콘을 정리하려는 ListView control의 이름

[Return 값]

Integer.

정돈에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다.

[용법]

large icon 과 small icon view에서만 사용할 수 있다.

[예제]

ListView control 내에서 아이콘을 정리하는 문장.

lv_list.Arrange()


ArrangeSheets PowerScript function

[설명]

MDI 프레임에 포함된 윈도우를 정렬한다. (MDI 프레임에 포함된 윈도우를 sheet라 한다.) 열려있는 sheet와 최소화된 sheet의 아이콘 또는 순수 아이콘 등을 정렬할 수 있다.

[적용]

MDI 프레임 윈도우

[문법]

mdiframe.ArrangeSheets ( arrangetype )

[Argument]

mdiframe | MDI 프레임 윈도우의 이름
arrangetype | 열려있는 sheet를 MDI 프레임 윈도우에 어떻게 배열할 것인지를 명시한 정렬 타입의 값으로 그 값은 다음과 같다:
 | Cascade! | 열려있는 sheet는 타이틀 바가 보이는 상태로 계층적으로 나타내고, 최소화된 sheet의 아이콘은 프레임의 바닥에 정렬한다.
 | Layer! | 열려있는 각 sheet는 아래쪽에 있는 sheet를 완전히 덮어 층을 이루게 하고, 최소화된 sheet의 아이콘은 프레임의 바닥에 정렬한다.
 | Tile! | 열려있는 sheet는 서로 겹치지 않게 타일 형태로 나타내고, 최소화된 sheet의 아이콘은 프레임의 바닥에 정렬한다.
 | TileHorizontal! |  | 열려있는 sheet는 서로 겹치지않게 수평으로 배열하고, 최소화된 sheet의 아이콘은 프레임의 바닥에 정렬한다.
 | Icons! | 최소화된 sheet를 프레임 바닥에 한 줄로 정렬한다. Macintosh에서는 sheet를 아이콘화 할 수 없으므로 아무런 영향이 없다.

[Return 값]

Integer.

정렬에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다. argument가 NULL일 때에는, NULL을 되돌린다.

[예제]

MDI_User라는 MDI 프레임 윈도우내에 열려있는 sheet를 타일형태로 배열하기위한 메뉴 아이템을 클릭하였을 때의 Clicked 이벤트 스크립트

MDI_User.ArrangeSheets(Tile!)

MDI_User라는 MDI 프레임 바닥에 최소화된 sheet의 아이콘을 배열하기 위한 메뉴 아이템을 클릭하였을 때의 Clicked 이벤트 스크립트 (Macintosh에는 적용할 수 없다)

MDI_User.ArrangeSheets(Icons!)

[참고]

GetActiveSheet

OpenSheet


Asc PowerScript function

[설명]

문자열의 첫 번째 문자를 해당 ASCII 정수 값으로 변환한다.

[문법]

Asc ( string )

[Argument]

string

첫 번째 문자의 ASCII 값을 구하려는 문자열

[Return 값]

Integer.

문자열의 첫 번째 문자의 ASCII 값을 되돌린다. 문자열이 NULL일 경우에는 NULL을 되돌린다.

[용법]

문자의 ASCII 값이 적절한 범위에 있는지 테스트하여 문자를 찾아내는데 사용할 수 있다.

[예제]

대문자 A의 ASCII 값인 65를 되돌린다.

Asc("A")

문자열 ls_acc_code의 첫 번째 문자가 대문자 알파벳인지 체크한다.

String ls_acc_code

IF Asc(ls_acc_code) > 64 and Asc(ls_acc_code) < 91 THEN ...

[참고]

Char

Mid


Beep PowerScript function

[설명]

컴퓨터에서 10회까지 삑 소리를 낸다.

[문법]

Beep ( n )

[Argument]

n

컴퓨터에서 삑 소리를 내기위한 횟수. n이 10보다 클때에는 컴퓨터에서 10회까지 삑 소리가 난다.

[Return 값]

Integer.

소리내기에 성공하면 1을 되돌리고, 실패하였을 경우에는 -1을 되돌린다. n이 NULL일 경우에는 NULL을 되돌린다.

그러나 이 함수의 return 값은 통상적으로 사용하지 않는다.

[예제]

컴퓨터에서 삑 소리가 2번 나도록 하려면 다음과 같이 코딩한다.

Beep(2)


Blob PowerScript function

[설명]

문자열을 blob 데이터 타입으로 변환한다.

[문법]

Blob ( text )

[Argument]

text

blob 데이터 타입으로 변환하기 위한 문자열

[Return 값]

Blob.

변환된 문자열을 되돌린다. text가 NULL일 경우에는 NULL을 되돌린다.

[예제]

텍스트 문자열을 blob 데이터 타입으로 변환하여 메모리 변수에 할당한다.

Blob B

B = Blob("Any Text")

[참고]

BlobEdit

BlobMid

String


BlobEdit PowerScript function

[설명]

모든 PowerBuilder 데이터 타입의 데이터를 blob 메모리 변수에 할당한다.

[문법]

BlobEdit ( blobvariable, n, data )

[Argument]

blobvariable |  | 표준 PowerBuilder 데이터 타입의 데이터를 복사하여 저장하기 위한 초기화된 blob 데이터 타입의 변수
n | 데이터를 복사하기 시작할 blob 변수의 위치를 나타내는 숫자 (1 부터 4,29,967,295)
data | blob 변수에 복사하기위한 PowerBuilder 데이터 타입의 데이터

[Return 값]

Unsigned long.

성공적으로 복사 되었을 경우에는 다음 데이터를 복사할 수 있는 위치를 되돌리고, 데이터를 복사하기위한 충분한 공간이 blob 변수 내에 없을 경우에는 NULL을 되돌린다. 위 argument의 값 중에 NULL이 있을 경우에는 NULL을 되돌린다.

[예제]

이 예제는 blob emp_photo의 시작위치부터 bitmap을 복사한후, 다음 비트맵을 복사하기 위한 위치를 nbr에 저장한 다음, 다음 비트맵 데이터를 blop emp_photo에 복사해 넣는 것이다.

blob{1000} emp_photo

blob temp

date pic_date

ulong nbr

... // FileOpen 과 FileRead를 이용하여

... // 사원 사진을 포함하고있는 BMP 파일을 읽어서

... // temp에 넣는다.

// 오늘 날짜를 저장한다.

pic_date = Today( )

// emp_photo의 1번째 위치부터 비트맵 데이터를

// 복사해 넣고 다음 복사위치를 저장한다.

nbr = BlobEdit(emp_photo, 1, temp)

// 다음 복사위치 부터 시스템 날짜를 복사해 넣는다.

BlobEdit(emp_photo, nbr, pic_date)

// Employee 테이블의 pic 필드에

// blob 데이터를 갱신한다.

UPDATEBLOB Employee SET pic = :emp_photo

WHERE ...

[참고]

Blob

BlobMid


BlobMid PowerScript function

[설명]

blob 변수로부터 데이터를 추출한다.

[문법]

BlobMid ( data, n {, length } )

[Argument]

data | blob 데이터 타입의 데이터
n | 추출하려는 데이터의 첫 번째 바이트를 나타내는 숫자 (1 부터 4,294,967,295)
length | (선택사항) 추출하려는 데이터의 길이를 나타내는 숫자 (1 부터 4,294,967,295)

[Return 값]

Blob.

n 바이트 위치부터 시작하여 length 바이트 만큼 되돌린다. n이 추출하려는 blob 데이터의 바이트 수보다 클 경우에는 비어있는 blob을 되돌린다. length와 n을 합한 값이 blob 데이터의 바이트 수를 초과할 경우에 BlobMid 함수는 남아있는 blob 데이터를 되돌리고, 그 blob은 명시한 길이보다 짧게 될 것이다. 만일 argument 중에 어떠한 값이라도 NULL일 경우가 있다면, BlobMid 함수는 NULL을 되돌리게 된다.

[예제]

다음 예에서, 첫 번째는 blob 변수인 datablob의 5번째 위치부터 10바이트를 blob data_1에 저장하기 위하여 BlobMid 함수를 호출한 경우이고, 두 번째는 datablob의 5번째 위치부터 끝까지 data_2에 저장하기 위하여 BlobMid 함수를 호출한 경우이다.

blob data_1, data_2, datablob

... // blob 데이터를 읽어서 datablob에 넣는다.

// 5번째 바이트부터 10바이트를 저장한다

data_1 = BlobMid(datablob, 5, 10)

// 5번째 바이트부터 끝까지 저장한다.

data_2 = BlobMid(datablob, 5)

blob emp_photo의 시작위치부터 비트맵을 복사하여 넣은 후 다음 복사위치를 nbr 메모리 변수에 저장하고, 다음 비트맵 데이터를 blob emp_photo에 복사하여 넣는다. 다음에는, 저장한 날짜의 시작 위치를 이용하여 blob에서 날짜를 추출하고 StaticText st_1에 그 날짜를 나타내는 것이다.

blob{1000} emp_photo

blob temp

date pic_date

ulong nbr

... // FileOpen 과 FileRead를 이용하여

... // 사원 사진을 포함하고있는 BMP 파일을 읽어서

... // temp에 넣는다.

// 오늘 날짜를 저장한다

pic_date = Today( )

// emp_photo의 1번째 위치부터 비트맵 데이터를

// 복사해 넣고 다음 복사위치를 저장한다.

nbr = BlobEdit(emp_photo, 1, temp)

// 다음 복사위치부터 시스템 날짜를 복사해 넣는다.

BlobEdit(emp_photo, nbr, pic_date)

// 날짜를 추출하여 st_1.Text에 할당한다.

st_1.Text = String(Date(BlobMid(emp_photo, nbr)))

[참고]

Blob

BlobEdit


Cancel PowerScript function

[참고]

pipeline object의 실행을 중단한다.

[적용]

Pipeline objects

[문법]

pipelineobject.Cancel ( )

[Argument]

pipelineobject

실행될 pipeline object를 포함하고 있는 pipeline 사용자 object의 이름

[Return 값]

Integer.

실행중단에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다.

[용도]

이 함수는 Start 또는 Repair가 실행중일 때에만 호출한다.

pipeline을 Cancel로 중단하면, 그 pipeline이 최대 에러 한계에 도달한 것처럼 데이터가 commit 된다. Data Pipeline 페인터 내에서 pipeline이 한계에 도달하였을 때 어떠한 행동을 취하게 할 것인가는 사용자가 제어한다(the PowerBuilder User's Guide를 참고).

[예제]

다음은 pipeline i_pipe의 실행을 사용자가 중단시키는 것을 허락하는 CommandButton의 Clicked 스크립트이다.

i_pipe.Cancel( )

[참고]

Repair

Start


CanUndo PowerScript function

[설명]

수정 가능한 control에 대하여 가장 최근에 수정된 내용을 복원할 수 있는지 알아낸다.

[적용]

수정 가능한 control (DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit)

[문법]

editname.CanUndo ( )

[Argument]

editname

Undo 함수를 이용하여 마지막 편집을 복원할 수 있는지 여부를 알아내기 위한 DataWindow control, EditMask, MultiLineEdit, SingleLineEdit, 또는 RichTextEdit의 이름. DataWindow에서는 현재 row와 column에 CanUndo 함수를 적용할 수 있다.

[Return 값]

Boolean.

Undo 함수를 이용하여 마지막 편집을 복원하는 것이 가능하면 TRUE를 되돌리고, 복원할 수 없을 경우에는 FALSE를 되돌린다. editname이 NULL일 경우에는 NULL을 되돌린다.

[예제]

mle_contact의 마지막 편집을 복원할 수 있는지 체크하여, 복원 가능하면 복원하고 그렇지 않을 경우에는 메시지를 나타낸다.

// 마지막 편집을 복원할 수 있으면 편집된 내용을 취소하고

// 그렇지 않을 경우에는 메시지를 내보낸다

IF mle_contact.CanUndo( ) THEN

mle_contact.Undo( )

ELSE

MessageBox(Parent.Title, "수정내용 취소 불가!").

END IF

[참고]

Undo


CategoryCount PowerScript function

[설명]

그래프의 category 축에 있는 category 번호를 카운트 한다.

[적용]

윈도우와 object내의 Graph control, 그리고 DataWindow control과 DataStore object에 있는 그래프

[문법]

controlname.CategoryCount ( { graphcontrol } )

[Argument]

controlname | category의 수를 알기위한 그래프의 이름이나, 그래프를 포함하고 있는 DataWindow control 또는 DataStore의 이름.
graphcontrol | (DataWindow control 과 DataStore만 해당됨) category 수를 알고자 하는 DataWindow내에 있는 그래프의 이름을 나타내는 문자열. graphcontrol은 controlname이 DataWindow control이나 DataStore일 경우에만 필요하다.

[Return 값]

Integer.

카운트에 성공하면 그 숫자를 되돌리고 에러가 발생하면 -1을 되돌린다. argument중에 NULL이 있으면, NULL을 되돌린다.

[예제]

DataWindow control dw_findata내의 gr_revenues 그래프에서 category 수를 알아낸다.

integer li_count

li_count = dw_findata.CategoryCount("gr_revenues")

gr_product_data 그래프내의 category 수를 알아낸다.

integer li_count

li_count = gr_product_data.CategoryCount( )

[참고]

DataCount

SeriesCount


CategoryName PowerScript function

[설명]

지정된 category 번호와 연관되어 있는 category 이름을 알아낸다.

[적용]

윈도우와 object내의 Graph control, 그리고 DataWindow controls 과 DataStore object 내의 그래프.

[문법]

controlname.CategoryName ( { graphcontrol, categorynumber } )

[Argument]

controlname | 명시한 categoy의 이름을 찾기위한 그래프의 이름이나 그래프를 포함하고있는 DataWindow control 또는 DataStore의 이름.
graphcontrol | (DataWindow control과 DataStore에만 적용) 지정한 category의 이름을 알고자하는 DataWindow내의 그래프 이름을 나타내는 문자열. controlname이 DataWindow control이거나 DataStore일 경우에는 graphcontrol을 명시하여야 한다.
categorynumber | 이름을 알고자 하는 category의 번호.

[Return 값]

String.

controlname에 있는 categorynumber의 이름을 되돌린다. 에러가 발생할 경우에는 빈 문자열("")을 되돌리고, argument 값 중에서 NULL이 있을 경우에는 NULL을 되돌린다.

[용법]

category들은 1부터 CategoryCount 함수가 되돌리는 값까지 차례로 번호가 부여되어 있다. category를 삭제하면, category들은 차례로 번호가 다시 부여된다. CategoryName 함수는 category 번호와 연결되어있는 category의 이름을 찾기 위하여 사용한다.

[예제]

gr_product_data 그래프 5번 category의 이름을 알아낸다.

string ls_name

ls_name = gr_product_data.CategoryName(5)

DataWindow control dw_findata에있는 그래프 gr_revenues에서 category 5번의 이름을 알아낸다.

string ls_name

ls_name = dw_findata.CategoryName("gr_revenues", 5)

[참고]

AddCategory

SeriesName


Ceiling PowerScript function

[설명]

지정한 숫자보다 크거나 같은 값 중에서 가장 작은 수를 결정한다 (절상의 의미).

[문법]

Ceiling ( n )

[Argument]

n

크거나 같은 값 중에서 가장 작은 수를 얻으려 하는 숫자

[Return 값]

n의 데이터 타입.

n보다 크거나 같은 값 중에서 가장 작은 수를 되돌린다. n이 NULL일 경우에는 NULL을 되돌린다.

[예제]

num에 5가 설정된다.

decimal dec, num

dec = 4.8

//절상을 한다

num = Ceiling(dec)

num에 -4를 설정한다.

decimal num

// 절상을 한다.

num = Ceiling(-4.2)

num = Ceiling(-4.8)

[참고]

Int

Round

Truncate


ChangeMenu PowerScript function

[설명]

윈도우와 연관된 메뉴를 변경한다. 윈도우가 MDI 프레임 윈도우일 경우, ChangeMenu 함수는 open sheet 리스트에 현재 활성화된 메뉴를 추가한다.

[적용]

Window objects

[문법]

windowname.ChangeMenu ( menuname {, position } )

[Argument]

windowname | 메뉴를 변경하기 위하는 윈도우의 이름
menuname | 해당 윈도우에 관한 현재 메뉴로 만들고자 하는 메뉴이름.
position | (MDI 프레임 윈도우에만 적용) open sheet의 이름을 추가하기 원하는 메뉴 바 상의 아이템 번호. 메뉴 바의 아이템은 좌측으로부터 1로 시작하면서 번호가 부여된다. 메뉴 바의 첫 번째 메뉴상에 있는 open sheet 리스트의 기본값은 1이다.

[Return 값]

Integer.

메뉴 변경에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다. 만일 argument 값 중에 NULL이 있으면 NULL을 되돌린다.

통상적으로 되돌려지는 값은 사용하지 않는다.

[용법]

MDI 프레임 윈도우와 관련된 메뉴를 변경하면, 새 메뉴는 그 자신만의 open sheet와 함께 활성화하지 않으면 보이지않게 된다. sheet가 자신만의 메뉴를 갖을 때, open sheet의 리스트는 그 메뉴상에 나타난다.

[예제]

w_Employee의 최상위 레벨 메뉴를 m_Emp1으로 변경한다.

w_Employee.ChangeMenu(m_Emp1)


Char PowerScript function

[설명]

문자열의 첫 번째 문자를 추출하거나 정수를 문자로 변환한다.

[문법]

Char ( n )

[Argument]

n

문자로 시작하는 문자열, 문자로 변환하려는 정수, 또는 첫 번째 값이 문자열이나 정수인 blob. 문자열이나 blob의 나머지 내용들은 무시된다. 또한, n은 문자열, 정수, blob 등을 포함하고 있는 어떠한 종류의 메모리 변수도 가능하다.

[Return 값]

Char

n의 첫 번째 문자를 되돌린다. n이 NULL이면 NULL을 되돌린다.

[예제]

ls_S를 ASCII 값 42인 에스터리스크(*)로 설정한다.

string ls_S

ls_S = Char(42)

li_item 번호 1 부터 7을 이용하여 ls_item_code A 부터 G를 만들어 낸다.

string ls_item_code

integer li_item

FOR li_item = 1 to 6

ls_item_code = Char(64 + li_item)

... // ls_item_code에 관한 처리 루틴

NEXT

[참고]

Asc


Check PowerScript function

[설명]

dropdown이나 cascading 메뉴에 체크마크를 나타내고, 메뉴 아이템의 Checked() 속성을 TRUE로 설정한다.

[적용]

Menu objects

[문법]

menuname.Check ( )

[Argument]

menuname

체크마크를 나타내려는 메뉴의 이름. 아이템은 메뉴 바의 아이템이 아니라 반드시 dropdown이나 cascading 메뉴 안에 존재하는 것이어야 한다.

[Return 값]

Integer.

성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다. menuname이 NULL일 경우에는 NULL을 되돌린다.

[용법]

체크마크는 메뉴옵션이 현재 on 이라는 것을 메뉴 아이템에 나타내고, 그것을 선택함으로써 on 이나 off로 전환시킬 수 있다. 예를들어, Window 페인터의 Design 메뉴에는 grid가 on일 때 Grid 아이템 좌측에 체크마크가 표시된다.

사용자가 옵션을 on으로 전환 시켰을 때 메뉴 아이템에 체크마크를 나타내기 위하여 그 아이템의 Cliked 스크립트에서 Check() 함수를 사용할 수 있고, 그 옵션을 off로 전환하였을 때에는 체크마크를 제거하기 위하여 Uncheck() 함수를 사용할 수 있다.

*** 또 다른 방법 ***

Check() 함수를 호출하지 않고 메뉴 object의 Checked 속성을 설정할 수도 있다.

menuname.Checked = TRUE

따라서, 다음 문장들은 동일한 결과를 나타낸다.

Menu_Appl.M_View.M_Grid.Checked = TRUE

Menu_Appl.M_View.M_Grid.Check( )

[참고]

UnCheck


ClassName

ClassName PowerScript function

Syntax 1 - object의 class

[설명]

지정한 object의 클래스 (또는 이름)을 제공한다.

[적용]

control

[문법]

controlname.ClassName ( )

[Argument]

controlname

style 윈도우 (그 control의 class)내의 control에 할당된 control 이름

[Return 값]

String.

controlname의 class를 되돌린다. 에러가 발생하면 빈 문자열("")을 되돌리고, controlname이 NULL이면 NULL을 되돌린다.

[용법]

class는 object의 이름이며, 해당 페인터 안에서 object를 저장할 때 이름을 할당한다. PowerBuilder는 object에 관한 class로 동일한 이름의 변수를 선언하기 때문에, 통상 class와 object는 동일한 것으로 나타난다. 그러나, 인스턴스가 여러 개 선언된 object를 가지고 있다면, 그 object의 변수는 서로 달라지게 된다.

만일 상위 object가 하위 object들 중의 하나로 인스턴스(실체화) 되었다면, 그 하위 object의 이름을 찾기 위하여 ClassName 함수를 사용할 수 있다.

TypeOf 함수는 Windows! 또는 CheckBox! 등과 같이 열거형 데이터 타입으로 object 타입을 알려준다. ClassName 함수는 object의 class를 나타낸다.

[참고]

ClassName Syntax2

ClassName PowerScript function

Syntax 2 - variable의 class

[설명]

변수의 데이터 타입을 제공한다.

[문법]

ClassName ( variable )

[Argument]

variable

데이터타입을 알고자 하는 변수의 이름

[Return 값]

String.

변수의 이름을 되돌린다. 변수가 열거형(enumerated) 데이터 타입이거나 에러가 발생하면 빈 문자열("")을 되돌린다. 변수가 NULL일 때에는 NULL을 되돌린다.

[용법]

ClassName 함수는 변수가 열거형(enumerated) 데이터 타입일 경우에는 데이터 타입을 결정할 수 없기 때문에 빈 문자열("")을 되돌린다.

[예제]

gd_doublenum이 gloval double 변수일 경우에, ClassName 함수는 varname에 double을 설정한다.

string varname

varname = ClassName(gd_doublenum)

[참고]

ClassName Syntax1


Clear PowerScript function

[설명]

지정한 control로부터 선택된 텍스트나 OLE 2.0 object를 삭제하지만, clipboard에 저장된 내용은 삭제하지 않는다.

[Platform 정보]

OLE 2.0 control 과 OLEStorage object에 적용할 경우, Clear 함수는 Macintosh 와 UNIX에서는 아무런 효과가 없다.

[적용]

MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox, OLE 2.0 controls, OLEStorage objects

[문법]

objectname.Clear ( )

[Argument]

objectname

선택한 텍스트를 삭제하려는 EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox 또는 DropDownPictureListBox의 이름.

또는

OLE object에서 제거하려는 OLE control 이나 storage 변수 (OLEStorage 타입)의 이름.

objectname이 DropDownListBox 나 DropDownPictureListBox일 경우에는 AllowEdit 속성이 반드시 TRUE여야 한다.

[Return 값]

Integer.

edit control의 경우, objectname으로부터 제거된 문자의 수를 되돌린다. 선택된 텍스트가 없을 경우에 제거되는 문자들은 없고 Clear 함수는 0을 되돌리고, 에러가 발생하였을 경우에는 -1을 되돌린다.

OLE 2.0 control과 storage 변수의 경우, 성공하였을 경우에는 0, 에러가 발생하였을 경우에는 -9를 되돌린다. objectname이 NULL일 경우에는 NULL을 되돌린다.

[용법]

삭제하기위한 텍스트를 선택하려면, 마우스나 키보드를 사용할 수 있다. 또한 스크립트내에서 SelectText 함수를 호출하는 것도 가능하다.

선택한 텍스트를 지우고 clipboard에 저장하려는 Cut 함수를 사용한다.

OLE 2.0 control로부터 OLE object를 지우면, 그것을 참조한 모든 것이 삭제되고 그 object의 변경된 내용은 storage object나 file에 저장되지 않는다.

OLEStorage object 변수를 지우면 Open 이나 SaveAs 함수와 그 변수 사이에 설치된 어떠한 연결도 끊어진다. 또한 storage 변수내의 object에 연결하기 위하여 호출된 Open이나 SaveAs 함수를 가지고 있는 OLE 2.0 control과 그 변수 사이의 연결도 끊어진다.

[예제]

sle_comment1의 텍스트가 'Draft'이고 선택되어있다면, sle_comment1에서 Draft는 지워지고 5를 되돌린다.

sle_comment1.Clear( )

sle_comment1의 텍스트가 'Draft'라면, 첫 번째 문장에서 'D'가 선택되고 두 번째 문장은 sle_comment1에서 D를 지우고 1을 되돌린다.

sle_comment1.SelectText(1,1)

sle_comment1.Clear( )

OLE 2.0 control ole_1과 연관된 object를 지우고, 그 control를 비어있는 상태로 남겨둔다.

integer result

result = ole_1.Clear( )

OLEStorage object 변수 olest_stuff내의 object를 지우고, olest_stuff내에 오픈된 object를 가지고있는 OLE 2.0 control들을 비운다.

integer result

result = olest_stuff.Clear( )

[참고]

Close

Cut

Paste

ReplaceText

SelectText


ClearValues PowerScript function

[설명]

DataWindow 칼럼과 연관된 DropDownListBox 내의 모든 리스트 아이템을 지운다. (이 리스트는 코드 테이블에서 호출된 것이다.) ClearValues 함수는 칼럼내에 저장된 데이터에는 영향을 주지 않는다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ClearValues ( column )

[Argument]

dwcontrol | DataWindow control, DataStore, 또는 child DataWindow의 이름.
column | 삭제하려는 리스트를 가지고있는 칼럼. 이 칼럼의 편집 스타일은 반드시 DropDownListBox여야 하고, column은 칼럼 번호(integer)나 칼럼 이름(string)일 수 있다.

[Return 값]

Integer.

삭제에 성공하면 1을 되돌리고, 에러가 발생하면 -1을 되돌린다. 또한 어떠한 argument의 값이 NULL일 경우에 ClearValues 함수는 NULL을 되돌린다. 통상적으로 리턴되는 값은 사용하지 않는다.

[예제]

dw_Employee status 칼럼의 dropdown listbox로 부터 모든 값들을 지운다.

dw_Employee.ClearValues("status")

[참고]

GetValue

SetValue


Clipboard

Clipboard PowerScript function

Syntax 1

[설명]

텍스트를 가지고있는 시스템 클립보드의 내용을 얻거나 다른 값으로 대치한다.

[문법]

Clipboard ( { string } )

[Argument]

string

(선택사항)클립보드내에 위치시키고자 하는 텍스트. 이 문자열은 현재 클립보드가 가지고있는 내용을 대치한다.

[Return 값]

String.

클립보드의 내용이 텍스트일 경우 클립보드의 현재 내용을 되돌린다. 만일 옵션으로 string을 명시하면, 클립보드는 현재의 내용을 되돌리고 그 string으로 내용을 대치한다.

클립보드가 비어있거나 비트맵과 같이 텍스트가 아닌 다른 값을 가지고 있을 경우에는 빈 문자열("")을 되돌린다. 옵션으로 string을 명시하면 텍스트가 아닌 다른 데이터는 명시한 문자열로 대치된다. 문자열이 NULL일 경우, 클립보드는 NULL을 되돌린다.

[용법]

편집 가능한 control이나 StaticText control내에 클립보드의 내용을 삽입하기 위하여 Paste, Replace, ReplaceText 등의 함수를 문법에 이용하는 것도 가능하다.

[예제]

* 클립보드의 내용을 ls_CoName에 할당한다.

string ls_CoName

ls_CoName = Clipboard( )

* 클립보드의 내용을 Heading에 넣고, 클립보드의 내용을 "사원 데이터"로 대치한다.

string Heading

Heading = Clipboard("사원 데이터")

* MultiLineEdit mle_terms내에서 선택한 데이터를 클립보드의 내용으로 대치한다.

mle_terms.ReplaceText(Clipboard( ))

* StaticText st_welcome의 내용과 클립보드의 내용을 교환한다.

st_welcome.Text = Clipboard(st_welcome.Text)

[참고]

Clear

Copy

Cut

Paste

Replace

ReplaceText

Clipboard:syntax 2

Clipboard PowerScript function

Syntax 2

[설명]

그래프의 비트맵 이미지를 가진 시스템 클립보드의 내용을 대치한다. 이 이미지는 다른 응용 프로그램에 복사할 수 있다.

[적용]

윈도우나 사용자 object내의 Graph control, DataWindow control과 DataStore object내의 그래프

[문법]

controlname.Clipboard ( { graphcontrol } )

[Argument]

controlname | 클립보드에 복사하기위한 그래프 또는 DataWindow control 또는 그래프를 포함하고있는 DataStore
graphcontrol | (DataWindow control 과 DataStore만 해당) 클립보드에 복사하기 위한 DataWindow내의 graph control 이름을 나타내는 문자열

[Return 값]

Integer.

복사에 성공하면 1을, 에러가 발생하면 -1을 되돌린다. argument의 값이 NULL일 경우, NULL을 되돌린다.

[예제]

* 그래프 gr_products_data를 클립보드에 복사한다.

gr_products_data.Clipboard( )

* DataWindow control dw_emp_data내의 그래프 gr_employees를 클립보드에 복사한다.

dw_emp_data.Clipboard("gr_employees")

[참고]

Clipboard Syntax1


Close

Close PowerScript 함수: syntax 1

[설명]

윈도우를 닫고 그 윈도우와 윈도우내의 모든 control에 의하여 점유된 기억장소를 해제한다.

[적용]

Window objects

[문법]

Close ( windowname )

[Argument]

windowname 닫으려고 하는 윈도우의 이름

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다. 또한, 윈도우 이름이 NULL일 경우에 Close 함수는 NULL을 리턴한다. 통상적으로 이 함수의 리턴값은 사용하지 않는다.

[용법]

이 함수는 윈도우를 닫고 윈도우와 윈도우내의 control에 의하여 점유되었던 기억장소를 다시 확보하기 위하여 사용한다.

Close 함수를 호출할 때, PowerBuilder는 윈도우를 화면에서 제거하고, 윈도우를 닫고, CloseQuery와 Close 이벤트에 관한 스크립트를 실행한 다음, Close 함수를 호출한 스크립트내의 나머지 문장들을 실행하게 된다.

윈도우가 닫혀진 후, 그 윈도우의 property, instance 변수와 control 등은 더 이상 스크립트에서 참조할 수 없다. 만일 스크립트내에서 닫혀진 윈도우나 그 윈도우의 property 또는 intance 변수 등을 참조한 문장이 있다면, 에러가 발생하게 될 것이다.

윈도우의 닫힘 방지

윈도우가 닫혀지는 것을 방지하려면 CloseQuery 이벤트 스크립트에 "RETURN 1" 문장을 포함시키도록 한다.

[예제]

* w_employee 윈도우를 닫은 다음 w_department 윈도우를 오픈한다.

Close(w_employee)

Open(w_departments)

Close 함수를 호출한 다음에, 사용자가 윈도우의 닫힘을 방지하거나 확인하게 하려면 CloseQuery event 스크립트에 다음과 같은 문장을 포함 시킨다.

IF MessageBox('프로그램 종료', &

'종료?', Question!, YesNo!) = 2 THEN

// 윈도우의 닫기를 중지 시킬 경우

RETURN 1

END IF

[참고]

Hide

Open

Close : Syntax 2

Close : Syntax 3

Close PowerScript 함수: syntax 2

[설명]

OLEStorage object를 닫고, storage 파일 또는 object와 연관되어있는 object를 저장하면서 이들사이의 연결을 제거한다. 또한, 오픈된 object를 가지고 있던 모든 OLE 2.0 control들과 연결된 서버들도 닫는다.

Platform 정보

Macintosh 와 UNIX 상에서는 효과가 없다.

[적용]

OLEStorage objects

[문법]

olestorage.Close ( )

[Argument]

olestorage

저장하고 닫으려는 OLEStorage object 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 중 하나를 리턴한다:

-1 storage가 오픈 되어있지 않다

-9 다른 에러가 발생하였다

olestorage가 NULL일 경우에는, NULL을 리턴한다.

[예제]

* OLEStorage object 변수 olest_stuff내의 object를 저장하고 지운다. 또한, olest_stuff내에 오픈 된 object를 가지고있는 OLE 2.0 control들도 모두 비운다.

integer result

result = olest_stuff.Close( )

[참고]

Open

Save

SaveAs

Close : Syntax 1

Close : Syntax 3

Close PowerScript 함수: syntax 3

[설명]

OLEStream object를 닫는다.

Platform 정보

Macintosh 와 UNIX 상에서는 효과가 없다.

[적용]

OLEStream objects

[문법]

olestream.Close ( )

[Argument]

olestream

닫고자 하는 OLEStream object 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 중 하나를 리턴한다:

-1 stream이 오픈 되어있지 않다

-9 다른 에러가 발생하였다

olestream이 NULL일 경우에는, NULL을 리턴한다.

[예제]

* OLEStream object stm_pic_label을 닫고 그 변수가 점유하였던 메모리를 확보한다.

integer result

result = stm_pic_label.Close( )

DESTROY stm_pic_label

[참고]

Open

Close : Syntax 1

Close : Syntax 2


CloseChannel PowerScript 함수

[설명]

DDE channel을 닫는다.

Platform 정보

DDE 함수들은 Macintosh상에서는 영향을 주지 않는다.

UNIX platform의 경우, DDE 함수들은 PowerBuilder를 사용하여 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일된 서버와 클라이언트 응용프로그램에만 영향을 준다.

[문법]

CloseChannel ( handle {, windowhandle } )

[Argument]

handle | 닫으려는 DDE channel을 나타내기 위한 long 타입의 변수. 이값은 DDE channel을 오픈하는 OpenChannel 함수에 의하여 되돌려진 값과 동일한 것이다.
windowhandle |  | (선택사항)DDE 클라이언트로써 작용중인 PowerBuilder 윈도우의 handle.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음중 하나를 리턴한다:

-1 열기에 실패하였다

-2 channel이 닫혀지는 것을 거부하였다

-3 server로부터 확인할 수 없다

-9 handle이 NULL이다

[용법]

OpenChannel 함수를 호출하여 오픈된 DDE 서버 응용프로그램 channel을 닫기위하여 사용한다.

channel의 handle을 지정하여 DDE channel을 닫을 때, PowerBuilder 윈도우와 연관된 channel에 관한 handle을 지정하는 것도 좋은 방법이다. windowhandle을 지정하면, CloseChannel 함수는 windowhandle에 의하여 식별된 윈도우내의 DDE channel을 닫는다. windowhandle을 지정하지 않을 경우, CloseChannel 함수는 활성화된 윈도우와 연관되었는 channel만 닫게된다. 윈도우의 handle을 알아내려면 Handle 함수를 사용하면된다.

[예제]

* handle에 의하여 확인된 channel을 오픈 하고 닫는다. channel은 윈도우 w_sheet와 연관되어있다.

long handle

// channel을 오픈하고

handle = OpenChannel("Excel", "REGION.XLS", &

Handle(w_sheet) )

... // 어떤 처리를 한다

// 오픈된 channel을 닫는다.

CloseChannel(handle, Handle(w_sheet))

[참고]

GetRemote

OpenChannel

SetRemote


CloseTab PowerScript 함수

[설명]

OpenTab 이나 OpenTabWithParm 함수에 의하여 이미 오픈되어 있는 Tab control로부터 탭 페이지를 제거한다. CloseTab 함수는 사용자 object의 Destructor 이벤트에 관한 스크립트에서 실행된다.

[적용]

Tab controls

[문법]

tabcontrolname.CloseTab ( userobjectvar )

[Argument]

tabcontrolname | 닫으려 하는 탭 페이지를 포함하고있는 Tab control 이름
userobjectvar | 닫으려 하는 사용자 object 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument의 값이 NULL일 경우에 CloseTab 함수는 NULL을 리턴한다. 통상 리턴되는 값은 사용하지 않는다.

[용법]

CloseTab 함수는 탭 페이지로써 오픈된 사용자 object를 닫고 그 object와 control에 의하여 점유되었던 기억장소를 확보한다.

CloseTab 함수를 호출하면, PowerBuilder는 control로부터 탭 페이지를 제거하고, 닫고, Destructor 이벤트에 관한 스크립트를 실행한 다음, CloseTab 함수를 호출한 스크립트의 나머지 문장을 실행한다.

object가 닫혀진 이후에 그 object의 property, instance 변수, control 등은 더 이상 스크립트내에서 참조될 수 없다. 만일 스크립트내에서 닫혀진 object나 그 object의 property 또는 instance 변수 등을 참조한다면, 에러가 발생할 것이다.

[예제]

* 사용자 object u_employee 탭 페이지를 닫은 다음, Tab control tab_personnel내에 사용자 object u_departments를 오픈한다.

tab_personnel.CloseTab(u_employee)

tab_personnel.OpenTab(u_departments)

사용자 object를 닫기 위한 메뉴항목을 선택할 수 있도록 하려면, 다음과 같은 스크립트를 인용하도록 한다.

IF MessageBox("Close ", "Close?", &

Question!, YesNo!) = 1 THEN

// Yes를 선택하면 사용자 object를 닫는다.

ParentWindow.CloseTab(u_employee)

// No를 선택하면, 아무런 행동도 취하지 않는다.

// 윈도우를 닫지않는다.

END IF

[참고]

OpenTab


CloseUserObject PowerScript 함수

사용자 object를 닫고 그 object의 Destructor 이벤트에 관한 스크립트를 실행한다.

[적용]

Window objects

[문법]

windowname.CloseUserObject ( userobjectname )

[Argument]

windowname | 사용자 object를 포함하고있는 윈도우 이름
userobjectname | 닫으려고하는 사용자 object 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument의 값이 NULL일 경우에는 NULL을 리턴한다. 이 함수의 리턴값은 통상적으로 사용되지 않는다.

[용법]

사용자 object를 닫고 그 object와 contorl이 점유하고 있던 기억장소를 확보하려 할 때 CloseUserObject 함수를 사용한다.

CloseUseObject 함수를 호출하면, PowerBuilder는 oject를 화면에서 제거하고, 닫고, Destructor 이벤트에 관한 스크립트를 실행한 다음에, CloseUserObject 함수를 호출하였던 스크립트의 나머지 문장들을 실행한다.

사용자 object가 닫혀진 이후에는 그 object의 property, instance 변수, control 등은 더 이상 스크립트내에서 참조될 수 없다. 만일 스크립트내에서 닫혀진 사용자 object나 그 object의 property 또는 instance 변수 등을 참조한다면, 에러가 발생할 것이다.

[예제]

* 사용자 object u_employee를 닫은 다음 w_personnel 윈도우에 u_departments 사용자 object를 오픈한다.

w_personnel.CloseUserObject(u_employee)

w_personnel.OpenUserObject(u_departments)

사용자 object를 닫기위한 메뉴항목을 선택할수 있도록 하려면, 다음과같은 스크립트를 인용하도록 한다.

IF MessageBox("Close ", "Close?", &

Question!, YesNo!) = 1 THEN

// Yes를 선택하면 사용자 object를 닫는다.

ParentWindow.CloseTab(u_employee)

// No를 선택하면, 아무런 행동도 취하지 않는다.

// 윈도우를 닫지않는다.

END IF

[참고]

OpenUserObject


CloseWithReturn PowerScript 함수

[설명]

윈도우를 닫고 Message object내에 리턴 값을 저장한다. 이 함수는 response window (응답 윈도우)일 경우에만 사용할 수 있다.

[적용]

Window objects

[문법]

CloseWithReturn ( windowname, returnvalue )

[Argument]

windowname | 닫으려 하는 윈도우 이름
returnvalue | 윈도우가 닫혔을 때 Message object에 저장하고자 하는 값. returnvalue는 반드시 다음 데이터 타입 중 하나여야 한다: * String * Numeric * PowerObject

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument가 NULL일 경우에는, NULL을 리턴한다. 이 함수의 리턴 값은 통상적으로 사용하지 않는다.

[용법]

CloseWithReturn 함수의 목적은 응답 윈도우를 닫고, 응답 윈도우로부터 그 윈도우를 오픈한 윈도우로 정보를 되돌리는데 있다. 따라서, 윈도우를 닫고 그 윈도우와 윈도우내의 모든 control이 점유하였던 기억장소를 다시 확보한 다음, 값을 되돌리려면 CloseWithReturn 함수를 사용한다.

Close 함수와 동일하게, CloseWithReturn 함수는 윈도우를 제거하고, 닫고, CloseQuery와 Close 이벤트에 관한 스크립트를 실행한다. 또한 이 함수는 이벤트 스크립트를 실행하기 전에, Message object에 returnvalue를 저장한다. 다음에, CloseWithReturn 함수를 호출하였던 스크립트의 나머지 문장들을 실행한다.

윈도우가 닫혀진 이후에 그 object의 property, instance 변수, control 등은 더 이상 스크립트내에서 참조될 수 없다. 만일 스크립트내에서 닫혀진 윈도우나 그 윈도우의 property 또는 instance 변수 등을 참조한다면, 에러가 발생할 것이다.

PowerBuilder는 데이터 타입에 따라서 Message object property에 returnvalue를 저장한다. CloseWithReturn 함수를 호출한 스크립트 내에서, 리턴되는 값의 데이터 타입에 해당하는 Message object의 property를 명시함으로써 리턴되는 값을 사용할 수 있다.

리턴값 data type | Message object property
Numeric | Message.DoubleParm
PowerObject (구조체 등) | Message.PowerObjectParm
String | Message.StringParm

structure(구조체)와 같은 여러 값의 리턴

여러 값을 리턴하려면, 그 값들을 보관하기 위하여 사용자-정의 구조체(structure)를 생성하고 응답 윈도우를 오픈한 스크립트에서 Message object의 PowerObjectParm property를 사용한다. 구조체(structure)는 값에의하여 전달(passed by value) 되므로 원래값이 없어지더라도 그 정보에 접근할 수 있다.

control 참조

사용자 object와 control은 참조에의하여 전달(passed by refernce) 된다. 따라 서, 윈도우가 닫혀진 이후에는 그 control이 더 이상 존재하지 않기 때문에, 닫혀진 윈도우에있는 control의 참조내용을 리턴하기위하여 CloseWithReturn 함수를 사용할 수 없다. 대신, 그 control에대한 하나 또는 그 이상의 property 값을 리턴한다.

윈도우의 닫힘 방지

CloseQuery 이벤트 스크립트에 'RETURN 1' 문장을 사용하면 윈도우가 닫히는 것을 방지할 수 있다.

[예제]

* 응답 윈도우 w_employee_response를 닫고, 응답 윈도우를 오픈한 윈도우에 문자열(string) emp_name을 리턴한다.

CloseWithReturn(Parent, "emp_name")

* 메뉴 아이템에서 사용자가 "초보자"인지 "숙련자"인지 알아내고 각각 다른 윈도우를 오픈하려 한다고 가정한다.

메뉴 아이템은 사용자의 숙련등급을 확인하기위하여 w_signon라 부르는 응답 윈도우를 나타낸 다. 사용자는 SingleLineEdit control sle_signon_id내에 숙련등급을 타이핑한다. 응답 윈도우 의 OK 버튼은 sle_signon_id의 텍스트를 메뉴 아이템 스크립트에 통과 시킨다. 메뉴 아이템 스크립트에서는 Message object의 StringParm property를 체크하여 적절한 윈도우를 오픈한다.

응답 윈도우 w_signon내에있는 OK 버튼의 Clicked 이벤트 스크립트는 다음과 같다:

CloseWithReturn(Parent, sle_signon_id.Text)

메뉴 아이템의 스크립트는 다음과 같다:

string ls_userlevel

// Response윈도우를 오픈한다.

Open(w_signon)

// Message object에 리턴된 텍스트를 체크한다.

ls_userlevel = Message.StringParm

IF ls_userlevel = "초보자" THEN

Open(win_novice) // 초보자 이면

ELSE

Open(win_advanced) // 초보자가 아니면

END IF

[참고]

Close

OpenSheetWithParm

OpenUserObjectWithParm

OpenWithParm


CollapseItem PowerScript 함수

[설명]

명시한 아이템을 지운다.

[적용]

TreeView controls

[문법]

treeviewname.CollapseItem ( itemhandle )

[Argument]

treeviewname | 아이템을 지우기 위한 TreeView control
itemhandle | 삭제하려는 아이템의 식별자(handle)

[Return 값]

Integer.

처리에성공하면 1을 리턴하고 에러가발생하면 -1을 리턴한다.

[용법]

트리(tree) 전체를 삭제하려면, argument로 RootTreeItem handle을 이용한다.

[예제]

* TreeView control내의 아이템을 삭제한다.

long ll_tvi

// 현재 아이템 식별자(handle)을 알아낸다.

ll_tvi = tv_list.FindItem(currenttreeitem!, 0)

// 현재 아이템을 삭제한다.

tv_list.CollapseItem(ll_tvi)

* TreeView control내의 모든 아이템을 삭제한다.

long ll_tvi

// 루트 아이템 식별자(handle)을 알아낸다.

ll_tvi = tv_list.FindItem(roottreeitem!, 0)

// 아이템을 모두 삭제힌다.

tv_list.CollapseItem(ll_tvi)

[참고]

ExpandItem

ExpandAll


CommandParm PowerScript 함수

[설명]

응용프로그램이 실행되었을 때 뒤따라오는 프로그램의 인수(argument) 문자열을 구한다.

Platform 정보

CommandParm 함수는 Macintosh에서는 아무런 효과가 없이 빈 문자열을 리턴한다.

[문법]

CommandParm ( )

[Return 값]

String.

처리에 성공하면 응용프로그램의 argument 문자열을 리턴하고, 실패하거나 argument가 없으면 빈 문자열("")을 리턴한다.

[용법]

명령어 인수(argument)는 Windows 프로그램 아이템의 명령어 라인이나 Program Manager의 Run response 윈도우 내에서 프로그램이름 다음에 나타날 수 있다. 예를들어, MS-DOS 아이콘을 선택하고 다음과 같이 입력하면:

MyAppl C:\EMPLOYEE\EMPLIST.TXT

CommandParm 함수는 문자열 C:\EMPLOYEE\EMPLIST.TXT를 가지고 온다.

응용프로그램의 명령어 라인이 여러 인수(argument)를 가지고 있을 때, CommandParm 함수는 단일 문자열로 모든 인수를 리턴한다.

응용프로그램의 Open 이벤트 내에서는 CommandParm 함수를 호출할 필요 없이 명령어라인(commandline) 인수(argument)를 대신 사용한다.

[예제]

* 명령어 라인 인수(arguments)를 구하여 변수 ls_command_line에 저장한다.

string ls_command_line

ls_command_line = CommandParm( )

* 명령어 라인이 여러개의 인수(arguments)를 포함하고있을 경우에는, 각각의 인수(arguments)를 분리하기 위하여 문자열 타입의 함수를 사용할 수 있다. 다음은 CommandParm 함수를 이용 하여 얻어낸 인수(arguments)의 수를 변수에 저장하는 예이다. (단, 각각의 인수(arguments)는 하나의 공란으로 분리되어 있다고 가정한다.)

각 인수(arguments)에 관하여, Pos 함수는 공란을 찾고, Left 함수는 인수(arguments)를 배열에 복사하고, Replace 함수는 다음 인수(arguments)의 첫 번째 위치로 이동하기 위하여 원래 문자 열에서 복사한 인수(arguments)를 제거한다.

string ls_cmd, ls_arg[]

integer i, li_argcnt

// 인수를 구하고 문자열 전후의 공란을

// 제거한다.

ls_cmd = Trim(CommandParm( ))

li_argcnt = 1

DO WHILE Len(ls_cmd ) > 0

// 첫 번째 공란을 찾는다

i = Pos( ls_cmd, " " )

// 공란이 없으면(즉, 인수가 하나이면),

// i 를 문자열의 마지막 다음에 위치한

// 가상 문자의 위치로 설정한다

if i = 0 then i = Len(ls_cmd) + 1

// ls_arg를 인수 배열로 할당한다.

// 복사되는 문자의 수는 Pos 함수를 이용하여

// 발견한 공란의 위치보다 하나 적도록 한다.

ls_arg[li_argcnt] = Left( ls_cmd, i - 1 )

// 다음 루프를 위하여 인수 카운트를 증가 시킨다.

li_argcnt = li_argcnt + 1

// 문자열로부터 복사한 인수를 제거하여

// 다음 인수가 첫 번째로 오도록한다

ls_cmd = Replace( ls_cmd, 1, i, "" )

LOOP


ConnectToNewObject PowerScript 함수

[설명]

지정한 서버 응용프로그램에 새로운 OLE를 생성하고 PowerBuilder OLEObject를 연결 시킨다. 필요한 경우 ConnectToNewObject 함수는 서버 응용 프로그램을 시작 시킨다.

[적용]

OLEObject objects

[문법]

oleobject.ConnectToNewObject ( classname )

[Argument]

oleobject | OLE object에 연결하려는 OLEObject 변수 이름. OLE 2.0 control의 Object property인 OLEObject는 명시할 수 없다.
classname | OLE 서버 응용프로그램과 서버가 OLE를 통하여 취급할수 있는 object의 타입을 식별하기위한 OLE class의 이름

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 다음 음수 값 중 하나를 리턴한다:

-1 부적합한 호출: 인수(argument)가 control의 Object property이다

-2 Class 이름을 찾을 수 없다

-3 Object는 생성될 수 없다

-4 object에 연결할 수 없다

-9 그 밖의 에러가 발생하였다

인수(argument)의 값이 NULL일 경우, ConnectToNewObject 함수는 NULL을 리턴한다.

[용법]

OLEObject 변수는 PowerBuilder 응용 프로그램이 OLE object를 프로그램적으로 취급하기 위하여 서버 응용프로그램에 질문하는 OLE automation에 사용된다.

[예제]

* OLEObject 변수를 생성하고 새로운 Excel object를 생성하고 연결하기 위하여 ConnectToNewObject 함수를 호출한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToNewObject("excel.application")

[참고]

ConnectToObject

DisconnectObject


ConnectToObject PowerScript 함수

[설명]

OLE object와 PowerBuilder OLEObject 변수를 연결시키고 서버 응용프로그램을 시작한다. OLEObject 변수와 ConnectToObject 함수는 OLE automation을 위하여 사용된다.

[적용]

OLEObject objects

[문법]

oleobject.ConnectToObject ( filename {, classname } )

[Argument]

oleobject | OLE object에 연결하려는 OLEObject 변수 명. OLE 2.0 control의 Object property인 OLEOject는 명시할 수 없다.
filename | OLE storage 파일 명. 빈 문자열을 명시할 수 있으며, 이 경우에는 반드시 classname을 지정하여야 한다. Oleobject는 classname에 명시된 서버 응용프로그램 내에서 object를 활성화하기 위하여 연결된다.
classname | (선택사항) OLE 서버 응용프로그램과 서버가 OLE를 통하여 취급할수 있는 object의 타입을 식별하기위한 OLE class의 이름. classname을 생략하면, PowerBuilder는 서버 응용프로그램을 시작하기위하여 파일이름의 확장자를 사용한다.

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 다음의 음수 값 중 하나를 리턴한다:

-1 부적합한 호출: 인수(argument)가 control의 Object property이다

-2 Class 이름을 찾을 수 없다

-3 Object는 생성될 수 없다

-4 object에 연결할 수 없다

-5 현재 활성화된 object에 연결할 수 없다

-6 파일명이 부적합하다

-7 파일을 찾을 수 없거나 파일을 오픈할 수 없다

-8 서버에 의하여 파일로부터의 로드가 지원되지 않는다

-9 그 밖의 에러가 발생하였다

argument가 NULL이면, ConnectToObject는 NULL을 리턴한다.

[용법]

OLEObject 변수를 생성하고 OLE object와 서버 응용프로그램에 연결된 이후, OLE 서버에의하여 지원되는 속성을 설정하고 함수들을 호출할 수 있다. PowerBuilder 컴파일러는 OLEObject 변수에 관하여 호출한 함수의 문법을 체크하지 않기 때문에, 응용프로그램이 실행될 때 그 함수가 존재하지 않거나 property 이름들이 적합하지 않을 경우 실행 에러가 발생한다.

OLEObject 변수의 선언과 생성

OLEObject 변수를 메모리에 할당하기 위해서는 아래 예에서와 같이 반드시 CREATE 문장을 사용하여야 한다.

OLEObject 변수를 생성할 때에는, 빠져나가지 전에 그 object를 확실하게 제거하여야 한다. object가 제거되면 서버로부터의 연결이 해제되고 서버는 닫혀진다. 만일 연결을 해제하지 않고 object를 빠져 나오면, 서버 응용프로그램을 중지할 방법이 없어지게 된다.

지원되는 속성과 함수들을 찾으려면 서버 응용프로그램에 관한 설명을 참조하도록 한다. 어떤 응용 프로그램들은 상당히 많은 양을 제공한다. 예를들어, Excel은 약 4,000 개의 동작을 사용자가 자동으로 사용할 수 있다.

OLEObject 데이터 타입은 응용프로그램내에서 background 활성화로써 OLE automation(자동화)를 지원한다. 또한 OLE 2.0 control내에서 OLE object에 관한 서버 함수와 속성을 이끌어낼 수 있다. 그렇게 하려면, 서버 함수 이름 이전에 그 control의 Object property를 명시하여야 한다. control내에서 object 자동화를 원한다면, OLEObject 변수가 필요치 않다.

예를들어, OLE 2.0 control ole_1내에 있는 object에 관한 Excel cell의 값을 변경시키려면 다음과 같은 문장을 사용한다.

ole_1.Object.application.cells(1,1).value = 14

[예제]

* OLEObject 변수를 선언 및 생성하고 Excel내에 오픈되어있는 Excel 워크시트에 연결한다. 다 음, 워크시트의 값을 설정, 저장하고, Excel을 빠져나올 때 OLEObject 변수를 제거한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToObject("c:\excel\expense.xls")

IF result = 0 THEN

myoleobject.application.workbooks(1).&

worksheets(1).cells(1,1).value = 14

myoleobject.application.workbooks(1).save()

END IF

DESTROY myoleobject

* Excel 챠트에 연결한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToObject("c:\excel\expense.xls", "excel.chart")

* 실행중인 Excel내의 현재 활성화된 object에 연결한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToObject("", "excel.application")

[참고]

ConnectToNewObject

DisconnectObject


ConnectToServer PowerScript 함수

[설명]

client 응용프로그램을 서버 응용프로그램에 연결한다. client 응용프로그램은 서버 응용프로그램 상에서 정의된 remote object를 사용하기 전에 반드시 ConnectToServer 함수를 호출하여야 한다.

[적용]

Connection objects

[문법]

connection.ConnectToServer ( )

[Argument]

connection

연결을 설치하는데 사용할 연결 object의 이름. 연결 object는 연결을 어떻게 설치할 것인가를 명시한 속성들을 가지고 있다.

[Return 값]

Long.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 다음 중 하나를 리턴한다:

50 Distributed service 에러

52 Distributed communications 에러

53 요청된 서버가 활성화되어있지 않다

54 서버가 요청을 받을 수 없다

55 요청이 비정상적으로 종료되었다

56 요청에 대한 응답이 완전하지 않다

62 서버가 바쁘다

[용법]

ConnectToServer를 호출하기 전에, 연결 object 속성들의 값을 할당하도록 한다. 속성들은 사용중인 통신 드라이버에 따라 다양하게 설정된다.

[예제]

* 연결 object myconnect를 이용하여 client 응용프로그램을 서버 응용프로그램에 연결한다. (단, 연결에 사용할 통신 드라이버는 WinSock이라 가정한다.)

connection myconnect

myconnect = create connection

myconnect.driver = "WinSock"

myconnect.application = "dpbserv"

myconnect.location = "server01"

myconnect.ConnectToServer( )

[참고]

DisconnectServer


Copy PowerScript 함수

[설명]

선택된 텍스트나 OLE object를 클립보드에 넣는다. Copy 함수는 소스 텍스트나 object를 변경하지 못한다.

Platform 정보

OLE 2.0 control과 object에 적용할 때, Copy 함수는 Macintosh와 UNIX 상에서는 영향을 주지 못한다.

[적용]

DataWindow, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox, OLE 2.0 controls, OLE DWObjects (DataWindow object내에 있는 object들은 DataWindow control에 있다)

[문법]

objectref.Copy ( )

[Argument]

objectref

클립보드에 복사하려는 텍스트를 포함하고있는 DataWindow control, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox 등의 이름.

또는

클립보드에 복사하려는 object를 포함하고있는 OLE 2.0 control 이름이나 OLE DWObject 이름.

DWObject의 완전한 이름은 다음과 같은 문법을 갖는다:

dwcontrol.Object.dwobjectname

objectref가 DataWindow라면, 텍스트는 현재 row와 column상의 edit control로부터 복사된다. objectref가 DropDownListBox 또는 DropDownPictureListBox일 경우, AllowEdit property는 반드시 TRUE 여야 한다.

[Return 값]

Integer.

edit control에 관하여, Copy 함수는 클립보드로 복사된 문자들의 수를 리턴한다. objectref내에 선택한 텍스트가 없을 경우, 복사되는 문자는 없고 Copy 함수는 0을 리턴한다. 에러가 발생할 경우, Copy 함수는 -1을 리턴한다.

OLE 2.0 control과 OLE DWObject에 관하여, 처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다:

-1 Container가 비어있다

-2 복사에 실패하였다

-9 그 밖의 에러가 발생하였다

objectref가 NULL일 경우, Copy 함수는 NULL을 리턴한다.

[용법]

복사하려는 텍스트를 선택하기 위하여, 마우스나 키보드를 사용할 수 있으며, 스크립트 내에서 SelectText 함수를 호출할 수도 있다. RichTextEdit controls의 경우는, SelectTextAll, SelectTextLine, SelectTextWord 등을 추가로 사용할 수 있다.

클립보드의 내용을 control에 넣으려면 Paste 함수를 사용한다.

Copy 함수는 선택된 텍스트나 OLE object를 삭제하지 않는다. 그 데이터를 삭제하려면, Clear 또는 Cut 함수를 사용한다.

[예제]

* mle_emp_address내에 선택된 텍스트가 'Temporary Address'라 가정하고, mle_emp_address로부터 클립보드로 'Temporary Address'를 복사한 다음 copy_amt에 17을 저장한다.

integer copy_amt

copy_amt = mle_emp_address.Copy( )

* OLE 2.0 control ole_1내의 OLE object를 클립보드로 복사한다.

integer result

result = ole_1.Copy( )

[참고]

Clear

ClipBoard

Cut

Paste

ReplaceText

SelectText


CopyRTF PowerScript 함수

[설명]

RichTextEdit control 이나 RichText DataWindow내에서 선택한 텍스트, 그림, 입력 필드 등을 rich 텍스트 형식의 문자열로 리턴한다. 비트맵 그림과 입력 필드들은 문자열 내에 포함된다.

[적용]

DataWindow controls, DataStore objects, RichTextEdit controls

[문법]

rtename.CopyRTF ( { selected {, band } } )

[Argument]

rtename | rich 텍스트 형식으로 복사하기 위하여 선택한 DataWindow control, DataStore object, RichTextEdit control 등의 이름. DataWindow control 이나 DataStore내의 DataWindow object는 반드시 RichText DataWindow여야 한다.
selected | (선택사항) 선택한 텍스트만 복사할것인지 여부를 나타내는 논리 값.
 | TRUE | (기본설정값) 선택한 텍스트만 복사한다
 | FALSE | 밴드 전체의 내용을 복사한다
band | (선택사항) 복사할 텍스트의 Band를 명시하는 값
 | Detail! |  | detail 밴드로부터 텍스트를 복사한다
 | Header! |  | header 밴드로부터 텍스트를 복사한다
 | Footer! |  | footer 밴드로부터 텍스트를 복사한다
 | 기본값은 삽입 포인트를 포함하고 있는 밴드이다.

[Return 값]

String.

선택된 텍스트를 문자열로 리턴한다.

다음과 같은 경우가 발생하면 빈 문자열("")을 리턴한다:

선택한 내용이 없고 selected가 TRUE로 설정되어 있다

에러가 발생하였다

[용법]

CopyRTF 함수는 클립보드를 수반하지 않으므로, 복사된 정보는 문자열에 저장된다. 전형적인 클립보드 함수인 Copy와 Cut 등을 사용할 경우, 클립보드에는 어떠한 문자형식도 포함하지 않은 텍스트가 저장된다.

RTF 형식의 텍스트를 다른 RichTextEdit에 넣으려면, PasteRTF를 사용해야 한다.

[예제]

* RichTextEdit rte_message내에 선택된 텍스트를 리턴하여, 문자열 ls_richtext에 저장한다.

string ls_richtext

ls_richtext = rte_message.CopyRTF( )

* rte_1내의 텍스트를 복사하여, ls_richtext에 저장한 다음, rte_2에 paste 한다.

(단, RadioButton rb_true는 선택한 텍스트만 복사하고 rb_false는 텍스트 전체를 복사하기 위한 버튼이고, paste된 문자의 수는 ll_numchars에 저장되고 StaticText st_status내에 표시 된다고 가정한다.)

string ls_richtext

boolean lb_selected

long ll_numchars

IF rb_true.Checked = TRUE THEN

lb_selected = TRUE

ELSE

lb_selected = FALSE

END IF

ls_richtext = rte_1.CopyRTF(lb_selected)

ll_numchars = rte_2.PasteRTF(ls_richtext)

st_status.Text = String(ll_numchars)

[참고]

PasteRTF


Cos PowerScript 함수

[설명]

각(angle)의 cosine을 계산한다.

[문법]

Cos ( n )

[Argument]

n

cosine을 계산하려는 각(라디안)

[Return 값]

Double.

n의 cosine을 리턴한다. n이 NULL일 경우, Cos 함수는 NULL을 리턴한다.

[예제]

Cos(0) ------> 1

Cos(1) ------> .540302

Cos(Pi(1)) ---> -1

[참고]

Pi

Sin

Tan


Cpu PowerScript 함수

[설명]

응용프로그램이 시작된 이후 경과된 CPU 시간을 나타낸다.

[문법]

Cpu ( )

[Return 값]

Long.

PowerBuilder 응용프로그램이 시작된 이후 경과된 CPU 시간을 milli초로 리턴한다.

[예제]

* 일련의 문장들이 실행되는동안 경과된 CPU 시간을 결정한다.

long ll_start, ll_used

// 현재 CPU 사용 시간을 시작시간으로 설정한다.

ll_start = Cpu( )

... // 일련의 문장들을 실행한다

// ll_used를 경과된 시간(현재 CPU 시간 - 시작시간)

// 으로 설정한다

ll_used = Cpu( ) - ll_start


Create PowerScript 함수

[설명]

DataWindow 소스 코드를 이용하여 DataWindow object를 생성하고, 지정한 DataWindow control이나 DataStore object에 넣는다. 이렇게 생성된 DataWindow object는 응용 프로그램 소스 라이브러리의 일부로 영구히 포함되지 않는다.

[적용]

DataWindow controls, DataStore objects

[문법]

dwcontrol.Create ( syntax {, errorbuffer } )

[Argument]

dwcontrol | 새로운 DataWindow object를 생성할 DataWindow control이나 DataStore 이름
syntax | DataWindow object를 생성하는데 사용할 DataWindow 소스 코드 (문자열)
errorbuffer | (선택사항) 에러가 발생할 때, 그 메시지를 저장할 문자열 이름. 에러 버퍼를 지정하지 않으면, 에러 메시지는 메시지 박스에 표시된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. 인수(argument) 값이 NULL일 경우에 Create 함수는 NULL을 리턴한다.

[용법]

Create 함수는 소스 코드를 이용하여 DataWindow object를 생성한다. 새로 생성된 DataWindow object는 현재 dwcontrol과 연관되어있는 DataWindow object를 대신한다.

DataWindow 소스 코드 문법은 매우 복잡하므로, 기존의 DataWindow를 모델로 사용하려면 소스 코드를 얻기 위하여 Describe와 LibraryExport 함수를 이용할 수 있으며, Library painter를 사용하는 것도 가능하다. DataWindow 코드의 다른 소스는 SQL문에 기초하여 DataWindow 소스 코드를 생성하는 SyntaxFromSQL 함수이다. 소스 코드 문법의 많은 값은 DataWindow Reference에 설명되어있는 DataWindow object의 properties에 상응한다.

기존의 DataWindow object에 관한 문법을 시험해보면, 문법의 순서를 변경할 수 있다는 것을 알게 된다. 문법의 순서를 바꾼다면, 그 순서가 결과에 영향을 줄수 있다는 점에 주의 하여야 한다.

문법 argument로써 SyntaxFromSQL 호출하기

사용자는 문법의 값으로 직접 SyntaxFromSQL 함수를 호출할 수 있다. 그러나, 이 경우 잘못된 인수에 의하여 올바르지 못한 결과가 나왔는지 여부를 체크할 수 없다. 따라서, SyntaxFromSQL을 사용하기 전에 Create 함수를 이용하여 SQL 문법이 올바른지 반드시 확인하여야 한다.

[주석]

DataWindow 문법 안에 주석 문을 넣으려면 PowerBuilder 방법중의 하나를 선택한다:

* 슬래시 이후에 동일한 라인에 나타나는 문장이 주석임을 알리기 위하여 이중 슬래시(//)를 사용한다.

이 방법은, 한 줄 전체나 그 줄의 일부를 주석으로 할 수 있다; 컴파일러는 한 줄에서 이중 슬래시 이후의 모든 것을 무시한다.

* 슬래시와 애스터리스크 (/*)로 주석을 시작하고 애스터리스크와 슬래시 (*/)로 주석을 끝내면 그 사이의 모든 텍스트는 주석임을 나타낸다.

이 방법은, 한 줄 전체나 일부 또는 여러 줄에 걸쳐서 가능하다; 컴파일러는 /* 와 */ 사이의 모든 것을 무시한다.

[예제]

* SyntaxFromSQL에 의하여 리턴되는 DataWindow 소스코드로부터 dw_new control안에 새로운 DataWindow를 생성한다. SyntaxFromSQL 과 Create 함수로부터 발생하는 에러들은 MultiLineEdits mle_sfs 와 mle_create에 표시된다. DataWindow를 생성한 후, 데이터를 retrieve하기 전에 새로운 DataWindow object에관한 SetTransObject 함수를 호출하여야 한다.

string error_syntaxfromSQL, error_create

string new_sql, new_syntax

new_sql = 'SELECT emp_data.emp_id, ' &

+ 'emp_data.emp_name ' &

+ 'from emp_data ' &

+ 'WHERE emp_data.emp_salary>45000'

new_syntax = SQLCA.SyntaxFromSQL(new_sql, &

'Style(Type=Form)', error_syntaxfromSQL)

IF Len(error_syntaxfromSQL) > 0 THEN

// 에러를 나타낸다

mle_sfs.Text = error_syntaxfromSQL

ELSE

// 새로운 DataWindow를 생성한다.

dw_new.Create(new_syntax, error_create)

IF Len(error_create) > 0 THEN

mle_create.Text = error_create

END IF

END IF

dw_new.SetTransObject(SQLCA)

dw_new.Retrieve()

[참고]

SyntaxFromSQL

SetTrans

SetTransObject


CreateObject PowerScript 함수

[설명]

PowerBuilder.Application OLE 서버 작업(session)에 PowerBuilder 클래스의 인스턴스를 생성한다.

[적용]

PowerBuilder.Application (OLE automation 서버)

[문법]

{automationobject.} CreateObject ( classname )

[Argument]

automationobject | PowerBuilder가 OLE 클라이언트일 때, OLEObject의 이름은 PowerBuilder.Application automation 서버와 함께 부여된다. 다른 클라이언트도, OLE automation object에 속한 적절한 함수를 호출하는 문법을 사용한다.
classname | 생성하려는 클래스의 이름을 명시한 문자열. PowerBuilder.Application LibraryList 속성 내에 명시된 라이브러리 중 하나에 정의되어야 한다.

[Return 값]

OLEObject.

OLE automation에 타당한 object를 리턴한다. object를 생성할 수 없을 경우, CreateObject는 NULL을 리턴한다.

[용법]

OLE 클라이언트가 Visual Basic일 경우는, CreateObject가 성공적으로 처리되었는지 보기위한 키워드 nothing을 사용할 수 있다.

object 실행 타입이 MachineCode property의 값에 상응하지않는 경우, CreateObject는 NULL을 리턴한다. 하나의 PowerBuilder.Application 처리를 위하여 생성된 모든 object는 반드시 동일한 실행 타입 (Pcode 또는 컴파일된 기계어 코드)을 가져야 한다.

하나의 PowerBuilder.Application 처리내에 둘이상의 object를 생성하면, 그 object들은 함수의 인수(argument)로 통과되거나 결과값으로 리턴된다.

CreateObject 함수를 호출하기전에 OLEObject 변수에 관한 CREATE 문장을 사용할 필요가 없다.

[예제]

* PowerBuilder.Application 서버를 시작하고 MYLIBRARY.DLL 안에 포함될 object를 생성한다. 만일 처리에 성공하면 상태코드를 long형으로 리턴하고 ld_result 변수내에 저장된 계산의 결과를 역으로 통과시키는 uf_calc 함수를 호출한다.

OLEObject PBObject, PBNVObject

long ll_status

double ld_result

PBObject = CREATE OLEObject

ll_status = PBObject.ConnectToNewObject ("PowerBuilder.Application")

IF ll_status = 0 THEN

// 에러 처리

ELSE

PBObject.LibraryList = "c:\myappl\mylibrary.dll"

PBObject.MachineCode = TRUE

PBNVObject = CREATE OLEObject

PBNVObject = PBObject.CreateObject("nvo_myobject")

IF IsNull(PBNVObject) THEN

// 에러 처리

ELSE

ll_status = PBNVObject.uf_calc (12, 14, REF result)

END IF

DESTROY PBNVObject

PBObject.DisconnectObject( )

END IF

DESTROY PBObject

* 위의 PowerBuilder 스크립트와 동일한 기능을 하는 Visual Basic 스크립트

Dim PBObject as object

Dim PBNVObject as object

Dim status as long

Dim result as double

Set PBObject = CreateObject("PowerBuilder.Application")

If PBObject is nothing then

REM 에러 처리

Else

PBObject.LibraryList = :\myappl\mylibrary.dll

Set PBNVObject = PBObject.CreateObject( vo_myobject )

If PBNVObject is nothing then

REM 에러 처리

Else

status = PBNVObject.uf_calc(12, 14, REF result)

Set PBNVObject = nothing

End if

Set PBObject = nothing

End if

[참고]

ConnectToNewObject


CrosstabDialog PowerScript 함수

[설명]

Crosstab Definition 대화상자가 표시되어, 실행하는 동안 crosstab DataWindow 정의를 수정할 수 있도록 한다. 이 대화상자는 crosstab을 정의하기 위하여 DataWindow painter에서 사용하는 것과 동일한 것이다.

[적용]

DataWindow controls

[문법]

dwcontrol.CrosstabDialog ( )

[Argument]

dwcontrol

Crosstab Definition 대화상자를 나타내려는 DataWindow control 이름.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL 이면, CrosstabDialog 함수는 NULL을 리턴한다.

[용법]

DataWindow control내의 DataWindow object 스타일이 crosstab이 아닐 경우, 이 함수는 아무런 효과를 갖지 못한다.

[예제]

* dw_1내의 crosstab DataWindow object에 관한 정의를 수정하기 위하여 Crosstab Definition 대화상자를 나타낸다.

dw_1.CrosstabDialog( )


Cut PowerScript 함수

[설명]

선택한 텍스트나 명시한 control 내의 OLE object를 삭제하고 클립보드에 위치시킨다. Cut 함수는 클립보드의 내용을 삭제한 텍스트나 object로 대치한다.

Platform 정보

OLE 2.0에 적용할 때, Macintosh 와 UNIX 상에서는 Cut 함수의 사용 효과가 없다.

[적용]

DataWindow, MultiLineEdit, SingleLineEdit, DropDownListBox, DropDownPictureListBox, OLE 2.0 controls

[문법]

controlname.Cut ( )

[Argument]

controlname

cut할 텍스트나 object를 포함하고 있는 DataWindow, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox, 또는 OLE 2.0 control 이름. controlname이 DataWindow면, 현재 row와 column에 관한 edit control의 텍스트를 cut한다. controlname이 DropDownListBox 나 DropDownPictureListBox면, AllowEdit 속성은 반드시 TRUE 여야 한다.

[Return 값]

Integer.

수정가능한 control의 경우, controlname으로부터 cut하여 클립보드에 저장된 문자의 수를 리턴한다. 선택한 텍스트가 없으면, 문자는 cut되지 않고 Cut 함수는 0을 리턴한다. 에러가 발생하였을 경우는 -1을 리턴한다.

OLE 2.0 control의 경우, 처리에 성공하면 0을 리턴하고, 에러가 발생하면 다음 음수값 중 하나를 리턴한다:

-1 Container 가 비어있다

-2 Cut에 실패하였다

-9 그 밖의 에러가 발생하였다.

controlname이 NULL일 경우, Cut 함수는 NULL을 리턴한다.

[용법]

삭제할 텍스트를 선택하려면, 마우스나 키보드를 사용할 수 있으며, 스크립트 내에서 SelectText 함수를 호출할 수도 있다. RichTextEdit control의 경우는 텍스트를 선택하기 위하여 SelectTextAll, SelectTextLine, SelectTextWord 등과 같은 몇 가지 함수가 추가된다.

클립보드의 내용을 control에 넣으려면, Paste 함수를 사용한다.

선택한 텍스트나 OLE object를 삭제하고 클립보드에 넣지않으려면, Clear 함수를 이용한다.

OLE object를 Cut하면, Clear 함수와 마찬가지로, 소스 파일이나 기억장소 사이의 어떠한 연결도 끊어지게 된다.

[예제]

* mle_emp_address내에 선택한 텍스트가 Temporary라 가정하고, mle_emp_address로 부터 Temporary를 삭제하고 클립보드에 저장하면, 9가 리턴된다.

mle_emp_address.Cut( )

* OLE 2.0 control ole_1에 있는 OLE object를 cut하고 클립보드상에 위치 시킨다.

integer result

result = ole_1.Cut( )

[참고]

Copy

Clear

ClipBoard

DeleteItem

Paste


DataCount PowerScript 함수

[설명]

그래프내에 명시된 series의 데이터 포인트 수를 나타낸다.

[적용]

윈도우와 사용자 object내의 그래프 및 DataWindow controls 과 DataStore objects내의 그래프

[문법]

controlname.DataCount ( { graphcontrol, seriesname } )

[Argument]

controlname | 데이터 포인트 수를 알고자 하는 그래프의 이름 또는, 그 그래프를 포함하고있는 DataWindow control 이나 DataStore 이름
graphcontrol | (DataWindow control 또는 DataStore만 해당) series에 관한 데이터 포인트 수를 알고자 하는 DataWindow control 이나 DataStore의 그래프 이름
seriesname | 데이터 포인트 수를 알고자 하는 series 이름을 나타내는 문자열

[Return 값]

Long.

처리에 성공하면 명시한 series의 데이터 포인트 수를 리턴하고 에러가 발생하면 -1을 리턴한다. argument의 값이 NULL일 경우, DataCount 함수는 NULL을 리턴한다.

[예제]

* 그래프 gr_product_data내에 Costs라 명명된 series의 데이터 포인트 수를 ll_count에 저장한다.

long ll_count

ll_count = gr_product_data.DataCount("Costs")

* DataWindow control dw_employees의 그래프 gr_dept에서 Salary라는 series의 데이터 포인트 수를 ll_count에 저장한다.

long ll_count

ll_count = dw_employees.DataCount("gr_dept", "Salary")

[참고]

AddSeries

InsertSeries

SeriesCount


DataSource PowerScript 함수

[설명]

RichTextEdit control을 DataWindow의 데이터와 공유하도록 하고 입력 필드 데이터를 나타낸다. RichTextEdit control내의 입력 필드가 DataWindow의 칼럼이름과 매치되면, DataWindow내의 데이터는 그 입력 필드에 할당된다. RichTextEdit control안의 문서가 반복되면 DataWindow의 각 row에 관한 내용으로 복사된다.

[적용]

RichTextEdit controls

[문법]

rtename.DataSource ( dwsource )

[Argument]

rtename | DataWindow내의 데이터를 구하기 위한 RichTextEdit control 이름
dwsource | rtename내의 입력필드와 연결된 데이터를 포함하고있는 DataWindow control, DataStore, 또는 child DataWindow 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

DataWindow의 칼럼이름과 입력 필드 이름이 서로 상응할 때, 칼럼에 있는 데이터들은 그에 상응하는 입력 필드에 할당된다.

RichTextEdit control의 내용은 DataWindow의 한 row와 연결되어있으며, 각각의 retrieve된 row에 관한 문서(document)의 인스턴스가 존재한다. 모든 document의 인스턴스내에서 RichTextEdit control내의 텍스트는 반복된다.

다음의 RichTextEdit 함수는 document의 인스턴트상에서 작용하거나 그 내용을 나타내주는 것이다:

LineCount

PageCount

InsertDocument

SaveDocument

SelectedPage

SelectedStart

SelectedLine

SelectText

SelectTextAll

다음의 RichTextEdit 함수는 document의 collection에 영향을 준다:

Print

[예제]

* DataWindow control dw_1을 RichTextEdit rte_1의 데이터 소스로 설치한다.

rte_1.DataSource(dw_1)

* LETTER.RTF라 명명된 문서를 RichTextEdit rte_letter에 삽입하는 예제이다. 이때, 문서이름의 입력 필드는 DataWindow object d_emp에 상응한다. DataStore를 생성하여 d_emp와 연관시키고, 데이터를 retrieve한다. 다음, 그 데이터를 rte_letter내의 문서에 삽입하고 DataStore를 rte_1에 관한 데이터 소스로 설정한다.

DataStore ds_empinfo

ds_empinfo = CREATE DataStore

ds_empinfo.DataObject = "d_emp"

ds_empinfo.SetTransObject(SQLCA)

ds_empinfo.Retrieve( )

rte_letter.InsertDocument("LETTER.RTF", TRUE)

rte_letter.DataSource(ds_empinfo)

[참고]

InputFieldChangeData

InputFieldCurrentName

InputFieldDeleteCurrent

InputFieldGetData

InputFieldInsert


Date

Date PowerScript 함수: Syntax 1

[설명]

DateTime 값 또는 첫 번째 값이 날짜나 DateTime값인 blob으로부터 날짜를 추출한다.

[문법]

Date ( datetime )

[Argument]

datetime

DateTime 값 또는 첫 번째 값이 날짜나 DateTime값인 blob. blob의 경우 나머지 내용은 무시된다. datetime은 DateTime을 포함하고있는 어떠한 변수나 blob도 가능하다.

[Return 값]

Date.

datetime내의 날짜를 리턴한다. datetime이 타당하지않은 날짜를 포함하거나 데이터 타입이 서로 일치하지 않을 경우, Date 함수는 1900-01-01을 리턴한다. datetime이 NULL이면, Date 함수는 NULL을 리턴한다.

[예제]

* DateTime 변수 ldt_StartDateTime이 데이터베이스로부터 retrieve된 후, ld_StartDate 변수를 ldt_StartDateTime내의 날짜와 동일하게 설정한다.

DateTime ldt_StartDateTime

date ld_StartDate

ld_StartDate = Date(ldt_StartDateTime)

* blob 변수 ib_blob의 DateTime 값을 날짜 값으로 변환한다. (단, blob 변수 ib_blob의 처음부터 32바이트까지 DateTime 값을 포함하고 있다고 가정한다.)

date ld_date

ld_date = Date(BlobMid(ib_blob, 32))

[참고]

DateTime

Date: syntax 2

Date: syntax 3

Date PowerScript 함수: Syntax 2

[설명]

날짜 값에 타당한 값을 가진 문자열을 날짜타입의 값으로 변환한다.

[문법]

Date ( string )

[Argument]

string

January 1, 1998, 이나 12-31-99 등과같이 타당한 날짜를 포함하고있는 문자열. string은 Datetime을 포함하고있는 어떻한 변수도 가능하다.

[Return 값]

Date.

문자열내의 날짜를 date 타입의 날짜로 리턴한다. string이 타당하지않은 날짜를 포함하거나 데이터 타입이 서로 일치하지 않을 경우, Date 함수는 1900-01-01을 리턴한다. string이 NULL이면, Date 함수는 NULL을 리턴한다.

[용법]

문자열내의 타당한 날짜는 日(1 부터 31), 月(1 부터 12 또는 해당월의 이름 이나 약어), 年(2자 또는 4자)의 어떠한 조합도 가능하다. 月과 日 앞에 붙는 0(zero)는 옵션이다. 月이 이름이나 약어일 경우는, 日의 앞이나 뒤에 올 수 있다. 月이 숫자일 경우는, Windows 제어판에 명시한 月 위치에 있어야 한다. PowerBuilder는 4-자리 수를 年으로 가정한다.

yyyy-mm-dd 형식을 갖는 날짜 literal(문자상수)는 Date 함수로 변환할 필요가 없다.

[예제]

* 텍스트 표현을 date 타입의 날짜 July 4, 1994 (1994-07-04)로 리턴한다 (단, 시스템상에 月 위치는 중앙에 있다고 가정한다).

Date("1994/07/04")

Date("1994 July 4")

Date("July 4, 1994")

* sle_start_date에 있는 날짜가 타당한 날짜인지 확인하고, 그렇지않을 경우 메시지를 내보낸다. 첫 번째 버전은 날짜의 타당성을 체크하기 위하여 Date 함수를 사용하고, 두 번째 버전은 IsDate 함수를 사용한다.

1) Version 1:

// Windows 제어판 날짜형식은 YY/MM/DD

date ld_my_date

ld_my_date = Date( sle_start_date.Text )

IF ld_my_date = Date("1900-01-01") THEN

MessageBox("Error", "타당한 날짜가 아닙니다: " &

+ sle_start_date.Text)

END IF

2) Version 2:

date ld_my_date

IF IsDate(sle_start_date.Text) THEN

ld_my_date = Date(sle_start_date.Text)

ELSE

MessageBox("Error", "타당한 날짜가 아닙니다: " &

+ sle_start_date.Text)

END IF

[참고]

DateTime

IsDate

RelativeDate

RelativeTime

Date: Syntax 1

Date: Syntax 3

Date(DataWindow painter 함수)

Date PowerScript 함수: Syntax 3

[설명]

年, 月, 日을 나타낸 수치를 조합하여 날짜 값으로 변환한다.

[문법]

Date ( year, month, day )

[Argument]

year | 4-자리수 年(-9999 부터 9999)
month | 月(1 부터 12)을 나타내는 1-자리나 2-자리의 정수
day | 日(1 부터 31)을 나타내는 1-자리나 2-자리의 정수

[Return 값]

Date.

年, 月, 日을 나타내는 정수에 의하여 명시한 날짜를 date 타입의 날짜로 리턴한다. 타당하지 않은 값이 있을 경우, Date 함수는 1900-01-01을 리턴한다. 인수의 값이 NULL일 경우, Date 함수는 NULL을 리턴한다.

[예제]

* 정수 값을 이용하여 ld_my_date를 1994-10-15로 설정한다.

date ld_my_date

ld_my_date = Date(1994, 10, 15)

[참고]

DateTime

DaysAfter

RelativeDate

RelativeTime

Date: Syntax 1

Date: Syntax 2


DateTime PowerScript 함수: syntax 1

[설명]

날짜와 시간 값을 조합하여 DateTime 값으로 변환한다.

[문법]

DateTime ( date {, time } )

[Argument]

date | 날짜 타입의 값
time | (선택사항) time 타입의 값. 시간이 생략되면, PowerBuilder는 시간을 00:00:00.000000 (자정)으로 설정한다. 시간을 지정할때에는 시(hour) 부분만 요구된다.

[Return 값]

DateTime.

date와 time(옵션) 값에 근거하여 DateTime 값을 리턴한다. argument 값이 NULL일 경우, DateTime 함수는 NULL을 리턴한다.

[용법]

DateTime 데이터는 데이터베이스에 또는 데이터베이스로 부터 DateTime을 읽거나 기록할 때에만 사용된다. 스크립트에서 날짜와 시간 값을 사용하려면, 날짜와 시간 변수에 값을 할당하기 위하여 Date와 Time 함수를 사용하면 된다.

[예제]

* ld_OrderDate 와 lt_OrderTime에 저장된 날짜와 시간을 데이터베이스를 갱신할 때 사용할 DateTime 값으로 변환한다.

DateTime ldt_OrderDateTime

date ld_OrderDate

time lt_OrderTime

ld_OrderDate = Date(sle_orderdate.Text)

lt_OrderTime = Time(sle_ordertime.Text)

ldt_OrderDateTime = DateTime(ld_OrderDate, lt_OrderTime)

[참고]

Date

Time

DateTime(DataWindow painter 함수)

DateTime PowerScript 함수: syntax 2

[설명]

blob에서 DataTime 값을 추출한다.

[문법]

DateTime ( blob )

[Argument]

blob

첫 번째 값이 DateTime 값인 blob. blob의 나머지 값들은 무시된다. blob은 blob을 포함하고있는 어떠한 변수도 가능하다.

[Return 값]

DateTime.

blob에 포함된 DateTime값을 리턴한다. blob이 NULL이면, DateTime 함수는 NULL을 리턴한다.

[용법]

DateTime 데이터는 데이터베이스에 또는 데이터베이스로 부터 DateTime을 읽거나 기록할 때에만 사용된다. 스크립트에서 날짜와 시간 값을 사용하려면, 날짜와 시간 변수에 값을 할당하기 위하여 Date와 Time 함수를 사용하면 된다.

[예제]

* 데이터베이스로부터 blob 데이터를 lb_blob에 할당한 후, 그 blob의 20번째 위치부터 저장되어있는 DataTime 값을 구한다. (BlobMid 함수에 명시한 길이는 반드시 DateTime 값의 길이 이상이 되어야 한다.)

DateTime dt

dt = DateTime(BlobMid(lb_blob, 20, 40))

[참고]

Date

Time


Day PowerScript 함수

[설명]

날짜값에서 해당월의 날(日)을 구한다.

[문법]

Day ( date )

[Argument]

date 날(日)을 구하기 위한 날짜 값

[Return 값]

Integer.

해당월의 날에 해당하는 정수(1 부터 31)를 리턴한다. date가 NULL일 경우 Day 함수는 NULL을 리턴한다.

[예제]

* 날짜 상수 1997-01-31로부터 日(31)을 추출하고 li_day_portion에 저장한다.

integer li_day_portion

li_day_portion = Day(1994-01-31)

* sle_date의 날짜가 타당한지 체크하고, li_day_portion에 sle_date 날짜의 日을 저장한다.

integer li_day_portion

IF IsDate(sle_date.Text) THEN

li_day_portion = Day(Date(sle_date.Text))

ELSE

MessageBox("Error", &

"This date is invalid: " &

+ sle_date.Text)

END IF

[참고]

Date

IsDate

Month

Year

Day(DataWindow painter 함수)


DayName PowerScript 함수

[설명]

날짜 값의 요일을 결정하고 그 이름을 리턴한다.

[문법]

DayName ( date )

[Argument]

date

요일을 알고자 하는 날짜 값

[Return 값]

String.

date의 날짜에 해당하는 요일(Sunday, Monday, 등등)을 문자열로 리턴한다. date가 NULL일 경우, DayName 함수는 NULL을 리턴한다.

[용법]

DayName은 응용프로그램이 실행될 기계에서 사용 가능한 개발 킷(DDDK)의 언어에서 지원하는 이름을 리턴한다.

* French, German, Italian, Spanish, Dutch, Danish, Norwegian, Swedish등에서 사용 가능한 개발 킷의 정보는 PowerBuilder User's Guide를 참고한다.

[예제]

* 날짜상수 1993-07-04를 평가하여, day_name을 Sunday로 설정한다.

string day_name

day_name = DayName(1993-07-04)

* sle_date의 날짜가 타당한지 체크하고, day_name을 sle_date의 요일로 설정한다.

string day_name

IF IsDate(sle_date.Text) THEN

day_name = DayName(Date(sle_date.Text))

ELSE

MessageBox("Error", &

"This date is invalid: " + sle_date.Text)

END IF

[참고]

Day

DayNumber

IsDate

DayName(DataWindow painter 함수)


DayNumber PowerScript 함수

[설명]

날짜 값의 요일을 결정하고, 요일에 해당하는 번호를 리턴한다.

[문법]

DayNumber ( date )

[Argument]

date

요일의 번호를 알고자 하는 날짜 값

[Return 값]

Integer.

date의 요일에 해당하는 정수 (1-7)을 되돌리며, 일요일은 1, 월요일은 2, 등과 같은 순서를 따른다. date가 NULL일 경우, DayNumber 함수는 NULL을 리턴한다.

[예제]

* 날짜상수 1990-01-31을 평가하고 day_nbr를 4로 설정한다 (1990년 1월 31일을 수요일이다).

integer day_nbr

day_nbr = DayNumber(1990-01-31)

* sle_date의 날짜가 타당한지 검증하고, day_nbr을 sle_date에 저장된 날짜의 요일에 해당하는 번호로 설정한다.

integer day_nbr

IF IsDate(sle_date.Text) THEN

day_nbr = DayNumber(Date(sle_date.Text))

ELSE

MessageBox("Error", &

"This date is invalid: " &

+ sle_date.Text)

END IF

[참고]

Day

DayName

IsDate

DayNumber(DataWindow painter 함수)


DaysAfter PowerScript 함수

[설명]

한 날짜 이후 다른 날짜까지의 날수를 결정한다.

[문법]

DaysAfter ( date1, date2 )

[Argument]

date1 | 측정의 시작이 되는 날짜 값
date2 | 어떤 기간의 마지막 날짜 값

[Return 값]

Long.

date1이후 date2까지의 날수를 리턴한다. date2가 date1보다 이전에 나타나는 날짜인 경우, DaysAfter 함수는 음수(-)를 리턴한다. argument값 중에 NULL이 있으면, NULL을 리턴한다.

[예제]

* 4를 리턴한다.

DaysAfter(1996-12-20, 1996-12-24)

* -4를 리턴한다.

DaysAfter(1996-12-24, 1996-12-20)

* 0을 리턴한다.

DaysAfter(1996-12-24, 1996-12-24)

* 5를 리턴한다.

DaysAfter(1994-12-29, 1995-01-03)

* 날짜변수 date1과 date2를 선언하고 각각에 1996년 2월 16일과 1996년 4월 28일을 할당하면 다음 문장들은 모두 71을 리턴한다.

date date1, date2

date1 = 1996-02-16

date2 = 1996-04-28

DaysAfter(date1, date2)

DaysAfter(1996-02-16, date2)

DaysAfter(date1, 1996-04-28)

DaysAfter(1996-02-16, 1996-04-28)

[참고]

RelativeDate

RelativeTime

SecondAfter

DaysAfter(DataWindow painter 함수)


DBCancel PowerScript 함수

[설명]

DataWindow내의 retrieve 처리를 취소한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.DBCancel ( )

[Argument]

dwcontrol

retrieve 처리를 취소하고자 하는 DataWindow control, DataStore, 또는 child DataWindow 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL일 경우, DBCancel 함수는 NULL을 리턴한다.

[용법]

데이터베이스 retrieve를 취소하기 위해서는 두부분의 코드가 필요하다:

* DBCancel 함수를 호출하는 스크립트 코드. 사용자에게 retrieve 취소를 허용하려면, 메뉴 아이템이나 CommandButton에 관한 스크립트 (또는 사용자 함수)에서 이 함수를 호출할 수 있다. 이 스크립트는 일반적으로 사용자가 취소를 요청한 것을 나타내기 위하여 인스턴스 변수를 설정한다.

ib_cancel = TRUE

dw_1.DBCancel( )

* retrieve를 취소하기 위한 값 1을 리턴하는 RetrieveRow event에관한 스크립트 코드.

IF ib_cancel = TRUE THEN

RETURN 1

END IF

RetrieveRow 이벤트의 스크립트에서 어떤 코딩은 데이터베이스로부터 구해진 row를 가지고있는 DataWindow가 존재하는 동안 오퍼레이팅 시스템이 이벤트 처리하는 것을 가능하게 한다. RetrieveRow 이벤트 스크립트가 비어있으면, menu와 command button은 retrieve가 완전히 끝날 때까지 클릭할 수 없게 된다. 이것은 오랜 시간이 소용되는 retrieve를 실수로 시작하였을 경우를 생각하면 불편한 점이 아닐 수 없다.

Async DBParm 파라미터가 1로 설정되어 있다면 (비동기 operation), 사용자나 스크립트는 첫 번째 row가 리턴되기 전이나 데이터 retrieve 처리 중에 질의(query)를 취소할 수 있다. Async가 0으로 설정되어 있다면 (동기 operation), 사용자는 첫 번째 row가 retrieve 될 때까지 메뉴나 CommandButton을 선택할 수 없다. 따라서, 질의가 첫 번째 row를 retrieve할 때까지 오랜 시간이 소요될 때에는 비동기(asynchronous)로 설정하는 것이 유용하다.

[예제]

* MDI 응용프로그램에 관한 메뉴-바가 retrieve 시작과 취소에 관한 메뉴-아이템을 가지고 있다고 가정하고. 사용자가 retrieve를 취소할 때는 DBCancel 함수를 호출하고 논리 instance 변수를 TRUE로 설정한다. RetrieveStart 와 RetrieveRow 이벤트는 이 변수를 체크하고 적절한 값을 리턴한다.

이 가상의 응용프로그램에서, 사용자는 메뉴에서 Retrieve를 선택함으로써 retrieve를 시작한다. Retrieve 메뉴-아이템의 스크립트에서는 그 윈도우에 관한 사용자 함수를 호출한다.

w_async1.wf_retrieve( )

wf_retrieve 함수는 Async DBParm를 비동기 처리로 설정하고 retirve를 시작한다. Async가 1로 설정되므로, 사용자는 , 첫 번째 row가 retrieve 되기 전에 언제든지 Cancel 메뉴-아이템을 선택할 수 있다. (실제 응용프로그램에서는, Retirve가 성공적으로 리턴되는지 확인하기 위한 에러 처리루틴을 포함하도록 한다.)

long rc

ib_cancel = FALSE

SQLCA.DBParm = 'Async = 1'

rc = dw_1.Retrieve( )

사용자는 메뉴에서 Cancel를 선택함으로써 retrieve를 취소할 수있다. Cancel 메뉴-아이템의 스크립트는 다음과 같다:

w_async1.wf_cancel( )

윈도우 w_async1에관한 사용자 함수 wf_cancel은 DBCancel을 호출하고 retrive가 취소되었다는 것을 나타내기 위한 플래그를 설정한다. DataWindow의 다른 이벤트에서는 이 플래그를 체크하여 retrieve를 취소한다. 변수 ib_cancel은 인스턴스 변수이다.

ib_cancel = TRUE

dw_1.DBCancel( )

RetrieveStart 와 RetrieveRow 이벤트 모두 ib_cancel 변수를 체크하여 TRUE로 설정되어있으면 1을 리턴함으로써 retrieve를 중단한다. retrieve를 중단하기 위하여 RetrieveRow 이벤트에는 다음과 같은 코드가 필요하다.

IF ib_cancel = TRUE THEN

RETURN 1

END IF

[참고]

Retrieve


DBErrorCode PowerScript 함수

[설명]

데이터베이스 에러 코드를 나타내고 DBError 이벤트를 유발시킨다.

사용하지 않게 된 함수

데이터베이스 에러코드는 DBError 이벤트내에서 argument로써 사용됨으로 DBErrorCode 함수는 사용할 필요가 없다.

[적용]

DataWindow controls 과 child DataWindows

[문법]

dwcontrol.DBErrorCode ( )

[Argument]

dwcontrol

데이터베이스 에러가 발생하였을 때 에러 번호를 알고자 하는 DataWindow control 나 child DataWindow의 이름

[Return 값]

Long.

dwcontrol에 에러가 발생할 때 에러코드를 리턴한다. -1 부터 -4까지는 PowerBuilder 코드이고, 다른 코드는 데이터베이스에 명시된 코드이다. 에러가 발생하지 않으면 1을 리턴하고, dwcontrol이 NULL이면, DBErrorCode는 NULL을 리턴한다.

PowerBuilder 에러 코드는 다음과 같다:

-1 transaction object의 값이 잘못되어 데이터베이스에 연결할 수 없다.

-2 데이터베이스에 연결할 수 없다.

-3 Update 나 Retrieve에 명시한 키가 row와 매치되지 않는다. (이러한 경우는 row를 retrieve한 후 다른 사용자가 그 row를 변경하였을 때 발생한다.)

-4 blob을 데이터베이스에 기록하는데 실패하였다.

[용법]

DataWindow control이 데이터베이스와 상호작용중 에러가 발생하면, PowerBuilder는 DBError 이벤트를 유발시킨다. DBErrorCode는 데이터베이스 에러가 발생하였을 경우에만 의미가 있으므로, DBError 이벤트 내에서만 호출하여야 한다.

[예제]

* dw_employee에 관한 에러 코드를 리턴한다.

dw_employee.DBErrorCode( )

이 함수는 DataWindow DBError 이벤트에서만 의미가 있으므로, DataWindow 이름대신 This를 사용할 수도 있다.

This.DBErrorCode( )

* dw_employee에관한 에러코드를 체크하고, 에러코드가 -4이면 어떤 처리를 수행한다.

long ll_Error_Nbr

ll_Error_Nbr = This.DBErrorCode( )

IF ll_Error_Nbr = -4 THEN ...

* dw_Emp에 에러가 발생하였을 때, DBError 스크립트에서 에러번호와 메시지를 나타낸다. 리턴코드 1은 기본설정된 에러메시지가 나타나지 않도록 한다.

long ll_Error_Nbr

ll_Error_Nbr = This.DBErrorCode( )

IF ll_Error_Nbr <> 0 THEN

MessageBox("Database Error", "Number " &

+ string(ll_Error_Nbr) + " " &

+ This.DBErrorMessage( ), StopSign!)

// PowerBuilder 에러메시지가 나타나지 않도록 한다.

RETURN 1

END IF

[참고]

DBErroeMessage

MessageBox


DBErrorMessage PowerScript 함수

[설명]

데이터베이스 에러 메시지를 나타내고 DBError 이벤트를 유발한다.

사용할 필요가 없는 함수

데이터베이스 에러 메시지는 DBError 이벤트내에서 argument로써 사용됨으로 DBErrorMessage 함수는 사용할 필요가 없다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.DBErrorMessage ( )

[Argument]

dwcontrol

데이터베이스 에러메시지를 원하는 DataWindow control 이나 child DataWindow의 이름

[Return 값]

String.

dwcontrol의 데이터베이스 에러에 의하여 생성된 에러 메시지를 문자열로 리턴한다. 에러가 없을 경우 빈 문자열("")을 리턴한다. dwcontrol이 NULL일 경우, DBErrorMessage는 NULL을 리턴한다.

[용법]

DataWindow control이 데이터베이스와 상호작용중 에러가 발생하면, PowerBuilder는 DBError 이벤트를 유발시킨다. DBErrorMessage 함수는 데이터베이스 에러가 발생하였을 경우에만 의미가있으므로, DBError 이벤트내에서만 호출하여야 한다.

[예제]

* dw_employee의 데이터베이스 에러에 의하여 발생한 에러 메시지를 리턴한다.

dw_employee.DBErrorMessage( )

이 함수는 DataWindow DBError 이벤트에서만 의미가 있으므로, DataWindow 이름대신 This를 사용할 수도 있다.

This.DBErrorMessage( )

* dw_Emp에서 데이터처리에 실패하였고 DBError 이벤트 스크립트에 아래와 같이 코딩 하였다면, 에러번호와 에러메시지를 포함한 메시지 박스가 표시된다.

string err_msg

err_msg = This.DBErrorMessage( )

IF err_msg <> "" THEN

MessageBox("DBError", "Number" + &

String(This.DBErrorCode( ))+ " " + &

err_msg, StopSign!)

// PowerBuilder 에러메시지를 억제한다

RETURN 1

END IF

[참고]

DBErrorCode

MessageBox


DBHandle PowerScript 함수

[설명]

사용자의 DBMS에 관한 handle을 나타낸다.

[적용]

Transaction objects

[문법]

transactionobject.DBHandle ( )

[Argument]

transactionobject

현재 설정된 transaction object

[Return 값]

Long.

DBMS의 handle을 리턴한다. 데이터베이스와 연결하려면 transactionobject가 반드시 필요하다. transactionobject가 존재하지만 데이터베이스와 연결되어있지 않으면, DBHandle은 0을 리턴한다. transactionobject가 존재하지 않으면, 실행 시 에러가 발생한다. transactionobject가 NULL일 경우, DBHandle 함수는 NULL을 리턴한다.

[용법]

PowerBuilder는 데이터베이스와 연결하기 위하여 내부적으로 데이터베이스 handle을 사용한다. 사용자의 데이터베이스가 PowerBuilder에서 지원하지않는 함수를 가진 API를 지원한다면, 이들 외부 함수들 중 하나를 argument로 하는 handle을 마련하기 위하여 DBHandle을 사용할 수 있다.


Dec PowerScript 함수

[설명]

문자열을 십진법 수로 변환하거나 blob에 저장되어있는 십진수를 얻는다.

[문법]

Dec ( stringorblob )

[Argument]

stringorblob

십진수 값을 구하려는 문자열, 또는 첫 번째 값이 구하려는 십진수인 blob. blob의 나머지 내용은 무시된다. stringorblob은 문자열이나 blob을 포함하고있는 어떠한 변수도 가능하다.

[Return 값]

Decimal.

stringorblob의 값을 십진수로 리턴한다. stringorblob이 PowerScript 수치에 맞지않거나 포함된 값이 데이터 타입과 맞지않으면, Dec 함수는 0을 리턴한다. stringorblob이 NULL이면, Dec는 NULL을 리턴한다.

[예제]

* 십진수로 24.3을 리턴한다.

Dec("24.3")

* SingleLineEdit sle_salary의 내용을 십진수로 리턴한다.

Dec(sle_salary.Text)

* blob에 값을 할당하고 추출하는 Real 함수 예제:

다음 예제는, real 값을 어떻게 blob에 할당하고 그 값을 추출하기 위하여 어떻게 Real 함수를 사용하는지 설명한다. 두 개의 BlobEdit 문장은 두 개의 real 값을 각각 blob에 저장한다. 값을 추출하기 위하여 Real 함수를 사용한 문장에서, 사용자는 real 값의 시작위치가 어디인지 반드시 알아야 한다. BlobMid내에 명시한 길이는 Real 함수가 몇 바이트를 평가할 것인지 알고있기 때문에 중요하지 않다.

blob{20} lb_blob

real r1, r2

integer len1, len2

len1 = BlobEdit(lb_blob, 1, 32750E0)

len2 = BlobEdit(lb_blob, len1, 43750E0)

// 시작 위치부터 real 값을 추출하고 나머지는 무시한다

r1 = Real(lb_blob)

// blob에서 두 번째 real 값을 추출한다

r2 = Real(BlobMid(lb_blob, len1, len2 - len1))

[참고]

Double

Integer

Long

Real


DeleteCategory PowerScript 함수

[설명]

그래프의 category축에서 category와 그 데이터 값을 삭제한다.

[적용]

윈도우와 사용자 object에 있는 graph control. DataWindow object에 있는 그래프는 그 값을 DataWindow로부터 직접 가져오기 때문에 적용되지 않는다.

[문법]

controlname.DeleteCategory ( categoryvalue )

[Argument]

controlname | category를 지우고자 하는 그래프
categoryvalue | controlname으로부터 지우고자 하는 category값. category값은 category 축의 데이터 타입과 동일해야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, DeleteCategory 함수는 NULL을 리턴한다.

[예제]

* 그래프 gr_product_data로 부터 SingleLineEdit sle_delete에 있는 category 이름을 삭제한다.

string CategName

CategName = sle_delete.Text

gr_product_data.DeleteCategory(CategName)

[참고]

DeleteData

DeleteSeries


DeleteColumn PowerScript 함수

[설명]

칼럼을 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteColumn ( index )

[Argument]

listviewname | 칼럼을 지우고자 하는 ListView control의 이름
index | 삭제하려는 칼럼의 인덱스 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control의 두 번째 칼럼을 삭제한다.

lv_list.DeleteColumn(2)

[참고]

DeleteColumns


DeleteColumns PowerScript 함수

[설명]

모든 칼럼들을 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteColumns ( )

[Argument]

listviewname 모든 칼럼을 삭제하려는 ListView control의 이름

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control의 모든 칼럼을 삭제한다.

lv_list.DeleteColumns()

[참고]

DeleteColumn


DeleteData PowerScript 함수

[설명]

그래프의 series에서 데이터 포인트를 삭제한다. series에 남는 데이터 포인트는 데이터 포인트 category의 값을 채우기 위하여 왼쪽으로 이동한다.

[적용]

윈도우와 사용자 object에 있는 graph control. DataWindow object에 있는 그래프는 그 값을 DataWindow로부터 직접 가지고 오기 때문에 적용되지 않는다.

[문법]

controlname.DeleteData ( seriesnumber, datapointnumber )

[Argument]

controlname | 데이터값을 삭제하려는 그래프 이름
seriesnumber | controlname으로부터 삭제하려는 데이터를 포함하고 있는 series 번호.
datapointnumber | 삭제하려는 데이터를 포함하고 있는 데이터 포인트 번호

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다. argument의 값이 NULL이면, DeleteData 함수는 NULL을 리턴한다.

[예제]

* 그래프 gr_product_data의 series인 Costs의 데이터 포인트 7에있는 데이터를 삭제한다.

integer SeriesNbr

// series 번호를 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

gr_product_data.DeleteData(SeriesNbr, 7)

[참고]

AddData

DeleteCategory

DeleteSeries

FindSeries


DeletedCount PowerScript 함수

[설명]

데이터베이스에서 삭제 표시된 row의 수를 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.DeletedCount ( )

[Argument]

dwcontrol

삭제된, 그러나 연관된 데이터베이스 테이블에는 갱신되지 않은, row의 수를 알고자하는 DataWindow control, DataStore, child DataWindow 등의 이름

[Return 값]

Long.

dwcontrol에서는 삭제되었으나 연관된 데이터베이스 테이블에는 갱신되지않은 row의 수를 리턴한다.

삭제된 row가 없거나 삭제된 것이 모두 데이터베이스 테이블 내에 갱신되었으면 0을 리턴한다. 처리에 실패하면 -1을 리턴하고, argument가 NULL이면 NULL을 리턴한다.

[용법]

갱신 가능한 DataWindow control 이나 DataStore는 여러 버퍼를 가지고 있다. primary 버퍼는 현재 표시되고있는 row들을 저장한다. delete 버퍼는 응용프로그램에서 DeleteRow 함수를 호출하여 삭제 표시된 row들을 저장한다. 이들 row들은 데이터베이스가 갱신 될 때까지 저장된다. delete 버퍼에 있는 row를 찾아내려면 DeletedCount 함수를 사용한다.

DataWindow가 갱신 불가능할 때, 삭제된 row는 버려지고, delete 버퍼에 저장되지 않는다. 따라서, 갱신할 수 없는 DataWindow의 경우 DeletedCount 함수는 항상 0을 리턴한다.

[예제]

* dw_employee에서 2개의 row가 삭제되었고, 아직 관련된 데이터베이스 테이블에는 갱신되지 않은 상태라면, ll_Del에는 2가 설정된다.

Long ll_Del

ll_Del = dw_employee.DeletedCount( )

* delete 버퍼에 row가 있는지 확인하고, 있다면 dw_employee와 연관된 데이터베이스 테이블에 갱신한다.

Long ll_Del

ll_Del = dw_employee.DeletedCount( )

If ll_Del <> 0 then dw_employee.Update( )

[참고]

DeleteRow

FilteredRow

ModifiedRow

RowCount

Update


DeleteItem PowerScript 함수: syntax 1

[설명]

listbox control의 리스트에서 아이템을 삭제한다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.DeleteItem ( index )

[Argument]

listboxname | 아이템을 삭제하려는 ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox 등의 이름
index | 삭제하려는 아이템의 위치 번호

[Return 값]

Integer.

아이템이 삭제된 후 리스트에 남아있는 아이템의 수를 리턴한다. 에러가 발생하면 DeleteItem 함수는 -1을 리턴한다. argument의 값이 NULL이면 NULL을 리턴한다.

[용법]

control의 Sorted property가 설정되어있으면, control을 정의할 때 명시한 순서와 달라질 수 있다. 이 경우 아이템의 텍스트를 알고있다면 아이템 번호를 결정하기 위하여 FindItem 함수를 사용할 수 있다.

* VBX controls *

RemoveItem method를 지원하는 VBX control을 사용하여 생성한 VBX user object를 가지고 있다면, DeleteItem 함수 대신 RemoveItem method를 호출한다.

[예제]

* lb_actions가 10개의 아이템을 가진다고 가정하고, lb_actions에서 5번째 아이템을 삭제하고 9를 리턴한다.

lb_actions.DeleteItem(5)

* lb_actions에서 첫 번째로 선택된 아이템을 삭제한다.

integer li_Index

li_Index = lb_actions.SelectedIndex( )

lb_actions.DeleteItem(li_Index)

* ListBox lb_purpose에서 아이템 "Personal"을 삭제한다.

lb_purpose.DeleteItem(lb_purpose.FindItem( "Personal", 1))

[참고]

AddItem

FindItem

InsertItem

SelectItem

DeleteItem PowerScript 함수: syntax 2

[설명]

ListView control에서 선택한 아이템을 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteItem ( index )

[Argument]

Listviewname | 아이템을 삭제하려는 ListView control의 이름
Index | 삭제하려는 아이템의 번호

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView에서 SelectedIndex 함수를 사용하여 선택된 아이템의 번호를 찾고, 해당 아이템을 삭제한다.

integer index

index = lv_list.selectedindex()

lv_list.DeleteItem(index)

[참고]

AddItem

FindItem

InsertItem

SelectItem

DeleteItem PowerScript 함수: syntax 3

[설명]

control에서 아이템을 삭제한다.

[적용]

TreeView controls

[문법]

treeviewname.DeleteItem ( itemhandle )

[Argument]

Treeviewname | 아이템을 삭제하려는 TreeView control의 이름
Itemhandle | 삭제하려는 아이템의 handle

[Return 값]

Integer.

처리에 성공하면 1을 에러가 발생하면 -1을 리턴한다.

[용법]

트리 전체를 삭제하려면, DeleteItem의 argument로 RootTreeItem handle을 사용한다.

[예제]

* TreeView control에서 아이템을 삭제한다

long ll_tvi

ll_tvi = tv_list.FindItem(currenttreeitem!, 0)

tv_list.DeleteItem(ll_tvi)

* TreeView control의 모든 아이템을 삭제한다.

long ll_tvi

ll_tvi = tv_list.FindItem(roottreeitem!, 0)

tv_list.DeleteItem(ll_tvi)

[참고]

AddItem

FindItem

InsertItem

SelectItem


DeleteItems PowerScript 함수

[설명]

ListView control의 아이템을 모두 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteItems ( )

[Argument]

listviewname

아이템을 모두 삭제하려는 ListView control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control의 아이템을 모두 삭제한다.

lv_list.DeleteItems()

[참고]

DeleteItem: Syntax 2


DeleteLargePicture PowerScript 함수

[설명]

large image 리스트에서 그림을 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteLargePicture ( index )

[Argument]

listviewname | image 리스트에서 큰 그림을 삭제하려는 ListView control 이름
index | 삭제하려는 큰 그림의 입력 위치

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control에서 큰 그림을 삭제한다.

lv_list.DeleteLargePicture(1)

[참고]

DeleteLargePictures


DeleteLargePictures PowerScript 함수

[설명]

ListView control에서 큰 그림을 모두 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteLargePictures ( )

[Argument]

listviewname

큰 그림 image 리스트의 모든 그림을 삭제하려는 ListView control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control의 큰 그림을 모두 삭제한다.

lv_list.DeleteLargePictures()

[참고]

DeleteLargePicture


DeletePicture PowerScript 함수

[설명]

image 리스트에서 그림을 삭제한다.

[적용]

PictureListBox, DropDownPictureListBox, and TreeView controls

[문법]

controlname.DeletePicture ( index )

[Argument]

controlname | 그림을 삭제하려는 control 이름
index | TreeView control 이미지 리스트에서 삭제하려는 그림위치 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

control의 이미지 리스트에서 그림을 삭제할 때, 리스트에 남아있는 그림들은 공백을 채우기 위하여 번호가 재부여된다. 이 경우, 아이템과 관련된 그림 인덱스는 변하지 않기 때문에, 아이템과 관련된 그림이 변경된다.

[예제]

* 이미지 리스트에서 6번째 이미지를 삭제한다.

tv_list.DeletePicture(6)

[참고]

DeletePictures

AddPicture


DeletePictures PowerScript 함수

[설명]

이미지 리스트에있는 그림을 모두 삭제한다.

[적용]

PictureListBox, DropDownPictureListBox, TreeView controls

[문법]

controlname.DeletePictures ( )

[Argument]

controlname

이미지 리스트에서 그림을 모두 삭제하려는 control

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* TreeView control 이미지 리스트에있는 그림을 모두 삭제한다.

tv_list.DeletePictures()

[참고]

DeletePicture

AddPicture


DeleteRow PowerScript 함수

[설명]

DataWindow control, DataStore object, 또는 child DataWindow에서 하나의 row를 삭제한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.DeleteRow ( row )

[Argument]

dwcontrol | row를 하나 삭제하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 삭제하려는 row를 나타내는 long형의 수치. 현재 row를 삭제하려면, row의 값으로 0을 지정한다.

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있을 경우, DeleteRow는 NULL을 리턴한다.

[용법]

DeleteRow는 DataWindow의 primary 버퍼에서 지정한 row를 삭제한다.

DataWindow를 갱신할 수 없을 경우, 지정한 row와 관련한 모든 저장내용이 지워진다. DataWindow를 갱신할 수 있는 경우, DeleteRow는 DataWindow에서 삭제한 row를 delete 버퍼에 옮긴다; PowerBuilder는 SQL DELETE문을 구축하기 위하여 delete 버퍼의 값을 사용한다.

삭제된 row는 응용프로그램에서 Update함수를 호출하기 전까지 데이터베이스 테이블에서 삭제되지않는다. Update 함수가 데이터베이스를 갱신하고 update 플래그를 reset한 후에, 삭제한 row와 관련된 저장내용이 지워진다.

[예제]

* dw_employee에서 현제 row를 삭제한다.

dw_employee.DeleteRow(0)

* dw_employee에서 5번 row를 삭제하고 변경된 내용으로 데이터베이스를 갱신한다.

dw_employee.DeleteRow(5)

dw_employee.Update( )

[참고]

DeletedCount

ResetUpdate

InsertRow

Retrieve

Update


DeleteSeries PowerScript 함수

[설명]

그래프에서 series와 그 데이터 값들을 삭제한다.

[적용]

윈도우와 사용자 object에 있는 Graph control. DataWindow에있는 그래프는 데이터 값을 DataWindow로부터 직접 가지고 오기 때문에 적용되지 않는다.

[문법]

controlname.DeleteSeries ( seriesname )

[Argument]

controlname | series를 삭제하려는 그래프
seriesname | controlname에서 삭제하려는 series의 이름을 나타내는 문자열

[Return 값]

Integer.

처리에 성공하면 1을, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있을 경우, DeleteSeries는 NULL을 리턴한다.

[용법]

그래프내의 series는, 그래프에 추가되는 순서에 따라 연속적으로 번호가 부여된다. 따라서, series가 삭제되면, 남아있는 series들의 번호는 재부여된다.

[예제]

* 그래프 gr_data의 series가 나열되어있는 DropDownListBox의 SelectionChanged 이벤트에 관한 스크립트이다. 사용자가 아이템을 선택하면, DeleteSeries는 그래프에서 series를 삭제하고 DeleteItem은 리스트박스에서 그 이름을 삭제한다.

string ls_name

ls_name = This.Text

gr_data.DeleteSeries(ls_name)

This.DeleteItem(This.FindItem(ls_name, 0))

[참고]

AddSeries

DeleteCategory

DeleteData

FindSeries


DeleteSmallPicture PowerScript 함수

[설명]

ListView control에서 작은 그림을 하나 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteSmallPicture ( index )

[Argument]

listviewname | 이미지 리스트에서 작은 그림을 삭제하려는 ListView control 이름
index | 삭제하려는 작은 그림의 인덱스 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control에서 작은 그림을 삭제한다.

lv_list.DeleteSmallPicture(1)

[참고]

DeleteSmallPictures


DeleteSmallPictures PowerScript 함수

[설명]

ListView control에서 작은 그림을 모두 삭제한다.

[적용]

ListView controls

[문법]

listviewname.DeleteSmallPictures ( )

[Argument]

listviewname

작은 그림들을 삭제하려는 ListView control 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control에서 작은 그림을 모두 삭제한다.

lv_list.DeleteSmallPictures( )

[참고]

DeleteSmallPicture


DeleteStatePicture PowerScript 함수

[설명]

control에서 state 그림을 하나 삭제한다.

[적용]

ListView 와 TreeView controls

[문법]

controlname.DeleteStatePicture ( index )

[Argument]

controlname | state 이미지 리스트에서 그림을 삭제하려는 ListView 나 TreeView control의 이름
index | 삭제하려는 state 그림의 인덱스 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control에서 state 그림을 삭제한다.

lv_list.DeleteStatePicture(1)

[참고]

DeleteStatePictures


DeleteStatePictures PowerScript 함수

[설명]

control에서 state 그림들을 모두 삭제한다.

[적용]

ListView 와 TreeView controls

[문법]

controlname.DeleteStatePictures ( )

[Argument]

controlname

모든 state 그림들을 삭제하려는 ListView 또는 TreeView control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* ListView control에서 모든 state 그림을 삭제한다.

lv_list.DeleteStatePictures( )

[참고]

DeleteStatePicture


Describe PowerScript 함수

[설명]

DataWindow object와 DataWindow object내의 object들에관한 속성을 나타낸다. DataWindow의 각 칼럼과 그래픽 object는 속성을 가지고 있으며, DataWindow Reference에 나열되어있다. 사용자가 문자열로 속성들을 명시하면 Describe는 그 속성의 값들을 리턴한다.

Describe는 또한 특정 row와 column의 값을 포함하고있는 표현식을 평가할 수 있다. 즉, property 리스트 내에 Evaluate 함수를 포함시키면, 표현식을 평가한 값이 리포트 된 정보 안에 포함된다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Describe ( propertylist )

[Argument]

dwcontrol | 구성내용에 관한 정보를 원하는 DataWindow control, DataStore, 또는 child DataWindow 이름
propertylist | 공란으로 분리된 속성들의 리스트나 Evaluate 함수. 적합한 속성들의 리스트는 DataWindow Reference를 참고한다

[Return 값]

String.

각 property나 Evaluate함수의 값을 포함한 문자열을 리턴한다. 개행 문자 (~n)는 propertylist의 각 아이템의 값을 분리한다.

속성 리스트에 타당하지않은 값이 포함되어있으면, Describe는 느낌표(!)를 리턴하고 리스트내의 나머지들은 무시한다. 속성의 값이 없을 경우 Describe는 물음표(?)를 리턴한다.

속성의 값에 물음표(?)가 포함되어 있으면, 그 값은 따옴표로 둘러싸이기 때문에 값이 없는 속성과 구별할 수 있다.

argument중에 NULL이 있으면, Describe는 NULL을 리턴한다.

[용법]

DataWindow의 구조를 이해하려면 Describe 함수를 사용한다. 예를들어, DataWindow에서 사용하는 밴드와 칼럼들의 데이터 타입을 알아내려면 Describe 함수를 사용하면 된다. 또한 속성의 현재 값을 찾아내고, 그 값을 수정하기 위하여 Describe 함수를 사용할 수 있다.

Describe는 가끔 DataWindow의 SELECT 문을 수정하기 위한 값을 구하기 위하여 사용된다 (예를들면, SELECT 문에 WHERE절을 추가하는 경우).

DataWindow의 SQL문을 구할수 있을 때

SELECT 문장을 그래픽적으로 생성하기 위하여 Select 페인터를 사용할 때, PowerBuilder는 SQL SELECT 문이 아닌 (PBSELECT 문장이라 불리는) 자신만의 SELECT 문장을 DataWindow 정의와 함께 저장한다. Table.Select 속성과 함께 Describe 함수를 호출할 때, 데이터베이스와 연결되어 있으면 SQL SELECT 문을 리턴하고, 그렇지 않을 경우에는 PBSELECT 문을 리턴한다.

Property 문법

property에 관한 문법은 다음과 같다:

objectname.property

DataWindow내에있는 object 타입과 그 속성과 관련한 예제는 DataWindow Object Properties를 참고한다.

Property 값의 나열

속성 리스트를 리턴할 때, 그 리스트내의 값들은 tab 문자(~t)로 분리한다. 예를들어, Bands property는 DataWindow에서 사용하는 모든 밴드를 리스트로 나타낸다.

header~tdetail~tsummary~tfooter~theader.1~ttrailer.1

리턴되는 속성 값의 첫 번째 문자가 따옴표이면, 그것은 리스트 전체가 따옴표로 둘러싸여있고 그 리스트내의 따옴표는 홑따옴표로 둘러싸여있음을 의미한다.

" Student~T'Andrew'or'~NAndy' "

따옴표로 둘러싸인 속성값

Describe는 서로다른 의미를 가진 텍스트가 있을 경우 속성의 값을 따옴표로 둘로싼다. 예를들어, 속성 값이 물음표(?)를 포함하고있으면, 그 텍스트는 따옴표로 둘러싸여서 리턴된다. 따옴표로 둘러싸이지 않은 물음표는 속성의 값이 없다는 것을 의미하는 것이다.

칼럼이름 또는 번호

object가 칼럼일 때, 칼럼 이름이나, 뒤에 칼럼번호가 있는 파운드 기호(#)를 명시할 수 있다. 예를들어, salary가 칼럼이면, "salary.coltype"은 "#5.coltype"과 동일한 것이다 (단, salary가 5번째 칼럼이라고 가정한다).

Object 이름

DataWindow painter는 자동으로 columns 과 column labels의 이름을 부여한다. DataWindow object에 추가한 다른 object들의 이름은 사용자가 이름을 부여하지 않는 한 숨겨진 문자열의 번호가 이름으로 부여된다. (Describe 함수를 이용하면 숨겨진 이름을 볼수있지만, painter안에서는 볼 수 없다.) object의 속성을 손쉽게 나타내고 수정하려면, object이름을 부여하도록 한다.

표현식의 평가

Describe의 Evaluate함수는 스크립트 내에서 DataWindow의 데이터를 이용하여 DataWindow painter 표현식을 평가하도록 해준다. Evaluate 함수는 다음과같은 문법을 가지며, propertylist에 명시한다;

Evaluate( 'expression', rownumber )

expression은 평가하려는 표현식이며, rownumber는 expression을 평가하기위한 row 번호이다. expression은 보통 DataWindow painter 함수에 포함되어 있다. 예를들면, 다음 문장은 salary 칼럼의 값에따라 255나 0을 나타내기위하여 Describe 함수를 이용한 것이다.

ls_ret = dw_1.Describe("Evaluate('If(salary > 100000, 255, 0)', 3)")

DataWindow로부터 데이터를 구하기위하여 스크립트내에서 DataWindow control 함수를 호출할 수 있지만, LookUpDisplay와 같은 몇몇 painter 함수들은 스크립트내에서 호출할 수 없다. Evaluate 함수는 이러한 함수들을 호출할 수 있는 유일한 방법이다. (관련예는 [예제]의 "DropDownDataWindow에 나타나는 값의 평가" 부분을 참고한다.)

샘플 property 값

Describe 함수가 나타내는 값의 타입을 알아내기 위해서, 하나의 그룹 레벨과 함께 호출된 dw_emp라 명명된 DataWindow의 예를들어본다. 이 DataWindow의 칼럼들은 emp 와 empname이라 명명되어있고, 이들의 header는 emp_h 와 empname_h라 명명되어있다. 아래의 예는, Describe에서 이들 property를 명시하는 방법과 그 결과를 나타낸 것이다.

Property | Reported value
datawindow.Bands | header~tdetail~tsummary~tfooter~theader.1~ttrailer.1
datawindow.Objects | emp~tempname~temp_h~tempname_h~t object가 이름을 가지고있지 않을 경우, PowerBuilder는 obj_1234567과 같이 object 숫자 이름을 할당한다.
emp.Type | column
empname.Type | column
empname_h.Type | text
emp.Coltype | char(20)
state | ! (!는 올바르지않은 아이템을 나타내며, 칼럼에 명명된 state가없다 .)
empname_h.Visible | ?

[예제]

* property 리스트와 함께 Describe 함수를 호출한다. 결과값은, tab 과 newline 문자로 구성되어있다. 참고로 DataWindow내의 object에 state가 없기 때문에, state.type은 느낌표(!)를 리턴한다.

string ls_request, ls_report

ls_request = "DataWindow.Bands DataWindow.Objects "&

+"empname_h.Text " &

+"empname_h.Type emp.Type emp.Coltype " &

+"state.Type empname.Type empname_h.Visible"

ls_report = dw_1.Describe(ls_request)

Describe함수는 ls_report의 값을 다음과 같은 문자열로 설정한다.

header~tdetail~tsummary~tfooter~theader.1~ttrailer.1~N emp~tempname~temp_h~tempname_h~N "Employee~R~NName"cd~N text~N column~Nchar(20)~N!

* GetItemNumber를 이용하여 salary라 명명된 칼럼의 값을 구하기 전에, 그 칼럼의 데이터 타입을 체크한다.

string ls_data_type

integer li_rate

ls_data_type = dw_1.Describe("salary.ColType")

IF ls_data_type = "number" THEN

li_rate = dw_1.GetItemNumber(5, "salary")

ELSE

. . . // 다른 처리루틴

END IF

* 칼럼 이름 또는 번호

//칼럼이름을 이용하여 현재 칼럼의 타입을 알아낸다.

s = This.Describe(This.GetColumnName()+ ".ColType")

//현재 칼럼의 번호를 이용하여 현재 칼럼의 타입을 알아낸다.

s = This.Describe("#" + String(This.GetColumn( )) + ".ColType")

* Scrolling 과 현재 row

DataWindow control의 ScrollVertical event의 한 부분의 예로, DataWindow를 스크롤한 후, 첫 번째로 보이는 row를 현재 row로 만든다.

s = This.Describe("DataWindow.FirstRowOnPage")

IF IsNumber(s) THEN This.SetRow(Integer(s))

* DropDownDataWindow 에 나타나는 값의 평가

state_code라 명명된 DropDownDataWindow에 표시되는 값을 찾아내기 위하여 Describe의 Evaluate 함수를 사용한다. 참고로 사용자가 선택한 값이 버퍼내의 아이템값이 되도록하기 위하여 반드시 ItemChanged event이후에 실행하여야 한다. 다음은 getdisplayvalue라 명명된 사용자 이벤트의 스크립트이다.

string rownumber, displayvalue

rownumber = String(dw_1.GetRow())

displayvalue = dw_1.Describe( &

"Evaluate('LookUpDisplay(state_code) ', " &

+ rownumber + ")")

다음은 ItemChanged event의 일부로써, 현재의 이벤트를 끝에 getdisplayvalue event를 발생시 킨다.

dw_1.PostEvent("getdisplayvalue")

* 칼럼의 데이터 타입에 근거한 null 값의 할당

칼럼이 공란이면 다음 칼럼으로 이동하는 것을 허락하는 DataWindow control의 ItemError event의 스크립트이다. string이아닌 다른 타입의 칼럼데이터일 경우, 사용자는 return code없이 빈값(빈 문자열을 말하며 데이터타입과 맞지 않는다)을 벗어날 수 없다. data와 row는 ItemError event의 argument들이다.

string s

s = This.Describe(This.GetColumnName( ) + ".Coltype")

CHOOSE CASE s

CASE "number"

IF Trim(data) = "" THEN

integer null_num

SetNull(null_num)

This.SetItem(row, &

This.GetColumn( ), null_num)

RETURN 3 // 데이터값을 거부하지만 focus이동은 허락한다.

END IF

CASE "date"

IF Trim(data) = "" THEN

date null_date

SetNull(null_date)

This.SetItem(row, &

This.GetColumn( ), null_date)

RETURN 3

END IF

. . . // 다른 데이터타입의 처리 루틴

END CHOOSE

[참고]

Create

Modify

DataWindow Object Properties


DirList PowerScript 함수

[설명]

파일들의 리스트로 리스트박스를 구성한다. 표시되는 파일들을 제한하기 위하여 경로, mask와 파일 타입들을 명시할 수 있다. 윈도우가 StaticText control과 연관되어있다면, 현재 드라이브와 디렉토리를 나타내기 위하여 DirList를 가질 수 있다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.DirList ( filespec, filetype {, tatictext } )

[Argument]

listboxname | 나타내려하는 listbox control의 이름.
filespec | 파일의 패턴을 가진 문자열. 이것은 보통 mask가 된다. (예: *.INI 또는 *.TXT). 경로명을 포함하고 있을 경우, current 드라이브와 디렉토리가 된다.
filetype | listbox의 목록으로 나타내려는 하나 또는 그 이상의 파일 타입들을 나타내는 정수. 파일의 타입은 다음과 같다: 0 Read/write(일기/쓰기) files 1 Read-only(읽기전용) files 2 Hidden(숨겨진) files 4 System(시스템) files 16 Subdirectories 32 Archive (modified) files 16384 Drives 32768 Exclude read/write files from the list (목록에서 읽기/쓰기 파일을 제외한다) 여러 타입을 나열하려면, 관련된 타입의 번호들을 더한다. 예를 들어, 읽기/쓰기 파일, 서브디렉토리, 드라이브들을 나열한다면, 파일타입으로 0+16+16384 또는 16400을 사용한다.
statictext | (선택사항)current 드라이브와 디렉토리를 나타내려하는 StaticText의 이름.

[Return 값]

Boolean.

탐색경로가 타당하여서 listbox에 목록이 나타나거나 리스트가 빈 상태이면 TRUE를 되돌리고, listbox에 목록이 나타나지 않을 경우 (예를들어, filespec이 하나의 파일이거나, 디렉토리가 아니거나 명시한 경로가 올바르지 않을 경우)에는 FALSE를 되돌린다. arguments값 중에서 NULL이 있을 경우, DirList는 NULL을 리턴한다.

[용법]

처음에 목록을 나타내기위한 윈도우를 열 때 DirList 함수를 호출할 수 있다. 새로운 선택에 근거하여 목록을 다시 나타내려한다면 SelectionChanged event의 스트립트에서 반드시 DirList 함수를 호출하여야 한다. (DirSelect 예제 참조.)

[다른방법]

DirList의 모양이 표준 File Open 과 File Save 윈도우를 모방할 수 있더라도, DirList대신 GetFileOpenName 과 GetFileSaveName 함수를 호출하여 표준 윈도우의 모든 기능을 얻을 수 있다.

[예제]

* ListBox lb_emp에 탐색경로 C:\EMPLOYEE\에 있는 확장자가 TXT인 읽기/쓰기 파일의 목록을 나타낸다.

lb_emp.DirList("C:\EMPLOYEE\*.TXT", 0)

* ListBox lb_emp에 탐색경로 C:\EMPLOYEE\에 있는 확장자가 DOC인 읽기전용 파일의 목록을 나열하고, 경로명은 StaticText st_path에 나타낸다.

lb_emp.DirList("C:\EMPLOYEE\*.DOC", 1, st_path)

* 현재 디렉토리에서 *.TXT와 매치되는 모든 파일들로 ListBox를 초기화하는 윈도우 Open event 스크립트.

String s_filespec

s_filespec = "*.TXT"

lb_filelist.DirList(s_filespec, 16400, st_filepath)

[참고]

DirSelect


DirSelect PowerScript 함수

[설명]

DirList함수로 리스트 박스가 나타난 후에, DirSelect 함수는 현재 선택한 아이템 자료를 받고 문자열에 저장한다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.DirSelect ( selection )

[Argument]

listboxname | 현재 선택된 아이템의 자료를 받으려는 listbox control의 이름. listbox는 반드시 DirList를 이용하여 나타낸것이어야 하고, 드라이브를 나타내는 글자, 파일 또는 디렉토리 이름을 선택하여야 한다.
selection | 선택한 경로명이 저장된 string형 변수.

[Return 값]

Boolean.

현재 선택이 드라이브 문자 이거나 디렉토리 이름(파일과 다른 디렉토리들을 포함할 수 있다)이면 TRUE를 리턴하고 파일일 경우에는 FALSE를 되돌린다. argument중에 NULL값이 있으면, DirSelect는 NULL을 리턴한다.

[용법]

선택한 아이템을 찾으려면 SelectionChanged event내에서 DirSelect 함수를 사용한다. 선택한 것이 드라이브나 디렉토리 이면, selection은 DirList에 관한 새로운 디렉토리를 명시한 것으로 사용한다.

[예제]

* 선택한 것이 파일인지 여부를 테스트하기 위하여 DirSelect를 호출하는 ListBox lb_FileList에 관한 SelectionChanged event의 스트립트. 파일을 선택하지 않았다면, 스크립트에서 그 디렉토리 이름과 파일의 패턴을 연결한다음, ListBox를 나타내고 StaticText st_FilePath에 현재 드라이브와 디렉토리를 표시하기 위하여 DirList를 호출한다. 현재 선택한 것이 파일이면, 다른 처리를 수행한다.

string ls_filename, ls_filespec = "*.TXT"

IF lb_FileList.DirSelect(ls_filename) THEN

// ls_filename이 파일이 아니면

// 디렉토리를 ls_filespec에 추가한다.

ls_filename = ls_filename + ls_filespec

lb_filelist.DirList(ls_filename, &

16400, st_FilePath)

ELSE

... //선택한 파일에관한 처리루틴

END IF

[예제]

DirList


Disable PowerScript 함수

[설명]

메뉴상의 아이템을 사용할 수 없도록 한다. 이때의 메뉴 아이템을 흐린 색상으로 되고(사용할 수 없는 텍스트의 색상은 변경할 수 있으며, 통상 회색을 사용한다), 선택할 수 없게 된다.

[적용]

Menu objects

[문법]

menuname.Disable ( )

[Argument]

menuname

비활성화(사용불가능)하게 하기위하여 선택한 메뉴의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. manuname이 NULL이면, Disable은 NULL을 되돌린다.

* 동일한 문법 *

메뉴의 Enabled 속성을 설정하는 것은 Disable을 호출하는 것과 동일하다.

1) m_appl.m_edit.Enabled = FALSE

2) m_appl.m_edit.Disable( )

[예제]

* m_appl 메뉴의 m_edit 메뉴 아이템을 사용할 수 없도록 한다.

m_appl.m_edit.Disable( )

[참고]

Enable


DisconnectObject PowerScript 함수

[설명]

명시한 OLEObject 변수와 연결된 모든 object를 해제한다.

[적용]

OLEObject objects

[문법]

oleobject.DisconnectObject ( )

[Argument]

oleobject

OLE object로부터 연결을 해제하려는 OLEObject 변수의 이름. OLEObject가 OLE 2.0 control의 Object property는 명시할 수 없다.

[Return 값]

Integer.

처리에 성공하면 1을 되돌리고, 에러가 발생하면 다음 음수 값중 하나를 리턴한다:

-1 올바르지않은 호출: argument가 control의 Object property이다

-9 그밖으 에러가 발생하였다

oleobject가 NULL이면, DisconnectObject NULL을 리턴한다.

[용법]

OLEObject 변수는 PowerBuilder 응용프로그램에서 OLE object를 프로그램상으로 취급하기 위하여 서버 응용프로그램에 요청하는 OLE automation을 위하여 사용된다.

OLE automation에 관한 자제한 정보는, ConnectToObject를 참고한다.

[예제]

* OLEObject 변수를 생성하고 새로운 Excel object에 연결한다.

integer result

OLEObject myoleobject

myoleobject = CREATE OLEObject

result = myoleobject.ConnectToNewObject("excel.application")

. . .

result = myoleobject.DisconnectObject( )

[참고]

ConnectToObject

ConnectToNewObject


DisconnectServer PowerScript 함수

[설명]

서버 응용프로그램에서 클라이언트 응용 프로그램의 연결을 해제한다.

[적용]

Connection objects

[문법]

connection.DisconnectServer ( )

[Argument]

connection

삭제하려는 connection object(connection을 설치하는데 사용된)의 이름

[Return 값]

Long.

처리에 성공하면 0을 되돌리고 에러가 발생하면 다음값중 하나를 리턴한다:

50 분산 서비스 에러(Distributed service error)

52 분산 통신 에러(Distributed communications error)

53 요청된 서버가 활성화 되지 않음(Requested server not active)

54 서버가 요청을 받아들일 수 없다(Server not accepting requests)

55 요청이 비정상적으로 종료되었다(Request terminated abnormally)

56 요청에 대한 응답이 완전하지 않다(Response to request incomplete)

57 연결되어있지 않다(Not connected)

62 서버 통신량이 많다(Server busy)

[용법]

서버 응용프로그램으로부터 연결을 해제한 후에, 클라이언트 응용프로그램은 connection object를 메모리에서 제거할 필요가 있다.

[예제]

* connection object myconnect를 이용하여 서버 응용프로그램으로부터 클라이언트 응용프로그램의 연결을 해제한다.

myconnect.DisconnectServer( )

destroy myconnect


Double PowerScript 함수

[설명]

문자열을 double로 변환하거나 blob에 저장된 double값을 구한다.

[문법]

Double ( stringorblob )

[Argument]

stringorblob

double로 되돌려 받을 문자열이나 첫번째 값이 double 값인 blob. blob의 나머지 내용은 무시된다. stringorblob은 double이나 blob을 포함하고있는 어떠한 메모리 변수도 가능하다.

[Return 값]

Double.

stringorblob의 값을 double로 되돌린다. stringorblob이 PowerScript 수치가 아니거나 수치가 아닌 데이터 타입을 포함하면, -1을 되돌린다. stringorblob이 NULL이면, Double은 NULL을 리턴한다.

[용법]

문자열의 값이 0인 경우와 수치가 아닌 값을 구별하려면, Double 함수를 호출하기 전에 IsNumber 함수를 호출한다.

[예제]

* 24.372를 doubl로 되돌린다.

Double("24.372")

* SingleLineEdit sle_distance의 내용을 double로 되돌린다.

Double(sle_distance.Text)

* 데이터베이스로부터 blob 데이터를 lb_blob에 할당한다음, blob의 20 위치에 저장된 double 값을 구한다. (BlobMid 함수는 double값의 길이와 동일하거나 그 지정하여야 한다)

double lb_num

lb_num = Double(BlobMid(lb_blob, 20, 40))

[참고]

Dec

Integer

Long

Real


DoVerb PowerScript 함수

[설명]

OLE 2.0 control 이나 OLE DWObject 안에서 명시한 verb을 실행하기 위하여 OLE server 응용프로그램을 요청한다.

[Platform 정보]

Macintosh 와 UNIX상에서는 효과가 없다.

[적용]

OLE 2.0 controls 와 OLE DWObjects (DataWindow control의 DataWindow object내에 있는 object)

[문법]

objectref.DoVerb ( verb )

[Argument]

objectref | verb를 실행하려는 OLE 2.0 control의 이름이나 DataWindow control의 OLE DWObject 이름. DWObject의 이름은 다음과 같은 문법을 갖는다:dwcontrol.Object.dwobjectname.
verb | OLE server 응용프로그램을 지정하기위한 정수. verb는 OLE object상에서 서버를 수행 가능하게하는 작용을 한다.

[Return 값]

Integer.

처리에 성공하면 1을 되돌리고 에러가 발생하면 다음 값 중 하나를 리턴한다:

-1 Container가 비어있다

-2 object에 관한 verb가 올바르지 않다

-3 object에 의하여 verb가 완전히 수행되지 않았다

-4 object에 의하여 verb가 지원되지 않는다

-5 object가 현재 verb를 실행할 수 없다

-9 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, DoVerb는 NULL을 리턴한다.

[예제]

* OLE 2.0 control ole_1의 object에 관하여 verb 7을 수행한다.

integer result

result = ole_1.DoVerb(7)

* OLE DWObject ole_graph의 object에 관하여 verb 7을 수행한다

integer result

result = dw_1.Object.ole_graph.DoVerb(7)

[참고]

Activate

OLEActive

SelectObject


Drag PowerScript 함수

[설명]

control의 드래깅을 시작하거나 끝낸다.

[적용]

그리기 용 object(lines, ovals, rectangles 와 rounded rectangles)를 제외한 모든 control.

[문법]

control.Drag ( dragmode )

[Argument]

control | 드래깅을 시작하거나 중지하려는 control의 이름
dragmode | 취할 행동을 나타내는 DragMode의 값:
 | Begin! | 드래그 모드에 control을 넣는다
 | Cancel! | control의 드래깅을 멈추지만 DragDrop event를 발생시키지 않는다
 | End! | control의 드래깅을 멈추고 control이 target object위에 있으면, DragDrop event를 발생시킨다.

[Return 값]

Integer.

OLE 2.0 control을 제외한 모든 control에 관하여, 처리에 성공하면 1을 되돌리고 drag event가 중첩되거나 control이 drag mode가 아닐 때 드래그를 취소하려 하면 -1을 리턴한다. 이들 리턴값은 대게 사용하지 않는다.

OLE 2.0 control의 경우, 다음 값을 되돌린다:

2 Object가 이동되었다

1 Drag가 취소되었다

0 Drag에 성공하였다

-1 Control이 비어있다

-9 그밖의 에러가 발생하였다

argument가 NULL이면, Drag는 NULL을 리턴한다.

[용법]

드래그가능한 control의 리스트를 보려면, object Browser를 연다. dragobject아래 계층적으로 나타난 모든 object는 드래그가 가능하다.

control의 DragAuto property가 TRUE일 경우, control에 클릭하면 PowerBuilder는 자동으로 drag mode에 그 control을 넣는다.

drag mode에 임의로 control을 넣기 위하여 Drag 함수를 사용하면, 마우스 버튼을 누르지않은 상태로 마우스를 움직여서 해당 control을 드래그 할 수 있다. 왼쪽 마우스 버튼을 클릭하면 드래그가 종료된다. CANCEL! 과 END!는 왼쪽 마우스버튼을 클릭하지 않고 드래그를 종료하고자 할 때에만 필요하다.

control을 드래그하여 target object상에 놓았을 때 어떤 행동이 일어나도록 하려면, target의 드래그 event (DragDrop, DragEnter, DragLeave, DragWithin 등)에 스크립트를 하면된다.

[예제]

* sle_emp를 drag mode에 넣는다.

sle_emp.Drag(Begin!)

[참고]

DraggedObject


DraggedObject PowerScript 함수

[설명]

drag event를 일으킨 control을 참조하여 리턴한다.

[문법]

DraggedObject ( )

[Return 값]

DragObject

dragobject는 드래그 가능한 모든 control을 포함한 특별한 데이터 타입이며, 현재 드래그된 control을 참조하여 되돌린다.

[주의]

드래그된 control이 없을 경우, 실행 시 에러 메시지가 나타난다.

[용법]

target object에 관한 drag event(DragDrop, DragEnter, DragLeave, DragWithin 등)에서 DraggedObject를 호출한다.

control의 데이터 타입을 구하려면 TypeOf를 이용한다. control의 속성에 접근하기 위해서, control의 데이터 타입을 저장시키기 위한 메모리 변수에 DraggedObject를 할당할 수 있다.(예제 참조)

[예제]

* which_control을 현재 드래그된 control의 데이터 타입과 동일하게 설정하고, ls_text_value에 드래그된 control의 text property를 설정한다.

SingleLineEdit sle_which

CommandButton cb_which

string ls_text_value

DragObject which_control

which_control = DraggedObject( )

CHOOSE CASE TypeOf(which_control)

CASE CommandButton!

cb_which = which_control

ls_text_value = cb_which.Text

CASE SingleLineEdit!

sle_which = which_control

ls_text_value = sle_which.Text

END CHOOSE

[참조]

Drag

TypeOf


Draw PowerScript 함수

[설명]

현재 윈도우의 명시한 위치에 picture control을 그린다.

[적용]

Picture controls

[문법]

picture.Draw ( xlocation, ylocation )

[Argument]

picture | 현재 윈도우에 그리려는 picture control의 이름
xlocation | 그리려는 그림의 x축 위치 (PowerBuilder 단위)
ylocation | 그리려는 그림의 y축 위치 (PowerBuilder 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Draw 함수는 NULL을 리턴한다. 이 함수의 리턴값은 대게 사용하지 않는다.

[용법]

그림의 X property를 변경시키는 것보다 Draw 함수를 사용하는 것이 더 빠르고 화면 떨림을 더 적게 한다. 그 이유는 Draw 함수의 경우 그림이 변경될 때 마다 그림과 함께 작은 윈도우를 재생성하지 않고 윈도우상에 직접 그림을 그리기 때문이다. 따라서 애니메이션에서 그림을 그리려면 Draw 함수를 사용하도록 한다.

animation을 생성하려면, 윈도우의 보이지않는 영역에 그림을 위치시킨 후, Draw 함수를 이용하여 윈도우내의 다른 위치에 그리면 된다. 그러나, 그림을 그렸던 모든 곳의 이미지는 남아있게 된다. 조금씩 증가 시키면서 위치를 변경시킨다면, 새로 그린 그림이 기존 그림의 대부분을 겹치게 될 것이다.

picture control의 위치를 변경시키지 않고 지정한 위치에 그 control의 이미지만 나타내려면 Draw 함수를 사용한다. control의 위치를 실제로 변경시키려면 Move 함수를 사용한다.

[예제]

* 비트맵 p_Train을 X 와 Y위치 100과 200에 그린다.

p_Train.Draw(100, 200)

* 비트맵 p_ Train을 윈도우의 왼쪽에서 오른쪽으로 움직이면서 나타나도록 그린다.

integer horizontal

FOR horizontal = 1 TO 2000 STEP 8

p_Train.Draw(horizontal, 100)

NEXT

[참고]

Move


EditLabel PowerScript 함수

[설명]

명시한 레이블의 편집을 시작한다.

[적용]

TreeView controls

[문법]

treeviewname.EditLabel ( itemhandle )

[Argument]

treeviewname | 레이블을 편집하려는 TreeView control
itemhandle | 편집하려는 아이템의 handle

[Return 값]

Integer.

처리에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다.

[용법]

TreeView control의 EditLabel property가 FALSE로 설정되어있으면, 반드시 EditLabel 함수를 사용하여야 한다.

[예제]

* 현재 TreeView item의 레이블을 편집하도록 한다.

long ll_tvi

ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0)

tv_list.EditLabel(ll_tvi)

[참고]

FindItem


Enable PowerScript 함수

[설명]

메뉴상의 아이템을 사용 가능하게 하여 선택할 수 있도록 한다.

[적용]

Menu objects

[문법]

menuname.Enable ( )

[Argument]

menuname

사용가능하게 하려는 메뉴의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. menuname이 NULL이면, Enable 함수는 NULL을 리턴한다.

[용법]

사용 가능한 메뉴아이템의 색상은 흐린 색이나 사용할 수 없는 색상이 아닌, 활성화된 색상으로 변경된다.

Enable 함수를 호출하면 Enabled property는 TRUE로 설정된다.

* 동일한 문법 *

메뉴의 Enabled property를 설정하는 것과 Enable함수를 호출하는 것은 동일하다.

menuname.Enabled = TRUE

menu_appl.m_delete.Enabled = TRUE

menu_appl.m_delete.Enable( )

[예제]

* 메뉴 m_appl상의 m_delete 메뉴항목을 선택 가능하도록 한다.

m_appl.m_delete.Enable( )

[참고]

Disable


EventParmDouble PowerScript 함수

[설명]

VBX standard 나 custom event에 의하여 리턴되는 수치 값을 구하여 PowerBuilder 변수에 저장한다.

[Platform 정보]

VBX 사용자 object에 관한 함수들은 Macintosh, UNIX, Windows NT등에는 영향을 주지 않는다.

[적용]

VBX 사용자 objects

[문법]

vbxuserobject.EventParmDouble ( parameter, parmvariable )

[Argument]

vbxuserobject | 원하는 VBX event 파라미터에관한 VBX 사용자 object 이름
parameter | 값을 원하는 VBX event의 파라미터 번호
parmvariable | 파라미터 값을 저장하려는 double형 메모리 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 되돌린다. argument 중에 NULL이 있으면, EventParmDouble은 NULL을 리턴한다.

[용법]

VBX standard 또는 custom event에 의하여 리턴되는 파라미터를 사용하려면 이 함수를 호출한다. 이 함수는 VBX user objects에 관해서만 사용 가능하다.

[예제]

* VBX control로부터 이벤트 파라미터를 구하여 button_nbr에 저장한다.

Double button_nbr

vbx_control.EventParmDouble(1, button_nbr)

[참고]

EventParmString


EventParmString PowerScript 함수

[설명]

VBX standard 나 custom event에 의하여 리턴되는 문자열 값을 구하여 PowerBuilder 변수에 저장한다.

[Platform 정보]

VBX 사용자 object에 관한 함수들은 Macintosh, UNIX, Windows NT등에는 영향을 주지 않는다.

[적용]

VBX 사용자 objects

[문법]

vbxuserobject.EventParmDouble ( parameter, parmvariable )

[Argument]

vbxuserobject | 원하는 VBX event 파라미터에 관한 VBX 사용자 object 이름
parameter | 값을 원하는 VBX event의 파라미터 번호
parmvariable | 파라미터 값을 저장하려는 string 메모리 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 되돌린다. argument 중에 NULL이 있으면, EventParmString 은 NULL을 리턴한다.

[용법]

VBX standard 또는 custom event에 의하여 리턴되는 문자열 파라미터를 사용하려면 이 함수를 호출한다. 이 함수는 VBX user objects에 관해서만 사용 가능하다.

[예제]

* VBX control로부터 문자열 이벤트 파라미터를 구하여 action에 저장한다.

string action

vbx_control.EventParmString(1, action)

[참고]

EventParmDouble


Exp PowerScript 함수

[설명]

명시한 지수승의 e(지수)를 계산한다.

[문법]

Exp ( n )

[Argument]

n

지수 e (2.71828)를 계산하기 위한 승수

[Return 값]

Double.

e 의 n 승값을 되돌린다. n이 NULL이면, Exp함수는 NULL을 리턴한다.

[예제]

* 7.38905609893065을 리턴한다

Exp(2)

* 자연 로그(밑수 e)를 정규 숫자로 변환한다. Exp 함수의 실행결과는 200이 된다.

double value, x = log(200)

value = Exp(x)

[참고]

Log

LogTen

Exp(DataWindow 함수)


ExpandAll PowerScript 함수

[설명]

명시한 아이템을 순환적으로 확장한다.

[적용]

TreeView controls

[문법]

treeviewname.ExpandAll ( itemhandle )

[Argument]

treeviewname | 아이템과 계층적으로 종속된 모든 아이템들을 확장하려는 TreeView control
itemhandle | 확장하려는 아이템의 handle

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

TreeViewItem의 모든 레벨을 확장하려면 RootTreeItem에 관한 ExpandAll 함수를 사용한다.

[예제]

* TreeView control의 모든 레벨을 확장한다.

long ll_tvi

ll_tvi = tv_list.FindItem(RootTreeItem! , 0)

tv_list.ExpandAll(ll_tvi)

[참고]

ExpandItem

CollapseItem


ExpandItem PowerScript 함수

[설명]

명시한 아이템을 확장한다.

[적용]

TreeView controls

[문법]

treeviewname.ExpandItem ( itemhandle )

[Argument]

treeviewname | 아이템을 확장하려는 TreeView control
itemhandle | 확장하려는 아이템의 handle

[Return 값]

Integer.

처리에 성공하면 1을 되돌리고 에러가 발생하면 -1을 되돌린다.

[용법]

ExpandItem은 단일 아이템만 확장한다. 명시한 아이템의 종속레벨까지 확장하려면 ExpandAll을 사용한다.

[예제]

* TreeView의 현재 레벨을 확장한다.

long ll_tvi

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

tv_list.ExpandItem(ll_tvi)

[참고]

ExpandAll

CollapseItem


Fact PowerScript 함수

[설명]

주어진 수의 factorial(계승)을 구한다.

[문법]

Fact ( n )

[Argument]

n

factorial을 원하는 수

[Return 값]

Double.

n의 factorial을 구한다. n이 NULL이면, Fact 함수는 NULL을 리턴한다.

[예제]

* 24 (1 * 2 * 3 * 4)

Fact(4)

* 1을 리턴한다.

Fact(1)

Fact(0)

[참고]

Fact(DataWindow Painter 함수)


FileClose PowerScript 함수

[설명]

명시한 파일번호와 연관된 파일을 닫는다. 파일번호는 FileOpen 함수에 의하여 파일에 할당된다.

[문법]

FileClose ( file# )

[Argument]

file#

닫으려는 파일에 할당되어있는 integer. FileOpen 함수는 파일을 오픈 할때 파일번호를 리턴한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. file#가 NULL이면, FileClose는 NULL을 리턴한다.

[예제]

* 파일 EMPLOYEE.DAT를 열고 닫는다. 메모리변수 li_FileNum는 FileOpen으로 파일을 열 때 그 파일에 할당된 번호를 저장한다. 또한, FileClose는 파일을 닫기 위하여 그 번호를 이용한다.

integer li_FileNum

li_FileNum = FileOpen("EMPLOYEE.DAT")

. . . // 어떤 처리 루틴

FileClose(li_FileNum)

[참고]

FileLength

FileOpen

FileRead

FileWrite


FileDelete PowerScript 함수

[설명]

명시한 파일을 삭제한다.

[문법]

FileDelete ( filename )

[Argument]

filename

삭제하려는 파일이름을 가진 문자열

[Return 값]

Boolean.

처리에 성공하면 TRUE를 리턴하고, 에러가 발생하면 FALSE를 리턴한다. filename이 NULL이면, FileDelete는 NULL을 리턴한다.

[예제]

* Open File 윈도우에서 선택한 파일을 삭제한다.

integer ret, value

string docname, named

value = GetFileOpenName("Select File," &

docname, named, "DOC", &

"Doc Files (*.DOC),*.DOC")

IF value = 1 THEN ret = MessageBox("Delete", &

"Delete file?", Question!, OKCancel!)

IF ret = 1 THEN FileDelete(docname)

[참고]

FileExists


FileExists PowerScript 함수

[설명]

명시한 파일의 존재여부를 나나탠다.

[문법]

FileExists ( filename )

[Argument]

filename

파일 이름을 가진 문자열

[Return 값]

Boolean.

파일이 존재하면 TRUE를 리턴하고, 존재하지 않으면 FALSE를 리턴한다. filename이 NULL이면, FileExists는 NULL을 리턴한다.

[용법]

파일이 다른 응용프로그램에 의하여 잠겨있을 경우, 공유원칙에 위배되기 때문에, FileExists 또한 FALSE를 리턴한다.

[예제]

* Save File 윈도우에서 선택한 파일의 존재여부를 결정하고, 존재할 경우 OK 버튼을 선택하면 겹쳐 쓰도록 한다.

string ls_docname, ls_named

integer li_ret

boolean lb_exist

GetFileSaveName("Select File," ls_docname, &

ls_named, "pbl", &

"Doc Files (*.DOC),*.DOC")

lb_exist = FileExists(ls_docname)

IF lb_exist THEN li_ret = MessageBox("Save", &

"OK to write over" + ls_docname, &

Question!, YesNo!)

[참고]

FileDelete


FileLength PowerScript 함수

[설명]

파일의 길이를 바이트로 나타낸다.

[문법]

FileLength ( filename )

[Argument]

filename

길이를 알고자하는 파일의 이름이 저장된 문자열. filename이 현재 응용프로그램 라이브러리 경로상에 있지 않을 경우, 전체경로를 포함하여 이름을 명시한다.

[Return 값]

Long.

filename에 의하여 확인된 파일의 길이를 바이트로 되돌린다. 파일이 존재하지 않으면, FileLength는 -1을 리턴한다. filename이 NULL일 경우, FileLength는 NULL을 리턴한다.

[용법]

FileRead를 호출하기전에 파일의 길이를 체크하기 위하여 FileOpen 호출 전이나 후에 FileLength를 호출한다. FileRead 함수는 한 번에 최대 32765 문자를 읽을 수 있다.

* File 보안 *

어떠한 보안이 파일에 설정되어 있다면 (예를들어, 네트웍 상에서 그 파일을 공유중이라면), FileOpen 전이나 FileClose 후에 반드시 FileLength를 호출하여야 한다. 그렇지 않으면, 공유원칙에 위배된다.

[예제]

* 현재 디렉토리에 있는 파일 EMPLOYEE.DAT의 길이를 리턴한다.

FileLength("EMPLOYEE.DAT")

* EAST 디렉토리에 있는 EMP.TXT 파일의 길이를 결정하고 오픈한다.

long LengthA

integer li_FileNum

LengthA = FileLength("C:\EAST\EMP.TXT")

li_FileNum = FileOpen("C:\EAST\EMP.TXT", &

StreamMode!, Read!, LockReadWrite!)

[참고]

FileClose

FileOpen

FileRead

FileWrite


FileOpen PowerScript 함수

[설명]

읽거나 기록하기 위하여 명시한 파일을 오픈하고 고유한 integer 파일 번호를 할당한다. 이 정수는 파일을 읽고, 기록하거나 닫을 때 그 파일을 확인하기 위하여 사용한다. 옵션 argument ilemode, fileaccess, filelock, writemode등은 파일이 오픈될 때의 모드를 결정한다. 파일이 존재하지 않을 경우에는, 새 파일이 생성된다.

[문법]

FileOpen ( filename {, filemode {, fileaccess {, filelock {, writemode { creator, filetype }}}}} )

[Argument]

filename

오픈 하려는 파일이름이 저장된 문자열. filename이 탐색 경로상에 있지 않을 경우, 경로명을 포함한 파일명을 입력한다.

filemode

(옵션) FileRead 또는 FileWrite의 끝을 어떻게 할 것인가 명시한 FileMode의 값.

LineMode!

(Default) 한 번에 한 줄씩 파일을 읽거나 기록한다.

StreamMode!

32K씩 파일을 읽는다.

fileaccess

(옵션) 파일의 읽기 용 또는 기록용 오픈 여부를 결정하기 위하여 명시하는 FileAccess의 값

Read!

(Default) 읽기-전용 접근

Write!

쓰기-전용 접근

filelock

(옵션) 오픈된 파일에 다른 사용자의 접근여부를 결정하기 위하여 명시하는 FileLock의 값

LockReadWrite!

(Default) 파일을 오픈한 사용자만 접근가능

LockRead!

파일을 오픈한 사용자만 읽기가능하고, 모든 사용자는 쓰기 접근을 한다.

LockWrite!

파일을 오픈한 사용자만 쓰기가능하고, 모든 사용자는 읽기 접근을 한다.

Shared!

모든 사용자가 읽기와 쓰기 접근이 가능하다.

writemode

(옵션) WriteMode의 값. fileaccess가 Write!이면, 파일내의 존재하는 데이터는 겹쳐써진다.

Append!

(Default) 데이터를 파일의 끝에 기록한다.

Replace!

파일내에 존재하는 모든 데이터를 대치한다. fileaccess argument가 Read!이면, writemode는 무시된다.

creator

(옵션) Macintosh상에서, 4-문자(four-character) 문자열은 파일 생성기를 명시한다. creator를 명시하면, 반드시 filetype도 명시하여야 한다. Macintosh상에서, 파일 생성기는 대소문자를 구분한다. 즉, PWRS와 pwrs 또는 Pwrs는 서로 다르다.

명명된 파일을 발견하지 못하여 FileOpen 함수가 새 파일을 생성하면, creator는 그 파일의 생성기가 된다. creator를 명시하지 않고 FileOpen 함수가 새로운 Macintosh 파일을 생성하였다면, 그 파일의 생성기는 ttxt (TeachText 또는 SimpleText에 관하여)로 설정된다.

creator가 4-문자 문자열이 아니면, 실행 에러가 발생한다. 그렇지 않을 경우, creator는 명명된 파일이 존재할 경우 무시된다. creator는 다른 platform에서는 의미가 없다.

filetype

(옵션) Macintosh상에서, 4-문자 문자열은 파일의 타입을 명시한다. filetype은 대소 문자를 구분한다

명명된 파일을 발견하지 못하여 FileOpen 함수가 새 파일을 생성할 경우, filetype은 그 파일의 타입이 된다. filetype을 명시하지 않고 FileOpen 함수가 새로운 Macintosh 파일을 생성할 경우, 그 파일의 타입은 TEXT로 설정된다.

filetype이 4-문자 문자열이 아니면, 실행 에러가 발생한다. 그렇지 않을 경우, filetype은 명명된 파일이 존재할 경우 무시된다. filetype은 다른 platform에서는 의미가 없다.

[Return 값]

Integer.

처리에 성공하면 filename에 할당된 파일번호를 리턴하고 에러가 발생하면 -1을 리턴한다. argument중에 NULL값이 있으면, FileOpen은 NULL을 리턴한다.

[용법]

line 모드에서 파일이 오픈되면, carriage return (CR), linefeed (LF), 또는 end-of-file mark (EOF)를 만날 때까지 읽기 위하여 FileRead 함수를 각각 호출하여야 한다. 기록하는 각 문자열의 끝에 CR 과 LF를 추가하려면 FileWrite를 각각 호출하여야 한다.

stream 모드에서 파일이 오픈되면, 파일전체(EOF를 만날 때까지) 또는 32765 바이트, 또는 그 이하를 읽기 위하여 FileRead를 한 번 호출한다. FileWrite는 한 번 호출하여 최대 32,765 바이트까지 기록하며, CR 과 LF 문자는 추가되지 않는다.

File not found

PowerBuilder가 파일을 발견하지 못하면, 새 파일을 생성하고, 명시한 이름을 부여한다.

[예제]

* 기본설정된 argument를 사용하여 EMPLOYEE.DAT 파일을 읽기위하여 오픈한다. 기본 설정값은 LineMode!, Read!, 와 LockReadWrite! 이다. FileRead 함수는 파일을 한줄씩 읽고 파일을 닫을때까지 다른 사용자는 그 파일에 접근할 수 없게된다.

integer li_FileNum

li_FileNum = FileOpen("EMPLOYEE.DAT")

* DEPT 디렉토리에 있는 EMPLOYEE.DAT 파일을 쓰기-전용 접근(Write!)을 위하여 스트림 모드(StreamMode!)로 오픈한다. 존재하는 데이터는 겹쳐쓴다 (Replace!). 다른 사용자는 파일에 기록할 수 없다 (LockWrite!).

integer li_FileNum

li_FileNum = FileOpen("C:\DEPT\EMPLOYEE.DAT", &

StreamMode!, Write!, LockWrite!, Replace!)

[참고]

FileClose

FileLength

FileRead

FileWrite


FileRead PowerScript 함수

[설명]

명시한 파일번호(FileOpen 함수에의하여 할당된다)와 연관된 파일로부터 데이터를 읽는다.

[문법]

FileRead ( file#, variable )

[Argument]

file# | 파일이 오픈 될 때 할당된 정수.
variable | 읽으려는 데이터가 들어갈 문자열 이나 blob 이름.

[Return 값]

Integer.

읽은 문자나 바이트 수를 리턴한다. 문자를 읽기 전에 파일의 끝 표시 (EOF)를 만나면, FileRead 함수는 100을 리턴한다. 파일이 LineMode로 오픈 되어있고 문자를 읽기 전에 CR 이나 LF를 만나면, FileRead 함수는 0을 리턴한다. 에러가 발생하면, -1을 리턴한다. 어떤 argument의 값이라도 NULL이 있으면, FileRead 함수는 NULL을 리턴한다.

[용법]

파일이 Line mode로 오픈 되어 있으면, FileRead는 파일의 한 줄을(즉, CR, LF, 또는 EOF 등을 만날 때 까지) 읽는다. 그 라인의 내용은 명시한 variable에 저장되고, 라인의 끝 문자들은 제외, 파일 포인터는 다음라인의 시작지점에 위치한다. 파일이 Stream mode로 오픈 되어 있으면, FileRead는 파일의 끝이나 32,765 바이트를 읽는다. FileRead는 읽기 위한 파일이 오픈 되어있을 경우 그 파일의 시작지점에 위치한 파일 포인터부터 읽기 시작한다. 파일이 32,765 바이트보다 클 경우, FileRead는 읽는 작업이 끝날 때마다 다음 데이터를 읽기 위한 준비를 위하여 자동으로 포인터를 위치시킨다.

FileRead는 한 번에 최대 32,765 문자를 읽을 수 있다. 따라서, FileRead함수를 호출하기 전에, 파일의 길이를 체크하기 위하여 FileLength 함수를 호출하도록 한다. 시스템이 파일 공유나 보안상의 제약을 가지고 있을 경우, FileOpen을 호출하기 전에 FileLength함수를 호출하는 것이 필요할 수도 있다.

파일의 끝 표시는 NULL 문자 (ASCII 값 0)이다. 따라서, 읽는 파일이 null 문자를 포함하고 있을 경우, FileRead는 첫 번째 null 문자에서 읽기를 멈추고, 파일의 끝으로 인식한다.

[예제]

* EMP_DATA.TXT가 FileRead를 한 번 호출하여 읽을 수 있는 최대길이보다 짧을 경우 그 파일을 읽는다.

integer li_FileNum

string ls_Emp_Input

long ll_FLength

ll_FLength = FileLength("C:\HR\EMP_DATA.TXT")

li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", StreamMode!)

IF ll_FLength < 32767 THEN

FileRead(li_FileNum, ls_Emp_Input)

END IF

* EMP_PIC1.BMP를 읽고 그 데이터를 blob Emp_Id_Pic에 저장한다. 읽은 바이트 수는 li_bytes에 저장된다.

integer li_fnum, li_bytes

blob Emp_Id_Pic

li_fnum = FileOpen("C:\HR\EMP_PIC1.BMP", &

StreamMode!)

li_bytes = FileRead(li_fnum, Emp_Id_Pic)

* 32765 바이트를 초과하는 파일을 읽는다. 스크립트로 파일을 읽어 blob tot_b에 넣은 후, 그 데이터를 사용하기 위하여 그 파일의 내용에따라 SetPicture 나 String 함수를 호출할 수 있다.

integer li_FileNum, loops, i

long flen, bytes_read, new_pos

blob b, tot_b

// Set a wait cursor

SetPointer(HourGlass!)

// Get the file length, and open the file

flen = FileLength(sle_filename.Text)

li_FileNum = FileOpen(sle_filename.Text, &

StreamMode!, Read!, LockRead!)

// Determine how many times to call FileRead

IF flen > 32765 THEN

IF Mod(flen, 32765) = 0 THEN

loops = flen/32765

ELSE

loops = (flen/32765) + 1

END IF

ELSE

loops = 1

END IF

// Read the file

new_pos = 1

FOR i = 1 to loops

bytes_read = FileRead(li_FileNum, b)

tot_b = tot_b + b

NEXT

FileClose(li_FileNum)

[참고]

FileClose

FileLength

FileOpen

FileSeek

FileWrite


FileSeek PowerScript 함수

[설명]

파일포인터를 파일의 명시한 위치로 이동한다. 파일 포인터는 파일의 다음 읽기 또는 쓰기가 시작될 곳이다.

[문법]

FileSeek ( file#, position, origin )

[Argument]

file# | 파일을 오픈 할 때 할당된 integer
position | origin에 명시한 위치로부터 상대적인 파일 포인터의 새로운 위치를 나타내는 long 형의 바이트 값
origin | (옵션) 검색을 시작하려는 위치를 명시하기위한 SeekType의 열거형 값.
 | FromBeginning! | (기본값) 파일의 시작위치
 | FromCurrent! | 현재위치
 | FromEnd! | 파일의 끝 위치

[Return 값]

Long.

검색작업을 수행한 후의 파일 위치를 리턴한다. argument의 값 중 NULL이 있으면, FileSeek는 NULL을 리턴한다.

[용법]

stream mode로 오픈 된 이진(binary)파일 내에서 이동하려면 FileSeek를 사용한다. FileSeek는 FileRead 나 FileWrite를 수행하기 위하여 그 파일 내에 파일 포인터를 위치시킨다.

[예제]

* 파일의 끝에서 14 바이트 지점에 파일 포인터를 위치시킨다.

integer li_FileNum

li_FileNum = FileOpen("emp_data")

FileSeek(li_FileNum, -14, FromEnd!)

* 현재 위치에서 파일의끝 방향 14바이트 지점으로 파일포인터를 이동한다. 이 경우, FileOpen이후 파일 포인터에 영향을 주는 처리가 아무것도 일어나지 않았다면, FromCurrent!를 명시하는 것은 FromBeginning!을 명시하는 것과 동일하다.

integer li_FileNum

li_FileNum = FileOpen("emp_data")

FileSeek(li_FileNum, 14, FromCurrent!)

[참고]

FileRead

FileWrite


FileWrite PowerScript 함수

[설명]

명시한 파일 번호와 연관된 파일에 데이터를 기록한다. 파일 번호는 FileOpen에 의하여 파일에 할당된다.

[문법]

FileWrite ( file#, variable )

[Argument]

file# | 파일이 오픈 될 때 할당된 integer.
variable | 파일에 기록하려는 데이터 값을 가진 문자열이나 blob.

[Return 값]

Integer.

처리에 성공하면 기록한 문자 또는 바이트 수를 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

FileWrite는 파일 포인터에 의하여 확인된 위치에 데이터를 기록한다. 파일의 writemode argument가 Replace!로 설정되어 오픈 되었다면, 파일 포인터는 파일의 시작위치로 초기화된다. 각각의 FileWrite를 호출한 후에, 파일 포인터는 즉시 마지막 기록 다음위치로 이동한다. 파일의 writemode argument가 Append!로 설정되어 오픈 되었다면, 파일 포인터는 파일의 끝 위치로 초기화되고 각각의 기록 후 그 파일의 끝으로 이동한다.

FileWrite는 파일 포인터를 마지막으로 기록된 문자 다음위치로 설정한다. 파일이 line mode로 오픈 된 경우, FileWrite는 variable내의 마지막 문자다음에 carriage return (CR) 과 linefeed (LF)를 기록하고, 파일 포인터를 CR 과 LF 다음에 위치시킨다.

* 주의 *

FileWrite는 문자열 끝 문자를 포함하여 한 번에 32,766 바이트만 기록 가능하다. variable의 길이가 32,765를 초과할 경우, FileWrite는 처음부터 32,765 문자들을 기록하고 32,765를 리턴한다.

[예제]

* EMP_DATA.TXT를 오픈하고 파일의 끝에 문자열 "New Employees"를 기록한다. 메모리변수 li_FileNum는 오픈된 파일의 번호를 저장하고 있다.

integer li_FileNum

li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", &

LineMode!, Write!, LockWrite!, Append!)

FileWrite(li_FileNum, "New Employees")

* 데이터베이스로부터 blob을 읽고 파일에 기록한다. SQL SELECT 문장은 그림 데이터를 blob Emp_Id_Pic에 할당한다. 다음에, FileOpen은 기록을 위하여 stream mode로 파일을 오픈 하고 FileWrite는 blob을 파일에 기록한다. 한 번 FileWrite를 호출하여 처리하기 위한 것보다 blob이 큰지 여부를 테스트하기 위하여 Len 함수를 사용할 수도 있다.

integer li_FileNum

blob emp_id_pic

SELECTBLOB salary_hist

INTO :emp_id_pic

FROM Employee

WHERE Employee.Emp_Num = 100

USING Emp_tran;

li_FileNum = FileOpen( &

"C:\EMPLOYEE\EMP_PICS.BMP", &

StreamMode!, Write!, Shared!, Replace!)

FileWrite(li_FileNum, emp_id_pic)

[참고]

FileClose

FileLength

FileOpen

FileRead

FileSeek


Fill PowerScript 함수

[설명]

명시한 길이만큼 지정한 문자를 반복함으로써 문자열을 구축한다.

[문법]

Fill ( chars, n )

[Argument]

chars | 리턴할 문자열을 반복하여 채울 값을 가진 문자열
n | 리턴을 원하는 문자열의 길이 값을 가진 long

[Return 값]

String.

argument chars내의 문자들로 n 문자만큼 채워진 문자열을 리턴한다. argument chars가 n 개의 문자보다 많을 경우, chars의 처음부터 n개의 문자만 사용된다. argument chars가 n 개의 문자보다 적을 경우, chars내의 문자들은 n개의 문자가 될 때까지 반복된다. argument의 값 중 NULL이 있으면, Fill은 NULL을 리턴한다.

[용법]

인쇄 루틴에서 줄(line)을 생성하거나 다른 특별한 효과를 내려면 Fill 함수를 사용한다. 예를 들어, asterisk로 금액 라인을 채우거나, 칼럼아래에 hyphen을 반복시킴으로써 screen display내에 합계라인을 나타낼 수 있다.

[예제]

* asterisk가 35개 반복된 문자열을 리턴한다.

Fill("*", 35)

* 문자열 -+-+-+-을 리턴한다.

Fill("-+", 7)

* tilde(~)를 10개 리턴한다.

Fill("~", 10)

[참고]

Space

Fill(DataWindow painter 함수)


Filter PowerScript 함수

[설명]

현재 필터 기준을 통과한 DataWindow내의 row를 나타낸다. 필터 조건에 맞지않는 row는 필터 버퍼로 이동된다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Filter ( )

[Argument]

dwcontrol

필터를 원하는 DataWindow control, DataStore, child DataWindow 등의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, Filter 함수는 NULL을 리턴한다.

[용법]

Filter는 DataWindow에 관한 현재 필터조건을 사용한다. 필터 조건을 변경하려면, SetFilter 함수를 사용한다. SetFilter 함수는 DataWindow painter의 Rows메뉴에서 Filter 명령을 사용하는 것과 동일하다. Filter를 호출하기 전에 필터를 설정하기 위하여 SetFilter를 호출하지 않으면, Filter는 DataWindow object 정의 내에 명시한 필터를 사용한다.

DataWindow에 관한 데이터를 받기 위하여 Retrieve 함수를 사용할 때, PowerBuilder는 DataWindow object에 관하여 정의된 필터를 적용한다. 따라서, SetFilter를 이용하여 필터조건을 변경한 이후나 어떤 처리 또는 사용자 입력에 의하여 데이터가 변경되었을 경우에만 Filter 함수의 호출이 필요하다.

Retrieve As Needed가 설정되어있을 경우, Filter 함수는 모든 row를 구한 후 필터를 적용하기 때문에 그 효과가 취소된다.

Filter 함수는 혼합된(composite) report 내의 DataWindow 상에서는 아무 효과가 없다.

* Filtering 과 group *

그룹을 가진 DataWindow를 필터할 경우, Filter를 호출한 후 GroupCalc 함수를 호출할 필요가 발생할 수도 있다.

[예제]

* 현재 필터 조건을 이용하여 dw_Employee의 row를 나타낸다.

dw_Employee.Filter( )

[참고]

FilteredCount

RowCount

SetFilter


FilteredCount PowerScript 함수

[설명]

현재 필터 조건에 의하여 DataWindow에 나타나지않은 row의 수를 리턴한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.FilteredCount ( )

[Argument]

dwcontrol

필터 되어 표시되지않은 row의 수를 알고자 하는 DataWindow control, DataStore, child DataWindow 등의 이름

[Return 값]

Integer.

현재 필터조건과 일치하지 않은 이유로 나타나지않은 dwcontrol의 row 수를 리턴한다. 모든 row가 나타나면 0을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면,

[용법]

DataWindow object는 정의의 한 부분으로 필터를 가질 수 있다. DataWindow가 데이터를 받아들인 후, 필터는 적용되고 필터조건에 맞지않은 row는 필터 버퍼로 이동된다. 필터 조건은 SetFilter 함수를 호출함으로써 변경할 수 있으며, 사용자는 Filter를 호출함으로써 새로운 필터조건을 적용할 수 있다.

[예제]

* dw_Employee의 자료를 받아들이고, 지역코드가 617인 고용자를 나타낸 후, 다른 범위의 데이터가 받아들여 졌는지 테스트한다. 필터조건을 명시한 지역코드가 DataWindow 정의의 한 부분일 경우는, Retrieve를 호출한 이후에 자동적으로 적용되므로 SetFilter 와 Filter함수를 호출할 필요가 없다.

dw_Employee.Retrieve()

dw_Employee.SetFilter("AreaCode=617")

dw_Employee.Filter()

// 필터조건에 맞지않는 데이터가 있는지 확인한다.

IF dw_Employee.FilteredCount( ) > 0 THEN

. . . // 지역코드가 617이 아닌 row를 처리한다

END IF

* dw_Employee의 데이터를 구하여 이름이 B로 시작하지 않는 사원의 수를 나타낸다.

dw_Employee.Retrieve()

dw_Employee.SetFilter( &

"Left(emp_lname, 1)=~"B~"")

dw_Employee.Filter()

IF dw_Employee.FilteredCount( ) > 0 THEN

MessageBox("Employee Count", &

String(dw_Employee.FilteredCount( )) + &

"Employee names do not begin with B.")

END IF

[참고]

Filter

ModifiedCount

RowCount

SetFilter


Find PowerScript 함수: syntax 1

[설명]

명시한 조건에 맞는 데이터를 가진 DataWindow 나 DataStore에서 row를 찾는다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Find ( expression, start, end )

[Argument]

dwcontrol | detail band를 검색하려는 DataWindow control, DataStore, child DataWindow 등의 이름.
expression | 검색조건으로 사용할 논리 표현식을 갖는 문자열. expression은 칼럼 이름을 포함한다.
start | 검색을 시작할 row 위치를 나타내는 long. start는 row의 수보다 클 수 있다.
end | 검색을 종료할 row 위치를 나타내는 long. end는 row의 수보다 클 수 있다. 반대 방향으로 검색하려는 end를 start보다 작게 한다.

[Return 값]

Long.

검색범위 내에서 검색조건에 맞는 첫 번째 row번호를 리턴한다. row를 발견하지 못하면 0을 리턴하고 에러가 발생하면 -1을 리턴한다. argument의 값중에 NULL이 있으면, Find는 NULL을 리턴한다.

[용법]

검색은 대소문자를 구별한다. 칼럼내의 값을 텍스트와 비교할 때, 대소문자가 반드시 일치하여야 한다.

모든 row를 검색하기위한 loop내에서 Find함수를 사용할 경우, 마지막 row가 검색조건에 만족하면 무한루프가 발생할 것이다. start값이 end값보다 크면, 반대 방향으로 검색하고 계속 진행되므로 무한 루프가 발생된다.

이 문제를 해결하려면, end값을 row수보다 1 크게 만든다 (예제참조). 또 다른 방법으로는, 아래의 예, 루프 내에서 현재 row가 row 수보다 큰지 여부를 체크하여, 루프를 빠져 나오도록 한다.

long ll_find = 1, ll_end

ll_end = dw_main.RowCount( )

ll_find = dw_main.Find(searchstr, ll_find, ll_end)

DO WHILE ll_find > 0

... // 발견한 row를 처리한다.

ll_find++

// 무한루프를 방지한다.

IF ll_find > ll_end THEN EXIT

ll_find = dw_main.Find(searchstr, ll_find, ll_end)

LOOP

[예제]

* dw_status에서 emp_salary 칼럼의 값이 100,000보다 큰 첫 번째 row을 검색한다. 검색은 3번째 row에서 시작하여 마지막 row까지 계속한다.

dw_status.Find("emp_salary > 100000", 3, &

dw_status.RowCount( ))

* 하나이상의 칼럼값을 테스트하기 위하여, 결합조건 표현식에 논리 연산자를 이용한다. 성명이 Smith이고 급여가 100,000 이상인 사원을 검색한다.

dw_status.Find( &

"emp_lname = 'Smith' and emp_salary > 100000", &

1, dw_status.RowCount( ))

* ls_Name이라 명명된 SingleLineEdit에 입력한 값과 일치하는 dw_emp의 첫 번째 row를 검색한다. 검색 표현식의 이름 주위에는 홑 따옴표가 추가 된 것에 주의한다.

string ls_lname_emp

long ll_nbr, ll_foundrow

ll_nbr = dw_emp.RowCount( )

ls_lname_emp = Trim(sle_Name.Text)

ll_foundrow = dw_emp.Find( &

"emp_lname = '"+ ls_lname_emp +"'", 1, ll_nbr)

* emp_id의 값이 null인 첫 번째 row를 검색한다. null을 발견하지 못하면, DataWindow object를 갱신하고, 발견하면 메시지를 나타낸다.

IF dw_status.AcceptText( ) = 1 THEN

IF dw_status.Find("IsNull(emp_id)", &

1, dw_status.RowCount( )) > 0 THEN

MessageBox("Caution", "Cannot Update")

ELSE

dw_status.Update( )

END IF

END IF

* 명시한 검색조건과 일치하는 다음 row를 검색하고 그 row로 스크롤하는 Find Next command 버튼의 스크립트이다. 버튼일 클릭 될때마다, 발견한 row의 수는 instance 변수 il_found에 저장된다. 검색이 끝에 도달하면, row를 발견하지 못하였다는 메시지를 나타낸다. 다음 검색은 첫 번째 row부터 시작한다.

long ll_row

// 검색을 시작하기위한 row번호를 instance에서 구한다.

ll_row = il_found

// 미리 정의된 조건을 이용하여 검색한다

ll_row = dw_main.Find( &

"item_id = 3 or item_desc = 'Nails'", &

ll_row, dw_main.RowCount() )

IF ll_row > 0 THEN

// row를 발견하면, 스크롤한 후 현재 row로 설정한다

dw_main.ScrollToRow( ll_row )

ELSE

MessageBox("Not Found", "No row found.")

END IF

// 다음 row를 찾기위한 시작위치로 사용하기위해

// 저장한다.

il_found = ll_row + 1

* dw_main에서 모든 row를 검색하고 소문자 a가 포함된 이름의 리스트를 만든다. 마지막 row의 이름이 검색조건을 만족할 경우 무한루프가 발생하는 것을 방지하기 위하여 검색의 end 값이 row수보다 1 큰 것에 주의 한다.

long ll_find, ll_end

string ll_list

// end값이 row수보다 1 크다

ll_end = dw_main.RowCount( ) + 1

ll_find = 1

ll_find = dw_main.Find("Pos(last_name,'a') > 0", &

ll_find, ll_end)

DO WHILE ll_find > 0

//이름을 모은다

ll_list = ll_list + '~r' &

+ dw_main.GetItemString( ll_find, 'last_name')

// 검색을 계속한다.

ll_find++

ll_find = dw_main.Find("Pos(last_name,'a') > 0",&

ll_find, ll_end )

LOOP

[참고]

FindGroupChange

FindRequired

Find : Syntax2

Find PowerScript 함수: syntax 2

[설명]

control내에서 명시한 텍스트를 찾고 찾은 텍스트를 반전시킨다. 사용자는 검색방향과 전체단어의 일치여부와 대소문자 구분 등을 명시할 수 있다.

[적용]

RichTextEdit controls 와 RichTextEdit presentation style을 가지고있는 DataWindow controls (또는 DataStore objects).

[문법]

controlname.Find ( searchtext, forward, insensitive, wholeword, cursor )

[Argument]

controlname | 검색하려는 내용을 지닌 RichTextEdit, DataWindow control, DataStore 등의 이름
searchtext | 찾으려는 텍스트 값이 저장된 문자열.
forward | 검색 방향을 나타내는 논리(boolean) 값.
 | TRUE | 현재 커서위치부터 앞으로 진행하면서 검색거나, 커서가 위치하지 않을 경우, 문서의 처음부터 앞으로 진행하면서 검색한다.
 | FALSE | 현재 커서위치부터 뒤로 진행하면서 검색거나, 커서가 위치하지 않을 경우, 문서의 끝부터 뒤로 진행하면서 검색한다.
insensitive | 검색할 텍스트와 발견된 텍스트의 대소문자가 반드시 일치해야 하는지 여부를 나타내는 논리(boolean) 값.
 | TRUE | 대소문자를 구분하지 않는다.
 | FALSE | 대소문자를 구분한다.
wholeword | 발견된 문자가 반드시 단어전체 이어야 하는지 여부를 나타내는 논리(boolean) 값.
 | TRUE | 발견한 문자가 단어전체 이어야 한다.
 | FALSE | 발견한 문자가 단어의 일부도 가능하다.
cursor | 검색시작 위치를 나타내는 논리(boolean) 값.
 | TRUE | 커서위치부터 검색을 시작한다.
 | FALSE | forward가 TRUE면 문서의 처음부터 검색을 시작하고, FALSE면 문서의 마지막부터 검색을 시작한다.

[Return 값]

Integer.

발견한 문자의 수를 리턴한다. 검색할 텍스트와 일치하는 내용을 찾지 못하면 0을 리턴하고, DataWindow의 presentation style이 RichTextEdit가 아니거나 에러가 발생하면 -1을 리턴한다.

[예제]

* SingleLineEdit sle_search에 명시한 텍스트를 RichTextEdit rte_1에서 검색한다. 검색은 현재 커서위치부터 앞으로 진행하고, 대소문자를 구별하지 않고, 전체 단어검색에 대한 제한을 두지 않는다.

integer li_charsfound

li_charsfound = rte_1.Find( sle_search.Text, &

TRUE, TRUE, FALSE, TRUE )

[참고]

FindNext

Find : Syntax1


FindCategory PowerScript 함수

[설명]

category 레이블을 알고있을 때 그래프에서 category의 수를 얻는다.

[적용]

윈도우와 사용자 object에있는 그래프, DataWindow control 과 DataStore object 내의 그래프

[문법]

controlname.FindCategory ( { graphcontrol, categoryvalue } )

[Argument]

controlname | 명시한 category를 찾기 위한 그래프의 이름이나, 그 그래프를 포함하고 있는 DataWindow control 또는 DataStore의 이름을 나타내는 문자열.
graphcontrol | (DataWindow control 과 DataStore만 해당) 명시한 category를 발견하기위한 DataWindow control 이나 DataStore내의 그래프 이름을 나타내는 문자열.
categoryvalue | category 축과 동일한 데이터 타입을 갖는 category의 값

[Return 값]

Integer.

그래프 controlname내의 categoryvalue, 혹은 controlname이 DataWindow control 이나 DataStore일 경우, graphcontrol안에 명명된 category번호를 리턴한다. 에러가 발생할 경우 FindCategory는 -1을 리턴하고, argument중에 NULL이 있으면 NULL을 리턴한다.

[용법]

대부분의 category를 다루는 함수들은 category의 이름보다는 번호를 요구한다. 그러나, category를 삭제하고 입력하면, 기존의 category들은 일련번호를 유지하기 위하여 번호가 재부여된다. category의 레이블만을 알고있거나 부여된 번호가 변경되었을 경우에는 FindCategory 함수를 사용한다.

[예제]

* 그래프 gr_product_data의 category 번호를 구한다. category 이름은 SingleLineEdit sle_category의 text이다.

integer CategoryNbr

CategoryNbr = &

gr_product_data.FindCategory(sle_category.Text)

* DataWindow control dw_equipment의 그래프 gr_computers내에 Qty라 명명된 category의 번호를 구한다.

integer CategoryNbr

CategoryNbr = &

dw_equipment.FindCategory("gr_computers", "Qty")

[참고]

AddCategory

DeleteData

DeleteSeries

FindSeries


FindGroupChange PowerScript 함수

[설명]

명시한 그룹에 관한 다음 위치를 찾는다. 그룹 변경은 그룹의 칼럼 값이 변경될 때 발생한다. FindGroupChange는 다음 그룹의 시작 row를 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.FindGroupChange ( row, level )

[Argument]

dwcontrol | 검색하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 변경된 그룹에관한 검색을 시작하려는 row 값(long).
level | 검색하려는 그룹의 번호. 그룹의 번호는 사용자가 정의하는 순서에따라 부여된다.

[Return 값]

Long.

그룹 칼럼이 새 값을갖는 row 번호를 리턴하며, 이는 새로운 그룹의 시작 위치를 의미한다. 그룹 칼럼이 변경되지 않았을 경우 0을 리턴하고 에러가 발생하면 음수를 리턴한다. argument의 값 중에 NULL이 있으면, FindGroupChange는 NULL을 리턴한다.

리턴되는 값은 row의 값에 따라 다음 법칙에 근거한다. 시작하는 row가:

* 그룹내의 첫 번째 row면, FindGroupChange는 시작하는 row 번호를 리턴한다.

* 그룹내의 row면, FindGroupChange는 다음 그룹의 첫 번째 row 번호를 리턴한다.

* 마지막 그룹 내에 있는 row면, 마지막 그룹의 첫 번째 row는 아니다, FindGroupChange는 0을 리턴한다.

[용법]

시작 row가 명시한 레벨의 새로운 section을 시작할 경우, row는 1을 리턴한다. 하위 레벨의 검색을 계속하려면, 시작 row을 증가 시킨다.

[예제]

* dw_regions의 그룹 2의 첫 번째 위치를 찾는다. 검색은 5번째 row에서 시작한다.

dw_regions.FindGroupChange(5, 2)

* 그룹이 바뀌는 row 번호를 찾는다. 다음에, 부서 번호가 121인지 체크 한다. 검색은 0번 row에서 시작한다.

boolean lb_found

long ll_breakrow

lb_found = FALSE

ll_breakrow = 0

DO WHILE NOT (lb_found)

ll_breakrow = dw_1.FindGroupChange( &

ll_breakrow, 1)

// 변경된 그룹이 없으면 루프를 빠져나간다

IF ll_breakrow <= 0 THEN EXIT

// 부서번호가 121인지 체크한다

IF dw_1.GetItemNumber(ll_breakrow, &

"dept_id") = 121 THEN

lb_found = TRUE

END IF

// 다음 그룹을 찾기 위하여 시작 row를 증가 시킨다 next break

ll_breakrow = ll_breakrow + 1

LOOP

IF lb_found = FALSE THEN

MessageBox( &

"Not Found", &

"The Department was not found.")

ELSE

. . . // 부서번호 121에 대한 처리를 한다

END IF

[참고]

Find

FindRequired


FindItem PowerScript 함수: syntax 1

[설명]

명시한 검색 텍스트로 시작하는 listbox내의 다음 아이템을 찾는다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.FindItem ( text, index )

[Argument]

listboxname | 아이템을 찾으려는 listbox control의 이름.
text | 찾으려는 아이템의 시작 텍스트를 가진 문자열
index | 검색된 첫 번째 아이템 바로 이전 아이템의 번호. 리스트 전체를 검색하려면 0을 명시한다.

[Return 값]

Integer.

첫 번째로 일치하는 아이템의 인덱스를 리턴한다. 아이템이 일치 하려면, 반드시 명시한 텍스트로 시작하여야 하지만, 아이템 텍스트는 명시한 텍스트보다 더 길 수도 있다. 일치하는 아이템을 발견하지 못하거나 에러가 발생하면, FindItem은 -1을 리턴한다. argument 중에 NULL이 있으면, FindItem은 NULL을 리턴한다.

[용법]

FindItem이 일치하는 아이템을 발견하면, 그 아이템의 인덱스를 리턴하지만 그 아이템을 선택(반전)하지는 않는다. 발견한 아이템을 선택하려면, SelectItem 함수를 사용하여야 한다.

[예제]

* ListBox lb_actions의 내용이 다음과 같다고 가정하자:

Index number | Item text
1 | Open files
2 | Close files
3 | Copy files
4 | Delete files

아이템 2번부터 시작하여 Delete로 시작하는 아이템을 찾는다.

integer Index

Index = lb_actions.FindItem("Delete", 1)

[참고]

AddItem

DeleteItem

InsertItem

SelectItem

FindItem: Syntax 2

FindItem: Syntax 3

FindItem: Syntax 4

FindItem PowerScript 함수: syntax 2

[설명]

명시한 검색 텍스트와 일치하는 레이블을 가진 아이템을 찾는다.

[적용]

ListView controls

[문법]

listviewname.FindItem ( startindex, label, partial, wrap )

[Argument]

listviewname | 아이템을 검색하려는 ListView control
startindex | 검색을 시작하려는 인덱스 번호
label | 검색하려는 문자열
partial | TRUE로 설정할 경우, 레이블의 일부분이 일치하는 것도 찾는다
wrap | TRUE로 설정할 경우, 검색을 마친후 첫 번째 인덱스 아이템으로 되돌아온다

[Return 값]

Integer.

처리에 성공하면 발견한 아이템의 인덱스를 리턴하고, 에러가 발생하면 -1을 되돌린다.

[용법]

기본적으로 검색은 startindex + 1부터 시작kam로, 시작위치부터 검색하려면 0을 명시하도록 한다.

partial이 TRUE로 설정되어있을 경우, 명시한 텍스트로 시작하는 어떠한 레이블도 검색 문자열에 부합된다. partial이 FALSE로 설정되어있을 경우, 검색 문자열은 반드시 레이블 전체와 일치하여야 한다.

wrap이 TRUE로 설정되어있을 경우, 끝까지 검색한 후에는 첫 번째 인덱스 아이템으로 다시 돌아온다. wrap이 FALSE로 설정되어있으면, ListView의 마지막 인덱스 아이템에서 검색을 중단한다.

FindItem은 발견한 아이템을 선택하지 않기 때문에, 아이템의 Selected property를 이용하여 선택하여야 한다.

[예제]

* SingleLineEdit control로부터 값을 구하여 아이템을 찾는다.

listviewitem l_lvi

integer li_index

string ls_label

ls_label = sle_find.Text

IF ls_label = "" THEN

MessageBox("Error" , &

"Enter the name of a list item")

sle_find.SetFocus()

ELSE

li_index = lv_list.FindItem(0,ls_label, TRUE,TRUE)

END IF

IF li_index = -1 THEN

MessageBox("Error", "Item not found.")

ELSE

lv_list.GetItem (li_index, l_lvi )

l_lvi.HasFocus = TRUE

l_lvi.Selected = TRUE

lv_list.SetItem(li_index,l_lvi)

END IF

[참고]

AddItem

DeleteItem

InsertItem

SelectItem

FindItem: Syntax 1

FindItem: Syntax 3

FindItem: Syntax 4

FindItem PowerScript function: syntax 3

[설명]

ListView control내에서 명시한 위치에 상대적으로 다음 아이템을 찾는다.

[적용]

ListView controls

[문법]

listviewname.FindItem ( startindex, direction, focused, selected, cuthighlighted, drophighlighted )

[Argument]

listviewname | 아이템을 찾으려는 ListView control
startindex | 검색을 시작하려는 인덱스 번호
direction | 검색할 방향. DirectionAll! DirectionUp! DirectionDown! DirectionLeft! DirectionRight!
focused | TRUE로 설정되어있으면, focus를 가진 다음 ListView 아이템을 찾는다.
selected | TRUE로 설정되어있으면, 선택되어있는(반전된) 다음 ListView 아이템을 찾는다.
cuthighlighted | TRUE로 설정되어있으면, cut 작용이 일어난 다음 ListView 아이템을 찾는다.
drophighlighted | TRUE로 설정되어있으면, drag 와 drop 작용이 일어난 다음 ListView 아이템을 찾는다.

[Return 값]

Integer.

처리에 성공하면 발견한 아이템의 인덱스를 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

기본적으로 검색은 startindex + 1부터 시작kam로, 시작위치부터 검색하려면 0을 명시하도록 한다.

FindItem은 발견한 아이템을 선택하지 않기 때문에, 아이템의 Selected property를 이용하여 선택하여야 한다.

focused, selected, cuthighlighted, drophighlighted가 FALSE로 설정되어 있다면, ListView control내의 다음 아이템을 찾는다.

[예제]

* 선택한 ListView 아이템부터 검색한다.

listviewitem l_lvi

integer li_index li_startindex

li_startindex = lv_list.SelectedIndex( ) //선택한 아이템의 인덱스

li_index = lv_list.FindItem(li_startindex, &

DirectionDown!, FALSE, FALSE ,FALSE, FALSE)

IF li_index = -1 THEN

MessageBox("Error", "Item not found.")

ELSE

lv_list.GetItem (li_index, l_lvi )

l_lvi.HasFocus = TRUE

l_lvi.Selected = TRUE

lv_list.SetItem(li_index,l_lvi)

END IF

[참고]

AddItem

DeleteItem

InsertItem

SelectItem

FindItem: Syntax 1

FindItem: Syntax 2

FindItem: Syntax 4

FindItem PowerScript function: syntax 4

[설명]

TreeView control에서 자신의 위치에 근거하여 아이템을 찾는다.

[적용]

TreeView controls

[문법]

treeviewname.FindItem ( navigationcode, itemhandle )

[Argument]

treeviewname | 명시한 아이템을 찾으려는 TreeView control.
navigationcode | 반드시 핸들(handle)에 의하여 구별될 수 있는 아이템의 관계(relationship) RootTreeItem! NextTreeItem! PreviousTreeItem! ParentTreeItem! ChildTreeItem! FirstVisibleTreeItem! NextVisibleTreeItem! PreviousVisibleTreeItem! CurrentTreeItem! DropHighlightTreeItem!
itemhandle | 검색중인 아이템과 연관된 아이템에 관한 핸들

[Return 값]

Long.

처리에 성공하면 아이템 핸들(handle)을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

FindItem은 발견한 아이템을 선택하지 않기 때문에, 아이템의 Selected property를 이용하여 선택하여야 한다.

[예제]

* TreeView control의 현재 레벨을 찾는다.

long ll_tvi

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

* TreeView control의 root 레벨을 찾는다.

long ll_tvi

ll_tvi = tv_list.FindItem(RootTreeItem! , 0)

[참고]

AddItem

DeleteItem

InsertItem

SelectItem

FindItem: Syntax 1

FindItem: Syntax 2

FindItem: Syntax 3


FindNext PowerScript function

[설명]

이전에 호출한 Find 함수의 검색기준을 사용하여, control내에서 다음에 나타나는 텍스트를 찾고 그것을 반전시킨다.

[적용]

RichTextEdit controls 와 RichTextEdit 표현 형식을 가진 DataWindow controls

[문법]

controlname.FindNext ( )

[Argument]

controlname

검색할 내용을 가진 RichTextEdit 나 DataWindow control의 이름

[Return 값]

Integer.

발견한 문자 수를 리턴한다. 일치하는 텍스트가 없으면 0을 리턴하고, DataWindow의 표현 형식이 RichTextEdit가 아니거나 에러가 발생하면 -1을 리턴한다.

[예제]

* SingleLineEdit sle_search에 명시한 텍스트를 RichTextEdit rte_1에서 찾는다. 검색 진행은 현재 커서 위치부터 앞쪽으로 진행하고, 대소문자는 구분하지 않고, 단어 전체가 일치하지 않아도 검색조건에 부합되는 것으로 한다.

integer li_charsfound

li_charsfound = rte_1.Find( sle_search.Text, &

TRUE, TRUE, FALSE, TRUE )

* 위의 조건으로 다음에 나타나는 텍스트를 찾는다.

rte_1.FindNext( )

[참고]

Find


FindRequired PowerScript 함수

[설명]

NULL값을 포함하고 있는 필수 입력 row 와 column을 나타낸다. argument는 검색을 시작할 위치와 검색 결과를 저장할 곳을 명시한다. FindRequired에서 삽입과 수정된 row들만 체크하도록 명시함으로써 검색 속도를 향상 시킬 수 있다.

[적용]

DataWindow controls 와 DataStore objects

[문법]

dwcontrol.FindRequired ( dwbuffer, row, colnbr, colname, updateonly )

[Argument]

dwcontrol | NULL 값을 가진 필수입력 칼럼을 찾으려는 DataWindow control 이나 DataStore의 이름.
dwbuffer | 필수 입력 칼럼을 찾기위한 DataWindow 버퍼. Primary! Filter!
row | 검색될 첫 번째 row 번호(long). row는 또한 발견한 row의 번호를 저장한다. FindRequired는 각 row의 칼럼들을 평가한 후에 자동으로 row 번호를 증가시킨다. NULL 값을 갖는 필수 입력 칼럼을 발견하면, row 번호는 row에 저장된다. 마지막 row의 마지막 칼럼을 평가한 후에, FindRequired 함수는 row를 0으로 설정한다.
colnbr | 검색될 첫 번째 칼럼번호(integer). colnbr은 또한 발견한 칼럼의 번호를 저장한다. 마지막 칼럼을 평가한 후, FindRequired는 colnbr을 1로 설정하고 row를 증가 시킨다. NULL 값을 갖는 필수 입력 칼럼을 발견하면, 칼럼 번호는 colnbr에 저장된다.
colname | NULL 값을 갖는 필수 입력 칼럼이름을 저장할 string (colnbr의 이름).
updateonly | 삽입 또는 수정된 colmun 또는 row만 검색할 것인지 여부를 나타내는 boolean.
 | TRUE | 변경된 colmun 또는 row만 검색한다. 규모가 큰 DataWindows의 경우는 수행 능력을 향상시키기 위하여 updateonly를 TRUE로 설정한다.
 | FALSE | 모든 colmun 과 row를 평가한다.

[Return 값]

Integer.

row를 성공적으로 체크하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument의 값 중에 NULL이 있으면, FindRequired는 NULL을 리턴한다.

[용법]

FindRequired 함수는 빈 필수입력 칼럼 (빈 문자열이 아니라 NULL 값을 가지는 칼럼)을 검색한다.

필수입력 칼럼으로 만들려면, 스크립트에서 Required property를 TRUE로 설정하거나 DropDownListBox, Edit, EditMask 등의 편집 스타일 윈도우에서 Required 체크박스에 체크 한다.

새로 추가된 row의 칼럼은 기본값을 갖고있지 않는 한, NULL 값을 갖는다. updateonly가 FALSE라면, FindRequired는 새 row들 안의 비어있는 필수입력 칼럼들을 찾아준다. updateonly가 TRUE라면, FindRequired는 새로 추가된 빈 row가 데이터베이스에 update되지 않았기 때문에 새 row들을 체크하지 않는다.

row을 수정하고 빈 칼럼 상태로 해당 칼럼을 벗어날 때, 새로운 값은 그 칼럼의 편집 스타일 윈도우에서 Empty String Is NULL 체크박스에 체크하지 않는 한 빈 문자열 (empty space)이 된다.

[예제]

* dw_1의 필수입력 칼럼에 값이들어가지 않은 모든 row의 번호와 칼럼 이름을 나열한다. 이 때의 목록은 MultiLineEdit mle_required에 표시된다.

long row = 1

integer colnbr = 0

string colname

mle_required.Text = ""

DO WHILE row <> 0

colnbr++ // 다음 칼럼에서 검색을 계속한다

// 에러가 발생하면, 빠져나간다

IF dw_1.FindRequired(Primary!, &

row, colnbr, &

colname, FALSE) < 0 THEN EXIT

// row를 발견하면, 그 row와 칼럼을 저장한다

IF row <> 0 THEN

mle_required.Text = mle_required.Text &

+ String(row) + "~t" &

+ colname + "~r~n"

END IF

// FindRequired가 0을 리턴하면 (찾는 row가 더이상

// 없으면), 루프를 빠져나간다

LOOP

* DataWindow control내의 필수입력 칼럼에 값을 입력하도록 하기위한 함수.

하나의 DataWindow control argument를 선언한다.

DataWindow adw_control

사용자의 마지막 입력내용을 받아들일 수 없거나 FindRequired에서 에러가 발생하면 -2를 리턴한다. 비어있는 필수입력 칼럼을 발견하면 -1을 리턴한다. 모든 필수입력 칼럼에 값이 들어있으면 1을 리턴한다.

integer li_colnbr = 1

long ll_row = 1

string ls_colname, ls_textname

// 마지막 입력자료의 수용여부를 체크한다

IF adw_control.AcceptText() = -1 THEN

adw_control.SetFocus()

RETURN -2

END IF

// 첫 번째 빈 row와 칼럼을 찾는다

IF adw_control.FindRequired( Primary!, ll_row, &

li_colnbr, ls_colname, true ) < 0 THEN

// 에러가 발생하면 -2를 리턴한다

RETURN -2

END IF

// row를 발견하면

IF ll_row <> 0 THEN

// 칼럼의 레이블을 구한다

ls_textname = ls_colname + "_t.Text"

ls_colname = adw_control.Describe(ls_textname)

// 사용자에게 메시지를 보낸다

MessageBox("Required Value Missing", &

"Please enter a value for '" &

+ ls_colname &

+ "', row " &

+ String(ll_row) + ".",

StopSign! )

// 발견한 칼럼을 현재 칼럼으로 만든다

adw_control.SetColumn(li_colnbr)

adw_control.ScrollToRow(ll_row)

adw_control.SetFocus()

RETURN -1

END IF

// 모든 row의 필수입력 칼럼이

// 데이터를 가지고있으면 1을 리턴한다

RETURN 1

[참고]

Find

FindGroupChange

MessageBox

ScrollToRow

SetColumn

SetTransObject


FindSeries PowerScript 함수

[설명]

series이름을 알고있을 때 그래프의 series 번호를 알아낸다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow controls 와 DataStore objects내의 그래프

[문법]

controlname.FindSeries ( { graphcontrol, seriesname } )

[Argument]

controlname | 번호를 알고자하는 series를 포함하고있는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 이나 DataStore의 이름
graphcontrol | (DataWindow control 과 DataStore만 해당) series를 포함하고있는 DataWindow control 이나 DataStore내의 그래프 이름
seriesname | 번호를 알고자 하는 series의 이름

[Return 값]

Integer.

그래프 controlname내의 seriesname, 또는 controlname이 DataWindow control이나 DataStore일 경우는 graphcontrol로 나타낸 series의 번호를 리턴한다. 에러가 발생할 경우, FindSeries는 -1을 리턴한다. argument의 값중에 NULL이 있으면, NULL을 리턴한다.

[용법]

series를 취급하는 함수의 대부분은 series의 이름대신 번호를 요구한다. 그러나, series를 삭제하고 삽입할 때에는, 기존의 series들은 번호가 연속적으로 재부여된다. series의 이름만 알고있을 경우나 series의 번호가 변경되었을 경우에는 FindSeries 함수를 사용한다.

[예제]

* SingleLineEdit sle_series에 입력된 그래프 gr_product_data의 series 번호를 SeriesNbr에 저장한다.

integer SeriesNbr

SeriesNbr = gr_product_data.FindSeries(sle_series.Text)

* DataWindow control dw_equipment내의 그래프 gr_computers의 PCs라 명명된 series의 번호를 SeriesNbr에 저장한다.

integer SeriesNbr

SeriesNbr = dw_equipment.FindSeries("gr_computers", "PCs")

[참고]

AddSeries

DeleteSeries

FindCategory


GetActiveSheet PowerScript 함수

[설명]

MDI 형식 윈도우에서 현재 활성화된 sheet를 리턴한다.

[적용]

MDI frame windows

[문법]

mdiframewindow.GetActiveSheet ( )

[Argument]

mdiframewindow

활성화된 sheet를 구하려는 MDI 형식의 윈도우

[Return 값]

Window.

mdiframewindow내에 현재 활성화된 sheet를 리턴한다. 활성화된 sheet가 없을 경우, GetActiveSheet는 올바르지않은 값을 리턴한다. mdiframewindow가 NULL이면, GetActiveSheet는 NULL을 리턴한다.

[용법]

GetActiveSheet가 리턴한 것이 올바른 윈도우 값인지 여부를 결정하려면 IsValid함수를 사용한다.

[예제]

* MDI 형식의 윈도우 w_frame내에 활성화된 sheet를 결정하고 메뉴 바 m_main의 메뉴 m_file상의 m_close메뉴의 텍스트를 변경한다. 활성화된 sheet가 없으면, 텍스트는 Close Window가 된다.

// 활성화된 sheet에 관한 변수를 선언한다

window activesheet

string mtext

activesheet = w_frame.GetActiveSheet( )

IF IsValid(activesheet) THEN

// 활성화된 sheet가 있을 경우, 메뉴 텍스트를

// Close + 활성화된 sheet로 변경한다.

mtext = "Close " + activesheet.Title

m_main.m_file.m_close.Text = mtext

ELSE

// 활성화된 sheet가 없을 경우, 메뉴 텍스트를

// Close Window로 변경한다.

m_main.m_file.m_close.Text = "Close Window"

END IF

[참고]

IsValid


GetAlignment PowerScript 함수

[설명]

RichTextEdit control내에서 삽입 포인트를 포함하고있는 문장의 정렬상태를 얻는다.

[적용]

RichTextEdit controls

[문법]

rtename.GetAlignment ( )

[Argument]

rtename

삽입 포인트를 포함하고있는 문장의 정렬상태를 알고자 하는 RichTextEdit control의 이름

[Return 값]

Alignment.

삽입 포인트를 포함하고있는 문장의 정렬상태를 나타내는 값을 리턴한다.

[용법]

여러 문장이 선택되었을 때, 삽입 포인트는 선택하는 방법에 따라 선택영역의 시작위치 또는 마지막위치에 나타난다. 이런 경우, 삽입포인터가 위치한 문장의 정렬상태를 리턴한다.

[예제]

* 삽입 포인트를 포함하고있는 문장의 정렬상태를 저장한다.

alignment l_align

l_align = rte_1.GetAlignment( )

[참고]

GetSpacing

GetTextStyle

SetAlignment

SetSpacing

SetTextStyle


GetApplication PowerScript 함수

[설명]

응용프로그램의 property를 구하고 설정하기위하여 현재 Application object의 핸들(handle)을 얻는다.

[문법]

GetApplication ( )

[Return 값]

Application.

현재 application object의 핸들을 리턴한다.

[용법]

GetApplication 함수는 응용프로그램에 관한 일반적인 코드를 기록할 수 있도록 하고, 다른 응용프로그램에서 그 코드를 재사용할 수 있도록 한다. 응용프로그램의 property를 설정하고자 할 때 그 응용프로그램의 실제이름을 코딩할 필요는 없다.

[예제]

* Toolbar Tips의 표시여부를 변경하기 위하여, application object의 핸들을 구하고 ToolbarTips property를 설정할 수 있다.

application app

app = GetApplication( )

app.ToolbarTips = FALSE

* 위의 예는 다음 문장으로 대신할 수 있다.

GetApplication( ).ToolbarTips = FALSE


GetAutomationNativePointer PowerScript 함수

[설명]

OLEObject 변수와 연관되어있는 OLE object 포인터를 구한다. 포인터는 그 object에 관한 외부 DLL에있는 OLE 함수를 호출할 수 있도록 해준다.

[적용]

OLEObject

[문법]

oleobject.GetAutomationNativePointer ( pointer )

[Argument]

oleobject | native 포인터를 구하려는 object를 포함하고있는 OLEObject 변수 이름.
pointer | 포인터를 저장하려는 UnsignedLong 변수. GetAutomationNativePointer가 올바른 포인터를 구할 수 없을 경우, pointer는 0으로 설정된다.

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[예제]

* OLEObject object를 생성하고, automation 서버에 연결한 다음, 외부 함수를 호출하기위한 포인터를 구한다. 처리 후, 포인터는 메모리에서 제거한다.

OLEObject oleobj_report

UnsignedLong lul_oleptr

integer li_rtn

oleobj_report = CREATE OLEObject

oleobj_report.ConnectToObject("report.doc")

li_rtn = oleobj_report.GetAutomationNativePointer(lul_oleptr)

IF li_rtn = 0 THEN

... // automation에관한 외부 함수를 호출한다.

oleobj_report.ReleaseAutomationNativePointer(lul_oleptr)

END IF

[참고]

GetNativePointer

ReleaseAutomationNativePointer

ReleaseNativePointer


GetBandAtPointer PowerScript 함수

[설명]

포인터가 위치한 밴드와, 그와 연관된 row 번호를 나타낸다. 밴드는 DataWindow의 headers, trailers, detail 영역등이고 DataWindow painter의 수평영역에 해당한다.

[적용]

DataWindow controls

[문법]

dwcontrol.GetBandAtPointer ( )

[Argument]

dwcontrol

포인터가 위치한 밴드를 구하려는 DataWindow control의 이름

[Return 값]

String.

포인터가 위치한 밴드의 이름과 탭 문자(~t), 그 밴드와 연관된 row번호를 되돌린다. 에러가 발생하면 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetBandAtPointer는 NULL을 리턴한다.

[용법]

다음은 포인가 위치하였을 때 나타날 밴드의 이름과, 그와 연관된 row를 나열한 것이다.

Band | Location of pointer | Associated row
detail | DataWindow object의 포인터가 위치한 row. | 페이지 갱신 속성을 가진 그룹으로 body 인하여 row가 DataWindow object의 body를 채우지 않았을 경우, 다음 그룹의 첫 번째 row가 된다. row가 더 이상 없어서 body를 채우지 못하였을 경우, 마지막 row가 된다.
header | DataWindow object의 DataWindow body가 첫 번째로 보이는 row | header
header.n | 그룹 레벨 n의 header 그룹의 첫 번째 row |
trailer.n | 그룹 레벨 n의 trailer 그룹의 마지막 row |
footer | DataWindow object의 DataWindow body에서 마지막으로 보이는 row | footer
summary | DataWindow object의 summary전의 마지막 row. | summary

탭 문자(~t)를 찾아서 값을 알아낼 수 있다. 관련 예제는 Pos 함수를 참고한다.

[예제]

* DataWindow dw_rpt에서 포인터가 위치한 밴드 이름을 문자열에 저장한다.

String band

band = dw_rpt.GetBandAtPointer( )

리턴가능한 값의 예:

Return value | Meaning
detail~t8 | detail band의 row 8
header~t10 | header; row 10은 첫 번째로 보이는 row이다
header.2~t1 | row 1에 관한 그룹레벨 2의 header
trailer.1~t5 | row 5에 관한 그룹레벨 1의 trailer
footer~t111 | footer; 마지막으로 보이는 row번호는 111이다.
summary~t23 | summary; 마지막 row번호는 3이다

[참고]

GetObjectAtPointer


GetBorderStyle PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 칼럼 경계선 스타일을 결정한다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GetBorderStyle ( column )

[Argument]

dwcontrol | 칼럼을 포함하고있는 DataWindow control, DataStore, 또는 child DataWindow의 이름
column | 경계선 스타일을 얻으려는 칼럼. 칼럼은 칼럼번호(integer) 나 칼럼이름(string)일 수 있다.

[Return 값]

Border.

Border 열거형 데이터 타입의 값으로 dwcontrol 칼럼의 경계선 스타일을 리턴한다.

Box!

NoBorder!

ShadowBox!

Underline!

처리에 실패하거나 argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[예제]

* dw_emp의 2번째 칼럼의 경계선을 알아보고, 경계선이 없을 경우, 그림자 박스 경계선으로 나타낸다.

border B2

B2 = dw_emp.GetBorderStyle(2)

IF B2 = NoBorder! THEN

dw_emp.SetBorderStyle(2, ShadowBox!)

END IF

[참고]

SetBorderStyle


GetChild PowerScript 함수

[설명]

child DataWindow나 composite DataWindow내의 report를 참조하도록 함으로써, DataWindow 함수내에서 이들 DataWindow 나 report를 다루기 위하여 사용할 수 있게 한다.

[적용]

DataWindow controls 과 DataStore objects

[문법]

dwcontrol.GetChild ( name, dwchildvariable )

[Argument]

dwcontrol | child DataWindow 나 report를 포함하고있는 DataWindow control 또는 DataStore 이름
name | child DataWindow를 포함하고있는 칼럼이름이나 composite DataWindow안의 report이름
dwchildvariable | child DataWindow를 참조하여 저장할 DataWindowChild 타입의 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 참조한 child DataWindow나 report는 dwchildvariable에 저장된다. argument 값중에 NULL이 있으면, GetChild는 NULL을 리턴한다.

[용법]

child DataWindow는 DataWindow object내의 DropDownDataWindow이다.

repoert는 composite DataWindow의 일부인 DataWindow이며, 읽기-전용 이다. DataWindow painter에서 composite DataWindow를 정의할 때, GetChild함수 내에서 참조할 수 있도록 각 report의 이름을 부여하여야 한다.

child DataWindow나 report에관하여 정확히 데이터를 retrieve할 필요가 있을 경우에는 GetChild 함수를 사용한다. PowerBuilder가 DataWindow가 표시될 때 자동으로 child 또는 report에관한 데이터를 retrieve할지라도, retrieve argument가 있거나 조건이 변경되어 새로운 row를 retrieve 하고자 할때에는 명확히 데이터를 retrieve할 필요가 있다.

메인 DataWindow에서 row를 추가하거나 retrieve할 때, PowerBuilder는 자동으로 child DataWindow에 관한 데이터를 retrieve한다. 만일 child DataWindow가 retrieve argument를 가지고 있다면, PowerBuilder는 사용자에게 argument 값들을 물어보기 위하여 대화상자를 나타낼 것이다. 이러한 대화상자를 억제하기 위하여, 메인 DataWindow가 변경되기 전에 child에 관한 데이터를 정확히 retrieve할 수 있다.

중첩된 report와 외부 데이터 소스(Nested reports and external data sources)

중첩된 report의 데이터 소스가 external일 경우는 composite DataWindow내의 report를 참조하기위하여 GetChild를 사용할 수 없다.

Modify함수로 property를 변경하면 GetChild에의한 결과를 참조하는 것을 올바르지 못하게 하는 원인이 될 수 있다. 이러한 property를 설정한 후에는, GetChild 함수를 다시 호출하여야 한다. 이러한 원인을 제공하는 property는 DataWindow Object Properties에 설명되어있다.

[예제]

* 메인 DataWindow를 retrieve하기 전에 emp_state와 연관된 child DataWindow의 데이터를 retrieve한다. child DataWindow는 지역(Local) 값을 argument로 가지고 있다. 이 경우 child DataWindow를 먼저 구성하기 때문에, PowerBuilder는 대화상자를 나타내지 않는다.

DataWindowChild state_child

integer rtncode

rtncode = dw_1.GetChild('emp_state', state_child)

IF rtncode = -1 THEN MessageBox( &

"Error", "Not a DataWindowChild")

// 연결이되어있지 않으면 연결을 설치한다

CONNECT USING SQLCA;

// child에 관한 transaction object를 설정한다

state_child.SetTransObject(SQLCA)

// argument값을 명시하여 child를 구성한다

state_child.Retrieve("East")

// 메인 DW에 관한 transaction object를 설치하고 retrieve 한다

dw_1.SetTransObject(SQLCA)

dw_1.Retrieve( )

* 주문량과 현재고에 관한 2개의 report를 가진 composite DataWindow의 경우, 주문 report는 주문 상태를 선택하기위한 retrieve argument를 가지고 있다. 이 report는 항상 주문내용을 나타내게 된다. composite DataWindow는 dw_news라는 DataWindow control에 표시되고 report의 이름은 각각 open_orders 와 current_inv이다. 다음 코드는 open_orders에관한 retrieve argument를 제공하는 dw_news를 포함한 윈도우의 Open 이벤트이다.

DataWindowChild dwc_orders

dw_news.GetChild("open_orders", dwc_orders)

dwc_orders.SetTransObject(SQLCA)

dwc_orders.Retrieve("open")

[참고]

Handle

SetTransObject


GetClickedColumn PowerScript 함수

[설명]

DataWindow control내에 클릭 또는 더블-클릭한 칼럼의 번호를 얻어낸다.

** Obsolete function **

GetClickedColumn은 Clicked 또는 DoubleClicked 이벤트내에서 dwo argument를 사용함으로써 쓸모없게 되었다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.GetClickedColumn ( )

[Argument]

dwcontrol

클릭 또는 더블-클릭한 칼럼의 번호를 알고자 하는 DataWindow control 또는 child DataWindow의 이름

[Return 값]

Integer.

dwcontrol내에서 클릭 또는 더블-클릭한 칼럼의 번호를 리턴한다. 칼럼을 클릭 또는 더블-클릭하지 않았을 경우 (예를들어, 데이터 영역 밖이나, 텍스트 또는 칼럼들 사이의 공간, header, summary, footer 영역 등에 클릭 또는 더블-클릭한 경우)에는 0을 리턴한다. dwcontrol이 NULL 이면, GetClickedColumn 함수는 NULL을 리턴한다.

[용법]

DataWindow control에 관한 Clicked 또는 DoubleClicked 이벤트내에서 GetClickedColumn 함수를 호출한다.

칼럼 상에서 클릭하면, 그 칼럼은 Clicked 또는 DoubleClicked 이벤트 이후에 현재(current) 칼럼이 된다. 이들 이벤트를 처리하는 중에는 GetColumn 과 GetClickedColumn 함수가 다른 값을 리턴할 수 있다.

tab을 이용하는것과 같이 다른 방법으로 어떤 칼럼에 도달하면, GetClickedColumn 함수는 그 칼럼의 값을 리턴하지 않게될 것이다. 현재(current) 칼럼을 찾으려면 GetColumn 함수를 사용한다.

[예제]

* dw_employee내에서 클릭 또는 더블-클릭한 칼럼의 번호를 리턴한다.

integer li_ColNbr

li_ColNbr = dw_employee.GetClickedColumn( )

[참고]

GetClickedRow

GetColumn


GetClickedRow PowerScript 함수

[설명]

DataWindow control내에서 클릭 또는 더블-클릭한 row의 번호를 얻는다.

** Obsolete function **

Clicked 또는 DoubleClicked와 같은 DataWindow 이벤트 내에서 row argument를 사용할 수 있기 때문에 GetClickedRow 함수는 사용하지 않아도 된다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.GetClickedRow ( )

[Argument]

dwcontrol

클릭 또는 더블-클릭한 row의 번호를 알고자 하는 DataWindow control 또는 child DataWindow의 이름

[Return 값]

Long.

dwcontrol 내에서 클릭 또는 더블-클릭한 row의 번호를 리턴한다. row를 클릭 또는 더블-클릭하지 않았을 경우 (예를들어, 데이터 영역 밖이나, 텍스트 또는 row들 사이의 공간, header, summary, footer 영역 등에 클릭 또는 더블-클릭한 경우)에는 0을 리턴한다. dwcontrol이 NULL 이면, GetClickedRow 함수는 NULL을 리턴한다.

[용법]

DataWindow control에 관한 Clicked 또는 DoubleClicked 이벤트내에서 GetClickedRow 함수를 호출한다.

row 상에서 클릭하면, 그 row는 Clicked 또는 DoubleClicked 이벤트 이후에 현재(current) row가 된다. 이들 이벤트를 처리하는 중에는 GetRow 와 GetClickedRow 함수가 다른 값을 리턴할 수 있다.

tab을 이용하는 것과같이 다른 방법으로 어떤 row에 도달하면, GetClickedRow 함수는 그 row의 값을 리턴하지 않게될 것이다. 현재(current) row를 찾으려면 GetRow 함수를 사용한다.

[예제]

* dw_employee내에서 클릭 또는 더블-클릭한 row의 번호를 리턴한다.

integer li_RowNbr

li_RowNbr = dw_employee.GetClickedRow( )

[참고]

GetClickedColumn

GetRow


GetColumn PowerScript 함수: syntax 1

[설명]

현재(current) 칼럼의 번호를 얻는다. 현재 칼럼은 focus를 가진 칼럼이다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GetColumn ( )

[Argument]

dwcontrol

현재 칼럼의 번호를 알고자하는 DataWindow control DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

dwcontrol의 현재 칼럼 번호를 리턴한다. 현재 칼럼이 아닐 경우 (모든 칼럼의 tab 값이 0이어서, 모두 편집할 수 없는 경우)는 0을 리턴하고, 에러가발생하면 -1을 리턴한다. dwcontrol이 NULL이면, GetColumn 함수는 NULL을 리턴한다.

[용법]

GetColumn 과 GetClickedColumn이 Clicked나 DoubleClicked 이벤트 내에서 호출될 때, 값이 서로 다를 수 있다. 클릭된 칼럼은 그 이벤트가 끝날떄까지 현재(current) 칼럼이 되지 않기 때문이다.

칼럼의 이름이 필요할 때에는, GetColumn 대신 GetColumnName 함수를 사용한다. 현재(current) 칼럼을 변경하려면 SetColumn 함수를 사용한다.

** 현재(current) 칼럼 **

칼럼은 tab 이나 클릭 또는 스크립트내에서 SetColumn 함수를 호출한 이후에 현재(current) 칼럼이 된다. 칼럼을 편집할 수 없을경우와 tab 값이 0일 경우에, 그 칼럼은 현재 칼럼이 될 수 없다.

DataWindow control이 활성화되어있지 않더라도, 최소한 한 개의 편집 가능한 칼럼이라도 가지고 있는 한, DataWindow는 항상 현재(current) 칼럼을 가지고 있다.

[예제]

* dw_Employee내의 현재 칼럼 번호를 리턴한다.

Integer li_ColNbr

li_ColNbr = dw_Employee.GetColumn( )

[참고]

GetClickedColumn

GetColumnName

GetRow

SetColumn

SetRow

GetColumn: Syntax 2

GetColumn PowerScript 함수: syntax 2

[설명]

명시한 칼럼의 속성을 구한다.

[적용]

ListView controls

[문법]

listviewname.GetColumn ( index, label, alignment, width )

[Argument]

listviewname | 칼럼의 property를 구하려는 ListView control의 이름
index | property를 찾으려는 칼럼의 인덱스
label | property를 찾으려는 칼럼 레이블에 관한 변수
alignment | property를 찾으려는 칼럼의 정렬에 관한 변수
width | property를 찾으려는 칼럼의 폭에 관한 변수

[Return 값]

Integer.

처리에 성공하면 칼럼 property를 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

명시한 칼럼의 property를 구하려면 label, alignment, 와 width를 사용한다.

[예제]

* 칼럼번호를 GetColumn에 통과시키기 위하여 instance 변수 li_col을 사용하고 그 칼럼의 property를 받는다. 칼럼의 정렬을 변경하기 위하여 SetColumn 함수를 사용한다.

string ls_label, ls_align

int li_width

alignment la_align

IF lv_list.View <> ListViewReport! THEN

lv_list.View = ListViewReport!

END IF

IF li_col = 0 THEN

MessageBox("Error!","Click on a Column bar.", &

StopSign!)

ELSE

lv_list.GetColumn(li_col, ls_label, la_align, li_width)

lv_list.SetColumn(li_col, ls_label, Right!, li_width)

END IF

[참고]

SetColumn

GetColumn : Syntax 1


GetColumnName PowerScript 함수

[설명]

현재(current) 칼럼의 이름을 얻는다. 현재 칼럼이란 focus를 가진 칼럼을 말한다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GetColumnName ( )

[Argument]

dwcontrol

현재 칼럼이름을 알고자 하는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

String.

dwcontrol내의 현재 칼럼이름을 리턴한다. 현재 칼럼이 없거나 에러가 발생하였을 경우에는 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetColumnName은 NULL을 리턴한다.

[용법]

현재 칼럼에 관한 정보는 GetColumn을 참조한다.

[예제]

* dw_Employee내의 현재 칼럼이름을 리턴한다.

string ls_ColName

ls_ColName = dw_Employee.GetColumnName( )

[참고]

GetColumn

GetRow

SetColumn

SetRow


GetCommandDDE PowerScript 함수

[설명]

사용하는 응용프로그램이 DDE 서버일 때 클라이언트 응용프로그램에 의하여 보내진 명령을 얻는다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에 의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetCommandDDE ( string )

[Argument]

string

전달된 명령을 저장할 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 올바르지않은 문장으로 함수를 호출하는 등으로 인하여 에러가 발생하면 -1을 리턴한다. string이 NULL이면, GetCommandDDE는 NULL을 리턴한다.

[용법]

DDE 클라이언트 응용프로그램이 사용자의 응용프로그램에 명령을 보내면, 활성화된 윈도우내의 RemoteExec 이벤트를 trigger하게된다. 이 이벤트 스크립트에서, 보내진 명령이 무엇인지 알아내기 위하여 GetCommandDDE 함수를 호출한다.

DDE 서버 모드를 사용 가능하게 하려면, StartServerDDE 함수를 사용한다.

[예제]

* 이 예제는 DDE 클라이언트에의하여 요청된 행동이 Open Next Sheet인지를 체크하기 위하여 RemoteExec 이벤트 스크립트에서 발췌한 것이다. 만일 그러하다면, DDE 서버는 DataSheet의 다른 instance를 오픈한다. 만일 요청된 행동이 Shut Down이라면, DDE 서버는 그 클라이언트를 shut down 한다. 그밖의 경우는, DDE 클라이언트의 요청이 잘못된 것임을 알린다.

변수 ii_sheetnum and i_DataSheet[]는 DDE 이벤트에 대답해줄 윈도우에관한 인스턴스 변수이다.

integer ii_sheetnum

DataSheet i_DataSheet[ ]

클라이언트 응용프로그램에 의하여 보내진 명령은 지역변수 ls_Action에 저장한다.

string ls_Action

GetCommandDDE(ls_Action)

IF ls_Action = "Open Next Sheet" THEN

ii_sheetnum = ii_sheetnum + 1

OpenSheet(i_DataSheet[ii_sheetnum], w_frame_emp)

ELSEIF ls_Action = "Shut Down" THEN

HALT CLOSE

ELSE

RespondRemote(FALSE)

END IF

[참고]

GetCommandDDEOrigin

StartServerDDE

StopServerDDE


GetCommandDDEOrigin PowerScript 함수

[설명]

DDE 서버 응용프로그램에의하여 호출되었을 때, 명령을 보내는 DDE 클라이언트에 의하여 사용한 서버 응용프로그램 이름 파라미터를 얻는다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetCommandDDEOrigin ( applstring )

[Argument]

applstring

서버 응용프로그램의 이름을 저정할 변수

[Return 값]

Integer.

처리에성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. applstring이 NULL이면, GetCommandDDEOrigin은 NULL을 리턴한다.

[용법]

이 함수를 호출하는 서버 응용프로그램은 이 명령에 응답하기 원하는지 결정하기 위하여 응용프로그램 이름을 사용할 수 있다. 원하지 않을 경우, 함수는 클라이언트에 관한 추가적인 정보를 제공하지 않는다.

[예제]

* 클라이언트 응용프로그램이 서버 응용프로그램을 구별하기위하여 사용한 이름을 저장하기 위하여 지역변수 ls_name가 사용되었다.

string ls_name

GetCommandDDEOrigin(ls_name)

[참고]

GetCommandDDE

StartServerDDE

StopServerDDE


GetData PowerScript 함수: syntax 1

[설명]

그래프내의 series의 데이터 포인트 값을 얻는다.

[적용]

윈도우와 사용자 object내의 그래프, DataWindow control 과 DataStore object내의 그래프

[문법]

controlname.GetData ( { graphcontrol, seriesnumber, datapoint {, datatype } } )

[Argument]

controlname | 데이터를 구하려는 그래프의 이름이나, 그래프를 포함하고있는 DataWindow control 또는 DataStore object 이름
graphcontrol | (DataWindow control 또는 DataStore 만 해당) controlname이 DataWindow 또는 DataStore일 경우, 데이터를 구하려는 그래프의 이름
seriesnumber | 데이터를 구하려는 series를 나타내는 번호
datapoint | 값을 구하려는 데이터 포인터 번호
datatype | (scatter 그래프만 해당) scatter 그래프내의 원하는 데이터 포인트 x 또는 y 값을 나타내는 열거형 grDataType 값. xValue! 데이터 포인트의 x 값 yValue! (기본설정값) 데이터 포인트의 y 값

[Return 값]

Double.

처리에 성공하면 데이터 포인트내의 데이터값을 리턴하고, 에러가 발생하면 0을 리턴한다. argument 값 중에 NULL이 있을 경우, GetData는 NULL을 리턴한다.

[용법]

값을 가진 축이 수치인 그래프일 경우만 GetData를 사용할 수 있다. 다른 타입의 축 값을 가진 그래프일 경우에는, GetDataValue 함수를 사용한다.

[예제]

* DataWindow control dw_equipment내의 그래프 gr_computers의 Costs series내의 데이터 포인터 3 값을 구한다.

integer SeriesNbr

double data_value

// series의 번호를 구한다.

SeriesNbr = dw_equipment.FindSeries("gr_computers", "Costs")

data_value = dw_equipment.GetData( "gr_computers", SeriesNbr, 3)

* 그래프 gr_prod_data내의 마우스 포인터 아래에있는 데이터 포인트의 값을 구하여 data_value에 저장한다.

integer SeriesNbr, ItemNbr

double data_value

grObjectType MouseHit

MouseHit = gr_prod_data.ObjectAtPointer(SeriesNbr, ItemNbr)

IF MouseHit = TypeSeries! THEN

data_value = gr_prod_data.GetData(SeriesNbr, ItemNbr)

END IF

* scatter 그래프 gr_sales_yr내의 데이터 포인트의 x값을 구하여 data_value에 저장한다.

integer SeriesNbr, ItemNbr

double data_value

gr_product_data.ObjectAtPointer(SeriesNbr, ItemNbr)

data_value = gr_sales_yr.GetData(SeriesNbr, ItemNbr, xValue!)

[참고]

DeleteData

FindSeries

InsertData

ObjectAtPointer

GetData: syntax 2

GetData: syntax 3

GetData PowerScript 함수: syntax 2

[설명]

EditMask control에서 형식화되지 않은 텍스트를 얻는다.

[적용]

EditMask controls

[문법]

editmaskname.GetData ( datavariable )

[Argument]

editmaskname | 데이터를 포함하고있는 EditMask control의 이름
datavariable | GetData가 EditMask control내의 형식화되지않은 데이터를 할당할 메모리 변수. datavariable의 데이터 타입은 반드시 EditMask control의 데이터 타입과 일치하여야 한다. 사용 가능한 데이터 타입은 date, DateTime, decimal, double, string, time 등이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. arguments의 값 중에 NULL이 있으면, GetData는 NULL을 리턴한다.

[용법]

EditMask control의 데이터 타입은 나열되어있는 데이터 타입 중에서 선택된 MaskDataType property에서 찾을 수 있다.

[예제]

* EditMask control em_date로부터 날짜 타입의 데이터를 구한다. 이때 형식-문자(formatting characters)는 무시된다. SingleLineEdit sle_date에 할당하기 위하여 String 함수를 이용하여 date를 string으로 변환하였다.

date d

em_date.GetData(d)

sle_date.Text = String(d, "mm-dd-yy")

* EditMask control em_string으로부터 string 데이터를 구하여 그 결과를 sle_string에 할당하며, 이때 형식-문자들은 무시된다.

string s

em_string.GetData(s)

sle_string.Text = s

[참고]

GetData: syntax 1

GetData: syntax 3

GetData PowerScript 함수: syntax 3

[설명]

Uniform Data Transfer를 사용중인 OLE control과 연관된 OLE 서버로부터 데이터를 구한다.

[적용]

OLE 2.0 controls 와 OLE custom controls

[문법]

olename.GetData ( clipboardformat, data )

[Argument]

olename

데이터를 구하려는 object를 포함하고있는 OLE 2.0 또는 OLE custom control 이름

clipboardformat

데이터의 형식. 열거형 데이터타입 ClipboardFormat의 값을 가진 표준 형식을 나타낼 수 있다. 문자열로 비표준 형식을 나타낼 수도 있다. ClipboardFormat의 값은 다음과 같다:

ClipFormatBitmap!

ClipFormatDIB!

ClipFormatDIF!

ClipFormatEnhMetafile!

ClipFormatHdrop!

ClipFormatLocale!

ClipFormatMetafilePict!

ClipFormatOEMText!

ClipFormatPalette!

ClipFormatPenData!

ClipFormatRIFF!

ClipFormatSYLK!

ClipFormatText!

ClipFormatTIFF!

ClipFormatUnicodeText!

ClipFormatWave!

clipboardformat이 빈 문잘열이거나 null 값이면, GetData는 ClipFormatText! 형식을 사용한다

data

OLE 서버로부터의 데이터를 포함하게 될 문자열 또는 blob. 구하려는 데이터 타입이 문자열에 적합하지 않다면, 반드시 blob 변수를 사용하여야 한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

OLE 서버가 지원하지 않는 clipboard format을 명시하면 GetData는 에러를 리턴하게 된다. 서버가 지원하는 형식들을 찾으려면 OLE 서버에 관한 설명을 보도록 한다.

GetData는 응용프로그램 container의 데이터를 변한하기 위하여 Microsoft에 의하여 정의된 메커니즘인 Uniform Data Transfer를 경유하여 작용한다. PowerBuilder는 global handle을 경유하는 데이터 transfer를 사용할 수 있다. OLE 서버 또한 반드시 global handle을 경유하는 데이터 transfer를 지원하여야 한다. 그렇지않을 경우 서버로부터 데이터를 가져올 수 없다.

[예제]

* Microsoft Word 문서를 편집한 후, OLE 2.0 control ole_word6으로부터 그 내용들을 구하여 문자열 ls_oledata에 저장한다. 그 문자열의 내용은 MultiLineEdit mle_text에 표시된다.

string ls_oledata

integer li_rtn

li_rtn = ole_word6.GetData( ClipFormatText!, ls_oledata)

mle_text.Text = ls_oledata

* 어떤 OLE 2.0 control이 테이블의 데이터를 포함하고있는 Microsoft Word 문서를 나타내고 있다고 가정한다. 이 예제는 그 문서내의 데이터를 구하여 두 번째 OLE 2.0 control내의 그래프에 할당한다. 두 번째 control내의 Microsoft Graph는 테이블의 첫 번째 row를 머리말로 사용하고, 다음 row들은 Data메뉴상의 설정상태에 따라 categories 나 series로 사용한다.

string ls_data

integer li_rtn

li_rtn = ole_word.GetData(ClipFormatText!, ls_data)

IF li_rtn <> 1 THEN RETURN

li_rtn = ole_graph.SetData(ClipFormatText!, ls_data)

[참고]

SetData

GetData: syntax 1

GetData: syntax 2


GetDataDDE PowerScript 함수

[설명]

다른 DDE 응용프로그램으로부터 보내진 데이터를 구하여 명시한 문자열 변수에 저장한다. PowerBuilder는 응용프로그램이 DDE 클라이언트나 DDE 서버 응용프로그램으로써 작용중일 때 GetDataDDE를 사용할 수 있다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetDataDDE ( string )

[Argument]

String

원격지(remote) DDE로부터 받은 데이터를 저장할 string 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. string이 NULL이면, GetDataDDE는 NULL을 리턴한다.

[용법]

GetDataDDE는 보통 응용프로그램이 DDE 서버일 경우는 RemoteSend 이벤트, 응용프로그램이 DDE 클라이언트일 경우에는 HotLinkAlarm 이벤트에 관한 window-level 스크립트내에서 호출된다.

[예제]

* PowerBuilder DDE 클라이언트 응용프로그램이 Excel spreadsheet의 row 7, column 15와 hot link가 설치되어있고, 그 row 와 column의 값이 red 에서 green으로 변경되어 응용프로그램내의 HotLinkAlarm 이벤트가 발생(trigger)되었다고 가정한다. 다음의 HotLinkAlarm 이벤트에관한 스크립트는 메모리변수 Str20에 새로운 값을 저장하기 위하여 GetDataDDE를 호출한다.

// HotLinkAlarm 이벤트내의 스크립트

string Str20

GetDataDDE(Str20)

[참고]

GetDataDDEOrigin

OpenChannel

StartServerDDE

StopServerDDE


GetDataDDEOrigin PowerScript 함수

[설명]

hot-link된 DDE 서버 응용프로그램 또는 DDE 클라이언트 응용프로그램으로부터 데이터의 원천(origin)을 결정하고, 성공하였을 경우, 그 응용프로그램의 DDE 식별자(identifiers)를 명시한 문자열에 저장한다. PowerBuilder는 응용프로그램이 DDE 클라이언트 또는 DDE 서버 응용프로그램으로써 작용중일때만 GetDataDDEOrigin을 사용할 수 있다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetDataDDEOrigin ( applstring, topicstring, itemstring )

[Argument]

applstring | GetDataDDEOrigin이 서버 응용프로그램의 이름을 저장할 문자열 변수
topicstring | GetDataDDEOrigin이 topic (예를 들어, Microsoft Excel의 경우, topic은 REGION.XLS가 될 수 있다)을 저장할 문자열 변수
itemstring | GetDataDDEOrigin이 아이템 식별자 (예를 들어, Microsoft Excel의 경우, 아이템은 R1C2가 될 수 있다)를 저장할 문자열 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument값 중에 NULL이 있으면, GetDataDDE는 NULL을 리턴한다.

[용법]

RemoteSend 이벤트나 HotLinkAlarm 이벤트에 관한 window-level 스크립트에서 GetDataDDEOrigin을 호출한다.

응용프로그램이 DDE 서버일 때, RemoteSend 이벤트 에 관한 스크립트에서 GetDataDDEOrigin을 호출하여, 클라이언트에 의하여 요청된 topic 과 item이 무엇인지를 알아내는데 사용한다. 응용프로그램 이름은 클라이언트에 의하여 명시된 응용프로그램이다 (서버 자신의 DDE 이름).

응용프로그램이 DDE 클라이언트일 때는, HotLinkAlarm 이벤트에 관한 스크립트에서 GetDataDDEOrigin을 호출하여, 서버 응용프로그램내에 하나이상의 topic 또는 하나이상의 응용프로그램에 관한 hot link가 존재할 때 그 데이터의 원천(source)을 알아내는데 사용한다.

[예제]

string WhichAppl, WhatTopic, WhatLoc

GetDataDDEOrigin(WhichAppl, WhatTopic, WhatLoc)

[참고]

GetDataDDE

OpenChannel

StartServerDDE

StopServerDDE


GetDataPieExplode PowerScript 함수

[설명]

pie 그래프 내에서 분리된 조각의 백분율을 나타낸다. 분리된 조각은 그 데이터를 강조하기 위하여 pie의 중심으로부터 이동된 것이다.

[적용]

윈도우와 사용자 object내의 graph control과 DataWindow control과 DataStore object내의 그래프

[문법]

controlname.GetDataPieExplode ( { graphcontrol, series, datapoint, percentage } )

[Argument]

Controlname | 분리된 pie 조각의 백분율을 구하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 또는 DataStore의 이름
Graphcontrol | (DataWindow control 또는 DataStore만 해당) 분리된 pie 조각의 백분율을 구하려는 DataWindow control 또는 DataStore내의 그래프이름을 나타내는 문자열
Seriesnumber | serires를 나타내는 번호
Datapoint | 분리된 데이터 포인트 (pie 조각)의 번호
Percentage | 분리된 pie 조각의 백분율을 저장하기위한 interger 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, GetDataPieExplode는 NULL을 리턴한다.

[예제]

* 분리된 pie 조각에 클릭하였을 때 그 조각의 백분율을 나타낸다. 그래프가 pie 그래프인지 여부는 GraphType property를 이용하여 체크한다. series를 체크함으로써 pie 조각 위에 클릭하였는지 여부를 알아내고 ObjectAtPointer에 의하여 데이터 포인트 값을 설정한다. 다음의 스크립트는 graph object의 DoubleClicked 이벤트에 관한 것이다.

integer series, datapoint

grObjectType clickedtype

integer percentage

percentage = 50

IF (This.GraphType <> PieGraph! and &

This.GraphType <> Pie3D!) THEN RETURN

clickedtype = This.ObjectAtPointer(series, datapoint)

IF (series > 0 and datapoint > 0) THEN

This.GetDataPieExplode(series, datapoint, percentage)

MessageBox("Explosion Percentage", &

"Data point " + This.CategoryName(datapoint) &

+ " in series " + This.SeriesName(series) &

+ " is exploded " + String(percentage) + "%" )

END IF

[참고]

SetDataPieExplode


GetDataStyle PowerScript 함수: syntax 1

[설명]

그래프내의 데이터 포인트와 연관된 색상을 얻는다.

[적용]

윈도우와 사용자 object내의 graph control과, DataWindow control과 DataStore object내의 그래프.

[문법]

controlname.GetDataStyle ( { graphcontrol, seriesnumber, datapointnumber, colortype, colorvariable } )

[Argument]

controlname | 데이터 포인트의 색상을 알고자하는 그래프의 이름, 또는 그 그래프를 포함하고 있는 DataWindow control 이나 DataStore 이름
graphcontrol | (Data Window control 와 DataStore만 해당) controlname이 DataWindow control 이나 DataStore일 경우, 데이터 포인터의 색상을 구하려는 그래프의 이름
seriesnumber | 데이터 포인트의 색상을 구하려는 series의 번호.
colortype | 원하는 색상에 관한 데이터 포인트의 모양을 명시하고있는 열거형 데이터 타입의 grColorType 값 Background! 배경 색상 Foreground! Text 색상 (fill color) LineColor! line 색상 Shade! 3-차원 그래픽의 음영 영역
colorvariable | 색상을 저장하기위한 long 메모리 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. colorvariable에는 색상값이 저장된다. argument 값 중에 NULL이 있으면, GetDataStyle은 NULL을 리턴한다.

[예제]

* 그래프 gr_emp_data의 Salary series 내에 있는 데이터 포인트 6에 관하여 사용된 text 색상을 구한 후, color_nbr 변수에 색상값을 저장한다.

long color_nbr

integer SeriesNbr

// series의 번호를 구한다

SeriesNbr = FindSeries("Salary")

// 색상을 구한다

gr_emp_data.GetDataStyle(SeriesNbr, 6, Foreground!, color_nbr)

* DataWindow 그래프 gr_emp_data내의 SingleLineEdit sle_series에 입력되어있는 series의 데이터 포인트 6에 사용된 배경 색상을 구하여, color_nbr 변수에 저장한다.

long color_nbr

integer SeriesNbr

// series 번호를 구한다.

SeriesNbr = FindSeries("gr_emp_data", sle_series.Text)

// 색상을 구한다

dw_emp_data.GetDataStyle("gr_emp_data", &

SeriesNbr, 6, Background!, color_nbr)

[참고]

FindSeries

GetSeriesStyle

SetDataStyle

SetSeriesStyle

GetDataStyle: syntax 2

GetDataStyle: syntax 3

GetDataStyle PowerScript 함수: syntax 2

[설명]

그래프의 데이터 포인트에 관한 line 스타일과 폭을 구한다.

[적용]

윈도우와 사용자 object 내의 graph control과, DataWindow control과 DataStore object내의 그래프

[문법]

controlname.GetDataStyle ( { graphcontrol, seriesnumber, datapointnumber, linestyle, linewidth } )

[Argument]

Controlname | 데이터 포인트의 line 스타일과 폭을 구하려는 그래프의 이름, 또는 그 그래프를 포함하고 있는 DataWindow control 이나 DataStore의 이름
Graphcontrol | (DataWindow control에만 적용) 데이터 포인트의 line 스타일과 폭을 구하려는 그래프(DataWindow control내)의 이름값을 갖는 문자열
Seriesnumber | 데이터 포인트의 line 스타일과 폭을 구하려는 series 번호.
Datapointnumber | line 스타일과 폭을 구하려는 데이터 포인트의 번호.
Linestyle | line 스타일을 저장하기위한 LineStyle 타입의 메모리 변수.
Linewidth | line 폭을 저장하기위한 integer 메모리 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. 명시한 series와 데이터 포인트에 관하여, line 스타일은 linestyle에, line 폭은 linewidth에 저장된다. argument 값 중에 NULL이 있으면, GetDataStyle은 NULL을 리턴한다.

[용법]

GetDataStyle함수가 linestyle에저장할 열거형 데이터 타입에 관한 내용은 SetDataStyle을 참조한다.

[예제]

* 그래프 gr_product_data의 Costs series내에있는 데이터 포인트 10의 line 스타일과 폭을 구하여, line_style 과 line_width 변수에 저장한다.

integer SeriesNbr, line_width

LineStyle line_style

// series의 번호를 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

gr_product_data.GetDataStyle(SeriesNbr, 10, line_style, line_width)

* DataWindow control dw_employees의 그래프 gr_depts에서 SingleLineEdit sle_series에 입력된 series 데이터 포인트 6에관한 line 스타일과 폭을 구하여, line_style 과 line_width 변수에 저장한다.

integer SeriesNbr, line_width

LineStyle line_style

// series의 번호를 구한다

SeriesNbr = dw_employees.FindSeries( "gr_depts", sle_series.Text)

// line 스타일과 폭을 구한다

dw_employees.GetDataStyle("gr_depts", SeriesNbr, 6, line_style, line_width)

[참고]

FindSeries

GetSeriesStyle

SetDataStyle

SetSeriesStyle

GetDataStyle: syntax 1

GetDataStyle: syntax 3

GetDataStyle PowerScript 함수: syntax 3

[설명]

그래프내 데이터 포인터의 fill pattern 또는 symbol을 구한다.

[적용]

윈도우와 사용자 object 내의 graph control과, DataWindow control과 DataStore object내의 그래프

[문법]

controlname.GetDataStyle ({ graphcontrol, seriesnumber, datapointnumber, enumvariable })

[Argument]

Controlname | 데이터 포인트의 fill pattern 이나 symbol type을 구하려는 그래프의 이름, 또는 그 그래프를 포함하고 있는 DataWindow control 이나 DataStore의 이름.
Graphcontrol | (DataWindow control 또는 DataStore에만 적용) 데이터 포인트의 fill pattern 이나 symbol type을 구하려는 그래프(DataWindow control 또는 DataStore내)의 이름값을 갖는 문자열
Seriesnumber | 데이터 포인트의 fill pattern 이나 symbol type을 구하려는 series 번호.
Datapointnumber | fill pattern 이나 symbol type을 구하려는 데이터 포인트의 번호
Enumvariable | 데이터 스타일을 저장하고자하는 변수로써 FillPattern 또는 grSymbolType 변수를 명시할 수 있다. 데이터 스타일 정보는 변수 타입에 의존하여 저장된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. enumvariable의 타입에 따라 명시한 데이터 포인터에 관하여 사용된 fill pattern 이나 symbol을 나타내는 열거형 데이터 타입의 값이 저장된다. argument 값 중에 NULL이 있으면, GetDataStyle은 NULL을 리턴한다.

[용법]

GetDataStyle함수가 enumvariable에저장할 열거형 데이터 타입에 관한 내용은 SetDataStyle을 참조한다.

[예제]

* 그래프 gr_product_data Costs series의 데이터 포인트 10을 채우는데 사용된 pattern을 구하여, data_pattern 변수에 저장한다.

integer SeriesNbr

FillPattern data_pattern

// series의 번호를 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

gr_product_data.GetDataStyle(SeriesNbr, 10, data_pattern)

* DataWindow control dw_employees의 그래프 gr_depts내에있는 SingleLineEdit sle_series에 입력된 series 데이터 포인트 6을 채우는데 사용된 pattern을 구하여, data_pattern 변수에 저장한다.

integer SeriesNbr

FillPattern data_pattern

// series의 번호를 구한다

SeriesNbr = dw_employees.FindSeries("gr_depts", sle_series.Text)

// pattern을 구한다

dw_employees.GetDataStyle("gr_depts", SeriesNbr, 6, data_pattern)

* 그래프 gr_product_data에있는 Costs series의 데이터 포인트 10의 symbol을 symbol_type 변수에 저장한다.

integer SeriesNbr

grSymbolType symbol_type

// series의 번호를 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

gr_product_data.GetDataStyle(SeriesNbr, 10, symbol_type)

* DataWindow control dw_employees내의 그래프 gr_depts내에서 SingleLineEdit sle_series에 입력된 series 데이터 포인트 6에 관한 symbol을 data_pattern 메모 리 변수에 저장한다.

integer SeriesNbr

grSymbolType symbol_type

// series의 번호를 구한다

SeriesNbr = dw_employees.FindSeries("gr_depts", sle_series.Text)

// symbol을 구한다

dw_employees.GetDataStyle("gr_depts", SeriesNbr, 6, symbol_type)

[참고]

FindSeries

GetSeriesStyle

SetDataStyle

SetSeriesStyle

GetDataStyle: syntax 1

GetDataStyle: syntax 2


GetDataValue PowerScript 함수

[설명]

그래프 series의 데이터 포인트 값을 구한다.

[적용]

윈도우와 사용자 object 내의 graph control과, DataWindow control과 DataStore object내의 그래프

[문법]

controlname.GetDataValue( {graphcontrol, seriesnumber, datapoint, datavariable {, xory }} )

[Argument]

controlname | 데이터를 구하려는 그래프의 이름, 또는 그 그래프를 포함하고 있는 DataWindow control 이나 DataStore의 이름.
graphcontrol | (DataWindow control 과 DataStore에만 적용) 데이터를 구하려는 DataWindow control 또는 DataStore내의 그래프 이름값을 갖는 문자열.
seriesnumber | 데이터를 구하려는 series 번호.
datapoint | 값을 구하려는 데이터 포인트 번호
datavariable | 데이터값을 저장할 메모리 변수 이름으로, date, DateTime, double, string, time 등의 데이터 타입이 가능하다. 메모리 변수는 반드시 그래프 축의 값과 동일한 데이터 타입을 가져야만 한다.
Xory | (scatter 그래프만 해당) scatter 그래프내의 원하는 데이터 포인트의 x 혹은 y 값을 원하는지 여부를 나타내는 열거형 grDataType 값. xValue! 데이터 포인트의 x 값 yValue! (기본설정값) 데이터 포인트의 y 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, GetDataValue는 NULL을 리턴한다.

[용법]

GetDataValue는 그래프로 부터 데이터를 retrieve 한다. 데이터는 그래프의 값을 가진 축과 데이터 타입이 반드시 일치하는 datavariable에 저장된다. 값을 가진 축이 numeric 이면, GetData 함수도 사용할 수 있다.

[예제]

* DataWindow control dw_equipment내의 그래프 gr_computers의 Costs series에 있는 데이터 포인트 3의 값을 구한다.

integer SeriesNbr, rtn

double data_value

// series의 번호를 구한다

SeriesNbr = dw_equipment.FindSeries( "gr_computers", "Costs")

rtn = dw_equipment.GetDataValue( "gr_computers", SeriesNbr, 3, data_value)

* 그래프 gr_prod_data내의 마우스 포인터 아래에 위치한 데이터 포인트의 데이터 값을 구하여 data_value에 저장한다. 데이터 포인트 상에 클릭하지 않을 경우, ItemNbr은 0으로 설정된다. 그래프의 category는 time 값이다.

integer SeriesNbr, ItemNbr, rtn

time data_value

grObjectType MouseHit

MouseHit = gr_prod_data.ObjectAtPointer(SeriesNbr, ItemNbr)

IF ItemNbr > 0 THEN

rtn = gr_prod_data.GetDataValue( &

SeriesNbr, ItemNbr, data_value)

END IF

* scatter 그래프 gr_sales_yr의 데이터 포인트 x값을 구하여 data_value에 저장한다. 데이터 포인트 상에 클릭하지 않을 경우, ItemNbr은 0으로 설정된다. category 축의 데이터 타입은 Date이다.

integer SeriesNbr, ItemNbr, rtn

date data_value

gr_product_data.ObjectAtPointer(SeriesNbr, ItemNbr)

IF ItemNbr > 0 THEN

rtn = gr_sales_yr.GetDataValue( SeriesNbr, ItemNbr, data_value, xValue!)

END IF

[참고]

DeleteData

FindSeries

InsertData

ObjectAtPointer


GetDynamicDate PowerScript 함수

[설명]

동적 SQL 문장을 실행한 후에 DynamicDescriptionArea로 부터 Date 타입의 데이터를 구한다.

[주의]

이 함수는 동적 SQL 문장 형식 4를 실행한 이후에만 사용이 가능하다.

[문법]

DynamicDescriptionArea.GetDynamicDate ( index )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 일반적으로 SQLDA이다.
index | 데이터를 구하려는 출력 파라미터를 나타내는 integer. index는 반드시 DynamicDescriptionArea의 NumOutputs내의 값보다 같거나 작아야 한다.

[Return 값]

Date.

DynamicDescriptionArea내의 index에의하여 식별된 출력 파라미터 서술자 내의 Date 데이터를 리턴한다. 에러가 발생할 경우는 1900-01-01을 리턴한다. argument값 중에 NULL이 있으면, GetDynamicDate는 NULL을 리턴한다.

[용법]

동적 SQL 문장 Format 4를 이용하여 데이터를 fetch한 후에, DynamicDescriptionArea, 통상적으로 SQLDA,는 retrieve된 데이터에 관한 정보를 포함한다. SQLDA property NumOutputs는 리턴된 데이터 서술자의 수를 명시한다. property 배열 OutParmType은 리턴된 각 값의 데이터 타입을 나타내는 열거형 데이터 타입 ParmType의 값을 포함한다.

GetDynamicDate는 OutParmType의 값이 TypeDate!일 경우 사용한다.

[예제]

* 2번째 출력 파라미터 서술자 (output parameter descriptor)의 Date 데이터를 Today로 설정한다.

Date Today

Today = GetDynamicDate(SQLDA, 2)

* 동적 SQL 문장 Format 4를 실행하면, 데이터는 DynamicDescriptionArea에 저장된다. 이 예제는 저장된 데이터 타입을 찾고 CHOOSE CASE 문장을 이용하여 지역 변수에 할당한다.

SELECT emp_start_date FROM employee;

Date Datevar

Time Timevar

DateTime Datetimevar

Double Doublevar

String Stringvar

FOR n = 1 to SQLDA.NumOutputs

CHOOSE CASE SQLDA.OutParmType[n]

CASE TypeString!

Stringvar = SQLDA.GetDynamicString(n)

... // Other processing

CASE TypeDecimal!, TypeDouble!, &

TypeInteger!, TypeLong!, &

TypeReal!, TypeBoolean!

Doublevar = SQLDA.GetDynamicNumber(n)

... // Other processing

CASE TypeDate!

Datevar = SQLDA.GetDynamicDate(n)

... // Other processing

CASE TypeDateTime!

Datetimevar = SQLDA.GetDynamicDateTime(n)

... // Other processing

CASE TypeTime!

Timevar = SQLDA.GetDynamicTime(n)

... // Other processing

CASE ELSE

MessageBox("Dynamic SQL", "Data type unknown.")

END CHOOSE

NEXT

[참고]

GetDynamicDateTime

GetDynamicNumber

GetDynamicString

GetDynamicTime

GetDynamicParm


GetDynamicDateTime PowerScript 함수

[설명]

동적 SQL 문장을 실행한 이후에 DynamicDescriptionArea로부터 DateTime 타입의 데이터를 얻는다.

[주의]

이 함수는 동적 SQL 문장 형식 4를 실행한 이후에만 사용이 가능하다.

[문법]

DynamicDescriptionArea.GetDynamicDateTime ( index )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 통상 SQLDA이다.
index | 데이터를 구하려는 출력 파라미터 서술자 (output parameter descriptor)를 나타내는 integer. index는 반드시 DynamicDescriptionArea내의 NumOutputs 값보다 작거나 같아야 한다

[Return 값]

DateTime.

DynamicDescriptionArea내의 index에 의하여 식별되는 출력 파라미터 서술자 (output parameter descriptor)내의 DateTime 데이터를 리턴한다. 에러가 발생하면 1900-01-01 0:00:00.000000의 값을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

배열로부터 retrieve하기 원하는 값에 관한 OutParmType이 TypeDateTime!일 때 GetDynamicDateTime 함수를 사용한다.

에러값을 테스트하려면, 리턴되는 값과 비교하기 위하여 반드시 DateTime 함수를 사용하여야 한다. PowerBuilder는 DateTime 문자를 지원하지 않는다.

[예제]

* 출력 파라미터 서술자 (output parameter descriptor)내의 DateTime 데이터를 시스템에 설정한다.

DateTime SystemDateTime

SystemDateTime = SQLDA.GetDynamicDateTime(2)

IF SystemDateTime = &

DateTime(1900-01-01, 00:00:00) THEN

... // 에러처리

END IF

* DynamicDescriptionArea로부터 데이터를 retrieve하는 예제는 GetDynamicDate를 참조한다.

[참고]

GetDynamicDate

GetDynamicNumber

GetDynamicString

GetDynamicTime

GetDynamicParm


GetDynamicNumber PowerScript 함수

[설명]

동적 SQL 문장을 실행한 이후에 DynamicDescriptionArea로부터 numeric 데이터를 얻는다.

[주의]

이 함수는 동적 SQL 문장 형식 4를 실행한 이후에만 사용이 가능하다.

[문법]

DynamicDescriptionArea.GetDynamicNumber ( index )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 통상 SQLDA이다.
index | 데이터를 구하려는 출력 파라미터 서술자 (output parameter descriptor)를 나타내는 integer. index는 반드시 DynamicDescriptionArea내의 NumOutputs 값보다 작거나 같아야 한다.

[Return 값]

numeric 데이터 타입 (decimal, double, integer, long, 또는 real).

DynamicDescriptionArea내의 index에 의하여 식별되는 출력 파라미터 서술자 (output parameter descriptor)내의 numeric 데이터를 리턴한다. 에러가 발생하면 0을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

배열로부터 retrieve하기 원하는 값에 관한 OutParmType이 TypeInteger!, TypeDecimal!, TypeDouble!, TypeLong!, TypeReal!, 또는 TypeBoolean!일 때 GetDynamicNumber 함수를 사용한다.

[예제]

* 두 번째 출력 파라미터 서술자 (output parameter descriptor)내의 numeric 데이터를 DeptId에 설정한다.

Integer DeptId

DeptId = SQLDA.GetDynamicNumber(2)

* DynamicDescriptionArea로부터 데이터를 retrieve하는 예제는 GetDynamicDate를 참조한다.

[참고]

GetDynamicDate

GetDynamicDateTime

GetDynamicString

GetDynamicTime

GetDynamicParm


GetDynamicString PowerScript 함수

[설명]

동적 SQL 문장을 실행한 이후에 DynamicDescriptionArea로부터 String 타입의 데이터를 얻는다.

[주의]

이 함수는 동적 SQL 문장 형식 4를 실행한 이후에만 사용이 가능하다.

[문법]

DynamicDescriptionArea.GetDynamicString ( index )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 통상 SQLDA이다.
index | 데이터를 구하려는 출력 파라미터 서술자 (output parameter descriptor)를 나타내는 integer. index는 반드시 DynamicDescriptionArea내의 NumOutputs 값보다 작거나 같아야 한다.

[Return 값]

String.

DynamicDescriptionArea내의 index에 의하여 식별되는 출력 파라미터 서술자 (output parameter descriptor)내의 string 데이터를 리턴한다. 에러가 발생하면 빈 문자열("")을 리턴하고, argument 값중에 NULL이 있으면 NULL을 리턴한다.

[용법]

배열로부터 retrieve하기 원하는 값에관한 OutParmType이 TypeString!일때 GetDynamicString 함수를 사용한다.

[예제]

* 두 번째 출력 파라미터 서술자 (output parameter descriptor)내의 String 데이터를 LName에 설정한다.

String LName

LName = SQLDA.GetDynamicString(2)

* DynamicDescriptionArea로부터 데이터를 retrieve하는 예제는 GetDynamicDate를 참조한다.

[참고]

GetDynamicDate

GetDynamicDateTime

GetDynamicNumber

GetDynamicTime

GetDynamicParm


GetDynamicTime PowerScript 함수

[설명]

동적 SQL 문장을 실행한 이후에 DynamicDescriptionArea로부터 Time 타입의 데이터를 얻는다.

[주의]

이 함수는 동적 SQL 문장 형식 4를 실행한 이후에만 사용이 가능하다.

[문법]

DynamicDescriptionArea.GetDynamicTime ( index )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 통상 SQLDA이다.
index | 데이터를 구하려는 출력 파라미터 서술자 (output parameter descriptor)를 나타내는 integer. index는 반드시 DynamicDescriptionArea내의 NumOutputs 값보다 작거나 같아야 한다.

[Return 값]

Time.

DynamicDescriptionArea내의 index에 의하여 식별되는 출력 파라미터 서술자 (output parameter descriptor)내의 Time 데이터를 리턴한다. 에러가 발생하면 00:00:00.000000을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

배열로부터 retrieve하기 원하는 값에관한 OutParmType이 TypeTime!일때 GetDynamicTime 함수를 사용한다.

[예제]

* 첫 번째 출력 파라미터 서술자 (output parameter descriptor)내의 Time 데이터를 Start에 설정한다.

Time Start

Start = SQLDA.GetDynamicTime(1)

* DynamicDescriptionArea로부터 데이터를 retrieve하는 예제는 GetDynamicDate를 참조한다.

[참고]

GetDynamicDate

GetDynamicDateTime

GetDynamicNumber

GetDynamicString

GetDynamicParm


GetEnvironment PowerScript 함수

[설명]

운용 시스템, 프로세서, 스크린 표시등에관한 정보를 얻는다.

[문법]

GetEnvironment ( environmentinfo )

[Argument]

environmentinfo

환경에관한 정보를 얻고자 하는 Environment object의 이름.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. environmentinfo가 NULL이면, GetEnvironment는 NULL을 리턴한다.

[용법]

cross-platform 개발 프로젝트의 경우, 스크립트내에서 GetEnvironment를 호출하여 운영체제 (Windows 95, Macintosh 등)에 기반을 둔 행동을 취하도록 할 수 있다. 또한 processor (Intel 386 또는 486, 68000, 등등) 및 운영체제 (operating system) 와 PowerBuilder 버전 번호를 알 수도 있다.

시스템에 의하여 제공되는 색상의 수와 스크린의 크기 등을 알아내기 위하여 GetEnvironment를 호출할 수 있다. 윈도우의 X 와 Y property를 재설정하기 위하여 Open 스크립트 내에서 윈도우 크기 정보를 사용할 수 있다.

[예제]

* 다음 스크립트는 Excel을 실행하고, Windows 와 Macintosh에서 사용 가능하다, 경로를 지정하기 위하여 Environment object의 OSType property를 사용한다.

string path

environment env

integer rtn

rtn = GetEnvironment(env)

IF rtn <> 1 THEN RETURN

CHOOSE CASE env.OSType

CASE Macintosh!

path = "Macintosh HD:Excel Folder:Excel"

CASE Windows!, WindowsNT!

path = "C:\excel\excel.xls"

CASE ELSE

RETURN

END CHOOSE

Run(path)


GetFileOpenName PowerScript 함수

[설명]

시스템의 Open File 대화상자를 나타내고 파일의 선택이나 파일명의 입력을 허락한다. DOS-스타일 파일 확장자를 명시하고 확장자없이 파일명을 입력하면, PowerBuilder는 기본설정된 확장자를 파일명에 추가한다. 필터로 작용시키기 위하여 파일 mask를 명시하면, PowerBuilder는 그 mask와 일치하는 파일만 나타낸다.

[문법]

GetFileOpenName ( title, pathname, filename {,extension {, filter } } )

[Argument]

title | 대화상자의 타이틀
pathname | 리턴된 경로와 파일명을 저장하기 위한 string 변수.
filename | 리턴된 파일명을 저장하기 위한 string 변수.
extension | (선택사항) 1개에서 3개 문자까지의 파일 확장자. 기본값은 확장자가 없다.
filter (선택사항) | 표시될 파일들을 선택하기 위하여 사용한 리스트 박스나 파일 mask 내의 문자 (예를들어, *.* 나 *.exe). filter의 형식은 다음과 같다: 표현, *.확장자 기본설정 값: "All Files (*.*),*.*"

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, Cancel 버튼을 클릭하거나 Windows가 나타내는 것을 취소하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument값중에 NULL이 있으면, GetFileOpenName은 NULL을 리턴한다.

[용법]

리스트 박스에 표시되는 파일의 타입을 제한하고, 사용자에게 제한한 파일의 타입을 알려주기위하여 filter argument를 사용한다. 예를들어, Text Files (*.TXT)라 표현하고 확장자가 .TXT인 파일만 나타내려면, filter argument를 다음과 같이 명시한다.

"Text Files (*.TXT),*.TXT"

filter argument내에 하나이상의 파일을 명시하려면, 쉼표(,)로 분리하여 표현과 확장자를 나타낸다. 예를들면:

"PIF files, *.PIF, Batch files, *.BAT"

Tip

선택한 파일을 오픈하려면 FileOpen 함수를 사용한다.

GetFileOpenName 과 GetFileSaveName에 의하여 나타난 대화상자는 시스템 대화상자이다. 이 대화상자들은 현재디렉토리를 나타내고있는 표준 시스템 모양을 제공한다. 대화상자 내의 드라이브, 디렉토리, 폴더 등을 변경하면, 현재 디렉토리 또는 폴더가 변경된다. 새로 선택된 디렉토리나 폴더는 응용프로그램을 빠져나갈 때 까지 파일을 운영하기위한 기본 설정 값이 되는 것이다.

[예제]

* Open File 윈도우를 나타내고 GetFileOpenName 처리에 성공하면 사용자가 선택한 파일을 오픈한다. 파일타입은 TXT와 DOC이다.

string docname, named

integer value

value = GetFileOpenName("Select File", &

+ docname, named, "DOC", &

+ "Text Files (*.TXT),*.TXT," &

+ "Doc Files (*.DOC),*.DOC")

IF value = 1 THEN FileOpen(docname)

[참고]

DirList

DirSelect

GetFileSaveName


GetFileSaveName PowerScript 함수

[설명]

File 이름 상자 내에 명시한 파일이름으로 시스템의 Save File 대화상자를 나타낸다. 사용자는 파일 이름을 입력하거나 리스트로부터 파일을 선택할 수 있다. DOS-스타일 파일 확장자를 명시하고 확장자 없이 파일명을 입력하면, PowerBuilder는 기본 설정된 확장자를 파일명에 추가한다. 필터로 작용시키기 위하여 파일 mask를 명시하면, PowerBuilder는 그 mask와 일치하는 파일만 나타낸다.

[문법]

GetFileSaveName ( title, pathname, rfilename {, extension {, filter } } )

[Argument]

title | 대화상자의 타이틀
pathname | 기본설정된 파일명으로, 리턴된 경로와 파일명을 저장하기 위한 string 변수. 기본설정된 파일명은 File 이름 상자에 표시되지만, 다른 이름을 명시할 수 있다.
rfilename | 리턴된 파일명을 저장할 string 변수.
extension | (선택사항) 1개 에서 3개 문자까지의 파일 확장자. 기본값은 확장자가 없다.
filter (선택사항) | 표시된 파일들을 선택하는데 사용하려는 파일과 확장자의 표현 값. filter의 형식은 다음과 같다: 표현, *.확장자 기본설정 값: "All Files (*.*),*.*"

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, Cancel 버튼을 클릭하거나 Windows가 나타내는 것을 취소하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument값중에 NULL이 있으면, GetFileSaveName은 NULL을 리턴한다.

[용법]

GetFileOpenName을 참조한다.

[참고]

DirList

DirSelect

GetFileOpenName


GetFirstSheet PowerScript 함수

[설명]

활성화 여부에 관계없이, MDI 프레임내의 최상위 sheet를 구한다.

[적용]

MDI frame windows

[문법]

mdiframewindow.GetFirstSheet ( )

[Argument]

mdiframewindow

최상위 sheet를 구하려는 MDI frame 윈도우.

[Return 값]

Window.

MDI frame의 첫 번째 sheet를 리턴한다. frame내에 오픈된 sheet가 없을 경우, GetFirstSheet는 올바르지않은 값을 리턴한다. mdiframewindow가 NULL이면, GetFirstSheet는 NULL을 리턴한다.

[용법]

frame내에 오픈된 sheet들을 순화적으로 알아내려면, GetFirstSheet 와 GetNextSheet를 사용한다. 이들 함수는 GetActiveSheet와 함께 사용하지 말아야 한다.

GetFirstSheet가 올바른 윈도우를 리턴 하였는가 ?

이 함수에 의하여 리턴된 값이 타당한지 알아보려면 IsValid 함수를 사용한다. 타당하지 않을 경우는, sheet가 오픈되어있지 않은 것이다.

[예제]

* MDI frame의 최상의 sheet를 리턴한다.

window wSheet

string wName

wSheet = ParentWindow.GetFirstSheet( )

IF IsValid(wSheet) THEN

// 오픈된 sheet가 있다

wName = wsheet.ClassName( )

MessageBox("First Sheet is", wName)

END IF

[참고]

GetNextSheet

IsValid


GetFocus PowerScript 함수

[설명]

현재 focus를 가진 control을 결정한다.

[문법]

GetFocus ( )

[Return 값]

GraphicObject.

현재 focus를 가진 control을 리턴한다. 에러가 발생하면 null control 참조를 리턴한다.

[예제]

* 현재 focus를 가진 control의 데이터 타입과 동일하게 which_control을 설정하고, 그 control의 text property에 text_value를 설정한다.

GraphicObject which_control

SingleLineEdit sle_which

CommandButton cb_which

string text_value

which_control = GetFocus( )

CHOOSE CASE TypeOf(which_control)

CASE CommandButton!

cb_which = which_control

text_value = cb_which.Text

CASE SingleLineEdit!

sle_which = which_control

text_value = sle_which.Text

CASE ELSE

text_value = ""

END CHOOSE

[참고]

SetFocus


GetFormat PowerScript 함수

[설명]

DataWindow control 이나 DataStore object내의 칼럼에 할당된 표시 형식을 구한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetFormat ( column )

[Argument]

dwcontrol | 칼럼의 표시 형식을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름.
column | 표시 형식을 알고자 하는 칼럼. column은 칼럼 번호 (integer)나 칼럼 이름 (string)이 가능하다.

[Return 값]

String.

dwcontrol의 column에관한 표시 형식을 리턴한다. 에러가 발생하면 GetFormat은 빈 문자열 ("")을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

칼럼의 표시 형식을 임시로 변경하고자 한다면, 현재 표시 형식을 저장하기 위하여 GetFormat 함수를 사용할 수 있다.

[예제]

* dw_employee의 salary 칼럼으 표시 형식을 변경하기 전에 현재 상태를 저장한다.

string OldFormat, NewFormat = "$##,###.00"

OldFormat = dw_employee.GetFormat("salary")

dw_employee.SetFormat("salary", NewFormat)

[참고]

SetFormat


GetItem PowerScript 함수: syntax 1

[설명]

명시한 칼럼의 레이블을 구한다.

[적용]

ListView controls

[문법]

listviewname.GetItem ( index, column, label )

[Argument]

listviewname | 칼럼 레이블을 구하려는 ListView control의 이름.
index | 레이블을 구하려는 아이템의 인덱스 번호.
column | 레이블을 구하려는 칼럼의 번호
label | 구하려는 칼럼의 레이블

[Return 값]

Integer.

처리에 성공하면 칼럼 레이블을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

이 문법은 report view를 나타내기 위하여 필요하다. report view에서 칼럼 정보를 구하지 않을 경우라면, Syntax 2를 사용하도록 한다.

[예제]

* SetItem 함수내에서 사용된 칼럼 정보를 구한다.

string ls_artist, ls_comp

lv_list.GetItem(1, 3 , ls_artist)

lv_list.GetItem(1, 1 , ls_comp)

sle_info.text = ls_artist +" wrote " + ls_comp + "."

lv_list.SetItem(11 , 1 , "Blue Seven")

lv_list.SetItem(11 , 2, "Saxophone Colossus")

lv_list.SetItem(11 , 3 , ls_artist)

[참고]

SetItem

GetItem: Syntax 2

GetItem: Syntax 3

GetItem PowerScript 함수: syntax 2

[설명]

명시한 ListView 아이템에관한 정보를 구한다.

[적용]

ListView controls

[문법]

listviewname.GetItem ( index, item )

[Argument]

listviewname | 정보를 구하려는 ListView control의 이름
index | 정보를 구하려는 아이템의 인덱스 번호
item | 정보를 구하려는 아이템

[Return 값]

Integer.

처리에 성공하면 칼럼 레이블을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

report view에서 칼럼 정보를 구하려면, syntax 1을 사용한다.

[예제]

* ListView의 2번째 아이템을 5번째 아이템으로 이동시키기 위하여 GetItem을 사용한다. 먼저 아이템 2에 관한 정보를 구하고, ListView control의 5번째 아이템으로 삽입한 뒤, 원래 아이템을 삭제한다.

listviewitem l_lvi

lv_list.GetItem(2 , l_lvi)

lv_list.InsertItem(5 , l_lvi)

lv_list.DeleteItem(2)

[참고]

SetItem

GetItem: Syntax 1

GetItem: Syntax 3

GetItem PowerScript 함수: syntax 3

[설명]

명시한 아이템과 연관된 데이터를 구한다.

[적용]

TreeView controls

[문법]

treeviewname.GetItem ( itemhandle, item )

[Argument]

treeviewname | 명시한 아이템에관한 데이터를 구하려는 TreeView control의 이름
itemhandle | 정보를 구하려는 아이템의 핸들(handle)
item | 아이템 핸들에 의하여 식별된 TreeView item

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

명시한 TreeView 아이템과 연관된 정보 (label, handle, picture index 등)을 구하려면 GetItem을 사용한다. 한 번 구한 정보는, 응용프로그램 내에서 사용할 수 있다.

[예제]

* SelectionChanged 이벤트 내에서 아이템을 추적하는 예제이다. 이전에 선택한 것이 없었을 경우, l_tviold의 값은 0이다.

treeviewitem l_tvinew, l_tviold

// 이전에 선택한 아이템을 구한다

tv_list.GetItem(oldhandle , l_tviold)

// 현재 선택된 아이템을 구한다

tv_list.GetItem(newhandle , l_tvinew)

// 두 아이템에 관한 정보를 SingleLineEdit에 나타낸다

sle_get.Text = "Selection changed from " &

+ String(l_tviold.Label) + " to " &

+ String(l_tvinew.Label)

[참고]

SetItem

GetItem: Syntax 1

GetItem: Syntax 2


GetItemDate PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 Date 타입의 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemDate ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 date 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer (선택사항) | 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값. Primary! (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터) Delete! delete 버퍼내의 데이터 (DataWindow로 부터 삭제된 데이터) Filter! filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue (선택사항) | 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean: True 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다. False (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

Date.

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 1900-01-01을 리턴한다. argument 중에 NULL이 있으면, GetItemDate는 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemDate를 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

칼럼과 계산된 필드의 데이터 타입

DataWindow 칼럼과 함수의 데이터 타입이 일치하지 않을 경우 실행 에러가 발생한다.

데이터베이스로 부터 retrieve되는 칼럼과 계산된 칼럼, 그리고 DataWindow painter에서 정의된 계산된 필드 사이의 데이터 타입에는 차이가 있다. 데이터 베이스로 부터 retrieve된 계산된 칼럼은 date 타입의 데이터를 가질 수 있지만, DataWindow painter에서 정의된 계산된 필드는 항상 DateTime의 데이터 타입만을 가진다. 따라서 계산된 필드의 경우는 GetItemDateTime 함수를 사용하도록 한다.

String 함수에서의 GetItemDate 사용

String 함수에관한 argument로 GetItemDate를 호출하고 표시형식을 명시하지 않으면, 그 값은 DateTime 값으로 형식화 된다. 다음 문장은 "2/26/96 00:00:00"와 같은 형식으로 리턴된다.

String(dw_1.GetItemDate(1, "start_date"))

date 형식의 문자열을 얻으려면, 다음과 같이 표시 형식을 명시할 수 있다:

String(dw_1.GetItemDate(1,"start_date"), "m/d/yy")

또는, String 함수를 호출하기 전에 date 변수에 날짜를 할당할 수도 있다:

date ld_date

string ls_date

ld_date = dw_1.GetItemDate(1, "start_date")

ls_date = String(ld_date)

[예제]

* HireDate를 dw_employee의 first_day 칼럼의 primary 버퍼 3번째 row의 현재 Date 데이터로 설정한다.

Date HireDate

HireDate = dw_employee.GetItemDate(3, "first_day")

* HireDate를 dw_employee의 first_day 칼럼의 filter 버퍼 3번째 row의 현재 Date 데이터로 설정한다.

Date HireDate

HireDate = dw_employee.GetItemDate(3, "first_day", Filter!, FALSE)

* HireDate를 dw_employee의 first_day 칼럼의 primary 버퍼 3번째 row의 원래 Date 데이터로 설정한다.

Date HireDate

HireDate = dw_employee.GetItemDate(3, "hdate", Primary!, TRUE)

[참고]

GetItemDateTime

GetItemDecimal

GetItemNumber

GetItemString

GetItemTime

GetText

SetItem

SetText


GetItemDateTime PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 DateTime 타입의 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemDateTime ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 DateTime 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer (선택사항) | 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값. Primary! (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터) Delete! delete 버퍼내의 데이터 (DataWindow로부터 삭제된 데이터) Filter! filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue (선택사항) | 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean: True 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다. False (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

DateTime.

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 1900-01-01 0:00:00.000000을 리턴한다. argument 중에 NULL이 있으면, GetItemDateTime은 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemDateTime을 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

데이터 타입의 불일치

DataWindow 칼럼과 함수의 데이터 타입이 일치하지 않을 경우 실행 에러가 발생한다.

DateTime 데이터 타입을 갖고 date 또는 time 값을 나타내는 계산된 필드는, date 또는 time 값이 아니다. 이들의 값을 구하려면, GetItemDate 또는 GetItemTime을 사용하지 말고 항상 GetItemDateTime을 사용하도록 한다.

[예제]

* AsOf를 DataWindow dw_emp의 start_dt 칼럼의 3번째 row에 관한 primary 버퍼내의 현재 DateTime 데이터로 설정한다.

DateTime AsOf

AsOf = dw_emp.GetItemDateTime(3, "start_dt")

* AsOf를 DataWindow dw_emp의 end_dt 칼럼의 3번째 row에 관한 delete 버퍼내의 현재 DateTime 데이터로 설정한다.

DateTime AsOf

AsOf = dw_emp.GetItemDateTime(3, "end_dt", Delete!, FALSE)

* AsOf를 DataWindow dw_emp의 end_dt 칼럼의 3번째 row에 관한 primary 버퍼내의 원래 DateTime 데이터로 설정한다.

DateTime AsOf

AsOf = dw_emp.GetItemDateTime(3, "end_dt", Primary!, TRUE)

[참고]

GetItemDate

GetItemDecimal

GetItemNumber

GetItemString

GetItemTime

GetText

SetIten


GetItemDecimal PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 Decimal 타입의 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemDecimal ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 decimal 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 decimal 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer (선택사항) | 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값.
 | Primary! | (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터)
 | Delete! | delete 버퍼내의 데이터 (DataWindow로 부터 삭제된 데이터)
 | Filter! | filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue (선택사항) | 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean:
 | True | 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다.
 | False | (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

Decimal.

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 SystemError 이벤트를 발생시키고 -1을 리턴한다. argument의 값 중에 NULL이 있으면, GetItemDecimal은 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemDecimal을 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

에러의 취급

리턴되는 값은 SystemError 이벤트가 유발(trigger)되지 않는한 데이터베이스로부터 타당한 값이다. 칼럼의 데이터 타입이 함수의 데이터 타입과 일치하지 않아서 값을 변환할 수 없을 경우, 실행에러가 발생하고, SystemError 이벤트가 trigger 된다. 기본적인 에러 처리는 응용프로그램을 중단 시키는 것이다. SystemError 이벤트에관한 스크립트를 작성하면, 그 또한 응용프로그램을 중단시킬 수 있다. 따라서 리턴되는 에러값은 거의 사용되지 않는다.

[예제]

* salary_amt를 dw_employee의 emp_salary 칼럼의 4번째 row에 관한 primary 버퍼내의 현재 decimal 데이터로 설정한다.

decimal salary_amt

salary_amt = dw_employee.GetItemDecimal(4, "emp_salary")

* salary_amt를 dw_employee의 emp_salary 칼럼의 4번째 row에 관한 filter 버퍼내의 현재 decimal 데이터로 설정한다.

decimal salary_amt

salary_amt = dw_employee.GetItemDecimal(4, "emp_salary", Filter!, FALSE)

* salary_amt를 dw_employee의 emp_salary 칼럼의 4번째 row에관한 primary 버퍼내의 원래 decimal 데이터로 설정한다.

decimal salary_amt

salary_amt = dw_employee.GetItemDecimal(4, "emp_salary", Primary!, TRUE)

[참고]

GetItemDate

GetItemDateTime

GetItemNumber

GetItemString

GetItemTime

GetText

SetIten


GetItemNumber PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 numeric 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemNumber ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 numeric 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 numeric 데이터 타입중 하나 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer (선택사항) | 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값.
 | Primary! | (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터)
 | Delete! | delete 버퍼내의 데이터 (DataWindow로 부터 삭제된 데이터)
 | Filter! | filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue (선택사항) | 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean:
 | True | 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다.
 | False | (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

numeric 데이터 타입 (decimal, double, integer, long, 또는 real).

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 SystemError 이벤트를 발생시키고 -1을 리턴한다. argument의 값중에 NULL이 있으면, GetItemNumber는 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemNumber를 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

에러의 취급

리턴되는 값은 SystemError 이벤트가 유발(trigger)되지 않는 한 데이터베이스로부터 타당한 값이다. 칼럼의 데이터 타입이 함수의 데이터 타입과 일치하지 않아서 값을 변환할 수 없을 경우, 실행에러가 발생하고, SystemError 이벤트가 trigger 된다. 기본적인 에러 처리는 응용프로그램을 중단 시키는 것이다. SystemError 이벤트에 관한 스크립트를 작성하면, 그 또한 응용프로그램을 중단시킬 수 있다. 따라서 리턴되는 에러 값은 거의 사용되지 않는다.

[예제]

* EmpNbr을 dw_employee의 emp_nbr 칼럼의 4번째 row에 관한 primary 버퍼의 현재 numeric 데이터로 설정한다.

integer EmpNbr

EmpNbr = dw_employee.GetItemNumber(4, "emp_nbr")

* EmpNbr을 dw_employee의 emp_nbr 칼럼의 4번째 row에 관한 filter 버퍼의 현재 numeric 데이터로 설정한다.

integer EmpNbr

EmpNbr = dw_employee.GetItemNumber(4, "salary", Filter!, FALSE)

* EmpNbr을 dw_employee의 emp_nbr 칼럼의 4번째 row에 관한 primary 버퍼의 원래 numeric 데이터로 설정한다.

integer EmpNbr

EmpNbr = dw_Employee.GetItemNumber(4, "salary", Primary!, TRUE)

[참고]

GetItemDate

GetItemDateTime

GetItemDecimal

GetItemString

GetItemTime

GetText

SetIten


GetItemStatus PowerScript 함수

[설명]

row 또는 row내의 한 칼럼에 대한 수정 상태를 나타낸다. 수정 상태는 Update 함수가 row 또는 column에 관하여 생성할 SQL 문장의 타입을 결정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemStatus ( row, column, dwbuffer )

[Argument]

dwcontrol | row 또는 row내의 한 칼럼의 상태를 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름.
row | 상태를 알려는 row를 나타내는 long 값.
column | 상태를 알고자 하는 칼럼. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다. 0을 명시하면 row 전체의 상태를 알 수 있다.
dwbuffer | row를 포함하고있는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값. Primary! (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터) Delete! delete 버퍼내의 데이터 (DataWindow로 부터 삭제된 데이터) Filter! filter 버퍼내의 데이터 (필터에서 걸러진 데이터)

[Return 값]

열거형의 dwItemStatus의 값. dwbuffer내의 dwcontrol의 row, column의 상태를 리턴한다. column이 0일 경우, GetItemStatus는 row의 상태를 리턴한다. argument 값중에 NULL이 있으면, GetItemStatus는 NULL을 리턴한다.

[용법]

열거형의 dwItemStatus의 값은 다음과 같다:

NotModified! | row 또는 칼럼내의 정보가 retrieve된 이후로 변경되지 않았다.
DataModified! | retrieve된 이후로 row 또는 row내의 한 칼럼의 정보가 변경되었다.
New! | row가 새로 추가되었지만 칼럼에 관한 값이 명시되지 않았다. (개개의 칼럼이 아닌 row에만 적용된다)
NewModified! | row가 새로 추가되었고, 칼럼에 값이 할당되었다. 사용자의 입력 또는 SetItem 함수로 인하여 변경되면, 새로운 row는 그 칼럼 중 하나가 기본 값을 가질때 NewModified! 상태를 가지게 된다. (개개의 칼럼이 아닌 row에만 적용된다)

데이터베이스를 갱신할 때 추가 또는 변경정보에 관하여 어떠한 SQL 문장이 생성되는지 이해하려면 GetItemStatus를 사용한다.

primary 와 filter 버퍼 내 row들의 경우, Update 함수는 NewModified! 상태의 row에 관하여 INSERT 문장을 생성한다. DataModified! 상태의 row에 관하여는 UPDATE 문장을 생성한다. DataModified! 상태를 가진 칼럼만 UPDATE 문장에 포함된다.

delete 버퍼 내 row들의 경우, delete 버퍼로 옮겨지기 전에 New! 또는 NewModified! 상태를 갖는 row들에 대하여는 DELETE 문장을 생성하지 않는다.

[예제]

* dw_1의 primary 버퍼에있는 row의 emp_status 칼럼 상태를 변수 l_status에 저장한다.

dwItemStatus l_status

l_status = dw_1.GetItemStatus(5, "emp_status", Primary!)

* dw_emp primary 버퍼의 현재 row내의 Salary 칼럼 상태를 메모리변수 l_status에 저장한다.

dwItemStatus l_status

l_status = dw_emp.GetItemStatus(dw_emp.GetRow(), &

"Salary", Primary!)

[참고]

GetNextModified

SetItemStatus


GetItemString PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 String 타입의 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemString ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 string 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 string 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer (선택사항) | 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값.
 | Primary! | (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터)
 | Delete! | delete 버퍼내의 데이터 (DataWindow로부터 삭제된 데이터)
 | Filter! | filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue (선택사항) | 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean:
 | True | 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다.
 | False | (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

String.

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 빈 문자열 ("")을 리턴한다. argument의 값중에 NULL이 있으면, GetItemNumber는 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemString을 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

데이터 타입의 불일치

DataWindow 칼럼과 함수의 데이터 타입이 일치하지 않을 경우 실행 에러가 발생한다.

[예제]

* LName을 DataWindow dw_employee내의 emp_name 칼럼의 3번째 row에 관한 primary 버퍼의 현재 값으로 설정한다.

String LName

LName = dw_employee.GetItemString(3, "emp_name")

* LName을 DataWindow dw_employee내의 emp_name 칼럼의 3번째 row에 관한 delete 버퍼의 현재 값으로 설정한다.

String LName

LName = dw_employee.GetItemString(3, "emp_name", Delete!, FALSE)

* LName을 DataWindow dw_employee내의 emp_name 칼럼의 3번째 row에 관한 delete 버퍼의 원래 값으로 설정한다.

String LName

LName = dw_employee.GetItemString(3, "emp_name", Delete!, TRUE)

[참고]

GetItemDate

GetItemDateTime

GetItemDecimal

GetItemNumber

GetItemTime

GetText

SetIten


GetItemTime PowerScript 함수

[설명]

DataWindow control 이나 DataStore object의 명시한 버퍼로부터 Time 타입의 데이터를 구한다. original 버퍼로 부터는 원래 retrieve되고 저장된 값을 구할 수 있으며, primary, delete, filter 버퍼로부터는 현재 값을 구할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetItemTime ( row, column {, wbuffer, originalvalue } )

[Argument]

dwcontrol | 명시한 row와 column에 포함된 time 데이터 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치를 나타내는 long 값.
column | 데이터의 column위치. 칼럼의 데이터 타입은 반드시 time 이어야 한다. column은 칼럼 번호 (integer)나 칼럼 이름 (string)일 수 있다.
 | Tip : 계산된 필드의 내용을 구하려면, 칼럼에 관한 계산된 필드의 이름을 명시하도록 한다. 계산된 필드는 번호를 가지고있지 않다.
dwbuffer | (선택사항) 데이터를 구하려는 DataWindow 버퍼를 나타내는 열거형의 dwBuffer 데이터 타입의 값.
 | Primary! | (기본값) primary 버퍼내의 데이터 (삭제되었거나 필터되지 않은 데이터)
 | Delete! | delete 버퍼내의 데이터 (DataWindow로 부터 삭제된 데이터)
 | Filter! | filter 버퍼내의 데이터 (필터에서 걸러진 데이터)
originalvalue | (선택사항) 원하는 데이터가 row와 column에 관한 원래 값인지 또는 현재 값인지를 나타내는 boolean:
 | True | 데이터베이스로부터 처음에 retrieve된 원래 값을 리턴한다.
 | False | (기본값) 현재 값을 리턴한다. dwbuffer를 명시하였으면, 반드시 originalvalue도 명시하여야 한다.

[Return 값]

Time.

칼럼값이 NULL이면 NULL을 리턴한다. 에러가 발생하면 00:00:00.000000을 리턴한다. argument의 값 중에 NULL이 있으면, GetItemTime은 NULL을 리턴한다.

[용법]

DataWindow의 버퍼로부터 정보를 구하고자 할 때 GetItemTime을 사용한다. 데이터를 받아들이기 전에 현재 칼럼에 사용자가 입력한 내용을 알아내려면 GetText를 사용한다. ItemChanged 또는 ItemError 이벤트 내에서는, data argument를 사용한다.

original 버퍼내의 row에 접근하려면, row가 현재 점유한 버퍼 (primary, delete, 또는 filter)와 그 버퍼내의 row 번호를 명시한다. originalvalue를 TRUE로 명시하면, 함수는 original 버퍼로부터 row에 관한 원래 데이터를 구한다.

칼럼과 계산된 필드의 데이터 타입

DataWindow 칼럼과 함수의 데이터 타입이 일치하지 않을 경우 실행 에러가 발생한다.

데이터베이스로 부터 retrieve되는 칼럼과 계산된 칼럼, 그리고 DataWindow painter에서 정의된 계산된 필드 사이의 데이터 타입에는 차이가 있다. 데이터 베이스로 부터 retrieve된 계산된 칼럼은 time 타입의 데이터를 가질 수 있지만, DataWindow painter에서 정의된 계산된 필드는 항상 DateTime의 데이터 타입만을 가진다. 따라서 계산된 필드의 경우는 GetItemDateTime 함수를 사용하도록 한다.

String 함수에서의 GetItemTime 사용

String 함수에관한 argument로 GetItemTime을 호출하고 표시형식을 명시하지 않으면, 그 값은 DateTime 값으로 형식화 된다. 다음 문장은 "2/26/96 00:00:00"와 같은 형식으로 리턴된다.

String(dw_1.GetItemTime(1, "start_date"))

time 형식의 문자열을 얻으려면, String 함수에 관한 형식을 명시하거나, String 함수를 호출하기 전에 time 변수에 시간을 할당할 수도 있다 (GetItemDate 예제 참조)

[예제]

* Start를 dw_employee의 title 칼럼의 3번 row에 관한 primary 버퍼의 현재 Time으로 설정한다.

Time Start

Start = dw_employee.GetItemTime(3, "title")

* Start를 dw_employee의 start_time 칼럼의 3번 row에 관한 filter 버퍼의 현재 Time으로 설정한다.

Time Start

Start = dw_employee.GetItemTime(3, "start_time", Filter!, FALSE)

* Start를 dw_employee의 start_time 칼럼의 3번 row에 관한 primary 버퍼의 원래 Time으로 설정한다.

Time Start

Start = dw_employee.GetItemTime(3, "start_time", Primary!, TRUE)

[참고]

GetItemDate

GetItemDateTime

GetItemDecimal

GetItemNumber

GetItemString

GetText

SetIten


GetMessageText PowerScript 함수

[설명]

DataWindow control의 crosstab DataWindow object에 의하여 생성된 메시지 텍스트를 얻는다.

사용하지않는 함수

GetMessageText는 필요 없게 된 함수이다. 메시지 텍스트는 DataWindow control의 pbm_dwnmessagetext에 관하여 정의된 사용자 이벤트내의 argument로써 사용 가능하다.

[적용]

DataWindow controls

[문법]

dwcontrol.GetMessageText ( )

[Argument]

dwcontrol

메시지 텍스트를 원하는 DataWindow control의 이름

[Return 값]

String.

dwcontrol에 의하여 생성된 메시지 텍스트를 리턴한다. 텍스트가 없거나 에러가 발생하면, GetMessageText는 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetMessageText는 NULL을 리턴한다.

[용법]

GetMessageText를 사용하려면, 반드시 먼저 이벤트 ID pbm_dwnmessagetext에 관한 사용자-정의 이벤트를 정의하고 그 이벤트 스크립트내에서 이 함수를 호출하여야 한다.

전형적인 메시지는 "Retrieving data" 와 "Building crosstab"이다.

[예제]

* 다음 문장은 ID pbm_dwmessagetext를 가진 사용자-정의 이벤트 스크립트 중 일부이다. DataWindow control내의 DataWindow object 스타일은 crosstab이다. MDI frame 윈도우 w_crosstab의 MicroHelp를 설정한다.

w_crosstab.SetMicroHelp(This.GetMessageText( ))


GetNativePointer PowerScript 함수

[설명]

OLE control과 연관된 OLE object의 포인터를 구한다. 포인터는 그 object에 관한 외부 DLL내의 OLE 함수를 호출할 수 있도록 해준다.

[적용]

OLE 2.0 controls 와 OLE custom controls

[문법]

olename.GetNativePointer ( pointer )

[Argument]

olename | native 포인터를 구하려는 object를 포함하고있는 OLE control의 이름.
pointer | 포인터를 저장할 UnsignedLong 변수. GetNativePointer가 올바른 포인터를 얻을 수 없을 경우, 포인터는 0으로 설정된다.

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

DLL내에서 포인터를 이용하여 호출하기

pointer는 OLE의 IUnknown interface를 나타낸다. 다른 인터페이스 포인터를 구하려면 QueryInterface()와 함께 사용할 수 있다.

GetNativePointer를 호출하면, PowerBuilder는 OLE의 AddRef() 함수를 호출하여, 포인터를 잠근다. 사용자는 DLL 함수 또는 ReleaseNativePointer 함수를 가진 PowerBuilder 스크립트에서 포인터를 해제 시켜야만 한다.

[예제]

* OLE automation에 관한 외부 함수를 호출할 수 있도록 OLECustomControl ocx_spell에 관한 포인터를 구한다.

UnsignedLong lul_oleptr

integer li_rtn

li_rtn = ocx_spell.GetNativePointer(lul_oleptr)

IF li_rtn = 0 THEN

... // automation에관한 외부 함수를 호출한다

ocx_spell.ReleaseNativePointer(lul_oleptr)

END IF

[참고]

GetAutomationNativePointer

ReleaseAutomationNativePointer

ReleaseNativePointer


GetNextModified PowerScript 함수

[설명]

명시한 버퍼 내에 수정된 다음 row를 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetNextModified ( row, dwbuffer )

[Argument]

dwcontrol | 수정된 row가 위치한 DataWindow control, DataStore, 또는 child DataWindow의 이름.
row | 이후의 수정된 row의 위치를 알고자 하는 row를 나타내는 long 값. 명시한 곳부터 검색을 시작한다.
dwbuffer | 수정된 row가 위치한 DataWindow 버퍼를 나타내는 열거형 dwBuffer의 값:
 | PRIMARY! | primary 버퍼내의 데이터 (데이터는 삭제되거나 필터에서 제외되지 않았다)
 | DELETE! | delete 버퍼내의 데이터 (DataWindow에서 삭제되었다)
 | FILTER! | filter 버퍼내의 데이터 (필터에서 제외된 데이터)

[Return 값]

Long.

dwcontrol의 dwbuffer내에 row이후에 수정된 첫 번째 row 번호를 리턴한다. 명시한 row 이후에 수정된 row들이 없으면 0을 리턴한다. argument의 값 중에 NULL이 있으면, GetNextModified 는 NULL을 리턴한다.

[용법]

PowerBuilder는 datawindow내의 row와 칼럼들의 갱신 상태를 저장한다. 그 상태는 row 또는 칼럼의 신규 또는 수정 여부를 나타낸다. GetNextModified는 NewModified! 와 DataModified! 상태의 row들을 나타낸다.

row와 칼럼의 상태에 관한 더 자세한 정보는 GetItemStatus 와 SetItemStatus를 참조한다.

deleted 버퍼상에서 GetNextModified를 사용하면 수정된 후 삭제된 row들을 리턴하게 된다. DeletedCount 함수는 삭제된 row들의 총 수를 나타낸다.

GetNextModified는 row에 명시한 값 이후의 row부터 검색을 시작한다. 이러한 것은, 명시한 row부터 검색을 시작하는 Find, FindGroupChange, 와 FindRequired 등과는 다른 양상이다.

[예제]

* dw_status에관한 primary 버퍼내의 수정된 row의 수를 카운트하고 수정된 수를 메시지에 나타낸다.

integer rc

long NbrRows, row = 0, count = 0

dwItemStatus status

dw_status.AcceptText()

NbrRows = dw_status.RowCount( )

DO WHILE row <= NbrRows

row = dw_status.GetNextModified(row, Primary!)

IF row > 0 THEN

count = count + 1

ELSE

row = NbrRows + 1

END IF

LOOP

MessageBox("Modified Count", String(count) &

+ " rows were modified.")

수정된 row의 총 수

primary 와 filter 버퍼 내에서 수정된 row의 총 수를 구하려면 ModifiedCount 함수를 사용하면 된다.

[참고]

DeletedCount

FindRequired

GetItemStatus

ModifiedCount

SetItemStatus


GetNextSheet PowerScript 함수

[설명]

MDI frame에서 명시한 sheet 뒤에 숨어있는 sheet를 얻는다.

[적용]

MDI frame windows

[문법]

mdiframewindow.GetNextSheet ( sheet )

[Argument]

mdiframewindow | 다음 sheet를 구하려는 MDI frame 윈도우
sheet | 그 뒤에 숨어있는 sheet를 구하려는 sheet명.

[Return 값]

Window.

MDI frame에서 sheet뒤에 숨어있는 sheet를 리턴한다. sheet뒤에 sheet가 없을 경우, GetNextSheet는 올바르지않은 값을 리턴한다. argument의 값 중에 NULL이 있으면, GetNextSheet는 NULL을 리턴한다.

[용법]

frame내에서 sheet들을 순환하면서 오픈하려면, 제일 처음의 sheet를 구하기 위하여 GetFirstSheet를 사용하고 나머지 sheet들을 차례로 오픈하기 위하여 GetNextSheet를 사용한다. 마지막 sheet에 도달하였는지를 알아보려면 IsValid에의하여 리턴되는 값을 각각 체크한다.

GetNextSheet가 올바른 윈도우를 리턴하였는가 ?

GetNextSheet가 타당한 윈도우를 리턴하였는지 알아보려면, IsValid 함수를 사용하도록 한다. 명시한 sheet 뒤에 숨어있는 sheet가 없을 경우에, GetNextSheet가 리턴하는 값은 올바르지않은 값이 된다.

[예제]

* 메뉴 선택에 관한 다음 스크립트는 앞에서 뒤쪽으로 sheet를 오픈하고 ListBox lb_sheets에 오픈한 sheet의 이름을 나타낸다.

boolean bValid

window wSheet

lb_sheets.Reset( )

wSheet = ParentWindow.GetFirstSheet()

IF IsValid(wSheet) THEN

lb_sheets.AddItem(wSheet.Title)

DO

wSheet = ParentWindow.GetNextSheet(wSheet)

bValid = IsValid (wSheet)

IF bValid THEN lb_sheets.AddItem(wSheet.Title)

LOOP WHILE bValid

END IF

[참고]

GetFirstSheet

IsValid


GetObjectAtPointer PowerScript 함수

[설명]

포인터 아래에 있는 object와 row 번호를 나타낸다. DataWindow objects는 columns, labels, 그리고 lines and bitmaps등과 같이 또 다른 graphic objects를 포함하고 있다.

[적용]

DataWindow controls

[문법]

dwcontrol.GetObjectAtPointer ( )

[Argument]

dwcontrol

포인터 아래에 있는 object를 얻으려 하는 DataWindow control의 이름

[Return 값]

String.

포인터 아래에 있는 object의 이름 (뒤에 tab 문자와 row 번호를 가지고 있다). 에러가 발생하면 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetObjectAtPointer는 NULL을 리턴한다.

[용법]

object가 이름을 가지고있지 않을 경우, 이름이나 row 모두 리턴하지 않는다. PowerBuilder는 DataWindow painter내의 칼럼과 칼럼 레이블에 이름을 부여한다. 사용자는 DataWindow painter내의 다른 object들에 이름을 부여할 수 있다.

사용자는 tab 문자 ("~t" 또는 ASCII 9)를 찾아냄으로써 리턴 값을 분리할 수 있다. 리턴값을 분리하는 예제는, Pos 함수를 참조한다.

[예제]

* DataWindow dw_emp에서 포인터 아래에 있는 object를 구한다.

String dwobject

dwobject = dw_emp.GetObjectAtPointer()

리턴될수 있는 값들은 다음과 같은 것들이 있다:

리턴값 | 의미
salary~t23 | row 23에 있는 salary라는 이름의 object.
salary_h~t15 | header에 있는 salary_h object. row 15는 그 header 아래에서 처음 보이는 row 이다.

[참고]

GetBandAtPointer


GetOrigin PowerScript 함수

[설명]

ListView 아이템의 좌측상단 모서리 X 와 Y 좌표을 찾는다.

[적용]

ListView controls

[문법]

listviewname.GetOrigin( x , y )

[Argument]

listviewname | 좌측상단 모서리 좌표를 찾으려는 ListView control
x | ListView control의 X 좌표를 저장할 integer 변수
y | ListView control의 Y 좌표를 저장할 integer 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 실패하면 -1을 리턴한다.

[용법]

ListView control의 좌측상단 모서리에 상대적으로 드래그된 object의 위치를 찾으려면 GetOrigin 함수를 사용한다.

[예제]

* 이 예제는 문자열 clock을 선택한 ListView 아이템의 좌측상단 모서리로 옮긴다.

integer li_index

listviewitem l_lvi

li_index = lv_list.SelectedIndex()

lv_list.GetItem(li_index, l_lvi)

lv_list.GetOrigin(l_lvi.ItemX, l_lvi.ItemY)

sle_info.Text = "X is "+ String(l_lvi.ItemX) + " and Y is " + String(l_lvi.ItemY)

st_clock.Move(l_lvi.itemX , l_lvi.ItemY)

MessageBox("Clock Location", "X is " + String(st_clock.X) &

+ ", and Y is " &

+ String(st_clock.Y)+".")


GetParagraphSetting PowerScript 함수

[설명]

RichTextEdit control에서 삽입 포인트를 포함하고있는 단락의 들여쓰기, 왼쪽여백, 오른쪽 여백 등의 크기를 얻는다.

[적용]

RichTextEdit controls

[문법]

rtecontrol.GetParagraphSetting ( whichsetting )

[Argument]

rtecontrol | 단락의 정보를 구하려는 control의 이름
whichsetting | 설정상태를 구하고자 하는 열거형 ParagraphSetting 값.
 | Indent! | 단락의 들여쓰기 값을 리턴한다.
 | LeftMargin! | 단락의 왼쪽 여백을 리턴한다.
 | RightMargin! | 단락의 오른쪽 여백을 리턴한다.

[Return 값]

Long.

명시한 설정내용의 크기를 1/1000 인치로 리턴한다. 에러가 발생하면 -1을 리턴하고, whichsetting이 NULL 이면 GetParagraphSetting 함수는 NULL을 리턴한다.

[예제]

* 현재 단락의 들여쓰기 설정상태를 얻는다.

long ll_indent

ll_indent = rte_1.GetParagraphSetting(Indent!))

[참고]

GetAlignment

GetSpacing

GetTextColor

GetTextStyle

SetParagraphSetting


GetParent PowerScript 함수

[설명]

명시한 object의 parent를 구한다.

[적용]

Any object

[문법]

objectname.GetParent ( )

[Argument]

objectname

parent object를 구하려는 윈도우내의 control 또는 사용자 object 또는 메뉴상의 아이템

[Return 값]

PowerObject.

objectname의 parent를 참조하여 리턴한다.

[예제]

* tab 페이지로 사용할 사용자 object에 관한 이벤트 스크립트에서, 일반적인 parent Tab control을 참조한다.

// a_tab은 일반적인 tab control로

// 명시한 페이지에 관하여 알지 못한다

tab a_tab

// a_tab_page은 일반적인 tab control로

// 명시한 control에 관하여 알지 못한다

userobject a_tab_page

// Tab control과 탭 페이지에관한 값을 구한다

a_tab = this.GetParent( )

a_tab_page = this

// 탭 페이지에관한 property를 설정한다

a_tab_page.PowerTipText = "Important property page"

// Tab control에관한 property를 설정한다

a_tab.PowerTips = TRUE

// Tab control 함수를 실행한다

a_tab.SelectTab(a_tab_page)

a_tab_page는 사용자 object상의 control을 알지 못하므로 그것들을 참조할 수 없다. a_tab은 Tab control내의 명시한 페이지를 알지못하므로 그 페이지를 참조할 수 없다.

사용자 object상의 control에 관한 이벤트 스크립트에서, 사용자 object와 탭 페이지로써 사용자 object를 포함하고있는 Tab control을 참조하기 위하여 두 단계의 GetParent를 사용할 수 있다.

// GetParent()를 한단계 더 사용함으로써

// 위와 동일한 설정을 할 수 있다

tab a_tab

userobject a_tab_page

a_tab_page = this.GetParent( )

a_tab = a_tab_page.GetParent( )

a_tab_page.PowerTipText = "Important property page"

a_tab.PowerTips = TRUE

a_tab.SelectTab(a_tab_page)

[참고]

ParentWindow


GetRemote PowerScript 함수: syntax 1

[설명]

데이터를 준비하고 open channel을 요구하지않고 명시한 변수 내에 그 데이터를 저장하기 위하여 DDE 서버 응용프로그램을 요청한다. 이 문법은 서버의 하나 또는 두 개의 요청만을 만들려할 때 적절하다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에 의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetRemote ( location, target, applname, topicname )

[Argument]

location | DDE 서버 응용프로그램으로부터 리턴될 데이터의 위치를 명시한 문자열. location의 형식은 그 메시지를 받을 특정 DDE 서버 응용프로그램에 의존한다.
target | 리턴될 데이터가 놓여질 string 변수.
applname | DDE 서버 응용프로그램의 DDE 이름을 명시한 문자열. 다른 PowerBuilder 응용프로그램이 DDE 서버일 경우, 이것은 StartServerDDE 함수내에 명시한 응용프로그램의 이름이 된다.
topicname | 명령과 함께 사용할 응용프로그램 (예를들어, Microsoft Excel 내의, topic 이름 또는 오픈된 spreadsheet의 이름 )의 데이터 또는 인스턴스를 나타내는 문자열. 다른 PowerBuilder 응용프로그램이 DDE 서버일 경우, 이것은 StartServerDDE 함수 내에 명시한 topic 이 된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 음수를 리턴한다.

-1 Link가 시작되어있지 않다

-2 요청이 거절되었다

argument값 중에 NULL이 있으면, GetRemote는 NULL을 리턴한다.

[용법]

DDE를 사용할 때, PowerBuilder 응용프로그램은 클라이언트 윈도우가 될 오픈된 윈도우를 가지고 있어야 한다. 이 문법의 경우, 활성화된 윈도우가 DDE 클라이언트 윈도우이다.

DDE channel 과 cold link에 관한 더 자세한 정보는, ExecRemote 함수의 두 가지 문법을 참조한다.

[예제]

* PROFIT.XLS라는 worksheet의 row와 column 데이터를 구하고 ls_ProfData라는 PowerBuilder 문자열에 넣기 위하여 Microsoft Excel에 요청한다.

string ls_ProfData

GetRemote("R1C2", ls_ProfData, "Excel", "PROFIT.XLS")

[참고]

ExecRemote

SetRemote

GetRemote: syntax 2

GetRemote PowerScript 함수: syntax 2

[설명]

서버에 channel을 오픈 함으로써 이미 설치된 warm link를 가지고있을 때, 데이터를 준비하고 명시한 변수 내에 데이터를 저장하기 위하여 DDE 서버 응용프로그램을 요청한다.

** Platform 정보 **

이 함수와 다른 DDE 함수들은 모두 Macintosh상에서는 효과가 없다.

UNIX platform에서, 이 함수와 다른 DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder에 의하여 개발되었거나 Bristol Technology의 Wind/U를 이용하여 컴파일 되었을 경우에만 효과가 있다.

[문법]

GetRemote ( location, target, handle {, windowhandle } )

[Argument]

location | DDE 서버 응용프로그램으로부터 리턴될 데이터의 위치를 명시한 문자열. location의 형식은 그 메시지를 받을 특정 DDE 서버 응용프로그램에 의존한다.
target | 리턴될 데이터가 놓여질 string 변수.
handle | DDE 서버 응용프로그램을 식별하는 long. OpenChannel 함수는 DDE channel을 오픈하기 위하여 DDE 서버 응용프로그램을 호출할 때의 handle을 리턴한다.
windowhandle | (선택사항) DDE 클라이언트로써 작용할 윈도우의 handle. 하나 이상의 윈도우가 오픈 되어있을 때 데이터가 리턴될 윈도우를 제어하기위한 파라미터로 명시한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 다음 음수 값을 리턴한다:

-1 Link가 시작되어있지 않다

-2 요청이 거절되었다

-9 Handle이 NULL이다

[용법]

DDE를 사용할 때, PowerBuilder 응용프로그램은 클라이언트 윈도우가될 오픈된 윈도우를 가지고 있어야 한다. 이 문법의 경우, windowhandle argument를 이용하여 클라이언트 윈도우를 명시할 수 있다.

이 문법을 사용하기 전에, DDE channel을 설치하기 위하여 OpenChannel을 호출하도록 한다.

DDE channel 과 warm link에 관한 더 자세한 정보는, ExecRemote 함수를 참조한다.

[예제]

* row와 column내의 데이터를 구한 후 ls_ProfData라는 PowerBuilder 문자열에 저장하기 위하여 handle (Microsoft Excel worksheet)에 의하여 확인된 channel을 요청한다. GetRemote는 OpenChannel 함수에 의하여 설치된 warm link를 이용한다.

String ls_ProfData

long handle

handle = OpenChannel("Excel", "REGION.XLS")

...

GetRemote("R1C2", ls_ProfData, handle)

...

CloseChannel(handle)

* 다음 예제는 위의 것과 비슷한 것이나, 특별히 윈도우 w_rpt를 DDE channel과 연관시킨 것이다.

String ls_ProfData

long handle

handle = OpenChannel("Excel", "REGION.XLS", Handle(w_rpt))

...

GetRemote("R1C2", ls_ProfData, handle, Handle(w_rpt))

...

CloseChannel(handle, Handle(w_rpt))

[참고]

CloseChannel

ExecRemote

OpenChannel

SetRemote

GetRemote: syntax 1


GetRow PowerScript 함수

[설명]

DataWindow control 이나 DataStore object내의 현재 row 번호를 나타낸다.

[적용]

DataWindow controls, DataStore objects, and child DataWindows

[문법]

dwcontrol.GetRow ( )

[Argument]

dwcontrol

현재 row의 번호를 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Long.

dwcontrol 내의 현재 row번호를 리턴한다. 현재 row가 없으면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다. 또한, dwcontrol이 NULL 이면, GetRow는 NULL을 리턴한다.

[Tip]

현재 row는 항상 화면상에 나타나있는 row가 아니다. 예를 들어, 커서가 row 1, column 1 상에 있으면서 사용자가 스크롤 바를 이용하여 row 50으로 스크롤 시키면, row 50을 클릭하지 않는 한 현재 row는 row 1에 남아있게 된다.

[예제]

* dw_Employee내의 현재 row 번호를 리턴한다.

dw_employee.GetRow( )

[참고]

GetColumn

SetColumn

SetRow

GetRow (DataWindow painter 함수)


GetSelectedRow PowerScript 함수

[설명]

DataWindow control 이나 DataStore object 내에서 명시한 row 이후에 반전되어있는 row 번호를 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetSelectedRow ( row )

[Argument]

dwcontrol | 선택된 row 번호를 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 이후에 선택되어있는 row를 검색하기위한 row 위치를 나타내는 long

[Return 값]

Long.

dwcontrol내에서 row이후에 선택되어있는 첫 번째 row 번호를 리턴한다. 명시한 row 이후에 선택된 row가 없을 경우 0을 리턴한다. argument 값 중에 NULL이 있으면 GetSelectedRow는 NULL을 리턴한다.

[용법]

row는 현재 row가 되었을 때 자동으로 선택(highlighted : 반전) 되지 않는다. SelectRow 함수를 호출함으로써 어떤 row를 선택할 수 있다.

GetSelectedRow는 자기 자신의 선택여부에 관계없이 명시한 row 이후부터 찾기 시작한다.

[예제]

* dw_Employee내에 첫 번째로 선택되어있는 row번호를 리턴한다.

dw_employee.GetSelectedRow(0)

* dw_Employee내의 row 25 이후에 첫 번째로 선택되어있는 row의 번호를 리턴한다.

dw_employee.GetSelectedRow(25)

[참고]

SelectRow


GetSeriesStyle PowerScript 함수: syntax 1

[설명]

그래프내에서 한 series와 연관된 색상을 얻는다.

[적용]

윈도우와 사용자 object내의 그래프, DataWindow controls 과 DataStore objects내의 그래프

[문법]

controlname.GetSeriesStyle ( { graphcontrol, seriesname, colortype, colorvariable } )

[Argument]

controlname | series의 색상을 구하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 이나 DataStore의 이름
graphcontrol | (DataWindow control 와 DataStore만 해당)series의 색상을 구하려는 DataWindow control 이나 DataStore내의 그래프 이름을 갖는 문자열
seriesname | 색상을 구하려는 series의 이름을 나타내는 문자열
colortype | 색상을 구하려는 series의 모습을 명시하는 grColorType 열거형 데이터 타입의 값 Foreground! 문자색 Background! 배경색 LineColor! 줄 색 Shade! 음영
colorvariable | 색상의 RGB 값을 저장하려는 long 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. colorvariable에는 명시한 series와 아이템의 RGB값을 저장한다. argument의 값이 NULL이면, GetSeriesStyle는 NULL을 리턴한다.

[예제]

* 메모리변수 color_nbr에 그래프 gr_emp_data내의 series에 관하여 사용된 텍스트 (foreground) 색상을 저장한다. series 이름은 SingleLineEdit sle_series내의 텍스트 이다.

long color_nbr

gr_emp_data.GetSeriesStyle(sle_series.Text, Foreground!, color_nbr)

* 메모리변수 color_nbr에 DataWindow control dw_equipment내의 그래프 gr_computers의 series PCs에 관하여 사용된 배경 색상을 저장한다.

long color_nbr

// 배경색상을 구한다.

dw_equipment.GetSeriesStyle("gr_computers", "PCs", Background!, color_nbr)

* 그래프 gr_product_data내에서 마우스 포인터 아래에 있는 series에 관한 색상을 line_color에 저장한다.

string SeriesName

integer SeriesNbr, Data_Point

long line_color

grObjectType MouseHit

MouseHit = ObjectAtPointer(SeriesNbr, Data_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = gr_product_data.SeriesName(SeriesNbr)

gr_product_data.GetSeriesStyle(SeriesName, &

LineColor!, line_color)

END IF

[참고]

AddSeries

GetDataStyle

FindSeries

SetDataStyle

SetSeriesStyle

GetSeriesStyle: syntax 2

GetSeriesStyle: syntax 3

GetSeriesStyle: syntax 4

GetSeriesStyle PowerScript 함수: syntax 2

[설명]

그래프내 series의 line 스타일과 폭을 구한다.

[적용]

윈도우와 사용자 object내의 그래프, DataWindow controls 과 DataStore objects내의 그래프

[문법]

controlname.GetSeriesStyle ( { graphcontrol, seriesname, linestyle, linewidth } )

[Argument]

controlname | series의 line 스타일과 폭을 구하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 이나 DataStore의 이름
graphcontrol | (DataWindow control 와 DataStore만 해당)line 스타일과 폭을 구하려는 DataWindow control 이나 DataStore내의 그래프 이름을 갖는 문자열
seriesname | line 스타일 정보를 구하려는 series의 이름을 나타내는 문자열
linestyle | seriesname의 line 스타일을 저장하려는 LineStyle 타입의 변수
linewidth | seriesname의 line 폭을 저장하려는 integer 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. linestyle에는 LineStyle 열거형 데이터 타입의 값을 저장하고 linewidth에는 명시한 series에 관하여 사용된 line의 폭을 저장한다. 만일 어떤 argument의 값이 NULL이면, GetSeriesStyle은 NULL을 리턴한다.

[예제]

* 메모리변수 line_style 과 line_width에 그래프 gr_product_data내의 마우스 포인터 아래에있는 series에 관한 line 스타일과 폭을 저장한다.

string SeriesName

integer SeriesNbr, Data_Point, line_width

LineStyle line_style

grObjectType MouseHit

MouseHit = ObjectAtPointer(SeriesNbr, Data_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = gr_product_data.SeriesName(SeriesNbr)

gr_product_data.GetSeriesStyle(SeriesName, &

line_style, line_width)

END IF

[참고]

AddSeries

GetDataStyle

FindSeries

SetDataStyle

SetSeriesStyle

GetSeriesStyle: syntax 1

GetSeriesStyle: syntax 3

GetSeriesStyle: syntax 4

GetSeriesStyle PowerScript 함수: syntax 3

[설명]

그래프내 series의 fill 패턴이나 심볼을 구한다.

[적용]

윈도우와 사용자 object내의 그래프, DataWindow controls 과 DataStore objects내의 그래프

[문법]

controlname.GetSeriesStyle ( { graphcontrol, seriesname, enumvariable } )

[Argument]

controlname | series의 스타일 정보를 구하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 이나 DataStore의 이름
Graphcontrol | (DataWindow control와DataStore만해당)스타일 정보를 구하려는 DataWindow control 이나 DataStore내의 그래프 이름을 갖는 문자열
Seriesname | 스타일 정보를 구하려는 series의 이름을 나타내는 문자열
Enumvariable | 스타일 정보를 저장하기위한 변수. FillPattern 이나 grSymbolType을 명시할 수 있다. GetSeriesStyle이 저장하는 스타일 정보는 변수 타입에 의존한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. enumvariable에는 명시한 series에 관하여 사용된 fill 패턴 또는 심볼에 관한 적절한 열거형 데이터 타입의 값이 저장된다. argument 값 중에 NULL이 있으면, GetSeriesStyle은 NULL을 리턴한다.

[용법]

GetSeriesStyle이 enumvariable에 저장하는 열거형 데이터 타입의 리스트는 SetSeriesStyle을 참조한다.

[예제]

* 메모리변수 data_pattern에 그래프 gr_product_data내의 마우스 포인터 아래에있는 series에 관한 fill 패턴을 저장한다.

string SeriesName

integer SeriesNbr, Data_Point

FillPattern data_pattern

grObjectType MouseHit

MouseHit = ObjectAtPointer(SeriesNbr, Data_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = gr_product_data.SeriesName(SeriesNbr)

gr_product_data.GetSeriesStyle(SeriesName, data_pattern)

END IF

* 메모리변수 data_pattern에 DataWindow control dw_employees내의 그래프 gr_depts에서 마우스 포인터 아래에있는 series에 관한 fill 패턴을 저장한다.

string SeriesName

integer SeriesNbr, Data_Point

FillPattern data_pattern

grObjectType MouseHit

MouseHit = ObjectAtPointer("gr_depts", SeriesNbr, &

Data_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = dw_employees.SeriesName("gr_depts", SeriesNbr)

dw_employees.GetSeriesStyle("gr_depts", &

SeriesName, data_pattern)

gr_dept_data.SetSeriesStyle("Total Salary", data_pattern)

END IF

위의 예제에서, 심볼 타입을 발견하기 위하여, 마지막 argument로 명시된 변수 data_pattern의 데이터 타입을 변경할 수 있다.

[참고]

AddSeries

GetDataStyle

FindSeries

SetDataStyle

SetSeriesStyle

GetSeriesStyle: syntax 1

GetSeriesStyle: syntax 2

GetSeriesStyle: syntax 4

GetSeriesStyle PowerScript 함수: syntax 4

[설명]

그래프내의 series가 겹쳐(overlay) 나타나는지 여부, 즉, 다른 그래프 타입의 상단에 line으로 보여지는지 여부를 나타낸다.

[적용]

윈도우와 사용자 object내의 그래프, DataWindow controls 과 DataStore objects내의 그래프

[문법]

controlname.GetSeriesStyle ( { graphcontrol, seriesname, overlayindicator } )

[Argument]

Controlname | series의 겹침 상태를 구하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow control 이나 DataStore의 이름
Graphcontrol | DataWindow control 와 DataStore 만 해당) 겹침 상태를 구하려는dataWindow control 이나 DataStore 내의 그래프 이름을 갖는 문자열
Seriesname | 겹침 상태를 구하려는 series의 이름을 나타내는 문자열
Overlayindicator | series의 겹침(overlay) 여부를 나타내는 값을 저장하기위한 boolean 변수. series가 겹쳐져 나타나면 TRUE로 설정하고, 그렇지 않은 경우는 FALSE로 설정한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 명시한 series가 겹쳐 나타나면 overlayindicator에 TRUE를 저장하고, 그렇지 않을 경우는 FALSE를 저장한다. argument 값 중에 NULL이 있으면, GetSeriesStyle은 NULL을 리턴한다.

[예제]

* 그래프 gr_emp_data내의 series의 겹침 여부를 알아낸다. series 이름은 SingleLineEdit sle_series내의 텍스트이다.

boolean is_overlay

gr_emp_data.GetSeriesStyle(sle_series.Text, is_overlay)

[참고]

GetSeriesStyle: syntax 1

GetSeriesStyle: syntax 2

GetSeriesStyle: syntax 3


GetServerInfo PowerScript 함수

[설명]

클라이언트 응용프로그램이 연결된 서버에 관한 정보를 알아내도록 허락한다. GetServerInfo는 특정 서버에 연결된 모든 클라이언트에 관한 정보를 받아들이도록 관리 권한을 가진 클라이언트를 허락한다.

[적용]

Connection objects

[문법]

connection.GetServerInfo (connectioninfo)

[Argument]

connection | 연결(connection)을 설치하는데 사용하기 원하는 connection object의 이름. connection object는 반드시 연결에 관하여 요구되는 정보를 포함하고 있어야 한다.
connectioninfo | connectioninfo 타입의 구조를 가진 무제한(unbounded)의 배열이름

[Return 값]

Long.

connectioninfo가 기록된 배열의 번호를 리턴한다.

[용법]

connectioninfo object는 구조체이다. 이 구조체의 첫 번째 배열 요소는 GetServerInfo를 호출한 클라이언트 응용프로그램에 관한 connection 정보를 나타낸다.

관리 권한을 가진 클라이언트 응용프로그램은 특정 서버에 연결된 모든 클라이언트에 관한 정보를 얻기 위하여 GetServerInfo를 사용할 수 있다. 더욱이, connection 정보를 한 번 얻어내면, 관리 권한을 가진 클라이언트는 다른 클라이언트 응용프로그램을 연결해제 시키기 위하여 RemoteStopConnection 함수를 사용할 수 있다.

서버 응용프로그램은 연결 권한을 부여한다. 서버 응용프로그램 ConnectionBegin 이벤트에 관한 스크립트는 리턴되는 ConnectPrivilege 값에 의하여 각 연결에 관한 권한을 명시할 수 있다. ConnectWithAdminPrivilege! 값은 클라이언트 관리 권한을 준다.

[예제]

* myconnect connection object에 명시한 서버에 설치된 모든 클라이언트 연결에관한 정보를 받아내기 위하여 GetServerInfo를 사용한다. 연결 정보는 DataWindow에 올라온다.

connectioninfo info[]

int li_rownum

long ll_rows

ll_rows = myconnect.GetServerInfo( info )

dw_connections.reset()

for li_rownum = 1 to ll_rows

dw_connections.insertrow(0)

if info[li_rownum].busy then

dw_connections.object.busy[li_rownum] = 1

else

dw_connections.object.busy[li_rownum] = 2

end if

dw_connections.object.connecttime[li_rownum] =

info[li_rownum].connecttime

dw_connections.object.lastcalltime[li_rownum]=

info[li_rownum].lastcalltime

dw_connections.object.callcount[li_rownum] =

info[li_rownum].callcount

dw_connections.object.clientid[li_rownum] =

info[li_rownum].clientid

dw_connections.object.location[li_rownum] =

info[li_rownum].location

dw_connections.object.userid[li_rownum] =

info[li_rownum].userid

next

[참고]

RemoteStopConnection


GetSpacing PowerScript 함수

[설명]

RichTextEdit control내의 삽입 포인트를 포함하고있는 단락의 line 간격을 구한다.

[적용]

RichTextEdit controls

[문법]

rtename.GetSpacing ( )

[Argument]

rtename

삽입 포인트를 포함하고있는 단락의 줄 간격을 구하고자 하는 RichTextEdit control 이름

[Return 값]

Spacing.

삽입 포인트를 포함하고있는 단락의 줄 간격을 나타내는 Spacing 열거형 데이터 타입의 값.

[용법]

여러 단락을 선택하였을 경우, 삽입 포인트는 어떻게 선택하였는가에 따라 선택영역의 시작 또는 끝에 위치한다. 리턴되는 값은 삽입 포인트의 위치에 의하여 결정된다.

[예제]

* 메모리변수 l_spacing에 열거형 데이터 타입의 값을 저장한다. 저장된 값은 삽입 포인트를 가진 문단에 관한 간격이다.

spacing l_spacing

l_spacing = rte_1.GetSpacing( )

[참고]

GetTextStyle

SetSpacing

SetTextStyle


GetSQLPreview PowerScript 함수

[설명]

DataWindow control이 현재 데이터베이스에 보낸 SQL 문장을 나타낸다.

** 사용하지 않게된 함수 **

SQL 문법은 DBError 와 SQLPreview 이벤트에서 argument로 사용되므로 GetSQLPreview 함수는 사용하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.GetSQLPreview ( )

[Argument]

dwcontrol

현재 데이터베이스 서버에 보낸 SQL 문장을 구하려는 DataWindow control 이나 child DataWindow의 이름

[Return 값]

String.

dwcontrol에 관한 현재 SQL 문장을 리턴하고, 에러가 발생하면 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetSQLPreview는 NULL을 리턴한다.

[용법]

실행된 SQL 문장을 구하기 위하여 SQLPreview 이벤트 스크립트에서 GetSQLPreview 함수를 호출할 수 있다. 이 스크립트 내에서, 리턴된 SQL 문장을 수정하는 것이 가능하고 실행된 SQL 문장을 변경하기 위하여 SetSQLPreview 함수를 호출할 수 있다. 또한 SQL 문장을 log 파일에 기록 할 수도 있다.

GetSQLPreview 와 binding

데이터베이에 관한 binding이 사용가능하면, GetSQLPreview내에서 리턴된 SQL이 완전하지 않을 수도있다. 입력 argument는 실제 값으로 대치되지 않는다. 예를들어, binding이 사용가능 할 때, GetSQLPreview는 다음과 같은 SQL 문장을 리턴하게 된다:

INSERT INTO "cust_order" ( "ordnum", "custnum",

"duedate", "balance" ) VALUES ( ?, ?, ?, ? )

binding을 사용할 수 없을 때에는 다음과 같이 리턴된다:

INSERT INTO "cust_order" ( "ordnum", "balance",

"duedate", "custnum" ) VALUES ( '12345', 900,'3/1/94', '111' )

log 목적으로 완전한 SQL 문장이 필요하다면, DBMS내에서 binding을 사용할 수 없도록 하여야 한다.

[예제]

* dw_status의 SQLPreview 이벤트에서 MultiLineEdit le_sql에 현재 SQL 문장을 나타낸다.

mle_sql.Text = dw_status.GetSQLPreview( )

[참고]

SetSQLPreView


GetSQLSelect PowerScript 함수

[설명]

SQL Select, Quick Select, Query 등과 같이, 데이터 소스가 하나 일 때 DataWindow와 연관된 SQL SELECT 문장을 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetSQLSelect ( )

[Argument]

dwcontrol

현재 SELECT 문장을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

String.

dwcontrol에 관한 현재 SQL SELECT 문장을 리턴한다. 그 문장을 리턴할 수 없을 경우에 GetSQLSelect는 빈 문자열("")을 리턴한다. dwcontrol이 NULL이면, GetSQLSelect는 NULL을 리턴한다.

[용법]

실행하는 동안 DataWindow 나 DataStore의 SQL SELECT 문장을 변경하고자 할 때, 변경전의 현재 SELECT 문장을 저장하기 위하여 GetSQLSelect를 사용할 수 있다.

DataWindow를 정의할 때, PowerBuilder는 PowerBuilder SELECT 문장 (PBSELECT)을 DataWindow와 함께 저장한다. 데이터베이스가 연결되고 DataWindow에관한 SetTransObject가 호출되면, GetSQLSelect는 SQL SELECT 문장을 리턴한다. 그렇지 않으면, GetSQLSelect는 PBSELECT 문장을 리턴한다.

SQL SELECT 문장을 구하기 위하여 Describe 함수를 사용할 수도 있다. DataWindow object의 Table.Select property는 SQL SELECT 정보를 가지고 있다.

[예제]

* 임시로 수정하기 전에 dw_emp에관한 SELECT 문장을 저장한다.

string old_select, new_select, where_clause

old_select = dw_emp.GetSQLSelect( )

where_clause = ...

// old_select에 새로운 WHERE 절을 추가한다

new_select = old_select + where_clause

dw_emp.SetSQLSelect(new_select)

[참고]

SetSQLSelect


GetText PowerScript 함수

[설명]

현재 row와 column에 있는 편집 control내의 값을 구한다. DataWindow내의 값을 변경하면, 해당 칼럼에 받아들여지기 전에 편집 control내에서 이용할 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetText ( )

[Argument]

dwcontrol

현재 row와 칼럼의 텍스트를 구하려는 DataWindow control, DataStore, 또는child DataWindow의 이름

[Return 값]

String.

dwcontrol내의 현재 row와 칼럼에 있는 편집 control내의 값을 리턴한다. 그 값은 현재 row와 칼럼에 받아들여 졌거나 그렇지 않을 수도있다. dwcontrol내에 현재 선택된 칼럼이 없을 경우에는 빈 문자열 ("")을 리턴한다. dwcontrol이 NULL이면, GetText는 NULL을 리턴한다.

[용법]

DataWindow의 row와 칼럼내의 값들은 DataWindow 버퍼내의 아이템 들이다. row와 칼럼내의 값을 편집하면, 그 아이템 값은 텍스트로 편집 control에 전달된다. 칼럼을 떠나거나 스크립트에서 AcceptText를 호출하면, 편집 control내의 텍스트는 칼럼으로 받아들여지고 버퍼내의 아이템 값으로 된다.

ItemChanged 나 ItemError 이벤트의 스크립트에서는 GetText를 호출할 필요가 없다. 해당 칼럼에 받아들여지기 전에 현재 row와 칼럼 상에있는 편집 control 내에 입력된 값을 체크 하려면, data argument를 사용한다.

row와 칼럼에 관한 DataWindow 버퍼에 저장된 값을 구하려면, 그 칼럼의 타입에 해당하는 GetItem 함수를 사용한다.

[예제]

* dw_employee에 관한 ItemChanged 이벤트 스크립트에서 dw_employee내의 텍스트를 리턴한다.

string LName

LName = dw_employee.GetText( )

[참고]

SetText

GetText (DataWindow painter 함수)


GetTextColor PowerScript 함수

[설명]

RichTextEdit control내에 선택된 텍스트의 색상을 구한다.

[적용]

RichTextEdit controls

[문법]

rtename.GetTextColor ( )

[Argument]

rtename

선택된 텍스트의 색상을 구하려는 RichTextEdit control의 이름

[Return 값]

Long.

현재 선택된 텍스트의 색상을 나타내는 long 값. 서로 다른 색상을 가진 텍스트를 선택하였을 경우, GetTextColor는 첫 번째로 선택된 문자의 색상을 리턴한다. 에러가 발생하면 -1을 리턴한다.

[예제]

* rte_1내에 선택된 텍스트의 색상을 저장한다.

long ll_color

ll_color = rte_1.GetTextColor( )

[참고]

GetTextStyle

SetTextColor

SetTextStyle


GetTextStyle PowerScript 함수

[설명]

선택된 텍스트가 bold 또는 italic 등과같이 그것에 할당된 스타일을 가지고있는지 여부를 알아낸다.

[적용]

RichTextEdit controls

[문법]

rtename.GetTextStyle ( textstyle )

[Argument]

rtename | 선택된 텍스트의 표시형식을 알아내려는 RichTextEdit control의 이름
textstyle | 텍스트 스타일을 체크 하려는 열거형 데이터타입 TextStyle의 값. Bold! Italic! Strikeout! Subscript! Superscript! Underlined!

[Return 값]

Boolean.

선택된 텍스트가 위에 명시된 텍스트 스타일로 형식화 되어있으면 TRUE를 리턴하고 그렇지 않으면 FALSE를 리턴한다. textstyle이 NULL이면, GetTextStyle은 NULL을 리턴한다.

[용법]

텍스트는 하나 이상의 텍스트 스타일로 형식화 될 수 있다. 이런 경우는 또다른 스타일을 알아내기 위하여 GetTextStyle을 한 번 이상 호출하도록 한다.

[예제]

* 현재 윈도우에 관한 인스턴스 구조체 변수 istr_text가 정의되었고, 구조체에는 boolean 필드 b_isBold, b_isItalic, b_isUnderlined를 포함하고 있다고 가정한다. 이 예제는 선택된 텍스트가 이들 스타일을 가지고 있는지 여부를 체크하고 각 스타일에관한 구조체에 TRUE 또는 FALSE를 저장하는 것이다.

istr_text.b_isBold = rte_fancy.GetTextStyle(Bold!)

istr_text.b_isItalic = rte_fancy.GetTextStyle(Italic!)

istr_text.b_isUnderlined = rte_fancy.GetTextStyle(Underlined!)

[참고]

GetTextColor

SetSpacing

SetTextColor

SetTextStyle


GetToolbar PowerScript 함수

[설명]

명시한 툴바의 정렬, 눈에보이는 상태, 타이틀 등에관한 현재 값을 구한다.

[적용]

MDI frame 과 sheet windows

[문법]

window.GetToolbar ( toolbarindex, visible {, alignment {, floatingtitle } } )

[Argument]

window | 툴바가 속해있는 MDI frame 또는 sheet
toolbarindex | 현재 설정상태를 알고자하는 툴바의 인덱스 값
visible | 툴바의 가시성 여부를 나타내기위한 값을 저장하려는 boolean 변수
alignment | 툴바의 현재 정렬 값을 저장하기 위한 ToolbarAlignment 열거형 변수
floatingtitle | 정렬이 Floating!일 때 툴바 타이틀이 표시되는 값을 저장하기 위한 문자열 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 명시한 index의 툴바가 존재하지 않거나 에러가 발생하면 -1을 리턴한다. argument값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

고정(docked)되어 있거나 유동적(floating)인 툴바의 위치를 알아내려면 GetToolbarPos를 호출한다.

[예제]

* 툴바 1의 가시성여부, 정렬상태 타이틀 등을 알아내고, 메모리변수 lb_visible, lta_align, ls_title에 각각 저장한다.

integer li_rtn

boolean lb_visible

toolbaralignment lta_align

li_rtn = w_frame.GetToolbar(1, lb_visible, lta_align, ls_title)

* sle_index에 명시한 툴바 인덱스에 관한 설정 상태를 나타낸다. IF 와 CHOOSE CASE 문장은 설정된 값들을 문자열로 mle_toolbar에 나타나도록 하기 위하여 변환하는데 사용한다.

integer li_index, li_rtn

boolean lb_visible

toolbaralignment lta_align

string ls_visible, ls_align, ls_title

li_index = Integer(sle_index.Text)

li_rtn = w_frame.GetToolbar(li_index, lb_visible, lta_align, ls_title)

IF li_rtn = -1 THEN

MessageBox("Toolbars", "Can't get toolbar settings.")

RETURN -1

END IF

IF lb_visible = TRUE THEN

ls_visible = "TRUE"

ELSE

ls_visible = "FALSE"

END IF

CHOOSE CASE lta_align

CASE AlignAtTop!

ls_align = "top"

CASE AlignAtLeft!

ls_align = "left"

CASE AlignAtRight!

ls_align = "right"

CASE AlignAtBottom!

ls_align = "bottom"

CASE Floating!

ls_align = "floating"

END CHOOSE

mle_1.Text = ls_visible + "~r~n" ls_align + "~r~n" + ls_title

[참고]

GetToolbarPos

SetToolbar

SetToolbarPos


GetToolbarPos PowerScript 함수: syntax 1

[설명]

고정된(docked) 툴바의 위치를 알아낸다.

[적용]

MDI frame 과 sheet windows

[문법]

window.GetToolbarPos ( toolbarindex, dockrow, offset )

[Argument]

window | 툴바가 속해있는 MDI frame 또는 sheet
toolbarindex | 현재 설정상태를 알고자하는 툴바의 인덱스 값 dockrow명시한 툴바의 docking row 번호를 저장하기위한 integer 변수. Docking row 번호는 왼쪽에서 오른쪽 또는 위에서 아래로 번호가 부여된다.
offset | docking row가 시작되는 툴바의 offset을 저장하기위한 integer 변수. 위(top) 또는 아래(bottom) 위치의 툴바에서, offset은 좌측 모서리로부터 측정된다. 왼쪽 또는 오른쪽 위치의 툴바에서, offset은 위(top)로부터 측정된다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 명시한 index의 툴바가 존재하지 않거나 에러가 발생하면 -1을 리턴한다. argument값중에 NULL이 있으면, NULL을 리턴한다.

[용법]

툴바가 윈도우의 위(top), 아래(bottom), 좌측(left) 또는 우측(right) 중 어느곳에 있는지 찾아내려면 GetToolbar를 호출한다.

GetToolbarPos의 Syntax 1은 (툴바가 현재 floating으로 설정되어 있더라도) 가장 최근에 위치한 곳을 알아낸다.

[예제]

* 이 예에서, 툴바 인덱스는 sle_2에 명시되어있다고 가정하고, 툴바 위치 정보를 얻은 후 MultiLineEdit mle_1에 그 내용을 나타낸다.

integer li_index, li_rtn

integer li_dockrow, li_offset

li_index = Integer(sle_2.Text)

li_rtn = w_frame.GetToolbarPos(li_index, li_dockrow, li_offset)

IF li_rtn = 1 THEN

mle_1.Text = String(li_dockrow) + "~r~n" + String(li_offset)

ELSE

mle_1.Text = "Can't get toolbar position"

END IF

[참고]

GetToolbar

SetToolbar

GetToolbarPos: syntax 2

SetToolbarPos

GetToolbarPos PowerScript 함수: syntax 2

[설명]

부동(floating) 툴바의 위치와 크기를 얻는다.

[적용]

MDI frame 과 sheet windows

[문법]

window.GetToolbarPos ( toolbarindex, x, y, width, height )

[Argument]

window | 툴바가 속해있는 MDI frame 또는 sheet
toolbarindex | 현재 설정상태를 알고자하는 툴바의 인덱스 값
 | x | floating 툴바의 x 좌표를 저장하기위한 integer 변수. 툴바가 docked이면, x는 가장 최근의 값을 설정한다.
 | y | floating 툴바의 y 좌표를 저장하기위한 integer 변수. 툴바가 docked이면, y는 가장 최근의 값을 설정한다.
 | width | floating 툴바의 폭을 저장하기 위한 integer 변수. 툴바가 docked이면, width는 가장 최근의 값을 설정한다.
 | height | floating 툴바의 높이를 저장하기 위한 integer 변수. 툴바가 docked이면, height는 가장 최근의 값을 설정한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 명시한 인덱스에 관한 툴바가 존재하지 않거나 에러가 발생하면 GetToolbarPos는 -1을 리턴한다. argument 값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

툴바가 floating인지 여부를 알아내려면, GetToolbar 함수를 호출한다.

GetToolbarPos의 Syntax 2는 (툴바가 현재 docked로 설정되어 있더라도) 가장 최근의 floating 위치를 알아낸다.

[예제]

* 툴바 1의 x 와 y 좌표, 폭과 높이 등을 구한다.

int ix, iy, iw, ih, li_rtn

li_rtn = w_frame.GetToolbarPos(1, ix, iy, iw, ih)

IF li_rtn = -1 THEN

mle_1.Text = "Can't get toolbar position"

ELSE

mle_1.Text = String(ix) + "~r~n" &

+ String(iy) + "~r~n" &

+ String(iw) + "~r~n" &

+ String(ih)

END IF

[참고]

GetToolbar

SetToolbar

GetToolbarPos: syntax 1

SetToolbarPos


GetTrans PowerScript 함수

[설명]

DataWindow control 또는 DataStore object의 내부 transaction object 값을 구하고 이들 값을 프로그래머가 명시한 transaction object에 저장한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.GetTrans ( transaction )

[Argument]

dwcontrol | 내부 transaction object 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
transaction | 값을 넣으려는 transaction object의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 통상적으로 리턴 값은 사용하지 않는다. argument 값중에 NULL이 있으면, GetTrans 함수는 NULL을 리턴한다.

[용법]

SetTrans 함수는 (SetTransObject가 아님) 내부 transaction object를 설정한다. SetTrans 함수를 호출하지 않았다면, GetTrans 함수 처리에 실패할 것이다.

transaction object를 수정하기 위하여 그 값들을 알고자 할 때 GetTrans 함수를 사용한다.

프로그래머가 명시한 transaction object에 transaction 정보를 명시하는 SetTransObject를 사용하였다면, GetTrans 함수는 현재 영향을 미치는 (프로그래머가 명시한) transaction object에 관한 정보를 나타내 주지 않는다. (SetTransObject는 응용프로그램 수행을 더 좋게 하므로 connection 방법으로 권장된다.)

[예제]

* dw_employee에 관한 내부 transaction object의 값을 object1이라는 프로그래머가 명시한 transaction object에 넣는다.

transaction object1

object1 = CREATE transaction

dw_employee.GetTrans(object1)

* dw_employee에 관한 내부 transaction object의 값을 기본 설정된 transaction object (SQLCA)에 넣는다.

dw_employee.GetTrans(SQLCA)

* 다음 문장은 dw_employee의 데이터베이스 타입과 패스워드를 변경한다. 처음 두 문장은 transaction object emp_TransObj를 생성한다. 다음 두 문장은 SQLCA의 값을 설정하기 위하여 SetTrans 함수를 사용한 다음, dw_employee에 관한 현재 transaction object의 값을 emp_TransObj에 저장하기 위하여 GetTrans 함수를 사용한다. 마지막 두 문장은 데이터베이스 타입과 패스워드를 변경한 다음, SetTrans 함수가 받은값들을 dw_employee에 관한 transaction object에 넣는다.

// transaction object의 인스턴스 이름을 부여한다.

transaction emp_TransObj

// transaction object를 생성한다.

emp_TransObj = CREATE transaction

// 내부 transaction object를 설정한다.

dw_employee.SetTrans(SQLCA)

// SQLCA의 원래값들을 새로운 transaction object에 넣는다.

dw_employee.GetTrans(emp_TransObj)

// 데이터베이스 타입을 변경한다.

emp_TransObj.DBMS = "Sybase"

// 패스워드를 변경한다.

emp_TransObj.LogPass = "cam2"

// SQLCA대신 새로운 transaction object를 dw_employee에 연결한다.

dw_employee.SetTrans(emp_TransObj)


GetUpdateStatus PowerScript 함수

[설명]

데이터베이스 내에 현재 갱신된 row의 번호와 버퍼를 나타낸다. 에러가 발생하여 호출되었을 경우에는, 에러를 유발한 row를 나타낸다.

*** 사용하지 않게 된 함수 ***

갱신 상태는 DBError 와 SQLPreview 이벤트의 argument로 사용하므로, GetUpdateStatus 함수는 이제 사용하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.GetUpdateStatus ( row, dwbuffer )

[Argument]

dwcontrol | DataWindow control 또는 child DataWindow의 이름
row | 갱신되었거나 갱신이 시도된 row 번호를 저장하게 될 long 값
dwbuffer | 갱신될 row를 포함하고있는 DataWindow 버퍼에 관한 dwBuffer 열거형 데이터 값
 | Primary! | Primary 버퍼내의 데이터 (삭제되거나 필터에서 제외되지 않은 데이터)
 | Delete! | delete 버퍼내의 데이터 (DataWindow object로부터 삭제된 데이터)
 | Filter! | 필터 버퍼내의 데이터 (필터에서 제외된 데이터)

[Return 값]

Integer

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 현재 갱신된 row의 번호와 버퍼는 row와 dwbuffer에 저장된다. argument 값 중에 NULL이 있으면, GetUpdateStatus는 NULL을 리턴한다.

[용법]

에러의 원인이 된 row를 찾으려면 DBError 이벤트(데이터베이스 에러가 발생하면 trigger 된다) 내에서 GetUpdateStatus 함수를 호출한다.

에러의 원인이된 row가 Filter 버퍼 내에 있다면, 문제를 해결하기 위해서 반드시 필터를 해제하여야 한다.

*** Report된 row 번호 ***

row에 저장된 row 번호는 DataWindow object내에 retrieve 되었을 때의 번호가 아니라, 버퍼내의 row 번호이다.

[예제]

* 다음의 DataWindow control에관한 DBError 이벤트 스크립트는 에러 메시지 텍스트를 구하여 에러가 발생한 row의 번호와 에러 메시지를 메시지 박스에 나타낸 다음, 그 row를 현재(current) row로 만든다. IF 문장 안에 추가되어있는 코드는 filter 또는 delete 버퍼 내에 있는 에러가 발생한 row에 관하여 살피고, 그 row가 filter 버퍼 내에 있으면 primary 버퍼 내에서 사용자가 그 row를 편집할 수 있도록 필터를 변경한다. 그 row가 delete 버퍼 내에 있을 경우에는 약간 다른 타이틀로 메시지 박스를 나타낸다.

long row_number, row_key

dwBuffer buffer_type

string message_text, message_title, old_filter

// 에러메시시 텍스트를 구하고 타이틀을 설정한다

message_text = DBErrorMessage( )

message_title = "Database Error Updating Row"

// 에러가 발생한 row를 구한다.

This.GetUpdateStatus(row_number, buffer_type)

IF buffer_type = Filter! THEN

old_filter = This.Describe("DataWindow.Filter")

row_key = This.GetItemNumber(row_number, &

"emp_id", Filter!, FALSE)

This.SetFilter("(" + old_filter + ")" + &

"OR emp_id = " + String(row_key))

This.Filter( )

// 이제 에러가 발생한 row는 primary 버퍼의 마지막 row가 되었다

row_number = This.RowCount( )

ELSEIF buffer_type = Delete! THEN

message_title = "Database Error Deleting Row"

END IF

// 에러 위치와 에러 메시지를 나타낸다.

MessageBox(message_title + String(row_number), message_text)

IF buffer_type <> Delete! THEN

// 에러가 발생한 row를 현재(current) row로 한다

This.ScrollToRow(row_number)

END IF

// 에러메시지를 억제한다.

RETURN 1

[참고]

GetItemStatus


GetValidate PowerScript 함수

[설명]

DataWindow내의 칼럼에 관한 평가규칙(validation rule)을 구한다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GetValidate ( column )

[Argument]

dwcontrol | 칼럼에 관한 평가규칙(validation rule)을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
column | 평가규칙(validation rule)을 구하려는 칼럼. column은 칼럼 번호(integer)나 칼럼 이름(string)일 수 있다

[Return 값]

String.

dwcontrol내의 칼럼에 관한 평가규칙(validation rule)을 리턴한다. 칼럼에 관한 평가규칙(validation rule)이 정의되어있지 않을 경우에는 빈 문자열("")을 리턴한다. argument 값 중에 NULL이 있으면, GetValidate는 NULL을 리턴한다.

[용법]

평가규칙(validation rule)을 임시로 변경하기 위하여 SetValidate를 사용하기 전에 현재 평가규칙(validation rule)을 저장하기 위하여 GetValidate 함수를 호출할 수 있다.

[예제]

* DataWindow control dw_Employee의 칼럼 7에 관한 평가규칙(validation rule)을 Rule2로 변경한다.

string Rule1, Rule2 = "Long(GetText()) > 15000"

Rule1 = dw_Employee.GetValidate(7)

dw_Employee.SetValidate(7, Rule2)

[참고]

SetValidate


GetValue PowerScript 함수

[설명]

DataWindow내의 칼럼과 연관된 value list 나 code table내의 아이템 값을 구한다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GetValue ( column, index )

[Argument]

dwcontrol | value list 나 code table내의 아이템 값을 구하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름 column 아이템을 구하려는 칼럼. column은 칼럼 번호(integer)나 칼럼 이름(string)일 수 있다.
index | 편집 스타일에 관한 value list 나 code table내의 아이템 번호

[Return 값]

String.

dwcontrol의 column과 연관된 value list 나 code table내의 index에 의하여 확인된 아이템을 리턴한다. 아이템이 실제(actual)값이 아닌 표시(display)값을 가지고있을 경우, GetValue 함수는 tab의 왼쪽에 표시(display)값, tab의 오른쪽에 코드 값을 가지는 tab으로 분리된 문자열을 리턴한다.

index가 타당하지 않거나 칼럼이 value list 나 code table을 가지고있지 않을 경우에는 빈 문자열("")을 리턴한다. argument 값 중에 NULL이 있으면, GetValue는 NULL을 리턴한다.

[용법]

다음의 편집 스타일과 연관된 값을 찾기위하여 GetValue 함수를 사용할 수 있다: CheckBox, RadioButton, DropDownListBox, Edit Mask, Edit. 편집 스타일이 코드 테이블을 가지고 있을 경우, 리스트내의 각 값은 표시(display)값과 데이터값을 가지고 있다, GetValue 함수는 양쪽 값을 모두 나타낸다.

GetValue 함수는 DropDownDataWindow 코드 테이블에서는 값을 구할 수 없다.

[Note] 코드 테이블로부터 tab으로 분리된 값들을 리턴하였을 때 분리하는 예제는, Pos 함수를 참조한다.

[예제]

* dw_employee의 7번 칼럼에 관한 값들이 Full Time, Part Time, Retired, 와 Terminated 라면, 다음 문장은 3번째 아이템(Retired) 값을 리턴한다.

string Status

Status = dw_employee.GetValue(7,3)

* dw_employee의 product 칼럼 값들이 Widget~t1, Gadget~t2 라면, 다음 문장은 Gadget~t2를 리턴한다.

ls_pval = dw_employee.GetValue("product", 2)

* Pos 함수의 예제 중에서...

다음 문장은 GetBandAtPointer의 리턴값을 band 이름과 row 번호로 분리한다. Pos 함수는 문자열 내에서 tab의 위치를 찾고 Left와 Mid 함수는 tab의 왼쪽과 오른쪽의 정보를 추출한다.

string s, ls_left, ls_right

integer li_tab

s = dw_groups.GetBandAtPointer()

li_tab = Pos(s, "~t", 1)

ls_left = Left(s, li_tab - 1)

사용자는 3개의 argument를 가지는 일반적인 분해 함수에 관한 유사한 코드를 작성할 수 있다. 문자열 s는 값(value)에 의하여 통과된 argument이고 ls_left 와 ls_right는 참조(reference)에 의하여 통과된 문자열이다.

분해 함수를 사용할 수 있도록 tab으로 분리된 값들의 쌍을 리턴하는 다른 함수는 GetObjectAtPointer 와 GetValue 함수 등이다.

[참고]

Left

Mid

Right

Pos (DataWindow 함수)


GroupCalc PowerScript 함수

[설명]

DataWindow내의 group 레벨에서 재계산을 수행한다.

[적용]

DataWindow controls, DataStore objects, 와 child DataWindows

[문법]

dwcontrol.GroupCalc ( )

[Argument]

dwcontrol

group 레벨에서 재계산을 수행하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, GroupCalc 함수는 NULL을 리턴한다.

[용법]

DataWindow내에 row를 수정하거나 추가한 이후에 강제로 DataWindow object를 group 레벨에서 재계산하려면 GroupCalc 함수를 사용한다.

GroupCalc 함수는 재계산을 하기전에 데이터를 정렬하지 않으므로, DataWindow가 정렬되어 있지 않을 경우 GroupCalc 함수를 호출하기 전에 데이터를 정렬하도록 Sort 함수를 호출한다.

[예제]

* 파일로부터 DataWindow dw_emp로 새로운 row를 추가한 다음, dw_emp에 관한 group 레벨의 재계산을 수행한다.

ImportFile(dw_emp, "d:\employee.txt")

dw_emp.SetSort("1 A")

dw_emp.Sort( )

dw_emp.GroupCalc( )

[참고]

Sort


Handle PowerScript 함수

[설명]

PowerBuilder object의 Windows handle을 구한다. 또한, 응용프로그램, 윈도우, control 등의 handle도 구할수 있으나, 단 그리기(drawing) object는 제외된다.

*** Platform 정보 ***

Macintosh에서, 외부(external) Macintosh 함수를 사용할 수 있는 handle은 리턴하지 않는다.

[문법]

Handle ( objectname {, previous } )

[Argument]

objectname | handle을 구하려는 PowerBuilder object의 이름. objectname은 그리기(drawing) object를 제외한, 응용프로그램, 윈도우, control 등의 어떻한 PowerBuilder object도 가능하다
Previous | (선택사항)응용프로그램에 대한 이전 instance handle을 원하는지 여부를 나타내는
Boolean | ·FALSE (기본설정값) 현재 instance의 handle을 리턴한다. ·TRUE 이전 instance의 handle을 리턴한다.

[Return 값]

Long.

objectname의 handle을 리턴한다. objectname이 응용프로그램 이고 previous가 TRUE 이면, 이전 instance가 존재하지 않을 경우 Handle 함수는 0을 리턴한다.

실행되는 동안 objectname을 참조할 수 없을 경우, Handle 함수는 0을 리턴한다 (예를 들어, objectname이 윈도우이고 오픈되어 있지 않을 경우)

[용법]

Windows Software Development Kit (SDK) 함수나 PowerBuilder의 Send 함수에 argument로 object handle이 필요할 때 Handle 함수를 사용한다.

윈도우의 오픈 여부를 결정하고자 할 때에는 Handle 함수대신 IsValid를 사용한다.

응용프로그램의 handle을 요청할 때, PowerBuilder의 Run 명령을 사용하고 있으면 Handle 함수는 0을 리턴한다. 응용프로그램의 실행 버전을 구축하고 실행할 때, Handle 함수는 그 응용프로그램에 맞는 handle을 리턴한다.

응용프로그램의 이전 instance handle을 요청할 경우, 다른 instance가 실행중이지 않으면 Handle 함수는 0을 리턴한다. 응용프로그램의 여러 instance가 실행되는 것을 방지하기 위하여 Handle 함수와 함께 이 argument를 사용할 수 있다 (예제 참조).

[예제]

* 윈도우 w_child의 handle을 리턴한다.

Handle(w_child)

* 비 활성화되는 윈도우의 타이틀 바를 변경한 후 다시 활성화 시키기위하여 Windows의 외부 함수를 이용하여 FlashWindow를 호출하였다. 외부 함수의 선언은 다음과 같다:

function boolean flashwindow(uint hnd, boolean inst) library "user.exe"

윈도우의 타이틀 바를 점멸하는 코드는 다음과 같다:

integer nLoop // 루프 카운터

long hWnd // control에 관한 Handle

// PowerBuilder 윈도우의 handle을 구한다

hWnd = Handle(Parent)

// 타이틀 바를 300회 점멸한다

FOR nLoop = 1 to 300

FlashWindow (hWnd, TRUE)

NEXT

// 윈도우를 원래 상태로 되돌린다

FlashWindow (hWnd, FALSE)

* 응용프로그램이 이미 실행되고 있는 지 체크하고, 만일 그렇다면 응용프로그램의 실행을 방지하고, 그렇지 않다면 그 응용프로그램의 윈도우 w_main에 오픈하기 위한 Open 이벤트 스크립트 이다.

IF Handle(This, TRUE) > 0 THEN

MessageBox("Application Already Running", &

This.AppName + " is already running." &

+ " You cannot start it again.")

HALT CLOSE

ELSE

Open(w_main)

END IF

[참고]

Send


Hide PowerScript 함수

[설명]

object나 control을 보이지않게 한다. 사용자는 보이지 않는 object와 상호작용 할 수 없다. 어떻한 이벤트에도 반응하지 않으므로, 사실상 그 object는 사용할 수 없는 상태 (disabled) 이다.

[적용]

모든 object

[문법]

objectname.Hide ( )

[Argument]

objectname

보이지 않게 하려는 object나 control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. objectname이 NULL이면, Hide 함수는 NULL을 리턴한다.

[용법]

숨기려는 object가 이미 보이지 않는 상태라면, Hide 함수는 아무런 영향이 없다.

부모 윈도우로 MDI 프레임 윈도우를 갖고있는 dropdown, cascading 또는 어떤 다른 메뉴를 숨기기 위하여 Hide 함수를 사용할 수는 없다. 또한 MDI sheet로 오픈되어 있는 윈도우는 사용자가 숨길 수 없다.

메뉴 아이템을 사용할 수 없도록 (사용할 수 없는 흐린 색상으로 나타내고 상호작용 할 수 없도록) 하려는 Disable 함수를 사용할 수 있다.

눈에는 보이지만 이벤트에 반응하지 않게 사용할 수 없는 상태로 하려면, 그 object의 Enabled property를 설정한다.

*** 동일한 문법 ***

Hide 함수를 호출하는 대신 object의 Visible property를 설정할 수 있다.

<문법> objectname.Visible = FALSE

따라서, 다음의 두 문장은 서로 동일하다:

lb_Options.Visible = FALSE

lb_Options.Hide ( )

[예제]

* ListBox lb_options를 숨긴다.

lb_options.Hide( )

* 메뉴 아이템의 스크립트에서, 다음 문장은 MDI frame w_mdi내에 활성화 되어있는 sheet에 있는 CommandButton cb_delete를 숨긴다. 활성화된 sheet들은 w_sheet 타입이다.

w_sheet w_active

w_active = w_mdi.GetActiveSheet()

IF IsValid(w_active) THEN w_active.cb_delete.Hide( )

[참고]

Show


Hour PowerScript 함수

[설명]

time 값에서 시간을 구한다. 시간은 24시를 기반으로 한다.

[문법]

Hour ( time )

[Argument]

time

시간을 구하려는 time

[Return 값]

Integer.

time의 시간 영역의 값 (00 - 23)을 리턴한다. time이 NULL이면, Hour 함수는 NULL을 리턴한다.

[예제]

* 현재 시간을 리턴한다.

Hour(Now( ))

* 다음 문장은 19를 리턴한다.

Hour(19:01:31)

[참고]

Minute

Now

Second

Hour (DataWindow painter 함수)


Idle PowerScript 함수

[설명]

명시한 초동안 사용자가 아무런 행동을하지 않을 때 PowerBuilder가 Application Idle 이벤트를 발생시키도록 타이머를 설정한다.

[문법]

Idle ( n )

[Argument]

n

PowerBuilder가 Application Idle 이벤트를 발생시키기 이전동안의 초. 0은 Idle 감지를 종료한다.

[Return 값]

Integer.

타이머가 시작되면 1을 리턴하고, 타이머를 시작할 수 없거나 n이 0이면서 이전에 타이머가 시작되어있지 않은 상태이면 -1을 리턴한다. 타이머가 시작된 이후에 n을 변경하면, Idle 함수는 타이머를 새로 시작하지 않는다; 즉, 현재 타이머 간격을 변경된 새로운 타이머 간격으로 재 설정한다. n이 NULL 이면, Idle 함수는 NULL을 리턴한다. 또한, 리턴된 값은 통상 사용하지 않는다.

[용법]

사용자가 아무런 행동을 취하지 않을 때 응용프로그램을 종료 하거나 재시작 하려면 Idle 함수를 사용한다. 이것은 가끔 보안을 이유로 행하여진다.

Idle 함수는 각각의 사용자 행동 (예를들어, keystroke나 마우스 클릭) 이후에 시작되고, 아무런 행동을 하지않고 n초 경과한 이후에 Idle 이벤트를 발생시킨다. 응용프로그램의 Idle 이벤트 스크립트는 전형적으로 윈도우를 닫고, 데이터베이스와의 연결을 끊고 그 응용프로그램을 종료하거나 Restart 함수를 호출한다.

타이머는 다음 중 어떤 행동이 발생할 때 재 설정된다:

·응용프로그램의 윈도우 내에서 마우스를 움직이거나 마우스 클릭을 한다

·그 응용프로그램의 윈도우가 현재 윈도우일 때 키보드를 누른다

·응용프로그램이 최소화 되어있을 때 그 아이콘 위에 마우스 클릭을 하거나 마우스로 이동한다

·응용프로그램이 최소화 되어있고 현재(아이콘의 이름이 반전되어 나타난다 상태일 때 키보드를 누른다

[예제]

* 행동을 취하지 않은 후 5분이 경과하면 Idle 이벤트를 발생한다.

Idle(300)

* idle 작동을 중지한다.

Idle(0)

* 다음 예제는 행동을 취하지 않은 후 2분후에 응용프로그램을 종료하고 다시시작 시키기 위하여 Idle 이벤트를 사용한다. 이것은 가끔 공공장소에 설치된 정보제공용 컴퓨터를 위하여 사용한다.

*** 응용프로그램의 Open 이벤트 스크립트 ***

Idle(120) // 2분 후에 Idle 이벤트를 보낸다

*** 응용프로그램의 Idle 이벤트 스크립트 ***

... // 데이터베이스를 원하는 상태로 설정하기위한 문장들

Restart() // 응용프로그램을 재시작 한다

[참고]

Restart

Timer


ImportClipboard PowerScript 함수: syntax 1

[설명]

클립보드상의 탭-구분 데이터로부터 DataWindow control 이나 DataStore object로 데이터를 삽입한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ImportClipboard ( { startrow {, endrow {, startcolumn {, endcolumn {, dwstartcolumn } } } } )

[Argument]

dwcontrol | 클립보드로부터 데이터를 복사하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
startrow | (선택사항)복사하려는 클립보드내의 첫 번째 row의 번호. 클립보드상의 첫 번째 row가 스킵 하려는 머리말을 포함하면, startrow를 2로 설정한다. 기본값은 1이다
endrow | (선택사항)복사하려는 클립보드내의 마지막 row 번호. 기본값은 남아있는 row의 수이다.
startcolumn | (선택사항)복사하려는 클립보드내의 첫 번째 칼럼. 기본설정 값은 1이다.
endcolumn | (선택사항)복사하려는 클립보드내의 마지막 칼럼번호. 기본값은 남아있는 칼럼의 수이다.
dwstartcolumn | (선택사항)데이터를 받아들이려는 DataWindow control 이나 DataStore내의 첫 번째 칼럼 번호. 기본설정 값은 1이다.

[Return 값]

Long.

처리에 성공하면 가져온 row의 수를 리턴하고 에러가 발생하면 다음 음수중 하나를 리턴한다:

-3 argument가 올바르지 않다

-4 들어온 값이 올바르지 않다

argument값중에 NULL이 있으면, ImportClipboard는 NULL을 리턴한다.

[용법]

클립보드 데이터는 반드시 탭-구분 칼럼 형식이어야 한다. DataWindow object 칼럼의 데이터 타입과 순서는 반드시 클립보드상의 데이터와 일치 하여야 한다.

startcolumn 과 endcolumn argument는 가지고온 칼럼의 수와 영향을 받게될 DataWindow내의 칼럼 수를 제어한다. dwstartcolumn argument는 영향을 받게될 첫 번째 DataWindow 칼럼번호를 명시한다. 다음 공식은 마지막으로 영향을 받게될 DataWindow 칼럼번호를 계산한다.

dwstartcolumn + (endcolumn - startcolumn)

[예제]

* 클립보드내의 모든 데이터를 DataWindow dw_employee의 첫 번째 칼럼부터 복사한다.

dw_employee.ImportClipboard( )

* 다음 문장은 클립보드상의 2-30 row와 3-8 칼럼들을 DataWindow 5 칼럼부터 복사한다. 결과적으로 DataWindow의 5-10 칼럼에 29 row들이 추가된다.

dw_employee.ImportClipboard(2, 30, 3, 8, 5)

[참고]

ImportFile

ImportString

ImportClipBoard: Syntax 2

ImportClipboard PowerScript 함수: syntax 2

[설명]

클립보드상의 탭-구분(tab-delimited) 데이터로 부터 graph control에 데이터를 삽입한다.

[적용]

윈도우와 사용자 object내의 graph control. DataWindow object내의 그래프는 DataWindow로부터 직접 데이터를 가져오르로 적용되지 않는다.

[문법]

graphname.ImportClipboard ( { startrow {, endrow {, startcolumn } } } )

[Argument]

graphname | 클립보드로부터 데이터를 복사하려는 graph control의 이름.
startrow | (선택사항) 복사하려는 클립보드내의 첫 번째 row 번호. 첫 번째 row가 스킵 하려는 머리말을 포함하고 있다면, startrow를 2로 설정한다. 기본 설정 값은 1이다.
endrow | (선택사항) 복사하려는 클립보드내의 마지막 row 번호. 기본설정 값은 남은 row의 수이다.
startcolumn | (선택사항) 복사하려는 클립보드내의 첫 번째 칼럼. 기본설정 값은 1이다.

[Return 값]

Long.

처리에 성공하면 들어온 row의 수를 리턴하고, 에러가 발생할 경우 다음 중 하나의 값을 리턴한다:

0 파일의 끝, row의 수가 너무 많다

-2 칼럼들이 충분치 않다

-3 argument가 타당하지 않다

-4 입력값이 올바르지 않다

arfument 값 중에 NULL이 있으면, ImportClipboard 함수는 NULL을 리턴한다.

[용법]

클립보드 데이터는 반드시 탭으로 분리된(tab-delimited) 칼럼 형식이어야 한다.

그래프의 경우, ImportClipboard 함수는 3개의 칼럼들만 사용하고 나머지 칼럼들은 무시한다. 데이터의 각 row는 반드시 정보의 3부분을 포함하고 있어야 하고, 그 정보는 그래프 타입에 따른다:

▶ scatter를 제외한 모든 그래프의 경우, 복사되는 첫 번째 칼럼은 series 이름, 두 번째 칼럼은 category, 3번째 칼럼은 데이터를 포함한다.

▶ scatter 그래프의 경우, 복사되는 첫 번째 칼럼은 series 이름, 두 번째 칼럼은 데이터의 x값, 세 번째 칼럼은 데이터의 y값이다.

그래프 내에 series 나 category가 이미 존재하면, 데이터는 그것에 할당되고, 그렇지 않을 경우 series 와 category는 그래프에 추가된다.

사용자는 첫 번째 칼럼에 서로 다른 series 이름을 명시함으로써 하나 이상의 series에 데이터를 추가할 수 있다.

[예제]

* 클립보드가 아래와 같은 데이터를 가지고있고 그래프에 아직 데이터가 없을 경우, 다음 문장은 2개의 series와 3개의 category를 가진 그래프를 생성한다:

Sales 94 Jan 3000

Sales 94 Mar 2200

Sales 94 May 2500

Sales 95 Jan 4000

Sales 95 Mar 3200

Sales 95 May 3500

위에 있는 클립보드내의 모든 데이터를 gr_employee에 복사한다.

gr_employee.ImportClipboard( )

다음 문장은 클립보드내의 row 2, column 3으로부터 시작하여 row 30 column 5까지를 그래프 gr_employee로 복사한다.

gr_employee.ImportClipboard(2, 30, 3)

[참고]

ImportFile

ImportString

ImportClipboard: Syntax 1


ImportFile PowerScript 함수: syntax 1

[설명]

파일로부터 DataWindow control 이나 DataStore로 데이터를 삽입한다. 이때의 데이터는 탭-분리 (tab-delimited) 텍스트나 dBase 형식 2 또는 3일 수 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ImportFile ( filename {, startrow {, endrow {, startcolumn {, endcolumn {, dwstartcolumn } } } } } )

[Argument]

dwcontrol | 명시한 파일로부터 데이터를 복사하려는 DataWindow control 또는 DataStore 이름.
filename | 데이터를 복사하려는 파일의 이름을 나타내기위한 문자열. 파일은 반드시 ASCII, 탭-분리 (tab-delimited) 파일 (.TXT) 또는 dBase 형식 2 또는 3 파일 (.DBF) 이어야 한다. 파일 이름은 반드시 그 끝에 적절한 확장자를 명시하여야 한다. filename이 NULL 이면, ImportFile 함수는 File Open 대화상자를 나타내고 사용자가 파일을 선택할 수 있도록 한다.
startrow | (선택사항) 복사하려는 파일내의 첫 번째 row 번호. 첫 번째 row가 머리말을 포함하고 있으면 startrow를 2로 설정한다. 기본설정값은 1이다.
endrow | (선택사항) 복사하려는 마지막 row 번호. 기본설정 값은 남아있는 row의 수이다.
startcolumn | (선택사항) 복사하려는 첫 번째 칼럼 번호. 기본설정 값은 1이다.
endcolumn | (선택사항) 복사하려는 마지막 칼럼 번호. 기본설정 값은 남아있는 칼럼의 수이다.
dwstartcolumn | (선택사항) 데이터를 받아들이려는 DataWindow control 이나 DataStore내의 첫 번째 칼럼 번호. 기본설정 값은 1이다.

[Return 값]

Long.

처리에 성공하면 가지고온 row의 수를 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다:

0 파일의 끝; row의 수가 너무 많다

-1 row가 아니다

-2 파일이 비어있다

-3 argument가 올바르지 않다

-4 입력이 올바르지 않다

-5 파일을 오픈할 수 없다

-6 파일을 닫을 수 없다

-7 텍스트 읽기 에러가 발생하였다

-8 TXT 파일이 아니다

-9 사용자가 import를 취소하였다

-10 지원하지 않는 dBase 파일 형식이다 (버전 2 또는 3이 아니다)

[용법]

파일은 데이터의 row들로 구성되어있다. 이 파일이 칼럼 머리말이나 row 레이블을 포함하고 있을 경우, 이들을 건너뛰기 위하여 startrow 와 startcolumn argument를 설정하도록 한다. DataWindow object 칼럼의 데이터 타입과 순서는 반드시 파일내의 칼럼들과 일치하여야 한다.

startcolumn 과 endcolumn argument는 파일로부터 들어오는 칼럼들의 수와 영향을 받는 DataWindow의 칼럼 수를 제어한다. 다음의 공식은 영향을 받는 DataWindow의 마지막 칼럼을 계산한다.

dwstartcolumn + (endcolumn - startcolumn)

데이터를 가져오기 위한 파일을 사용자가 선택하게 하려면, filename에 NULL을 명시한다. PowerBuilder는 Select Import File 대화상자를 나타낸다. 이 대화상자의 dropdown listbox는 가져오려는 파일의 타입을 사용자가 선택할 수 있도록 해준다.

[이벤트]

ImportFile 함수는 ItemError 이벤트를 유발시킬 수도 있다.

[예제]

* D:\EMPLOYEE.TXT 파일내의 모든 데이터를 dw_employee의 첫 번째 칼럼부터 가지고 온다.

dw_employee.ImportFile("D:\EMPLOYEE.TXT")

* 다음 문장은 D:\EMPLOYEE.TXT 파일로부터 DataWindow dw_employee로 데이터를 삽입한다. 복사는 파일의 row 2에서 30까지 칼럼 3에서 8까지 DataWindow의 칼럼 5부터 시작한다. 결과적으로 DataWindow의 칼럼 5부터 10까지 29 row들이 추가된다.

dw_employee.ImportFile("D:\EMPLOYEE.TXT", 2, 30, 3, 8, 5)

[참고]

ImportClipboard

ImportString

ImportFIle: Syntax 2

ImportFile PowerScript 함수: syntax 2

[설명]

파일내의 데이터를 그래프 control로 삽입한다. 데이터는 탭-분리(tab-delimited) 텍스트나 dBase 형식 2 또는 3일 수 있다. 데이터의 형식은 그래프의 타입에 따른다.

[적용]

윈도우와 사용자 object내의 그래프 control. DataWindow object는 DataWindow로부터 데이터를 직접 가지고 오므로 적용되지 않는다.

[문법]

graphname.ImportFile ( filename {, startrow {, endrow {, startcolumn } } } )

[Argument]

graphname | 명시한 파일로부터 데이터를 복사하려는 그래프 control의 이름.
filename | (선택사항) 데이터를 복사하려는 파일의 이름을 나타내기 위한 문자열. 파일은 반드시 ASCII, 탭-분리 (tab-delimited) 파일 (.TXT) 또는 dBase 형식 2 또는 3 파일 (.DBF) 이어야 한다. 파일 이름은 반드시 그 끝에 적절한 확장자를 명시하여야 한다. filename을 명시하지 않거나 NULL 이면, ImportFile 함수는 파일이름을 묻는다.
startrow | (선택사항) 복사하려는 파일내의 첫 번째 row 번호. 첫 번째 row가 머리말을 포함하고 있으면 startrow를 2로 설정한다. 기본설정 값은 1이다.
endrow | (선택사항) 복사하려는 마지막 row 번호. 기본설정 값은 남아있는 row의 수이다.
startcolumn | (선택사항) 복사하려는 첫 번째 칼럼 번호. 기본설정 값은 1이다.

[Return 값]

Long.

처리에성공하면 가지고온 row의 수를 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다:

0 파일의 끝; row의 수가 너무 많다

-1 row가 아니다

-2 파일이 비어있다

-3 argument가 올바르지 않다

-4 입력이 올바르지 않다

-5 파일을 오픈할 수 없다

-6 파일을 닫을 수 없다

-7 텍스트 읽기 에러가 발생하였다

-8 TXT 파일이 아니다

-9 사용자가 import를 취소하였다

[용법]

그래프 control에서, ImportFile은 3개의 칼럼만 사용하고 나머지 칼럼은 무시한다. 데이터의 각 row는 반드시 다음의 3가지 정보를 포함하고 있어야 한다. 정보는 그래프의 타입에 따른다:

scatter를 제외한 모든 그래프 타입에 관하여, 가지고 오는 첫 번째 칼럼은 series 이름, 두 번째 칼럼은 category, 세 번째 칼럼은 데이터를 포함한다.

scatter 그래프에 관하여, 가지고 오는 첫 번째 칼럼은 series 이름, 두 번째 칼럼은 데이터의 x 값, 3번째 칼럼은 데이터의 y값이다.

사용자는 첫 번째 칼럼에 서로 다른 series 이름을 명시함으로써 하나 이상의 series를 추가할 수 있다.

데이터를 가져오기 위한 파일을 사용자가 선택하게 하려면, filename에 NULL을 명시한다. PowerBuilder는 Select Import File 대화상자를 나타낸다.

[예제]

* D:\EMPLOYEE.TXT 파일내의 모든 데이터를 gr_employee의 첫 번째 row부터 복사한다.

gr_employee.ImportFile("D:\EMPLOYEE.TXT")

* D:\EMPLOYEE.TXT 파일의 row 2 칼럼 3 부터 시작하여 row 30 칼럼 5까지의 데이터를 그래프 gr_employee에 복사한다.

gr_employee.ImportFile("D:\EMPLOYEE.TXT", 2, 30, 3)

* 다음 문장은 PowerBuilder가 Specify Import File 대화상자를 나타낸다.

string null_str

SetNull(null_str)

dw_main.ImportFile(null_str)

[참고]

ImportClipboard

ImportString

ImportFIle: Syntax 1


ImportString PowerScript 함수: syntax 1

[설명]

문자열내의 탭-분리(tab-delimited) 데이터로 부터 DataWindow control 이나 DataStore로 데이터를 삽입한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ImportString ( string {, startrow {, endrow {, startcolumn {, endcolumn {, dwstartcolumn } } } } } )

[Argument]

dwcontrol | 명시한 문자열로부터 데이터를 복사하려는 DataWindow control 이나 DataStore의 이름.
string | 데이터를 복사하려는 문자열. 문자열은 줄 당 하나의 row를 가진 탭-분리(tab-delimited ) 문자열 이다 ([용법] 참조).
startrow | (선택사항) 가져오려는 문자열 내 데이터의 시작 row 번호. 첫 번째 row가 머리말을 포함하고 있으면, startrow를 2로 설정하도록 한다. 기본 설정 값은 1이다.
endrow | (선택사항) 가져오려는 문자열 내 데이터의 마지막 row 번호. 기본설정 값은 모든 row이다.
startcolumn | (선택사항) 가져오려는 문자열내의 첫 번째 칼럼 번호. 기본설정 값은 1이다.
endcolumn | (선택사항) 가져오려는 문자열내의 마지막 칼럼 번호. 기본설정값은 남아있는 칼럼들의 수이다.
dwstartcolumn | (선택사항) 데이터를 받아들이기 위한 DataWindow control 이나 DataStore object의 첫 번째 칼럼 번호. 기본설정 값은 1이다.

[Return 값]

Long.

처리에 성공하면 받아들여진 row의 수를 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다:

-3 argument가 올바르지 않다

-4 입력이 올바르지 않다

-9 데이터가 올바르지 않은 이유로 PowerBuilder나 사용자가 import를 취소하였다

argument 값 중에 NULL이 있으면, ImportString은 NULL을 리턴한다.

[용법]

문자열의 형식은 ASCII 파일로 부터 가져온 데이터와 같이 동일하다. 문자열은 탭-분리(tab-delimited) 칼럼 형식이어야 하고 각 라인은 반드시 그 끝에 carriage return과 개행 문자 (~r~n)를 가지고 있어야 한다. 예를 들어, 문자열이 4개의 탭-분리(tab-delimited) 칼럼들을 가지고 있다면, 각 라인은 반드시 다음과 같은 모양을 가지고있어야 한다:

col1_data ~tcol2_data ~tcol3_data ~tcol4_data~r~n

DataWindow control 이나 DataStore의 경우, 그 문자열은 데이터의 row(행)들로 되어있다. 데이터가 칼럼 머리말이나 row 레이블을 포함하고 있을 경우, startrow 와 startcolumn을 설정한다. DataWindow object 칼럼의 데이터 타입과 순서는 반드시 문자열내의 데이터 칼럼과 일치하여야 한다.

startcolumn 과 endcolumn argument는 문자열로부터 가져오는 칼럼들의 수와 영향을 받은 DataWindow내의 칼럼 수를 제어한다. dwstartcolumn argument는 영향을 받은 DataWindow의 첫 번째 칼럼을 명시한다. 다음 공식은 마지막으로 영향을 받는 마지막 DataWindow 칼럼을 계산한다.

dwstartcolumn + (endcolumn - startcolumn)

한 row에 여러 칼럼이 할당된 문자열 데이터가 여러 줄을 가지고 있을 경우 (import 문자열 내에 라인의 끝 문자에 의하여 나타낸다), 문자열 데이터는 반드시 ~"를 이용하여 둘러싸야 한다. 이때 홑따옴표(')를 사용하면 않된다.

다음의 예는 각 row에 2개의 칼럼이 할당된 문자열을 import 하는 경우이다.

ls_s = &

"1~t~"Mickey~r~nMinnie~r~nGoofy~" ~r~n" + &

"2~t~"Susan~r~nMary~r~nMarie~" ~r~n" + &

"3~t~"Chris~r~nBen~r~nMike~" ~r~n" + &

"4~t~"Mott~r~nBarber~r~nPicard~" "

[이벤트]

ImportString은 ItemError 이벤트를 유발시킬 수도 있다.

[예제]

* 다음 문장은 문자열 ls_Emp_Data내의 모든 데이터를 DataWindow control dw_employee으 첫 번째 칼럼부터 복사한다.

string ls_Emp_Data

ls_Emp_Data = . . .

dw_employee.ImportString(ls_Emp_Data)

* 다음 문장은 문자열 ls_Text에 데이터를 저장하고 DataWindow dw_employee에 가지고 온다. DataWindow는 부서 100과 개인의 시작 및 종료일을 나타낸다. 문자열은 부서번호와 import 되지 않는 다른 정보를 포함하고 있다. ImportString은 row 2부터 10과 칼럼 2부터 5까지의 데이터를 DataWindow 칼럼 5부터 복사한다. 결과적으로 9개의 row들이 DataWindow 칼럼 5부터 8까지 추가된다.

string ls_text

ls_text = "부서~t성~t이름~t시작일~t종료일~t금액~t구분 ~r~n"

ls_text = ls_text + "100~tJones~tMary~tApr88~tJul94~t40~tG~r~n"

ls_text = ls_text + "100~tMarsh~tMarsha~tApr89~tJan92~t35~tG~r~n"

ls_text = ls_text + "100~tJames~tHarry~tAug88~tMar93~t22~tM~r~n"

ls_text = ls_text + "100~tWorth~tFrank~tSep87~tJun94~t55~tE~r~n"

dw_employee.ImportString(ls_text, 2, 10, 2, 5, 5)

[참고]

ImportClipboard

ImportFile

ImportString: Syntax 2

ImportString PowerScript 함수: syntax 2

[설명]

문자열내의 탭-분리(tab-delimited) 데이터로부터 그래프 control로 데이터를 삽입한다. 문자열의 형식은 그래프의 타입에 따른다.

[적용]

윈도우와 사용자 object내의 그래프 control. DataWindow object는 DataWindow로부터 데이터를 직접 가지고 오므로 적용되지 않는다.

[문법]

graphname.ImportFile ( string {, startrow {, endrow {, startcolumn } } } )

[Argument]

graphname | 명시한 파일로부터 데이터를 복사하려는 그래프 control의 이름.
string | 데이터를 복사하려는 문자열. 문자열의 값은 라인 당 하나의 데이터 포인트를 가진 탭-분리(tab-delimited) 칼럼이어야 한다 ([용법] 참조).
startrow | (선택사항) 복사하려는 문자열내의 첫 번째 row 번호. 첫 번째 row가 머리말을 포함하고 있으면 startrow를 2로 설정한다. 기본설정 값은 1이다.
endrow | (선택사항) 복사하려는 마지막 row 번호. 기본설정 값은 남아있는 row의 수이다.
startcolumn | (선택사항) 복사하려는 첫 번째 series의 번호. 기본설정 값은 1이다.

[Return 값]

Long.

처리에 성공하면 가지고온 데이터 포인트의 수를 리턴하고 에러가 발생하면 다음 중 하나의 값을 리턴한다:

0 파일의 끝, row의 수가 너무 많다

-2 칼럼들이 충분치 않다

-3 argument가 올바르지 않다

-4 입력이 올바르지 않다

argument 값 중에 NULL이 있으면, ImportString은 NULL을 리턴한다.

[용법]

그래프 control의 경우, ImportString은 각 라인에서 3개의 칼럼만 사용하고 다른 칼럼들은 무시한다. 3개의 칼럼들은 반드시 그래프 타입에 맞는 정보를 포함하고 있어야 한다:

scatter를 제외한 모든 그래프의 경우, 첫 번째 칼럼은 series 이름, 두 번째 칼럼은 category, 세 번째 칼럼은 data를 포함한다.

scatter 그래프의 경우, import 되는 첫 번째 칼럼은 series의 이름, 두 번째 칼럼은 데이터의 x값, 세 번째 칼럼은 y값이다.

사용자는 첫 번째 칼럼에 서로 다른 series 이름을 명시함으로써 하나 이상의 series를 추가할 수 있다.

[예제]

* 다음 문장은 문자열 ls_Text의 row 2 칼럼 3부터 시작하여 row 30 칼럼 5까지의 데이터를 그래프 gr_employee에 복사한다.

string ls_Text

ls_Text = . . .

gr_employee.ImportString(ls_Text, 2, 30, 3)

* 다음 문장은 문자열 ls_gr내dp 두 개의 series를 저장하고 데이터를 그래프 gr_custbalance에 import 한다. 데이터내의 category는 A, B, C이다.

string ls_gr

ls_gr = "series1~tA~t12~r~n"

ls_gr = ls_gr + "series1~tB~t13~r~n"

ls_gr = ls_gr + "series1~tC~t14~r~n"

ls_gr = ls_gr + "series2~tA~t15~r~n"

ls_gr = ls_gr + "series2~tB~t14~r~n"

ls_gr = ls_gr + "series2~tC~t12.5~r~n"

gr_custbalance.ImportString(ls_gr, 1)

[참고]

ImportClipboard

ImportFile

ImportString: Syntax 1


InputFieldChangeData PowerScript 함수

[설명]

RichTextEdit control의 입력 필드 데이터 값을 수정한다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldChangeData ( inputfieldname, inputfieldvalue )

[Parameter]

rtename | 명시한 입력 필드내의 데이터를 변경하려는 RichTextEdit control의 이름
inputfieldname | 값을 변경하고자하는 입력 필드의 이름 (string). 하나 이상의 입력 필드를 부여할 수 있다.
inputfieldvalue | 명시한 입력 필드에 할당된 데이터 값.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, InputFieldChangeData 함수는 NULL을 리턴한다.

[용법]

동일한 이름을 가진 입력 필드는 모두 동일한 데이터를 갖는다. InputFieldChangeData를 호출 하면, 명시한 이름의 모든 필드에 영향을 준다.

[예제]

* 다음 스크립트는 ListBox lb_instruments에관한 SelectionChanged 이벤트의 일부이다. 사용자가 리스트박스내의 한 아이템에 클릭하면, 선택된 도구 이름은 RichTextEdit rte_1내에 instrument라 명명된 입력 필드에 할당된다.

integer rtn

rtn = rte_1.InputFieldChangeData( "instrument", lb_instruments.SelectedItem( ) )

st_status.Text = String( rtn )

[참고]

InputFieldCurrentName

InputFieldDeleteCurrent

InputFieldGetData

InputFieldInsert

InputFieldLocate

DataSource


InputFieldCurrentName PowerScript 함수

[설명]

삽입 포인트가 RichTextEdit control내의 입력 필드에 있을 때 그 입력 필드의 이름을 알아낸다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldCurrentName ( )

[Argument]

rtename

입력 필드의 이름을 구하려는 RichTextEdit control의 이름

[Return 값]

String.

입력 필드의 이름을 리턴한다. 삽입 포인트가 입력 필드내에 있지 않거나 에러가 발생하면, 빈 문자열 ("")을 리턴한다.

[예제]

* 삽입 포인트를 포함하고있는 입력 필드의 이름을 구한다.

string ls_inputname

ls_inputname = rte_1.InputFieldCurrentName( )

[참고]

InputFieldChangeData

InputFieldDeleteCurrent

InputFieldGetData

InputFieldInsert

InputFieldLocate

DataSource


InputFieldDeleteCurrent PowerScript 함수

[설명]

RichTextEdit control내에 선택된 입력 필드를 삭제한다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldDeleteCurrent ( )

[argument]

rtename

선택된 입력 필드를 삭제하려는 RichTextEdit control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 입력 필드에 삽입 포인터가 없거나, 입력 필드가 편집을 위하여 활성화 되어있지 않거나, 에러가 발생하면 -1을 리턴한다.

[용법]

동일한 이름을가진 모든 입력 필드는 모두 동일한 데이터를 갖지만 독립적으로 삭제될 수 있다. 동일한 이름을 가진 입력 필드중 하나가 삭제되면, 남아있는 다른 입력 필드에는 영향을 주지 않는다. 동일한 이음을 가진 모든 입력 필드들이 삭제되면, RichTextEdit control은 그들 입력 필드의 데이터를 기억한다. 이것은 삭제된 필드와 동일한 이름을 갖는 새로운 입력필드를 초기화 하는데 사용할 수 있다.

반드시 입력 필드만 선택하여야 한다. 다른 텍스트와 함께 선택되었을 경우에, InputFieldDeleteCurrent 함수는 처리에 실패한다. 입력 필드가 현재 필드이고, 다른 텍스트와 함께 선택되어있지 않다면, 반전된 내용이 점멸하게 된다.

InputFieldDeleteCurrent 함수는 현제 필드만 삭제하고, 동일한 이름을 가진 다른 필드는 영향을 받지 않는다.

[예제]

* 삽입 포인트가 있는 입력 필드를 삭제한다.

integer li_rtn

li_rtn = rte_1.InputFieldDeleteCurrent( )

[참고]

InputFieldChangeData

InputFieldCurrentName

InputFieldGetData

InputFieldInsert

InputFieldLocate

DataSource


InputFieldGetData PowerScript 함수

[설명]

RichTextEdit control내에 명시한 입력 필드의 데이터를 구한다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldGetData ( inputfieldname )

[Argument]

rtename | 선택된 입력 필드로부터 데이터를 구하려는 RichTextEdit control의 이름.
inputfieldname | 데이터를 구하려는 입력 필드의 이름 (string)

[Return 값]

String.

입력 필드내의 데이터. 입력 필드가 존재하지 않거나 에러가 발생하면 InputFieldGetData 함수는 빈 문자열 ("")을 리턴한다.

[예제]

* 입력 필드 empname로 부터 데이터를 구한다.

string ls_name

ls_name = rte_1.InputFieldGetData(empname)

[참고]

InputFieldChangeData

InputFieldCurrentName

InputFieldDeleteCurrent

InputFieldInsert

InputFieldLocate

DataSource


InputFieldInsert PowerScript 함수

[설명]

RichTextEdit control내에서 삽입 포인트 위치에 입력 필드를 삽입한다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldInsert ( inputfieldname )

[argument]

rtename | 입력 필드를 삽입하려는 RichTextEdit control의 이름.
inputfieldname | 삽입될 입력 필드의 이름 (string). 입력 필드의 이름이 반드시 고유할 필요는 없다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. inputfieldname이 NULL이면, InputFieldInsert 함수는 NULL을 리턴한다.

[용법]

동일한 이름의 여러 입력 필드가 존재할 수 있다. 한 이름이 부여된 필드는 모두 동일한 데이터 값을 갖는다. 한 입력 필드에관하여 InputFieldChangeData 함수를 호출하면, 그 이름을 갖는 모든 필드가 변경된다.

선택되어있을 경우, InputFieldInsert 함수는 그 선택된 범위의 시작위치에 입력 필드를 삽입하고, 선택되어있는 상태를 유지한다.

[예제]

st_status.Text = String(rte_1.InputFieldInsert( "lastname"))

[참고]

InputFieldChangeData

InputFieldCurrentName

InputFieldDeleteCurrent

InputFieldGetData

InputFieldLocate

DataSource


InputFieldLocate PowerScript 함수

[설명]

RichTextEdit control내의 입력 필드로 이동하고 삽입 포인트를 그곳에 위치 시킨다.

[적용]

RichTextEdit controls

[문법]

rtename.InputFieldLocate ( location {, inputfieldname } )

[Parameter]

rtename | 입력 필드를 삽입하려는 RichTextEdit control의 이름.
location | 위치시키려는 입력 필드의 위치를 명시한 Location 열거형 데이터 타입의 값.
 | First! | 문서 내에서 inputfieldname이 첫 번째로 나타나는 곳, 또는 명시한 이름이 없을 경우, 문서내의 첫 번째 입력 필드
 | Last! | 문서 내에서 inputfieldname이 마지막으로 나타나는 곳, 또는 명시한 이름이 없을 경우, 문서내의 마지막 입력 필드
 | Next! | 삽입 포인트 이후에 inputfieldname이 나타나는 곳, 또는 명시한 이름이 없을 경우, 삽입포인트 이후에 나타나는 입력 필드
 | Prior! | 삽입 포인트 이전에 inputfieldname이 나타나는 곳, 또는 명시한 이름이 없을 경우, 삽입포인트 이전에 나타나는 입력 필드
inputfieldname | 사용자가 위치 시키려는 입력 필드의 이름 (string). control내에 inputfieldname이 여러 번 나타나면, location은 위치할 곳을 명시하는데 사용된다.

[Return 값]

String.

처리에 성공하면 위치한 곳의 입력 필드 이름을 리턴한다. 일치하는 입력 필드가 없거나

에러가 발생하면 InputFieldLocate 함수는 빈 문자열 ("")을 리턴한다. argument 중에 NULL이 있으면, InputFieldLocate 함수는 NULL을 리턴한다.

[용법]

동일한 이름의 여러 입력 필드가 존재할 수 있다. 하나의 이름이 주어진 필드는 모두 동일한 데이터 값을 갖는다.

[예제]

* string ls_name

ls_name = rte_1.InputFieldLocate(Next!)

* string ls_name

ls_name = rte_1.InputFieldLocate(Last!)

* string ls_name

ls_name = rte_1.InputFieldLocate(Last!, "address")

[참고]

InputFieldChangeData

InputFieldCurrentName

InputFieldDeleteCurrent

InputFieldGetData

InputFieldInsert

DataSource


InsertCategory PowerScript 함수

[설명]

그래프의 category 축상의 명시한 위치에 category를 삽입한다. 존재하는 category들은 순차적인 category 번호가 재 부여된다.

[적용]

윈도우와 사용자 objectso의 graph control. DataWindow object내의 그래프는 DataWindow로부터 직접 데이터를 가지고 오므로 적용되지 않는다.

[문법]

controlname.InsertCategory ( categoryvalue, categorynumber )

[Argument]

controlname | category를 삽입하려는 그래프의 이름.
categoryvalue | 삽입하려는 category의 값. 그 category는 그래프내에서 반드시 유일한 값이어야 한다. 사용자가 명시한 값은 반드시 category 축의 데이터 타입과 동일해야 한다.
categorynumber | 새로운 category를 삽입하려는 위치 이전 category의 번호. category의 끝에 추가하려면 0을 명시한다. 삽입하려는 축이 정렬(sort)되어 있을 경우, 삽입한 category는 category 번호를 무시하고 그 정렬순서내에 통합될 것이다.

[Return 값]

Integer.

처리에 성공하면 category 번호를 리턴하고 에러가 발생하면 -1을 리턴한다. category가 이미 존재하면, 그 존재하는 category의 번호를 리턴한다. argument 값중에 NULL이 있으면, InsertCategory 함수는 NULL을 리턴한다.

[용법]

category들은 분리된 "상자들"이다. 날짜 또는 시간 축 일지라도, 각 category는 category들 간에 연속적-스타일 연결 (timeline-style connection)을 갖지않고 분리된다. scatter 그래프의 경우만, 분리된 category들을 갖지않고, 연속적인 category 축을 갖는다.

축의 데이터 타입이 문자열일 경우, 서로다른 대문자를 가지고 있으면 category 이름은 유일하다. 또한, category 이름으로 빈 문자열("")을 명시하는 것이 가능하다. 그러나, category 이름은 고유한 것이기 때문에, 하나의 category 이름으로만 사용이 가능하다.

새로운 category를 생성하기 위하여 InsertCategory 함수를 사용하면, 그 category에 관한 각 series가 생기게 될 것이다. 새로운 category의 데이터 포인트를 생성하려면 AddData 또는

InsertData 함수를 사용한다.

** 동일한 문법 **

series의 끝에 category를 추가하려 한다면, 더 적은 argument를 필요로 하는 AddCategory 함수를 대신 사용하도록 한다.

gr_data.InsertCategory("Qty", 0)

위 문장은 다음과 동일하다:

gr_data.AddCategory("Qty")

[예제]

* 다음 문장은 그래프 gr_product_data내에서 PCs 바로전에 Macs라 명명된 category를 삽입한다.

integer CategoryNbr

// category 번호를 구한다.

CategoryNbr = FindCategory("PCs")

gr_product_data.InsertCategory("Macs", CategoryNbr)

* 다음 문장은 3개의 category를 time 축에 추가한다. 만일 time 축이 정렬되어 있다면, 추가하는 category의 순서는 정렬되어 나타나게 된다.

catnum = gr_mail.InsertCategory(13:00, 0)

catnum = gr_mail.InsertCategory(12:00, 0)

catnum = gr_mail.InsertCategory(13:00, 0)

[참고]

AddData

AddCategory

FindCategory

FindSeries

InsertData

InsertSeries


InsertClass PowerScript 함수

[설명]

OLE 2.0 control내에 명시한 OLE class의 새로운 object를 삽입한다.

[Platform 정보]

OLE 함수들은 Macintosh 와 UNIX 상에서 효과가 없다.

[문법]

ole2control.InsertClass ( classname )

[Argument]

ole2control | 새로운 object를 생성하려는 OLE 2.0 control의 이름
classname | object를 생성하려는 class의 이름 (string)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값중 하나를 리턴한다:

-1 class 이름이 올바르지 않다

-9 그밖의 에러가 발생 하였다

argument 중에 NULL 값이 있으면, InsertClass는 NULL을 리턴한다.

[용법]

class 이름은 Registration 데이터베이스에 저장된다. 저장된 class 이름의 예를들면:

Excel.Sheet

Excel.Chart

Word.Document

[예제]

* OLE 2.0 control ole_1에 빈 Excel 스프레드시트를 삽입한다.

integer result

result = ole_1.InsertClass("excel.sheet")

[참고]

InsertFile

InsertObject

LinkTo


InsertColumn PowerScript 함수

[설명]

명시한 위치에 명시한 레이블, 정렬방법 및 폭을가진 칼럼을 삽입한다.

[적용]

ListView controls

[문법]

listviewname.InsertColumn ( index, label, alignment, width )

[Argument]

listviewname | 칼럼을 삽입하려는 ListView control의 이름
index | 삽입중인 칼럼의 번호
label | 삽입중인 칼럼의 이름
alignment | 삽입중인 칼럼의 정렬방법
width | 삽입중인 칼럼의 폭

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

첫 번째 칼럼 이전에는 칼럼을 삽입할 수 없다.

[예제]

* 이름 Location, 우측-정렬, 폭 300인 칼럼을 삽입한다.

lv_list.InsertColumn(2 , "Location" , Right! , 300)

[참고]

AddColumn

DeleteColumn


InsertData PowerScript 함수

[설명]

그래프의 series내에 데이터 포인트를 삽입한다. 또한 그 데이터 포인트에 관한 category를 명시하거나 series내의 위치를 명시하는 것도 가능하다. scatter 그래프에는 적용되지 않는다.

[적용]

윈도우와 사용자 object내의 그래프. DataWindow object내의 그래프는 DataWindow로부터 데이터를 직접 가지고 오므로 적용되지 않는다.

[문법]

controlname.InsertData ( seriesnumber, datapoint, datavalue {, categoryvalue } )

[Argument]

controlname | series내에 데이터를 삽입하려는 그래프의 이름
seriesnumber | 데이터를 삽입하려는 series를 식별하기위한 번호
datapoint | 데이터를 삽입하려는 데이터 포인트의 번호
datavalue | 데이터를 삽입하려는 값
categoryvalue | (선택사항) category 축상의 데이터 값에관한 category. categoryvalue의 데이터 타입은 반드시 category 축의 데이터 타입과 일치하여야 한다. 대부분의 경우, categoryvalue를 포함한다. 반대로, category화 되지않은 값들은 series에 추가된다.

[Return 값]

Integer.

처리에 성공하면 데이터 값의 번호를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, InsertData는 NULL을 리턴한다.

[용법]

categoryvalue를 명시하지 않고 데이터 datapoint를 명시할 경우, InsertData 함수는 기존의 데이터 포인트를 다음 category로 이동시키고 그 위치에서 category안에 데이터 포인트를 삽입한다.

categoryvalue를 명시할 경우, InsertData 함수는 데이터 포인트내의 위치를 무시하고 명시한 category내에 데이터 포인터를 넣고, 기존의 데이터 값을 대치시킨다. category가 존재하지 않을 경우, InsertData 함수는 그 축의 끝에 category를 생성한다.

명시한 위치에서 데이터 포인트 값을 수정하려면, ModifyData 함수를 사용한다.

scatter 그래프에 데이터를 추가하려면, AddData 함수를 사용한다.

** 동일한 문법 **

series의 끝이나 series내에 존재하는 category에 데이터 포인트를 추가하려 한다면, 더 적은 argument를 사용하는 AddData를 대신 사용하도록 한다.

InsertData 와 ModifyData는 삽입 또는 수정중인 데이터에 관한 위치를 나타내기 위하여 datapoint를 명시할 때에는 서로 다른 형식을 갖는다. 그러나, 위치 0와 category를 명시할 때에는 AddData와 동일한 형식을 갖는다. 이들 세 함수는 모두 category가 이미 존재하고 있을 때 데이터 포인트의 값을 수정한다. 이들 세 함수는 모두 category가 존재하지 않을 때 그 축의 끝에 데이터 값을 가지고 category를 삽입한다.

category 위치를 명시하고, 그 category가 이미 존재하고 있을 경우, InsertData는 그 위치를 무시하고 명시한 category의 값을 수정하지만, ModifyData는 지정한 위치의 category 레이블을 변경한다.

다음 문장들은 서로 동일하다:

gr_data.InsertData(1, 0, 44, "Qty")

gr_data.ModifyData(1, 0, 44, "Qty")

gr_data.AddData(1, 44, "Qty")

위치를 명시할 경우 다음 문장들은 동일하지 않다.

InsertData는 지정한 위치를 무시하고 Qty category의 값을 수정한다:

gr_data.InsertData(1, 4, 44, "Qty")

ModifyData는 지정한 위치의 category 레이블과 데이터를 변경한다:

gr_data.ModifyData(1, 4, 44, "Qty")

[예제]

* 그래프 gr_product_data에서 category 레이블 Jan이 존재하지 않는다고 가정하면, 다음 문장들은 Mar 데이터 포인트 이전에 Costs라는 series내에 데이터 값을 삽입하고 그 데이터 포인트의 category 레이블을 Jan으로 할당한다.

integer SeriesNbr, CategoryNbr

// series 와 category 이름을 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

CategoryNbr = gr_product_data.FindCategory("Mar")

gr_product_data.InsertData(SeriesNbr, CategoryNbr, 1250, "Jan")

* 다음 문장은 그래프 gr_product_data에서 Revenues라는 series내에 category Apr에 관한 데이터 값 다음에 데이터 값 1250을 삽입한다. 데이터는 Apr 이후의 category에 삽입되고, 남아있는 데이터는 category 범위를 벗어나서 이동한다.

integer SeriesNbr, CategoryNbr

// series 와 category 이름을 구한다

CategoryNbr = gr_product_data.FindCategory("Apr")

SeriesNbr = gr_product_data.FindSeries("Revenues")

gr_product_data.InsertData(SeriesNbr, CategoryNbr + 1, 1250)

[참고]

AddData

FindCategory

FindSeries

GetData


InsertFile PowerScript 함수

[문서]

object를 OLE 2.0 control에 삽입한다. 명시한 파일의 복사본은 OLE object에 들어간다.

[Platform 정보]

OLE 함수들은 Macintosh 와 UNIX에는 효과가 없다.

[문법]

ole2control.InsertFile ( filename )

[Argument]

ole2control | OLE 2.0 control의 이름.
filename | OLE object에 넣을 데이터를 포함하고 있는 파일의 이름 (string). filename은 그 파일의 경로를 포함하여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다:

-1 파일을 찾을 수 없다

-9 그 밖의 에러가 발생하였다

argument 중에 NULL이 있으면, InsertFile 함수는 NULL을 리턴한다.

[용법]

명시한 파일의 내용은 OLE object에 들어간다. 따라서, PowerBuilder내의 object와 그 파일 사이에는 더 이상의 link가 존재하지 않는다.

[예제]

* control ole_1안에 새로운 OLE object를 생성한다. 그 object는 Excel object이고 스프레드 시트 EXPENSE.XLS로부터 데이터를 포함시킨다.

integer result

result = ole_1.InsertFile("c:\xls\expense.xls")

[참고]

InsertClass

InsertObject

LinkTo

Paste


InsertItem PowerScript 함수: syntax 1

[설명]

리스트박스내의 리스트 값으로 아이템을 삽입한다.

[적용]

ListBox 와 DropDownListBox controls

[문법]

listboxname.InsertItem ( item, index )

[Argument]

listboxname | 아이템을 삽입하려는 ListBox 나 DropDownListBox의 이름
item | 삽입하려는 아이템의 텍스트 (string)
index | 바로 그 이전위치에 아이템을 삽입하려는 리스트내의 아이템 번호.

[Return 값]

Integer.

처리에 성공하면 아이템의 마지막 위치를 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, InsertItem은 NULL을 리턴한다.

[용법]

InsertItem은 index에의하여 지정된 아이템 이전에 새로운 아이템을 삽입한다. listboxname이 정렬되어 있을 경우 (Sorted property 가 TRUE 이다), PowerBuilder는 새로운 아이템이 삽입된 이후에 아이템들을 다시 정렬한다. 리턴 값은 리스트내에서 새로운 아이템의 최종 위치를 반영한다.

AddItem과 InsertItem은 Items property 배열을 갱신하지 않는다. 실행하는 동안 추가된 아이템을 찾으려면 FindItem 함수를 사용한다.

VBX controls

AddItem method를 지원하는 VBX control을 사용하는 VBX 사용자 object를 생성하여 놓았다면, AddItem method를 호출하는 대신에 AddItem 또는 InsertItem 함수를 사용하도록 한다.

[예제]

* lb_actions내의 다섯 번째 아이템 이전에 Run Application 아이템을 삽입한다.

lb_actions.InsertItem("Run Application", 5)

* Sorted property가 FALSE이면, 위의 문장은 5를 리턴한다 (이전의 아이템 5는 아이템 6이 된다). Sorted property가 TRUE이면, 아이템이 삽입된 이후에 그 리스트는 정렬되고 InsertItem 함수는 그 아이템의 최종 위치 번호을 리턴한다.

ListBox lb_Cities가 리스트내에 다음과같은 아이템들을 갖고있고 Sorted property가 TRUE로 설정되어있다면, 다음 예제는 제일 위에 Denver를 삽입하고, 리스트를 정렬하고, li_pos를 4로 설정한다. ListBox의 Sorted property가 FALSE라면, 리스트의 제일 위에 Denver를 삽입하고 li_pos를 1로 설정한다.

Albany

Boston

Chicago

New York

*-- 예제 코드

string ls_City = "Denver"

integer li_pos

li_pos = lb_Cities.InsertItem(ls_City, 1)

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 2 - picture list box

InsertItem : Syntax 3 - ListView

InsertItem : Syntax 4 - ListView

InsertItem : Syntax 5 - TreeView

InsertItem : Syntax 6 - TreeView

InsertItem PowerScript 함수: syntax 2

[설명]

그림 리스트박스내에 아이템을 삽입한다.

[적용]

PictureListBox 와 DropDownPictureListBox controls

[문법]

listboxname.InsertItem ( item {, pictureindex }, index )

[Argument]

listboxname | 아이템을 삽입하려는 PictureListBox 또는 DropDownPictureListBox의 이름
item | 삽입하려는 아이템의 텍스트 (string)
pictureindex | (선택사항) 새로 추가될 아이템과 연관된 그림의 인덱스 (integer)
index | 그 이전에 아이템을 삽입하려는 아이템의 번호

[Return 값]

Integer.

처리에 성공하면 아이템의 최종 위치를 리턴하고 에러가 발생하면 -1을 리턴한다. argument의 값중에 NULL이 있으면, InsertItem은 NULL을 리턴한다.

[용법]

그림 인덱스를 명시하지 않으면, 새로 추가되는 아이템은 그림을 갖지 않게된다.

존재하지 않는 그림 인덱스를 명시하면, 그 번호는 그 그림과함께 저장된상태로 남아있는다. 그림 인덱스가 올바르게 되도록 그림을 그림 배열에 추가하면, 그 아이템은 해당 그림을 나타내게 된다.

리스트박스내의 아이템에 관한 추가적인 정보와 Sorted property가 아이템 순서에 어떻게 영향을 주는가에 관한 예제는 Syntax 1을 참고한다.

[예제]

* lb_actions의 다섯 번째 아이템 이전에 Run Application 아이템을 삽입한다. 그 아이템은 할당된 그림을 가지고 있지 않다.

plb_actions.InsertItem("Run Application", 5)

* lb_actions의 다섯 번째 아이템 이전에 Run Application 아이템을 삽입하고 그림 인덱스 4를 할당한다.

plb_actions.InsertItem("Run Application", 4, 5)

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 1 - list box

InsertItem : Syntax 3 - ListView

InsertItem : Syntax 4 - ListView

InsertItem : Syntax 5 - TreeView

InsertItem : Syntax 6 - TreeView

InsertItem PowerScript 함수: syntax 3

[설명]

ListView control에 아이템을 삽입한다.

[적용]

ListView controls

[문법]

listviewname.InsertItem ( index, label, pictureindex )

[Argument]

listviewname | 아이템을 추가하려는 ListView control의 이름
index | 추가하려는 아이템의 인덱스 번호
label | 추가하려는 아이템의 이름
pictureindex | 추가하려는 아이템의 그림 인덱스 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

레이블과 그림 인덱스보다 더 설정하는 것이 필요할 경우에는 Syntax 4를 이용한다.

[예제]

* ListView의 11위치에 아이템을 삽입한다.

lv_list.InsertItem(11 , "Presentation" , 1)

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 1 - list box

InsertItem : Syntax 2 - picture list box

InsertItem : Syntax 4 - ListView

InsertItem : Syntax 5 - TreeView

InsertItem : Syntax 6 - TreeView

InsertItem PowerScript 함수: syntax 4

[설명]

ListView control에 아이템을 삽입한다.

[적용]

ListView controls

[문법]

listviewname.InsertItem ( item )

[Argument]

listviewname | 아이템을 삽입하려는 ListView control의 이름
index | 추가하려는 아이템의 인덱스 번호
item | 삽입하려는 아이템

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

사용자가 명시한 인덱스는 ListView에 추가중인 아이템의 위치이다.

레이블과 그림 인덱스만 ListView control에 삽입하려면, Syntax 3을 이용한다.

[예제]

* 다음 예는 ListView 아이템을 두 번째 위치에서 5번째 위치로 옮긴다. 2번째 아이템의 상태를 얻기 위하여 GetItem을 사용하고, 5번째 아이템으로 ListView control 삽입한다, 다음에 원래 아이템을 삭제한다.

listviewitem l_lvi

lv_list.GetItem(2 , l_lvi)

lv_list.InsertItem(5 , l_lvi)

lv_list.DeleteItem(2)

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 1 - list box

InsertItem : Syntax 2 - picture list box

InsertItem : Syntax 3 - ListView

InsertItem : Syntax 5 - TreeView

InsertItem : Syntax 6 - TreeView

InsertItem PowerScript 함수: syntax 5

[설명]

TreeView control내의 명시한 레벨과 위치에 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItem ( handleparent, handleafter, label, pictureindex )

[Argument]

treeviewname | 아이템을 삽입하려는 TreeView control의 이름
handleparent | 삽입하려는 아이템보다 한 레벨 상위 아이템의 handle
handleafter | 아이템을 삽입한 직후에 동일한 레벨이 될 아이템의 handle
label | 삽입하려는 아이템의 레이블
pictureindex | 이미지 리스트에 추가하고자 하는 그림 인덱스

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 상위 handle이 0이면, 그 아이템은 루트 레벨에 추가된다.

레이블과 인덱스만 명시하고자 할 때 이 문법을 사용한다.

[예제]

* 현재 TreeView 아이템과 동일한 레벨에 아이템을 삽입한다. 현재 아이템을 얻기 위하여 FindItem을 사용한다음, 상위 아이템 아래쪽에 새로운 아이템을 삽입한다.

long ll_tvi , ll_tvparent

ll_tvi = tv_list.FindItem(currenttreeitem! , 0)

ll_tvparent = tv_list.FindItem(parenttreeitem!, ll_tvi)

tv_list.InsertItem(ll_tvparent ,ll_tvi ,"Hindemith", 2)

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 1 - list box

InsertItem : Syntax 2 - picture list box

InsertItem : Syntax 3 - ListView

InsertItem : Syntax 4 - ListView

InsertItem : Syntax 6 - TreeView

InsertItem PowerScript 함수: syntax 6

[설명]

TreeView control내의 명시한 레벨과 위치에 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItem ( handleparent, handleafter, item )

[Argument]

treeviewname | 아이템을 삽입하려는 TreeView control의 이름
handleparent | 삽입하려는 아이템의 한 레벨 상위 아이템의 handle
handleafter | 아이템을 삽입한 직후에 동일한 레벨이 될 아이템의 handle
item | 삽입하려는 아이템

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

레이블과 인덱스보다 더 명시하고자 할 때 이 문법을 사용한다.

아이템의 상위 handle이 0이면, 그 아이템은 루트 레벨에 추가된다.

[예제]

* 현재 TreeView 아이템과 동일한 레벨에 아이템을 삽입한다. 현재 아이템을 얻기 위하여 FindItem을 사용한다음, 상위 아이템 아래쪽에 새로운 아이템을 삽입한다.

long ll_tvi , ll_tvparent

ll_tvi = tv_list.FindItem(currenttreeitem! , 0)

ll_tvparent = tv_list.FindItem(parenttreeitem!, ll_tvi)

tv_list.InsertItem(ll_tvparent ,ll_tvi ,"Hindemith")

[참고]

AddItem

DeleteItem

FindItem

Reset

TotalItems

InsertItem : Syntax 1 - list box

InsertItem : Syntax 2 - picture list box

InsertItem : Syntax 3 - ListView

InsertItem : Syntax 4 - ListView

InsertItem : Syntax 5 - TreeView


InsertItemFirst PowerScript 함수: syntax 1

[설명]

parent의 첫 번째 child로써 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemFirst ( handleparent, label, pictureindex )

[Argument]

treeviewname | parent의 첫 번째 child로써 아이템을 명시하고자 하는 TreeView control
handleparent | parent의 handle
label | parent의 첫 번째 child로써 명시하고자 하는 아이템의 레이블
pictureindex | parent의 첫 번째 child로써 명시하고자 하는 아이템의 그림 인덱스

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 상위 handle이 0이면, 그 아이템은 루트 레벨에 추가된다.

아이템 레이블과 인덱스보다 더 명시하고자 할 때에는 Syntax 2를 사용한다.

[참고]

InsertItemFirst : Syntax 2

InsertItemFirst PowerScript 함수: syntax 2

[설명]

parent의 첫 번째 child로써 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemFirst ( handleparent, item )

[Argument]

treeviewname | parent의 첫 번째 child로써 아이템을 명시하고자하는 TreeView control
handleparent | parent의 handle
item | TreeView control에 삽입중인 아이템

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 상위 handle이 0이면, 그 아이템은 루트 레벨에 추가된다.

삽입중인 아이템의 레이블과 인덱스만 명시하고자 할 때에는 Syntax 1을 사용한다.

[예제]

* 현재 아이템을 TreeView control내의 루트 아이템 아래 첫 번째 아이템으로 삽입한다.

long ll_handle , ll_roothandle

treeviewitem l_tvi

ll_handle = tv_list.FindItem(CurrentTreeItem!, 0)

ll_roothandle = tv_list.FindItem(RootTreeItem!, 0)

tv_list.GetItem(ll_handle , l_tvi)

InsertItemFirst(ll_roothandle, l_tvi)

[참고]

InsertItem

InsertItemLast

InsertItemSort

InsertItemFirst : Syntax 1


InsertItemLast PowerScript 함수: syntax 1

[설명]

parent의 마지막 child로써 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemLast ( handleparent, label, pictureindex )

[Argument]

treeviewname | parent의 마지막 child로써 아이템을 명시하고자 하는 TreeView control
handleparent | parent의 handle
label | parent의 마지막 child로 명시하고자 하는 아이템의 레이블
pictureindex | parent의 마지막 child로 명시하고자 하는 아이템의 그림 인덱스

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 상위 handle이 0이면, 그 아이템은 루트 레벨에 추가된다.

삽입중인 아이템의 레이블과 인덱스보다 더 명시하고자 할때에는 Syntax 2를 사용한다.

[예제]

* InsertItemLast를 이용하여 TreeView의 첫 번째 세 레벨을 나타낸다.

long ll_lev1, ll_lev2 ,ll_lev3 ,ll_lev4

int index

tv_list.PictureHeight = 32

tv_list.PictureWidth = 32

ll_lev1 = InsertItemLast(0,"Composers",1)

ll_lev2 = InsertItemLast(ll_lev1, "Beethoven",2)

ll_lev3 = InsertItemLast(ll_lev2, "Symphonies", 3)

for index = 1 to 9

ll_lev4 = insertitemsort(ll_lev3, "Symphony # " + string(index) , 4)

next

ExpandItem(ll_lev3)

ExpandItem(ll_lev4)

[참고]

InsertItem

InsertItemFirst

InsertItemSort

InsertItemLast : Syntax 2

InsertItemLast PowerScript 함수: syntax 2

[설명]

parent의 마지막 child로 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemLast ( handleparent, item )

[Argument]

treeviewname | parent의 마지막 child 아이템을 명시하고자 하는 TreeView control
handleparent | parent의 handle
item | TreeView control에 삽입하고자 하는 아이템

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템 parent의 handle이 영(0)이면, 아이템은 루트 레벨에 추가된다.

삽입중인 아이템의 레이블과 인덱스만 명시하고자 할 때에는 Syntax 1을 사용한다.

[예제]

* 현재 아이템을 TreeView control의 루트(root)아래 마지막 아이템으로 삽입한다.

long ll_handle , ll_roothandle

treeviewitem l_tvi

ll_handle = tv_list.FindItem(CurrentTreeItem!, 0)

ll_roothandle = tv_list.FindItem(RootTreeItem!, 0)

tv_list.GetItem(ll_handle , l_tvi)

InsertItemLast(ll_roothandle, l_tvi)

[참고]

InsertItem

InsertItemFirst

InsertItemSort

InsertItemLast : Syntax 1


InsertItemSort PowerScript 함수: syntax 1

[설명]

레이블에 맞추어 정렬된 순서내에 있는 parent의 child로써 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemSort ( handleparent, label, pictureindex )

[Argument]

treeviewname | 레이블의 child로써 아이템을 삽입하고 정렬하려는 TreeView control
handleparent | parent의 handle
label | parent의 child로 정렬하려는 아이템 레이블
pictureindex | parent의 child로 정렬하려는 아이템에 관한 그림(picture) 인덱스

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 parent handle이 영(0)이면, 아이템은 루트 레벨로써 추가된다.

레이블과 인덱스보다 더 명시할 필요가 있을 경우에는 syntax 2를 이용한다.

[예제]

* TreeView control의 4번째 레벨을 이끌어낸다.

long ll_lev1, ll_lev2 ,ll_lev3 ,ll_lev4

int index

tv_list.PictureHeight = 32

tv_list.PictureWidth = 32

ll_lev1 = InsertItemLast(0,"Composers",1)

ll_lev2 = InsertItemLast(ll_lev1, "Beethoven",2)

ll_lev3 = InsertItemLast(ll_lev2, "Symphonies", 3)

for index = 1 to 9

ll_lev4 = InsertItemSort(ll_lev3, "Symphony # " + string(index) , 4)

next

ExpandItem(ll_lev3)

ExpandItem(ll_lev4)

[참고]

InsertItem

InsertItemFirst

InsertItemLast

InsertItemSort: syntax 2

InsertItemSort PowerScript 함수: syntax 2

[설명]

정렬된 순서내에서 레이블에 맞추어 parent의 child로 아이템을 삽입한다.

[적용]

TreeView controls

[문법]

treeviewname.InsertItemSort ( handleparent, item )

[Argument]

treeviewname | 레이블에 맞추어 parent의 child로써 아이템을 정렬하고자 하는 TreeView control
handleparent | parent의 handle
item | TreeView control내에 삽입중인 아이템

[Return 값]

Long.

처리에 성공하면 삽입된 아이템의 handle을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

아이템의 parent handle이 영(0)이면, 아이템은 루트 레벨로써 추가된다.

레이블과 인덱스만 명시할 필요가 있을 경우에는 syntax 1을 이용한다.

[예제]

* TreeView control내의 루트 아이템 하위레벨에 현재 아이템을 삽입하고 그 레이블에 따라 정렬한다.

long ll_handle , ll_roothandle

treeviewitem l_tvi

ll_handle = tv_list.FindItem(CurrentTreeItem!, 0)

ll_roothandle = tv_list.FindItem(RootTreeItem!, 0)

tv_list.GetItem(ll_handle , l_tvi)

InsertItemSort(ll_roothandle, l_tvi)

[참고]

InsertItem

InsertItemFirst

InsertItemLast

InsertItemSort: syntax 1


InsertObject PowerScript 함수

[설명]

Insert Object 대화상자를 나타낸 후, 사용자가 신규 또는 기존의 OLE object를 선택하고, OLE 2.0 control에 선택한 object를 삽입하도록 허락한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX 상에서는 아무런 효과가 없다.

[문법]

ole2control.InsertObject ( )

[Argument]

ole2control

object를 삽입하려는 OLE 2.0 control의 이름

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음값을 리턴한다:

1 사용자가 대화상자를 취소하였다.

-9 Error가 발생하였다.

argument 값 중에 NULL이 있으면, InsertObject는 NULL을 리턴한다.

[예제]

* 사용자가 OLE object를 선택할 수 있도록 표준 Insert Object를 나타낸다. InsertObject 함수는 ole_1 control내에 선택한 object를 삽입한다.

integer result

result = ole_1.InsertObject( )

[참고]

InsertClass

InsertFile

LinkTo


InsertPicture PowerScript 함수

[설명]

RichTextEdit control내의 삽입 포인트 위치에 bitmap을 삽입한다.

[적용]

RichTextEdit controls

[문법]

rtename.InsertPicture ( filename )

[Parameter]

rtename | 그림을 삽입하려는 RichTextEdit control의 이름
filename | bitmap을 포함하고있는 파일의 이름 (string)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. filename이 NULL이면, InsertPicture 함수는 NULL을 리턴한다.

[용법]

텍스트의 어떤 부분이 선택되어 있을 경우, InsertPicture 함수는 그 선택의 시작위치에 bitmap을 삽입한다. 이 경우 bitmap과 선택하였던부분 모두 선택된 상태로 남는다.

[예제]

* BMP 파일을 RichTextEdit control rte_1내의 삽입 포인트 위치에 삽입한다.

integer li_rtn

li_rtn = rte_1.InsertPicture("c:\windows\earth.bmp")

[참고]

InputFieldInsert

InsertDocument


InsertRow PowerScript 함수

[설명]

DataWindow or DataStore에 한 row를 삽입한다. 기본 설정값을 가지고 있는 모든 칼럼은, row가 표시되기전에 이들 값으로 초기화 된다.

[적용]

DataWindow controls, DataStore objects, and child DataWindows

[문법]

dwcontrol.InsertRow ( row )

[Argument]

dwcontrol | row를 삽입하려는 DataWindow control, DataStore, child DataWindow의 이름
row | 삽입하려는 row의 번호. 끝에 row를 삽입하려면, 0을 명시한다.

[Return 값]

Long.

처리에 성공하면 추가된 row의 번호를 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, InsertRow는 NULL을 리턴한다.

[용법]

InsertRow는 표시된 내용이나 현재 row를 변경하지 않으면서 쉽게 row를 삽입한다. 삽입된 row로 스크롤하고 그 row를 현재 row로 만들려면, ScrollToRow 함수를 호출한다. 단순히 삽입된 row를 현재 row로 만들려면, SetRow 함수를 호출한다.

새로 삽입된 row는 (New! flag 상태를 가진다) 그 row에 데이터가 들어갈 때까지 (NewModified! flag 상태가 된다) 갱신된 카운트에 포함되지 않는다.

[예제]

* dw_Employee의 row 7 이전에 초기화된 row를 삽입한다.

dw_Employee.InsertRow(7)

* dw_employee의 마지막 row 이후에 초기화된 row를 삽입한 후, 그 row로 스크롤하고 현재 row로 만든다.

long ll_newrow

ll_newrow = dw_employee.InsertRow(0)

dw_employee.ScrollToRow(ll_newrow)

[참고]

DeleteRow

Update


InsertSeries PowerScript 함수

[설명]

그래프내의 명시한 위치에 series를 삽입한다. 그래프내의 존재하는 series는 순차적인 번호로 재부여된다.

[적용]

윈도우와 사용자 object내의 그래프 control. DataWindow object내의 그래프는 DataWindow로부터 데이터를 직접 가지고 오므로 이 함수에 적용되지 않는다.

[문법]

controlname.InsertSeries ( seriesname, seriesnumber )

[Argument]

controlname | series를 삽입하려는 그래프의 이름
seriesname | 삽입하려는 series의 이름 (string). series의 이름은 그래프내에서 반드시 유일 하여야 한다.
seriesnumber | 새로 삽입하려는 series의 번호. series의 끝에 새로운 series를 추가하려면, 0을 명시한다.

[Return 값]

Integer.

처리에 성공하면 series의 번호를 리턴하고 에러가 발생하면 -1을 리턴한다. 삽입하려는 series의 이름이 이미 존해할 경우에는, 기존 series의 번호를 리턴한다. argument 중에 NULL값이 있으면, InsertSeries는 NULL을 리턴한다.

[용법]

동일한 series 이름도 대문자가 서로 다르면 다른 series 이름으로 간주한다.

[동일한 문법]

series의 끝에 새로운 series를 추가할 경우에는 argument의 수가 적은 AddSeries를 사용하도록 한다. 다음 문장들은 서로 동일하다:

gr_data.InsertSeries("Costs", 0)

gr_data.AddSeries("Costs")

[예제]

* 그래프 gr_product_data내의 Income series 앞에 series를 삽입한다.

integer SeriesNbr

// series 번호를 구한다

SeriesNbr = FindSeries("Income")

gr_product_data.InsertSeries("Costs", SeriesNbr)

[참고]

AddData

AddSeries

FindCategory

FindSeries

InsertCategory

InsertData


Int PowerScript 함수

[설명]

한 수치보다 작거나 같은 가장 큰 정수를 결정한다.

[문법]

Int ( n )

[Argument]

n

작거나 같은 가장 큰 정수를 구하고자 하는 수

[Return 값]

Integer.

작거나 같은 가장 큰 정수를 리턴한다. n이 정수로 나타내기에 너무작거나 너무 클경우에, Int 함수는 0을 리턴한다. n이 NULL이면, Int 함수는 NULL을 리턴한다.

[용법]

Int의 결과가 -32768 보다 작거나 32767보다 크면, Int는 그 결과를 정수로 나타낼 수 없기 때문에 0을 리턴한다.

[예제]

* 다음 문장은 3을 리턴한다.

Int(3.2)

Int(3.8)

* 다음 문장은 -4를 리턴한다.

Int(-3.2)

Int(-3.8)

* 다음 문장은 소수 자리수를 제거하고 그 결과를 integer li_nbr에 저장한다.

integer li_nbr

li_nbr = Int(3.2) // li_nbr = 3

[참고]

Ceiling

Round

Truncate

Int (DataWindow painter function)


Integer PowerScript 함수

[설명]

문자열의 값을 정수로 변환하거나 blob에 저장된 정수 값을 구한다.

[문법]

Integer ( stringorblob )

[Argument]

stringorblob

정수로 리턴하려는 문자열의 값이난 처음 값이 정수인 blob. blob의 나머지 내용은 무시된다. stringorblob은 문자열이나 blob을 포함하고 있는 어떠한 변수도 가능하다.

[Return 값]

Integer.

처리에 성공하면 정수로써의 stringorblob값을 리턴하고 타당한 숫자가 아니거나 맞지않는 데이터 타입일 경우에는 0을 리턴한다. stringorblob이 NULL 이면, Integer 함수는 NULL을 리턴한다.

[용법]

숫자 0을 가진 문자열과 숫자아 아닌값을 가진 문자열을 구분하려면, Interger 함수를 호출하기 전에 IsNumber 함수를 사용한다.

[예제]

* 정수 24를 리턴한다.

Integer("24")

* SingleLineEdit sle_Age의 내용을 정수로 리턴한다.

Integer(sle_Age.Text)

* 다음 문자열은 0을 리턴한다.

Integer("3ABC") // 3ABC는 수치가 아니다

* 정수로 변환하기 전에 sle_data의 텍스트가 수치인지 여부를 체크한다.

integer li_new_data

IF IsNumber(sle_data.Text) THEN

li_new_data = Integer(sle_data.Text)

ELSE

SetNull(li_new_data)

END IF

* 데이터베이스로 부터 blob 데이터를 lb_blob에 할당하고, 그 blob의 20 위치에 저장된 정수 값을 구한다.

integer i

i = Integer(BlobMid(lb_blob, 20, 2))

[참고]

Double

Dec

IsNumber

Long

Real

Integer(DataWindow painter function)


IntHigh PowerScript 함수

[설명]

long 값의 high word를 리턴한다.

[문법]

IntHigh ( long )

[Argument]

long

long 값

[Return 값]

Integer.

처리에 성공하면 long 값의 high word를 리턴하고 에러가 발생하면 -1을 리턴한다. long이 NULL일 경우에, IntHigh 함수는 NULL을 리턴한다.

[용법]

IntHigh 함수는 외부 C 함수와 Windows message에 의하여 리턴되는 값을 해독하는데 사용할 수 있다.

[예제]

* long 값 LValue를 해독하여 low 와 high 정수에 넣는다.

integer nLow, nHigh

long LValue = 274489

nLow = IntLow (LValue) // Low 정수는 12345.

nHigh = IntHigh(LValue) // High 정수는 4.

[참고]

IntLow


IntLow PowerScript 함수

[설명]

long 값의 low word를 리턴한다.

[문법]

IntLow ( long )

[Argument]

long

long 값

[Return 값]

Integer.

처리에 성공하면 long 값의 low word를 리턴하고 에러가 발생하면 -1을 리턴한다. long이 NULL일 경우에, IntLow 함수는 NULL을 리턴한다.

[용법]

IntLow 함수는 외부 C 함수와 Windows message에 의하여 리턴되는 값을 해독하는데 사용할 수 있다.

[예제]

* long 값 LValue를 해독하여 low 와 high 정수에 넣는다.

integer nLow, nHigh

long LValue = 12345

nLow = IntLow (LValue) // Low 정수는 12345.

nHigh = IntHigh(LValue) // High 정수는 0.

[참고]

IntHigh


IsArabic PowerScript 함수

[설명]

특정 문자가 아라비아 문자인지 알아낸다.

Platform 정보

IsArabic 과 IsHebrew 함수는 PowerBuilder 와 Windows의 RightToLeft 버전을 사용하지 않는 한 효과가 없다.

[문법]

IsArabic ( character )

[Argument]

character

아라비아 문자인지 알아내려 하는 문자열 또는 문자. 문자열의 경우, IsArabic 함수는 첫 번째 문자만 테스트 한다.

[Return 값]

Boolean.

character가 아라비아 문자이면 TRUE를 리턴하고, 그렇지 않으면 FALSE를 리턴한다.

[용법]

PowerBuilder and Windows의 RightToLeft 버전을 실행하지 않으면, IsArabic 함수는 항상 FALSE를 리턴한다.

[예제]

* RightToLeft 소프트웨어 하에서, 다음 문장은 SingleLineEdit sle_name이 아라비아 문자로 시작하면 TRUE를 리턴한다.

IsArabic(sle_name.Text)

[참고]

IsHebrew

Reverse


IsDate PowerScript 함수

[설명]

문자열 값이 올바른 날짜인지 여부를 테스트 한다.

[문법]

IsDate ( datevalue )

[Argument]

datevalue

올바른 날짜인지 여부를 결정하기 위하여 테스트 하려는 문자열

[Return 값]

Boolean.

datevalue가 타당한 날짜이면 TRUE를 리턴하고 그렇지 않으면 FALSE를 리턴한다. datevalue가 NULL이면, IsDate 함수는 NULL을 리턴한다.

[용법]

date 데이터 타입으로 변환하기 전에 사용자가 입력한 날짜가 올바른지 여부를 테스트하기 위하여 IsDate 함수를 사용할 수 있다. 변수를 날짜 값으로 변경하려면, Date 함수를 사용한다.

[예제]

* 다음 문장을 TRUE를 리턴한다.

IsDate("Jan 1, 95")

* 다음 문장을 FALSE를 리턴한다.

IsDate("Jan 32, 1997")

* SingleLineEdit sle_Date_Of_Hire가 7/1/91을 포함하고 있다면, 다음 문장은 HireDate내에 1991-07-01을 저장한다.

Date HireDate

IF IsDate(sle_Date_Of_Hire.text) THEN

HireDate = Date(sle_Date_Of_Hire.text)

END IF


IsHebrew PowerScript 함수

[설명]

특정 문자가 히브리 문자인지 테스트 한다.

Platform 정보

IsArabic 과 IsHebrew 함수는 PowerBuilder 와 Windows의 RightToLeft 버전을 사용하지 않는한 효과가 없다.

[문법]

IsHebrew ( character )

[Argument]

Character

히브리 문자인지 알아내기 위하여 테스트 하려는 string 또는 char. string의 경우, IsHebrew 함수는 첫 번째 문자만 테스트 한다.

[Return 값]

Boolean.

character가 히브리 문자이면 TRUE를 리턴하고, 그렇지 않으면 FALSE를 리턴한다.

[용법]

PowerBuilder and Windows의 RightToLeft 버전을 실행하지 않으면, IsHebrew 함수는 항상 FALSE를 리턴한다.

[예제]

* RightToLeft 소프트웨어 하에서, 다음 문장은 SingleLineEdit sle_name이 히브리 문자로 시작하면 TRUE를 리턴한다.

IsHebrew(sle_name.Text)

[참고]

IsArabic

Reverse


IsNull PowerScript 함수

[설명]

메모리 변수 또는 표현식의 값이 NULL인지 여부를 나타낸다.

[문법]

IsNull ( any )

[Argument]

any

그 값이 NULL인지 여부를 테스트 하려는 메모리 변수 또는 표현식

[Return 값]

Boolean.

NULL이면 TRUE를 리턴하고, 그렇지 않으면 FALSE를 리턴한다.. any가 NULL일 경우, IsNull 함수는 NULL을 리턴한다.

[용법]

사용자가 입력한 값이나 데이터베이스로 부터 가지고 온 값이 NULL인지 여부를 테스트 하려면 IsNull 함수를 사용한다. IsNull 함수는 모든 데이터 타입에 사용할 수 있지만 배열과 함께 사용할 수는 없다.

DataWindow내의 하나 또는 그 이상의 칼럼이 필수입력 칼럼일 경우, 그 칼럼들이 NULL 값을 가지고 있다면 사용자는 데이터베이스를 갱신하지 말아야 할 것이다. row와 column들이 NULL값을 가지고 있는지 알아내려면, IsNull을 이용하여 각 row와 column을 평가하지 말고 FindRequired 함수를 사용하도록 한다.

[Tip]

메모리 변수를 NULL로 설정하려면, SetNull 함수를 사용한다.

[예제]

* 다음 문장은 lb_test를 TRUE로 설정한다.

integer a, b

boolean lb_test

SetNull(b)

lb_test = IsNull(a + b)

[참고]

SetNull

IsNull (DataWindw painter function)


IsNumber PowerScript 함수

[설명]

문자열의 값이 수치인지 여부를 알아낸다.

[문법]

IsNumber ( string )

[Argument]

String

올바른 PowerScript 숫자인지 테스트하려는 문자열

[Return 값]

Boolean.

string이 올바른 PowerScript 숫자이면 TRUE를 리턴하고 그렇지 않으면 FALSE를 리턴한다. string이 NULL이면, IsNumber는 NULL을 리턴한다.

[용법]

편집 control내의 텍스트를 수치로 변환할 수 있는지 체크 하려면 IsNumber를 사용한다.

문자열을 특정 수치 데이터 타입으로 변환하려면, Double, Dec, Integer, Long, 또는 Real 함수 등을 사용한다.

[예제]

* 다음 문장은 TRUE을 리턴한다.

IsNumber("32.65")

* 다음 문장은 FALSE를 리턴한다.

IsNumber("A16")

* SingleLineEdit sle_Age가 32를 포함하고 있을 경우, 다음 문장은 li_YearsOld에 32를 저장한다.

integer li_YearsOld

IF IsNumber(sle_Age.Text) THEN

li_YearsOld = Integer(sle_Age.Text)

END IF

[참고]

Double

Dec

Integer

Long

Real

IsNumber (DataWindow painter function)


IsPreview PowerScript 함수

[설명]

RichTextEdit control이 preview 모드에 있는지 여부를 나타낸다.

[적용]

RichTextEdit controls

[문법]

rtename.IsPreview ( )

[argument]

Rtename

preview 모드에 있는지 여부를 알고자 하는 RichTextEdit control의 이름

[Return 값]

Boolean.

preview 모드에 있으면 TRUE를 리턴하고 데이터 입력 모드에 있으면 FALSE를 리턴한다.

[예제]

* RichTextEdit control rte_1를 Preview 모드로 설정하고 인쇄한다.

IF NOT rte_1.IsPreview( ) THEN

rte_1.Preview(TRUE)

rte_1.Print(1, "1-4", FALSE, TRUE)

END IF

[참고]

Preview


IsSelected PowerScript 함수

[설명]

DataWindow 또는 DataStore내의 row가 선택되어 있는지 여부를 결정한다. 선택되어있는 row는 반전 비디오로 나타난다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.IsSelected ( row )

[Argument]

Dwcontrol | 테스트 하려는 row를 포함하고 있는 DataWindow control, DataStore, child DataWindow의 이름
Row | 선택되어 있는지 테스트 하려는 row (long)

[Return 값]

Boolean.

dwcontrol내의 row가 선택되어 있으면 TRUE를 리턴하고, 선택되어있지 않으면 FALSE를 리턴한다. row가 dwcontrol내의 row 수보다 크거나 0 또는 음수일 경우, IsSelected 함수는 항상 FALSE를 리턴한다. argument 값중에 NULL이 있으면, IsSelected 함수는 NULL을 리턴한다.

[용법]

사용자가 클릭한 row가 선택되어있는지 여부를 결정하기 위하여 Clicked 이벤트내의 스크립트에서 IsSelected 함수를 호출할 수 있다.

[예제]

* dw_employee내의 현재 row가 선택되어 있는지 여부를 테스트하기 위하여 IsSelected 함수를 호출한다. 그 row가 선택되어 있으면 SelectRow 함수는 선택을 해제하고, 선택되어 있지 않으면 SelectRow 함수는 그 row를 선택한다.

integer CurRow

boolean result

CurRow = dw_employee.GetRow()

result = dw_employee.IsSelected(CurRow)

IF result THEN

dw_employee.SelectRow(CurRow, FALSE)

ELSE

dw_employee.SelectRow(CurRow, TRUE)

END IF

* 다음 문장은 위의 IF/THEN/ELSE 문장과 동일한 결과를 얻기 위하여 IsSelected 함수의 리턴 값에 NOT 연산자를 사용하였다.

integer CurRow

boolean result

CurRow = dw_employee.GetRow()

dw_employee.SelectRow(CurRow, NOT dw_employee.IsSelected(CurRow))

[참고]

SelectRow

IsSelected (DataWindow painter function)


IsTime PowerScript 함수

[설명]

문자열의 값이 올바른 시간 값인지 여부를 나타낸다.

[문법]

IsTime ( timevalue )

[Argument]

timevalue

올바른 시간 값인지 여부를 결정하기 위하여 테스트 하려는 값 (string)

[Return 값]

Boolean.

timevalue가 올바른 시간 값이면 TRUE를 리턴하고, 그렇지 않으면 FALSE를 리턴한다. timevalue가 NULL이면, IsTime 함수는 NULL을 리턴한다.

[용법]

편집 control내에 사용자가 입력한 값이 올바른 시간 값인지 여부를 테스트 하려면 IsTime 함수를 사용한다. string을 time값으로 변환하려면, Time 함수를 사용한다.

[예제]

* 다음 문장은 TRUE를 리턴한다.

IsTime("8:00:00 am")

* 다음 문장은 FALSE를 리턴한다.

IsTime("25:00")

* SingleLineEdit sle_EndTime이 4:15를 포함하고 있으면, 다음 문장은 lt_QuitTime에 04:15:00을 저장한다.

Time lt_QuitTime

IF IsTime(sle_EndTime.Text) THEN

lt_QuitTime = Time(sle_EndTime.Text)

END IF

[참고]

Time

IsTime (DataWindow painter function)


IsValid PowerScript 함수

[설명]

object 메모리 변수가 instant인지 여부를 결정하고, 그럴 경우, 그 값이 올바른 object handle인지를 결정한다.

[문법]

IsValid ( objectname )

[Argument]

Objectname

object의 이름

[Return 값]

Boolean.

생성된 objectname인지 여부를 나타내는 논리값을 리턴한다. objectname이 NULL이면, IsValid 함수는 NULL을 리턴한다.

[용법]

윈도우가 오픈되어 있는지 여부를 결정하려면 Handle 함수 대신 IsValid 함수를 사용한다.

[예제]

* 윈도우 w_emp가 오픈되어 있는지 결정하고, 그렇지 않다면 윈도우를 오픈한다.

IF IsValid(w_emp) = FALSE THEN Open(w_emp)

[참고]

Handle


KeyDown PowerScript 함수

[설명]

사용자가 키보드 상의 특정 키를 눌렀는지 여부를 결정한다.

[문법]

KeyDown ( keycode )

[Argument]

Keycode

키보드 상의 키를 나타내는 KeyCode 열거형 데이터 타입의 값이나 키에 관한 ASCII 코드 값 (모든 ASCII 값들을 인식하는 것은 아님). KeyCode 값 리스트는 아래 예제를 참조한다.

[Return 값]

Boolean.

keycode를 눌렀으면 TRUE를 리턴하고, 그렇지 않으면 FALSE를 리턴한다. keycode가 NULL이면, KeyDown 함수는 NULL을 리턴한다.

[용법]

KeyDown 함수는 사용자가 어떤 문자를 눌렀는지를 나타내지는 않는다. 다만, 스크립트에서 KeyDown 함수를 호출하는 이벤트가 트리거 되었을 때 명시한 키를 눌렀는지 여부를 나타낸다.

Events 사용자가 특정 키를 눌렀는지 여부를 결정하기 위하여 윈도우의 Key 이벤트나 control의 keypress 이벤트 내에서 KeyDown를 호출 할 수 있다. Key 이벤트는 삽입 포인트가 편집 에디터내에 있지 않을동안 사용자가 키를 누를 때 마다 발생한다. Key 이벤트는 키른 누른 상태로 동일한 키를 계속 반복시키면 계속하여 이벤트가 발생(trigger) 된다. control의 경우는, pbm_keydown 이나 pbm_dwnkey (DataWindows)에 관한 사용자 이벤트를 정의하고 그 이벤트의 스크립트 안에서 KeyDown 함수를 호출할 수 있다.

또한, CTRL과 같은 편집 키를 눌렀는지 여부를 결정하기 위하여 Clicked와 같은 마우스 이벤트 내에서 KeyDown 함수를 호출할 수도 있다.

KeyCodes 와 ASCII 값 KeyDown 함수는 대소 문자 또는 shift 키와 함께 사용하는 다른 문자들을 구분하지 않는다. 예를들어, KeyA!는 "A" 또는 "a" 키를 참조한다. Key9!은 "9"과 "("을 모두 참조한다. 대신, 수정(modifier) 키를 함께 눌렀는지 여부를 테스트 할 수는 있다.

KeyDown 함수는 CAPS LOCK 또는 다른 토글 키들의 상태여부에 관계없이 그 키를 눌렀는지 여부만 알아낸다.

KeyDown 함수는 ASCII 값 65-90 (KeyA! - KeyZ!) 와 48-57 (Key0! - Key9!)만 찾는다. 이들 키 값은 SHIFT 또는 CAPS LOCK 키와 함께 눌렀는지 여부에 관계치 않는다. KeyDown 함수는 그 밖의 다른 ASCII 값 (예를들어 97-122 : 소문자)은 찾지 않는다.

다음 리스트는 키와 그 이름의 설명에의하여 KeyCode 값을 분류한 것이다.

키 타입 | KeyCode값 | 설명
Mouse 버튼 | KeyLeftButton! KeyMiddleButton! KeyRightButton! | 왼쪽 마우스 버튼 가운데 마우스 버튼 오른쪽 마우스 버튼
알파벳문자 | KeyA! - KeyZ! | A - Z, 대문자 또는 소문자
기호 | KeyQuote! KeyEqual! KeyComma! KeyDash! KeyPeriod! KeySlash! KeyBackQuote! KeyLeftBracket! KeyBackSlash! KeyRightBracket! KeySemiColon! | ' 와 " = 와 + , 와 < - 와 _ . 와 > / 와 ? ` 와 ~ [ 와 { \ 와 | ] 와 } ; 와 :
비-인쇄 문자 | KeyBack! KeyTab! KeyEnter! KeySpaceBar! | Backspace
Function 키 | KeyF1! - KeyF12! | Function 키 F1 부터 F12
Control keys | KeyShift! KeyControl! KeyAlt! KeyPause! KeyCapsLock! KeyEscape! KeyPrintScreen! KeyInsert! KeyDelete! |
Navigation 키 | KeyPageUp! KeyPageDown! KeyEnd! KeyHome! KeyLeftArrow! KeyUpArrow! KeyRightArrow! KeyDownArrow! |
숫자 및 기호 키 | Key0! Key1! Key2! Key3! Key4! Key5! Key6! Key7! Key8! Key9! | 0 과 ) 1 과 ! 2 와 @ 3 과 # 4 와 $ 5 와 % 6 과 ^ 7 과 & 8 과 * 9 와 (
Keypad 숫자 | KeyNumpad0! - KeyNumpad9! | 키패드 상의 0 - 9
Keypad 기호 | KeyMultiply! KeyAdd! KeySubtract! KeyDecimal! KeyDivide! KeyNumLock! KeyScrollLock! | 키패드 상의 * 키패드 상의 + 키패드 상의 - 키패드 상의 . 키패드 상의 /

[예제]

* 다음 예제는 F1 키 또는 CTRL 키를 눌렀는지 여부를 체크하고 해당 키를 눌렀을때의 처리를 나타낸다.

IF KeyDown(KeyF1!) THEN

. . . // F1 키에관한 처리

ELSEIF KeyDown(KeyControl!) THEN

. . . // CTRL 키에관한 처리

END IF

* 다음 문장은 TAB, ENTER, 또는 스크롤 키를 눌렀느지 여부를 체크한다.

IF (KeyDown(KeyTab!) OR KeyDown(KeyEnter!) OR &

KeyDown(KeyDownArrow!) OR KeyDown(KeyUpArrow!) OR &

KeyDown(KeyPageDown!) OR KeyDown(KeyPageUp!)) THEN

* 다음 문장은 A키 (ASCII 값 65)를 눌렀는지 여부를 체크한다.

IF KeyDown(65) THEN ...

* 다음 문장은 SHIFT 키와 A 키를 함께 눌렀는지 여부를 체크한다.

IF KeyDown(65) AND KeyDown(KeyShift!) THEN ...

* 다음 문장은 Shift 키를 함께 눌렀는지 여부를 체크하는 Clicked 이벤트 문장이다.

IF KeyDown(KeyShift!) THEN


Left PowerScript 함수

[설명]

문자열의 시작위치부터 명시한 수의 문자를 얻는다.

[문법]

Left ( string, n )

[Argument]

string | 원하는 문자들을 포함하고있는 문자열
n | 원하는 문자들의 수를 명시한 값 (long)

[Return 값]

String.

처리에 성공하면 문자열내의 제일 왼쪽 n개 문자들을 리턴하고 에러가 발생하면 빈 문자열("")을 리턴한다. argument 중에 NULL이 있으면, Left 함수는 NULL을 리턴한다.

n이 문자열의 길이 이상일 경우, Left 함수는 문자열 전체를 리턴한다. 즉, 공란을 추가하여 n과 동일한 길이로 만들지 않고 문자열 자체만 리턴한다.

[예제]

* 다음 문장은 BASE를 리턴한다

Left("BABE RUTH", 4)

* 다음 문장은 BABE RUTH를 리턴한다.

Left("BABE RUTH", 40)

* 다음 문장은 SingleLineEdit sle_address내의 텍스트에서 처음부터 40문자들을 메모리 변수 emp_address에 저장한다.

string emp_address

emp_address = Left(sle_address.Text, 40)

* 탭으로 분리된 두 값을 분해하기 위하여 Left함수를 사용하는 예는 Pos 함수 예제를 참고한다.

[참고]

Mid

Pos

Right

Left (DataWindow painter 함수)


LeftTrim PowerScript 함수

[설명]

문자열의 시작위치로부터 공란을 제거한다 (좌측공란 제거).

[문법]

LeftTrim ( string )

[Argument]

string

앞쪽 공란을 제거하기 원하는 문자열

[Return 값]

String.

처리에 성공하면 앞쪽의 공란을 제거한 문자열을 리턴하고, 에러가 발생하면 빈 문자열("")을 리턴한다. string이 NULL이면, LeftTrim 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 RUTH를 리턴한다.

LeftTrim(" RUTH")

* 다음 문장은 MultiLineEdit mle_name내의 텍슽에서 앞쪽 공란을 제거하고 메모리변수 emp_name에 저장한다.

string emp_name

emp_name = LeftTrim(mle_name.Text)

[참고]

RightTrim

Trim

LeftTrim (DataWindow painter 함수)


Len PowerScript 함수

[설명]

문자열이나 blob의 길이를 나타낸다.

[문법]

Len ( stringorblob )

[Argument]

stringorblob

길이를 알고자 하는 문자열 또는 blob

[Return 값]

Long.

처리에 성공하면 stringorblob의 길이를 long 값으로 리턴하고, 에러가 발생하면 -1을 리턴한다. stringorblob이 NULL이면, Len 함수는 NULL을 리턴한다.

[용법]

Len 함수는 문자열내의 문자수를 카운트한다. 문자열의 끝에 있는 NULL은 카운트에 포함되지 않는다.

blob를 선언할 때 크기를 명시하면, 그 크기는 Len 함수에 의하여 리턴된다. blob의 크기를 명시하지 않으면, PowerBuilder는 처음으로 그 blob에 할당한 데이터의 크기를 할당한다. 초기값으로, Len 함수는 그 blob의 길이를 0으로 리턴한다.

[예제]

* 다음 문장은 0을 리턴한다.

Len("")

* 다음 문장은 SingleLineEdit sle_address 내에있는 텍스트의 길이를 메모리변수 s_address_len에 저장한다.

long s_address_len

s_address_len = Len(sle_address.Text)

* 다음의 예는 blob의 길이를 어떻게 선언하고, Len 함수에 의하여 나타내는지 설명하는 것이다.

첫 번째 예에서, 크기가 명시되지 않은 인스턴스 변수 ib_blob를 선언하였다. ib_blob에 데이터가 할당되기 전에 Len 함수를 호출하면, Len은 0을 리턴할 것이다. 데이터가 할당된 이후에, Len은 그 blob의 새로운 길이를 리턴한다.

blob ib_blob

long ll_len

ll_len = Len(ib_blob) // ll_len을 0으로 설정한다

ib_blob = Blob( "Test String")

ll_len = Len(ib_blob) // ll_len을 11로 설정한다

두 번째 예에서, ib_blob이 선언될때 크기 100으로 초기화 되었다. ib_blob에 관하여 Len 함수를 호출하면, 항상 100을 리턴하게된다. 이 예는 blob의 크기가 이미 결정되었기 때문에 데이터를 할당하기 위하여 Blob함수 대신에 BlobEdit 함수를 사용하였다.

blob{100} ib_blob

long ll_len

ll_len = Len(ib_blob) // ll_len을 100으로 설정한다

BlobEdit(ib_blob, 1, "Test String")

ll_len = Len(ib_blob) // ll_len을 100으로 설정한다

[참고]

Len (DataWindow painter 함수)


Length PowerScript 함수

[설명]

오픈된 OLE stream의 byte 길이를 나타낸다.

Platform information

OLE 함수들은 Macintosh 와 UNIX 상에서는 효과가 없다

[적용]

oleStream objects

[문법]

olestream.Length ( sizevar )

[Argument]

Olestream | 오픈되어있는 OLE stream 변수 이름
Sizevar | Length 함수에서 olestream의 크기를 저장할 메모리 변수 (long)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 음수를 리턴한다:

-1 stream이 오픈되어있지 않다

-9 그밖의 다른 에러가 발생하였다

argument 값중에 NULL이 있으면, Length 함수는 NULL을 리턴한다.

[예제]

* 이 예제는 MYSTUFF.OLE 파일내의 OLE object를 오픈하고 oleStorage object stg_stuff에 할당한다. 다음에, stg_stuff내의 정보 info를 호출하여 stream object olestr_info에 할당한다. 마지막으로, 그 stream의 길이를 구하고 메모리변수 info_len에 저장한다.

이 예에서는 함수의 리턴값을 체크하지 않았지만, 실제 코드에서는 성공여부를 확실히 하기 위하여 반드시 체크 하여야 한다.

boolean lb_memexists

oleStorage stg_stuff

oleStream olestr_info

long info_len

stg_stuff = CREATE oleStorage

stg_stuff.Open("c:\ole2\mystuff.ole")

olestr_info.Open(stg_stuff, "info", stgRead!, stgExclusive!)

olestr_info.Length(info_len)

[참고]

Open

Read

Seek

Write


LibraryCreate PowerScript 함수

[설명]

비어있는 PowerBuilder 라이브러리를 생성한다

[문법]

LibraryCreate ( libraryname {, comments } )

[Argument]

libraryname | 생성하려는 PowerBuilder 라이브러리의 이름 (string). 현재 디렉토리가 아닌 다른 장소에 라이브러리를 생성하려면, 경로명을 지정한다.
comments | (선택사항) 라이브러리와 연관된 주석 (string)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 중에 NULL이 있으면, LibraryCreate 함수는 NULL을 리턴한다.

[용법]

LibraryCreate 함수는 libraryname에 경로명을 지정하지 않는 한, 현재 디렉토리에 PowerBuilder 라이브러리 파일 (PBL)을 생성한다. 확장자를 명시하지 않으면, LibraryCreate 함수는 확장자로 .PBL을 추가한다.

[예제]

* 다음 문장은 Windows 3.1 또는 Windows NT에서 C 드라이브의 pb 디렉토리에 주석을 포함하여 dwTemp라는 라이브러리를 생성한다.

LibraryCreate("c:\pb\dwTemp.pbl", "Temporary library for dynamic DataWindows")

* 다음 문장은 Macintosh 드라이브상의 PowerBuilder 폴더에 동일한 라이브러리를 생성한다.

LibraryCreate("HardDisk:PowerBuilder:dwTemp.pbl",&

"Temporary library for dynamic DataWindows")

On Macintosh

Macintosh 드라이브상의 PowerBuilder 폴더에 라이브러리를 생성한다.

LibraryCreate("HardDisk:PowerBuilder:dwTemp.pbl ", &

"Temporary library for dynamic DataWindows")

On UNIX

UNIX 시스템상의 pb 폴더에 라이브러리를 생성한다.

LibraryCreate("/export/home/pb/dwtemp.pbl", &

"Temporary library for dynamic DataWindows")

[참고]

LibraryDelete

LibraryDirectory

LibraryExport

LibraryImport


LibraryDelete PowerScript 함수

[설명]

라이브러리 파일을 삭제하거나, DataWindow object를 명시하였을 경우에 라이브러리로 부터 명시한 DataWindow object를 삭제한다.

[문법]

LibraryDelete ( libraryname {, objectname, objecttype } )

[Argument]

Libraryname | 삭제할 PowerBuilder 라이브러리 또는 그 라이브러리로부터 DataWindow object를 삭제하고자 하는 라이브러리 이름. 경로를 명시하지 않으면, LibraryDelete는 파일을 찾기위하여 오퍼레이팅 시스템의 파일 탐색 순서를 이용한다.
Objectname | (선택사항) libraryname으로부터 삭제하고자 하는 DataWindow object의 이름 (string).
Objecttype | (선택사항) 삭제하려는 object의 타입을 나타내는 LibImportType 열거형 데이터 타입. object 타입은 ImportDataWindow!만 지원한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, LibraryDelete는 NULL을 리턴한다.

[용법]

LibraryDelete 함수를 사용하여 스크립트 내에서 라이브러리로부터 DataWindow object를 삭제할 수 있다. 다른 타입의 object를 삭제하려면, Library painter를 사용한다.

[예제]

* 다음 문장은 현재 디렉토리내의 dwTemp 라이브러리를 삭제한다.

LibraryDelete("dwTemp.pbl")

* 다음 문장은 라이브러리 dwTemp로부터 DataWindow object d_emp를 삭제한다. libraryname argument의 값은 Windows95 또는 Windows NT 환경에 맞는 것이다.

LibraryDelete("c:\pb\dwTemp.pbl", "d_emp", ImportDataWindow!)

On Macintosh

Macintosh 상에서는, 다음과 같은 형식이 될 것이다.

LibraryDelete("HD:PB Libraries:dwTemp.pbl", "d_emp", ImportDataWindow!)

On UNIX

UNIX 상에서는, 다음과 같은 형식이 될 것이다.

LibraryDelete("/export/home/pb/dwtemp.pbl", "d_emp", ImportDataWindow!)

[참고]

LibraryCreate

LibraryDirectory

LibraryExport

LibraryImport


LibraryDirectory PowerScript 함수

[설명]

PowerBuilder library내의 object 리스트를 구한다. 제공되는 정보는 object의 이름, 갱신된 날짜와 시간, 주석 등이다. 사용자는 모든 object의 리스트나 명시한 타입의 object 리스트를 얻을 수 있다.

[문법]

LibraryDirectory ( libraryname, objecttype )

[Argument]

Libraryname | 내용을 알고자 하는 PowerBuilder 라이브러리의 이름 (string). 경로를 명시하지 않으면, LibraryDirectory는 파일을 찾기위하여 오퍼레이팅 시스템의 파일 탐색 순서를 이용한다.
Objecttype | 내용을 알고자 하는 object 타입을 나타내는 LibDirType 열거형 데이터 값. ▶DirAll! : 모든 object ▶DirApplication! : 응용프로그램 (application) object ▶DirDataWindow! : DataWindow object ▶DirFunction! : Function object ▶DirMenu! : Menu object ▶DirPipeline! : Pipeline object ▶DirProject! : Project object ▶DirQuery! : Query object ▶DirStructure! : Structure object ▶DirUserObject! : User object ▶DirWindow! : Window object

[Return 값]

String.

LibraryDirectory 함수는 한 줄에 탭으로 분리된 하나의 object를 가진 리스트로 리턴한다. 리스트의 형식은 다음과 같다:

이름 ~t 갱신날짜/시간 ~t 주석 ~n

에러가 발생하면 빈 문자열 ("")을 리턴한다. argument 값 중에 NULL이 있으면 LibraryDirectory는 NULL을 리턴한다.

[용법]

LibraryDirectory의 결과를 ImportString 함수에 되돌림으로써 DataWindow에 나타낼 수 있다. 그 DataWindow는 세 개의 문자열 칼럼을 포함하며, 입력된 문자열을 포함할 수 있는 충분한 폭을 가지고 있어야 한다. 충분치 못할 경우에는, validation 에러가 발생하게 된다.

* 탭으로 분리된 두 값을 분해하는 예는 Pos 함수 예제를 참고한다.

[참고]

LibraryCreate

LibraryDelete

LibraryExport

LibraryImport


LibraryExport PowerScript 함수

[설명]

라이브러리로부터 object를 Export 한다. object는 syntax로써 export 된다.

[문법]

LibraryExport ( libraryname, objectname, objecttype )

[Argument]

Libraryname | object를 export 하려는 PowerBuilder 라이브러리 이름 (string). 경로명을 명시하지 않으면, LibraryExport 함수는 파일을 찾기위하여 오퍼레이팅 시스템의 파일 탐색 순서를 이용한다.
Objectname | export 하려는 object의 이름 (string).
Objecttype | export 하려는 object의 타입을 나타내는 LibExportType의 열거형 데이터: ·ExportApplication! Application object ·ExportDataWindow! DataWindow object ·ExportFunction! Function object ·ExportMenu! Menu object ·ExportPipeline! Pipeline object ·ExportProject! Project object ·ExportQuery! Query object ·ExportStructure! Structure object ·ExportUserObject! User object ·ExportWindow! Window object

[Return 값]

String.

처리에 성공하면 object의 syntax를 리턴한다. syntax는 Library painter에서 header를 포함하여 export할 때를 제외하고는 object를 export할 때와 동일하게 리턴된다. 에러가 발생하면 빈 문자열("")을 리턴하고, argument중에 NULL값이 있으면 NULL을 리턴한다.

[예제]

* 다음 문장은 dwTemp 라이브러리로부터 DataWindow object dw_emp를 export하여 문자열 ls_dwsyn에 저장한 후, DataWindow를 생성하기위하여 사용한다. libraryname argument는 Windows 95 또는 Windows NT에 적합한 것으로, Macintosh의 경우는 적절한 경로로 바꾸어야 한다.

String ls_dwsyn, ls_errors

ls_dwsyn = LibraryExport("c:\pb\dwTemp.pbl", "d_emp", ExportDataWindow!)

dw_1.Create(ls_dwsyn, ls_errors)

On Macintosh

Macintosh 상에서는 , 다음과 같은 형식으로 경로를 지정하여야 한다.

ls_dwsyn=LibraryExport("HD:PB Libraries:dwTemp.pbl", &

"d_emp", ExportDataWindow!)

On UNIX

UNIX 상에서는 , 다음과 같은 형식으로 경로를 지정하여야 한다.

ls_dwsyn=LibraryExport("/export/home/pb/dwtemp.pbl", &

"d_emp", ExportDataWindow!)

[참고]

LibraryCreate

LibraryDelete

LibraryDirectory

LibraryImport


LibraryImport PowerScript 함수

[설명]

라이브러리로부터 DataWindow를 import 한다. LibraryImport는 라이브러리내의 object를 재 생성하기 위하여 DataWindow object의 syntax를 사용한다.

[문법]

LibraryImport ( libraryname, objectname, objecttype, syntax, errors {, comments } )

[Argument]

Libraryname | import 하려는 PowerBuilder 라이브러리의 이름 (string). 경로를 명시하지 않으면, LibraryImport 함수는 파일을 찾기위하여 오퍼레이팅 시스템의 파일 탐색 순서를 이용한다.
Objectname | import 하려는 DataWindow object의 이름 (string).
Objecttype | import 하려는 object의 타입을 나타내는 LibImportType 열거형 데이터. 지원되는 object 타입은 ImportDataWindow! 뿐이다.
Syntax | import 하려는 DataWindow object의 문법 (string).
Errors | 에러가 발생하였을 때 에러 메시지를 저장할 메모리 변수 (string).
Comments | (선택사항) 그와 관련된 주석 (string).

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 중에 NULL이 있으면, LibraryImport 함수는 NULL을 리턴한다.

[용법]

DataWindow를 import 할 때, 발생한 모든 에러는 errors argument로 명시한 string 메모리변수에 저장된다.

응용프로그램이 실행되는 동안 DataWindow를 동적으로 생성할 때, 라이브러리 내의 DataWindow를 저장하기 위하여 LibraryImport를 사용할 수 있다.

[예제]

* 다음 문장은 DataWindow object d_emp를 dwTemp라는 라이브러리에 import 하고 모든 에러는 메모리변수 ErrorBuffer에 저장한다. Describe 함수를 이용하여 syntax를 얻는 것에 주목할 것.

string dwsyntax, ErrorBuffer

integer rtncode

dwsyntax = dw_1.Describe("DataWindow.Syntax")

rtncode = LibraryImport("c:\pb\dwTemp.pbl", &

"d_emp", ImportDataWindow!, &

dwsyntax, ErrorBuffer )

* 다음문장은 DataWindow object d_emp를 dwTemp라는 라이브러리에 import 하고 모든 에러는 메모리변수 ErrorBuffer에 저장하고, 주석으로 "Employee DataWindow 1"을 연결하였다.

string dwsyntax, ErrorBuffer

integer rtncode

dwsyntax = dw_1.Describe("DataWindow.Syntax")

rtncode = LibraryImport("c:\pb\dwTemp.pbl", &

"d_emp", ImportDataWindow!, &

dwsyntax, ErrorBuffer, &

"Employee DataWindow 1")

On Macintosh

Macintosh 상에서는 , 다음과 같은 형식으로 경로를 지정하여야 한다.

rtncode=LibraryImport("HD:PB Libraries:dwTemp.pbl", &

"d_emp", ImportDataWindow!, &

dwsyntax, ErrorBuffer, &

"Employee DataWindow 1")

On UNIX

UNIX 상에서는 , 다음과 같은 형식으로 경로를 지정하여야 한다.

rtncode=LibraryImport("/export/home/pb/dwtemp.pbl", &

"d_emp", ImportDataWindow!, &

dwsyntax, ErrorBuffer, &

"Employee DataWindow 1")

[참고]

LibraryCreate

LibraryDelete

LibraryDirectory

LibraryExport


LineCount PowerScript 함수

[설명]

여러줄을 허용하는 편집 control의 라인 수를 결정한다.

[적용]

RichTextEdit, MultiLineEdit, EditMask, DataWindow controls

[문법]

editname.LineCount ( )

[Argument]

editname

라인의 수를 알고자하는 DataWindow control, EditMask, MultiLineEdit, 또는 RichTextEdit 이름

[Return 값]

Integer.

처리에 성공하면 editname의 라인 수를 리턴하고 에러가 발생하면 -1을 리턴한다. editname이 NULL이면, LineCount는 NULL을 리턴한다.

[용법]

LineCount 함수는 wrapping 이나 carriage return에 의한 줄바꿈에 관계없이 각각의 보이는 라인을 카운트 한다. DataWindow에 관하여 LineCount를 호출하면, 현재 row 와 column 위에있는 편집 control의 라인 수를 나타낸다. DataWindow column이 텍스트 데이터 타입이고 그 크기가 여러줄을 나타내기에 충분할 경우에만 여러 줄을 입력할 수 있다. 칼럼의 박스 사이지는 그 칼럼내에 들어갈 라인 수를 결정한다. 사용자가 타이핑을 하면, 자동으로 줄바꿈이 되지 않으므로, 줄바꿈을 하려면 반드시 ENTER 키를 눌러야 한다.

MultiLineEdit control에서는, HScrollBar 또는 AutoHScroll property가 TRUE로 설정되어있지 않는 한 한줄이 모두 채워지면 자동으로 줄바꿈이 일어난다. 만일 위의 속성들이 TRUE로 설정되어 있으면, 다음 줄로 넘어가기 위하여 반드시 ENTER 키를 눌러야 한다.

RichTextEdit control은 control내에 텍스트가 입력되어있지 않아도 항상 파일의 끝 (end-of-file) 표시를 포함하고 있다. 따라서, 이 control의 라인 카운트는 항상 최소한 1이 된다. 다른 편집 control의 경우, 라인 카운트는 0가 된다.

[예제]

* MultiLineEdit mle_Instructions가 9 줄을 가지고 있다고 가정하면, 다음 문장은 li_Count를 9로 설정한다.

integer li_Count

li_Count = mle_Instructions.LineCount( )

* 다음 문장은 MultiLineEdit mle_Address에 입력된 내용이 2라인 보다 적을 때, MessageBox를 나타낸다.

integer li_Lines

li_Lines = mle_Address.LineCount( )

IF li_Lines < 2 THEN

MessageBox("Warning", "2 lines are required.")


LineLength PowerScript 함수

[설명]

편집 control내에서 삽입 포인트를 포함하고있는 줄의 길이를 나타낸다.

[적용]

RichTextEdit, MultiLineEdit, EditMask controls

[문법]

editname.LineLength ( )

[Argument]

editname.

삽입 포인트를 포함하고있는 줄의 길이를 알고자하는 RichTextEdit, MultiLineEdit, EditMask의 이름

[Return 값]

Integer.

editname내에 삽입포인트를 포함하고있는 줄의 길이를 리턴하고, 에러가 발생하면 -1을 리턴한다. editname이 NULL이면, LineLength 함수는 NULL을 리턴한다

[용법]

control이 삽입 포인트만 가지고있지않고 선택영역을 포함하고 있으면, LineLength 함수는 선택영역의 시작 위치부터 카운트한다.

PowerBuilder는 삽입 포인트가 각 편집 control의 어느 위치에 있는지 기억한다. 사용자가 focus를 다른 control로 옮길 때, LineLength 함수를 이용하여 가장 최근에 편집한 라인의 길이를 알아낼 수 있다.

편집 control내의 삽입 포인트

PowerBuilder가 삽입 포인트의 위치를 기억하기 때문에, 탭(tab)을 이용하여 control들을 활성화 시키면 삽입 포인트가 있는 위치에서 편집을 다시 시작할 수 있다. 마우스 클릭에 의하여 control을 활성화 시키면, 삽입 포인트는 그 위치로 이동한다.

EditMask control의 경우, LineLength 함수는 입력된 문자의 수에 관계없이 mask의 길이를 나타낸다.

[예제]

* 삽입포인트가 mle_Contact의 5 라인에 위치하고있고, 5 라인의 텍스트가 모두 선택되어 있다면, il_linelength는 10으로 설정된다 (5 라인의 길이).

integer li_linelength

li_linelength = mle_Contact.LineLength( )

[참고]

Position

SelectedLine

SelectedStart

TextLine


LinkTo PowerScript 함수

[설명]

OLE 2.0 control과 파일 또는 그 파일내의 아이템 사이에 링크를 설치한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에는 영향이 없다.

[문법]

ole2control.LinkTo ( filename {, sourceitem } )

[Argument]

ole2control | 링크된 object를 삽입하려는 OLE 2.0 control의 이름.
Filename | PowerBuilder내의 object를 원래 데이터에 링크하여, ole2control에 삽입하려는 데이터를 포함하고있는 파일명. Sourceitem을 명시하지 않으면, 파일 전체에 링크가 설치된다.
sourceitem | (선택사항) 링크하려는 filename내의 아이템 이름. 을 명시하는 방법은 OLE server 응용프로그램에 의하여 결정된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 음수 중 하나를 리턴한다.

-1 파일을 찾을 수 없다

-2 아이템을 찾을 수 없다

-9 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, LinkTo 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 OLE 2.0 control ole_1내에 object를 생성한다. object는 파일 C:\XLS\EXPENSE.XLS에 링크된 것이다.

integer result

result = ole_1.LinkTo("c:\xls\expense.xls")

* 다음 문장은 위의 예제에서 사용한 스프레드시트내의 row 와 column들의 한 영역과 링크한다.

integer result

result = ole_1.LinkTo("c:\xls\expense.xls", & "R1C1:R5C5")

[참고]

InsertFile

InsertObject

PasteLink

PasteSpecial


Listen PowerScript 함수

[설명]

client 연결에관한 listening을 시작하기 위하여 server 응용프로그램을 알린다. client 응용프로그램은 server에서 Listen 함수가 실행되기 전까지 server 응용프로그램에 연결할 수 없다.

[적용]

Transport objects

[문법]

transport.Listen ( )

[Argument]

Transport

연결에관한 client 요청을 처리하기위하는데 사용하고자하는 transport object의 이름. transport object는 server 응용프로그램이 client 요청을 어떻게 취급할것인가을 명시하는 property를 가지고 있다.

[Return 값]

Long.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값 중 하나를 리턴한다:

50 Distributed service 에러

52 Distributed 통신 에러

55 비정상적인 request 종료

56 request와 맞지않는 반응

-999 Listen 함수가 Local 드라이버를 지원하지않는 이유로 인한 request 실패

[용법]

Listen 함수를 호출하기 전에, transport object의 property에 값을 할당할 필요가 있다. 설정한 property는 사용중인 통신 드라이버에 따라 다양하다.

[예제]

* 다음 예제에서, server 응용프로그램은 client 연결에 관한 listening을 시작하기 위하여 transport object mytransport를 사용하였다.

transport mytransport

mytransport = create transport

mytransport.driver = "WinSock"

mytransport.application = "dpbserv"

mytransport.Listen( )

[참고]

StopListening


Log PowerScript 함수

[설명]

어떤 수의 자연대수를 알아낸다.

[문법]

Log ( n )

[Argument]

n

자연 대수(밑수 e)를 구하려는 수. n은 반드시 0보다 커야한다.

[Return 값]

Double.

n의 자연 대수를 리턴한다. n이 0 또는 음수이면 실행 에러가 발생한다. n이 NULL이면, Log 함수는 NULL을 리턴한다.

Log 함수의 역(inverse)

Log 함수의 역(inverse)은 Exp 함수 이다.

[예제]

* 다음 문장은 2.302585092를 리턴한다.

Log(10)

* 다음 문장은 -.693147 . . .을 리턴한다.

Log(0.5)

* 다음 문장은 모두 실행시 에러가 발생한다.

Log(0)

Log(-2)

* 다음문장을 실행하면 a의 값은 200이 된다.

double a, b = Log(200)

a = Exp(b) // a = 200

[참고]

Exp

LogTen

Log (DataWindow painter 함수)


LogTen PowerScript 함수

[설명]

어떤 수의 상용대수 (밑수 10) 값을 구한다.

[문법]

LogTen ( n )

[Argument]

n

상용 대수 (밑수 10)의 값을 구하려는 수. n은 반드시 음수가 아니어야 한다.

[Return 값]

Double.

n의 상용대수 (밑수 10) 값을 리턴한다. n이 음수이면 실행 에러가 발생한다. 이 NULL이면, LogTen은 NULL을 리턴한다.

LogTen 함수의 역(inverse)

LogTen(n)의 역(inverse)은 10^n이다. 다음 등식에서 r은 n과 동일한 값이된다.

r = LogTen(n) (단, n = 10^r)

[예제]

* 다음 문장은 1을 리턴한다.

LogTen(10)

* 다음 문장은 모두 0을 리턴한다.

LogTen(1)

LogTen(0)

* 다음 문장은 실행 에러가 발생한다.

LogTen(-2)

* 다음 문장을 실행하면, a의 값은 200이 된다.

double a, b = LogTen(200)

a = 10^b // a = 200

[참고]

Exp

Log

LogTen (DataWindow painter 함수)


Long PowerScript 함수: syntax 1

[설명]

2개의 unsigned 정수(integer)를 long 값으로 변환한다.

[문법]

Long ( lowword, highword )

[Argument]

lowword | long의 low word가될 UnsignedInteger
highword | long의 high word가될 UnsignedInteger

[Return 값]

Long.

처리에 성공하면 해당 long 값을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Long 함수는 NULL을 리턴한다.

[용법]

외부 C 함수에 값을 통과 시키거나 PowerBuilder Message object의 LongParm property에 관한 값을 명시할 때 Long 함수를 사용한다.

[예제]

* 다음 예제는 the UnsignedInteger nLow 와 nHigh를 long 값으로 변환한다.

UnsignedInt nLow //Low integer 16 bits

UnsignedInt nHigh //High integer 16 bits

long LValue //Long value 32 bits

nLow = 12345

nHigh = 0

LValue = Long(nLow, nHigh)

MessageBox("Long Value", Lvalue)

[참고]

Long: Syntax 2

Long PowerScript 함수: syntax 2

[설명]

숫자로된 문자열(string)을 long으로 변환하거나 blob에 저장되어있는 long 값을 구한다.

[문법]

Long ( stringorblob )

[Argument]

stringorblob

long으로 변환하려는 문자열 또는 첫 번째 값이 long 값인 blob. blob의 나머지 내용은 무시된다. 또한 stringorblob은 string이나 blob을 포함하고있는 어떠한 변수 일수도 있다.

[Return 값]

Long.

처리에 성공하면 long 값으로 stringorblob의 값을 리턴하고 stringorblob이 PowerScript 수치로 타당하지 않거나 데이터 타입이 호환되지 않을 경우 0을 리턴한다. stringorblob이 NULL이면, Long 함수는 NULL을 리턴한다.

[용법]

문자열의 값이 숫자 0 인것과 숫자가 아닌 것을 구분하려면, Long 함수를 호출하기 전에 IsNumber 함수를 호출한다.

[예제]

* 다음 문장은 long으로 2167899876을 리턴한다.

Long("2167899876")

* 데이터베이스로부터 blob 데이터를 lb_blob에 할당한 후, long 값을 blob의 20 위치에 저장한다.

long lb_num

lb_num = Long(BlobMid(lb_blob, 20, 4))

* blob으로부터 추출된 값을 할당하는 예는, Real 함수를 참조한다.

[참고]

Dec

Double

Integer

Real

Long: Syntax 1

Long (DataWindow painter 함수)


Lower PowerScript 함수

[설명]

문자열내의 모든 문자를 소문자로 변환한다.

[문법]

Lower ( string )

[Argument]

string

소문자로 변환하려는 문자열

[Return 값]

String.

처리에 성공하면 문자열의 대문자를 소문자로 변환하여 리턴하고 에러가 발생하면 빈 문자열("")을 리턴한다. string이 NULL이면, Lower 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 babe ruth를 리턴한다.

Lower("Babe Ruth")

[참고]

Upper

Lower (DataWindow painter 함수)


LowerBound PowerScript 함수

[설명]

배열 차원의 하한 값을 구한다.

[문법]

LowerBound ( array {, n } )

[Argument]

array | 차원의 하한값을 구하려는 배열 이름
n | (선택사항) 하한값을 구하려는 차원 수. 기본설정값은 1이다.

[Return 값]

Long.

array n 차원의 하한 값을 리턴하고 n이 배열의 차원 수보다 클 경우는 -1을 리턴한다. argument 값 중에 NULL이 있으면, LowerBound 함수는 NULL을 리턴한다.

[용법]

가변-크기 배열의 경우, 배열에 값이 할당될 때 메모리에 할당된다. 값을 할당하기 전까지, 하한 값은 1이고 상한 값은 0이다.

[예제]

* 다음 문장은 메모리에 할당되기 전/후의 고정-크기 배열과 가변-크기 배열의 LowerBound 값을 나타낸 것이다.

integer a[5], b[2,5]

LowerBound(a) // Returns 1

LowerBound(a, 1) // Returns 1

LowerBound(a, 2) // Returns -1, a는 1 차원만 가지고있다

LowerBound(b, 2) // Returns 1

integer c[ ]

LowerBound(c) // Returns 1

c[50] = 900

LowerBound(c) // Returns 1

integer d[-10 to 50]

LowerBound(d) // Returns -10

[참고]

UpperBound


Match PowerScript 함수

[설명]

문자들의 특별한 패턴을 포함하고있는 문자열인지 여부를 알아낸다.

[문법]

Match ( string, textpattern )

[Argument]

string | 문자들의 패턴을 찾으려는 문자열
textpattern | 텍스트의 패턴 (string)

[Return 값]

Boolean.

string이 textpattern과 일치하면 TRUE를 리턴하고 그렇지않으면 FALSE를 리턴한다. Match 함수는 argument에 값이 할당되지 않았거나 패턴이 올바르지 않을 경우에도 FALSE를 리턴한다. argument 값중에 NULL이 있으면, Match 함수는 NULL을 리턴한다.

[용법]

문자열이 문자들의 일반적인 패턴을 포함하고 있는지 여부를 평가하는데 Match 함수를 사용할 수 있다. 문자열이 특정 부분문자열을 포함하고 있는지 여부를 찾을 경우는, Pos 함수를 사용한다.

textpattern은 규칙적인 표현과 유사하다. 그것은 특별한 의미를 가지는 메타문자(metacharacter)와 일반적인 문자를 포함하고 있다. 사용자는 세트에서 하나이상의 문자로 문자열의 시작과 끝을 명시하거나, 세트내의 문자를 제외한 어떠한 문자들을 포함하는지 나타낼 수도 있다.

텍스트 패턴은 특별한 의미를 가지는 메타문자(metacharacter)와 그들 자신을 나타내는 비-메타문자로 구성된다.

다음은 메타문자(metacharacter)들의 의미와 용도를 설명한 것이다:

Metacharacter | Meaning | Example
Caret (^) | 문자열의 시작과 매치된다 | ^C : 문자열이 C로 시작하는 것과 매치된다
Dollar sign ($) | 문자열의 끝과 매치된다 | s$ : 문자열의 끝이 s인것과 매치된다
Period (.) | 어떤 문자와도 매치된다 | ... : 연속되는 3개문자와 매치된다
Backslash (\) | 다음 문자의 메타문자 특성을 제거하고 문자 그 자체와 매치된다. | \$ : $ 문자와 매치된다
Character class 대괄호([])로 둘러 싸여진 문자들의 그룹 | 괄호 안의 어떤 문자와도 매치된다 | [AEIOU] : A,E,I,O,U와 매치된다 범위을 단축하기위하여 하이픈(-)을 사용할 수 있다. [A-Za-z] : 모든 알파벳문자와 매치된다
Complemented character class (괄호 안의 첫 번째 문자가 ^) | 괄호 안의 문자를 제외한 모든 문자와 매치된다 | [^0-9] : 수치를 제외한 모든 문자와 매치 [^A-Za-z] : 알파벳을 제외한 모든 문자와 매치된다

매타문자 애스터리스크(*), 플러스기호(+), 물음표(?) 등은 규칙적인 표현식의 반복을 명시하는데 사용하는 단항 연산자이다.

Metacharacter | Meaning | Example
* (asterisk) | 0 또는 그 이상의 반복 | A* : 0 또는 하나이상의 A와 매치된다 (예: A, AA, AAA, ... )
+ (plus) | 하나 이상의 반복 | A+ : A, AA, AAA, ...
? | 0 또는 1회 반복 | A? : 빈 문자열 ("") 또는 A와 매치된다

다음은 다양한 텍스트 패턴과 각 패턴과 매치되는 텍스트 예를 나타낸 것이다:

pattern | Matches
AB | AB를 포함한 모든 문자열과 매치된다 (예: ABA DEKBAB, jukeAB_123 등)
B* | B를 포함하지 않거나 1회 이상 포함하고 있는 문자열과 매치 (예: AC, B, BB, BBB, ABBBC, ... )
AB*C | AC를 포함하고, 그사이에 B가 없거나 1회 이상 반복되는 문자열과 매치 (예: AC, ABC, ABBC, ...)
AB+C | AC를 포함하고, 그사이에 B가 1회 이상 반복되는 문자열과 매치 (예: ABC, ABBC, ABBBC, ...)
ABB*C | AC를 포함하고, 그사이에 B가 1회 이상 반복되는 문자열과 매치 (예: ABC, ABBC, ABBBC, ...)
^AB | AB로 시작하는 문자열
AB?C | AC 또는 그 사이에 B가 0 또는 1회 반복되는 문자열과 매치 (예: AC 또는 ABC)
^[ABC] | A, B, 또는 C로 시작하는 모든 문자열과 매치
[^ABC] | A, B, 또는 C로 시작하지 않는 모든 문자열과 매치
^[^abc] | a, b 또는 c로 시작하는 것을 제외한 모든 문자열
^[^a-z]$ | 알파벳 소문자로 시작하지 않는 단일-문자의 문자열과 매치 (^ 와 $는 문자열의 시작과 끝을 나타낸다) (예: S, U, 4, #, .... )
[A-Z]+ | 하나 이상의 알파벳 대문자로 시작하는 모든 문자열과 매치
^[0-9]+$ | 숫자로만 구성된 모든 문자열
^[0-9][0-9][0-9]$ | 3개의 숫자로 구성된 모든 문자열
^([0-9][0-9][0-9])$ | 괄호 안에 3개의 숫자로만 구성된 모든 문자열

[예제]

* 다음 문장은 sle_ID안의 텍스트가 하나이상의 알파벳으로 시작하면 TRUE를 리턴한다 ( ^은 문자열의 시작부분이 반드시 일치하여야 한다는 의미이다).

Match(sle_ID.Text, "^[A-Za-z]")

* 다음 문장은 sle_ID안의 텍스트가 숫자로 시작하면 FALSE를 리턴한다 (대괄호안의 ^은 보수 연산자이다).

Match(sle_ID.Text, "[^0-9]")

* 다음 문장은 sle_ID안의 텍스트가 대문자를 하나 포함하고있으면 TRUE를 리턴한다.

Match(sle_ID.Text, "[A-Z]")

* 다음 문장은 sle_ID안의 텍스트가 대문자를 대문자를 포함하고 있으면 TRUE를 리턴한다 (+ 는 하나 이상의 패턴을 나타낸다)

Match(sle_ID.Text, "[A-Z]+")

* 다음 문장은 sle_ID안의 텍스트가 두 개의 숫자와 그 다음이 알파벳이 아니면 FALSE를 리턴한다 (^ 와 $는 문자열의 시작과 끝을 나타낸다).

Match(sle_ID.Text, "^[0-9][0-9][A-Za-z]$")

[참고]

Pos

Match (DataWindow painter 함수)


Max PowerScript 함수

[참고]

두 수중에 큰 값을 결정한다.

[문법]

Max ( x, y )

[Argument]

x | y와 비교하려는 수
y | x와 비교하려는 수

[Return 값]

x 또는 y 데이터 타입의 값.

argument 값 중에 NULL이 있으면, Max 함수는 NULL을 리턴한다.

[용법]

비교하는 값 중에 NULL이 있으면, Max 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 7을 리턴한다.

Max(4,7)

* 다음 문장은 -4를 리턴한다.

Max(-4,-7)

* 다음 문장은 8.2를 리턴한다.

Max(8.2, 4)

[참고]

Min

Max (DataWindow painter 함수)


MessageBox PowerScript 함수

[설명]

사용자가 명시한 타이틀, 텍스트, 아이콘, 버튼들을 가진 시스템 MessageBox를 나타낸다.

[문법]

MessageBox ( title, text {, icon {, button {, default } } )

[Argument]

title | 메시지 박스의 타이틀 바에 나타낼 타이틀을 명시한 문자열
text | 메시지 박스에 나타낼 텍스트. 텍스트는 수치 데이터 타입, 문자열, 또는 논리 값 등이다.
icon | (선택사항) 메시지 박스의 좌측에 나타내고자 하는 아이콘을 지시하는 Icon 열거형 데이터 타입의 값: ·Information! (기본설정 값) ·StopSign! ·Exclamation! ·Question! ·None!
button | (선택사항) 메시지 박스 하단에 나타내고자 하는 CommandButton의 세트를 지시하는 Button 열거형 데이터 타입의 값. 버튼들은 열거형 데이터 타입 내에 나열된 순서로 번호가 부여된다. ·OK! (기본설정 값) OK 버튼 ·OKCancel! OK 와 Cancel 버튼 ·YesNo! Yes 와 No 버튼 ·YesNoCancel! Yes, No, 와 Cancel 버튼 ·RetryCancel! Retry 와 Cancel 버튼 ·AbortRetryIgnore! Abort, Retry, 와 Ignore 버튼
Default | (선택사항) 기본선택 버튼으로 지정하고자 하는 버튼의 번호. 기본설정 값은 1이다. 표시된 버튼의 수보다 더 큰 값을 명시하면, MessageBox 함수는 기본설정 값을 사용한다.

[Return 값]

Integer.

처리에 성공하면 선택한 버튼의 번호 (1,2, 또는 3)를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, MessageBox 함수는 NULL을 리턴한다.

[용법]

타이틀이나 텍스트의 값이 NULL이면, 메시지 박스에 나타내지 않는다.

MessageBox가 하나의 버튼을 가지고 있을 때 다른 방법을 명시하지 않는 한, 버튼을 클릭하거나 ENTER 키를 누르면 스크립트 실행을 계속한다. 여러 개의 버튼을 가지고있을 경우는, 응용프로그램의 행동을 선택하기 위하여 리턴 값을 체크하는 문장을 스크립트내에 포함할 필요가 있다.

사용중인 응용프로그램을 계속 진행하려면, 반드시 MessageBox에 응답하여야만 한다. 그러나, MessageBox에 응답하지 않고 다른 응용프로그램으로 이동하는 것은 가능하다.

PowerBuilder 와 Windows의 RightToLeft 버전을 실행 중이면서 메시지와 버튼의 텍스트를 아라비아어나 히브리어로 나타내고자 할 때에는, 해당 응용프로그램의 RightToLeft property를 TRUE로 설정한다. 메시지의 문자들은 오른쪽에서 왼쪽으로 나타나고 버튼 텍스트는 올바른 언어로 될 것이다.

MessageBox 함수가 작동되지 않을 때

control은 어떤 동작을 수행하기 위하여 마우스를 capture 한다. 즉, CommandButton은 마우스를 클릭하는 동한 capture 하고, Edit control은 텍스트 선택영역을 capture하고, scrollbar는 스크롤되는 동안 capture 한다. 만일 마우스가 capture되는 동안 MessageBox 함수를 이끌어내면 예상치 못한 결과가 발생할 수 있다.

MessageBox 함수는 focus를 붙잡고있기 때문에, LoseFocus 이벤트와 같이 focus가 변경중일 때에는 사용하지 말아야 한다. 대신, 윈도우의 타이틀이나 MultiLineEdit에는 메시지를 나타낼 수 있다.

또한, PrintOpen 함수 이후에 MessageBox 함수를 호출하였을 때, 혼란을 야기하는 원인이 된다.

더 자세한 내용은, PrintOpen 함수를 참조한다.

[예제]

* 다음 문장은 타이틀 Greeting, 텍스트 Hello User, 기본설정 아이콘 (Information!), 기본설정 버튼 (OK 버튼)을 가진 메시지 박스를 나타낸다.

MessageBox("Greeting", "Hello User")

* 다음 문장은 Result 타이틀과 Abs함수의 결과값, Exclamation 아이콘과 OK 와 Cancel 버튼 (Cancel 버튼이 기본선택 값)을 가진 메시지 박스를 나타낸다.

integer Net

long Distance = 3.457

Net = MessageBox("Result", Abs(Distance), Exclamation!, OKCancel!, 2)

IF Net = 1 THEN

... // OK 처리

ELSE

... // CANCEL 처리

END IF


Mid PowerScript 함수

[설명]

문자열의 명시한 위치부터 명시한 수의 문자들을 구한다.

[문법]

Mid ( string, start {, length } )

[Argument]

string | 문자들을 발췌하고자하는 문자열
start | 발췌할 문자의 첫 번째 위치 (long). (문자열의 첫 번째 문자는 1이다)
length | (선택사항) 발췌할 문자들의 수 (long). length를 명시하지 않거나 start 오른쪽 문자들의 수가 length보다 클 경우, Mid 함수는 문자열내에 남아있는 문자들을 리턴한다.

[Return 값]

String.

문자열의 start문자부터 시작하여 length만큼의 문자들을 리턴한다. start가 문자열의 문자 수보다 클 경우, Mid 함수는 빈 문자열 ("")을 리턴한다. length가 start이후의 남아있는 문자 수보다 클 경우, Mid 함수는 남아있는 문자들을 모두 리턴한다. 명시한 길이를 만들기 위하여 공란을 추가하지 않는다. argument 값 중에 NULL이 있으면, Mid 함수는 NULL을 리턴한다.

[용법]

문자열에서 일부문자의 정확한 위치를 찾으려면, Pos 함수를 사용한다. Pos 함수의 리턴값을 Mid 함수의 start argument로 사용하면 된다.

문자열의 시작 또는 끝 위치에서부터 명시한 수의 문자들을 정확히 가지고 오려면, Left 또는 Right 함수를 사용한다.

[예제]

* 다음 문장은 RUTH를 리턴한다.

Mid("BABE RUTH", 5, 5)

* 다음 문장은 빈 문자열 ("")을 리턴한다.

Mid("BABE RUTH", 40, 5)

* 다음 문장은 BE RUTH를 리턴한다.

Mid("BABE RUTH", 3)

* 다음 문장은 ls_address_extra의 40번째 문자부터 끝까지를 SingleLineEdit sle_address에 저장한다.

string address_extra

ls_address_extra = Mid(sle_address.Text, 40)

* 다음의 str_to_int_array라는 사용자-정의 함수는, 문자열을 정수의 배열로 변환한다. 배열내의 각 정수는 두 개의 문자를 포함하게 될 것이다 (하나의 문자는 상위 바이트 (ASCII 값 * 256)이고 두 번째 문자는 하위 바이트이다). 함수 argument는 값에 의하여 통과되는 문자열과 str과 , 참조에 의하여 통과되는 정수 배열 iarr[ ] 이다. 배열의 길이는 함수가 호출되기 전에 초기화 된다. 정수 배열이 문자열보다 클 경우, 스크립트에서 공란을 저장한다. 문자열이 더 길 경우, 남는 문자들은 무시한다.

함수를 호출하는 방법은 다음과 같다:

int rtn

iarr[20]=0 // 필요할 경우, 배열을 초기화한다

rtn = str_to_int_array("This is a test.", iarr)

str_to_int_array 함수는 다음과 같다:

long stringlen, arraylen, i

string char1, char2

// 문자열과 배열의 길이를 구한다

arraylen = UpperBound(iarr)

stringlen = Len(str)

// 배열을 Loop 한다

FOR i = 1 to arraylen

IF (i*2 <= stringlen) THEN

// str로 부터 두 문자를 구한다

char1 = Mid(str, i*2, 1)

char2 = Mid(str, i*2 - 1, 1)

ELSEIF (i*2 - 1 <= stringlen) THEN

// 마지막 문자를 구한다

char1 = " "

char2 = Mid(str, i*2 - 1, 1)

ELSE

// str에서 문자를 찾을 수 없으면 공란으로 채운다

char1 = " "

char2 = " "

END IF

iarr[i] = Asc(char1) * 256 + Asc(char2)

NEXT

RETURN 1

[참고]

Asc

Left

Pos

Right

UpperBound

Mid (DataWindow painter 함수)


Min PowerScript 함수

[설명]

두 숫자 중에서 더 작은 값을 결정한다.

[문법]

Min ( x, y )

[Argument]

x | y와 비교하고자 하는 수
y | x와 비교하고자 하는 수

[Return 값]

x 또는 y의 데이터타입. argument 중에 NULL값이 있으면, Min 함수는 NULL을 리턴한다.

[용법]

비교하는 값 중에 NUL이 있으면 , Min 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 4를 리턴한다.

Min(4,7)

* 다음 문장은 -7을 리턴한다.

Min(-4,-7)

* 다음 문장은 3.0을 리턴한다.

Min(9.2,3.0)

[참고]

Max

Min (DataWindow painter 함수)


Minute PowerScript 함수

[설명]

시간 값의 분 위치에서 분을 구한다.

[문법]

Minute ( time )

[Argument]

time

분을 구하려는 시간 값.

[Return 값]

Integer.

time에서 분 위치를 리턴한다 (00 에서 59). time이 NULL이면, Minute는 NULL을 리턴한다.

[예제]

* 다음 문장은 1을 리턴한다.

Minute(19:01:31)

[참고]

Hour

Second

Minute (DataWindow painter 함수)


Mod PowerScript 함수

[설명]

나눗셈의 나머지를 구한다.

[문법]

Mod ( x, y )

[Argument]

x | y에 의하여 나누어질 수
y | x를 나눌 수

[Return 값]

x 또는 y의 데이터타입. argument 중에 NULL값이 있으면, Min 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 2를 리턴한다

Mod(20, 6)

* 다음 문장은 1.5를 리턴한다.

Mod(25.5, 4)

* 다음 문장은 2.5를 리턴한다.

Mod(25, 4.5)

[참고]

Mod (DataWindow painter 함수)


ModifiedCount PowerScript 함수

[설명]

DataWindow 또는 DataStore에서 수정은 되었지만 아직 갱신되지 않은 row의 수를 나타낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ModifiedCount ( )

[Argument]

dwcontrol

수정은 되었지만 아직 데이터베이스 테이블에 갱신되지 않은 row의 수를 알고자 하는 DataWindow control, DataStore, 또는 child DataWindow의 이름.

[Return 값]

Long.

primary 내에 수정되어있는 row의 수를 리턴한다. 수정된 row가 없거나 데이터베이스 테이블을 갱신 하였다면 0을 리턴한다. 에러가 발생하면 -1을 리턴하고, dwcontrol이 NULL이면 NULL을 리턴한다.

[용법]

ModifiedCount 함수는 DataWindow 나 DataStore와 연관된 데이터베이스 테이블에 추가되거나 갱신할 예정인 row의 수를 나타낸다. 여기에는 primary 와 filter 버퍼에 있는 row들이 포함된다.

새로 삽입된 row는 (상태 flag가 New!) 그 row에 데이터가 입력될 때 (상태 flag가 NewModified!로 변경된다) 까지 수정된 카운트에 포함되지 않는다.

DeletedCount 함수는 deleted 버퍼내의 row 수를 카운트 한다. RowCount 함수는 primary 버터내의 모든 row들을 카운트 한다.

[예제]

* dw_Employee내의 5개 row가 수정되었지만 연관된 데이터베이스 테이블을 갱신하지 않았거나 primary 버퍼의 필터 조건에서 제외되었다면, 다음 문장은 ll_Rows에 0을 설정한다.

long ll_Rows

ll_Rows = dw_Employee.ModifiedCount( )

* dw_Employee의 어떤 row들이 수정되었지만 아직 관련 테이블을 갱신하지 않았을 경우, 다음 문장은 dw_employee DataWindow control과 연관된 데이터베이스 테이블을 갱신한다.

IF dw_employee.ModifiedCount( ) > 0 THEN dw_employee.Update()

[참고]

DeleteRow

DeletedCount

FilteredCount

Retrieve

RowCount

Update


Modify PowerScrip 함수

[설명]

명시한 내용으로 DataWindow object 정의를 변경시킴으로써, DataWindow object를 수정한다. 사용자는 property를 변경함으로써 DataWindow에 관한 출현, 모양, 데이터베이스 정보 등을 변경할 수 있다. 사용자는 DataWindow object에 관한 내역을 제공함으로써 object들을 추가 및 제거 할 수 있다.

DataWindow object property에 관한 설명부분은 도움말을 참조하도록 한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Modify ( modstring )

[Argument]

dwcontrol | 수정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
modstring | 수정내용을 명시한 값 (string).

[Return 값]

String.

처리에 성공하면 빈 문자열("")을 리턴하고 에러가 발생하면 에러 메시지를 리턴한다. 에러 메시지는 "Line n Column n incorrect syntax"의 형식을 취한다. 칼럼은 modstring의 컴파일된 텍스트부터 시작하여 카운트 된다. argument 값중에 NULL이 있으면, Modify 함수는 NULL을 리턴한다.

[용법]

Modify 함수는 DataWindow painter에서와 같이 스크립트 내에서 많은 동일한 설정을 할 수 있도록 해준다. Modify의 전형적인 사용예는 다음과 같다:

☞색상, 텍스트의 설정상태 및 다른 object의 설정상태를 변경한다

☞하나이상의 테이블을 갱신하기 위하여 DataWindow내 서로다른 테이블의 갱신 상태를 변경한다

☞DataWindow object SQL SELECT 문장의 WHERE 절을 수정한다

☞원하는 데이터를 명시할 수 있도록 Query 모드 또는 Prompt For Criteria로 돌아간다

☞Retrieve Only As Needed의 상태를 변경한다

☞DataWindow object의 데이터 소스를 변경한다

☞Print Preview 디스플레이를 제어한다

☞DataWindow object내에 line 또는 bitmap등과 같은 object를 삭제/추가한다

이들에 대한 각각의 예는 [예제]를 참조한다.

DataWindow object를 수정하기 위하여 modstring내에 3가지 유형의 문장을 사용할 수 있다.

Statement type | Use to
CREATE object(settings) | DataWindow object에 텍스트, 계산된 필드, 비트맵 등의 object를 추가한다. object를 생성하려면, 그것을 정의하는데 필요한 충분한 정보를 반드시 제공하여야 한다. OLE object는 생성할 수 없으며, DataWindow에 OLE object를 추가할 수도 없다
DESTROY [COLUMN] object | DataWindow object에서 object를 제거한다. object가 칼럼 이름이면, 칼럼과 버퍼로부터 그 칼럼의 데이터를 모두 제거하기 위하여 COLUMN 키워드를 명시한다
objectname.property=value | property의 값을 value로 변경한다. property는 objectname에관한 위치, 색상, 크기, 폰트 및 다른 설정상태 등을 제어한다. objectname이 DAtaWindow일 때, 데이터베이스 접근에 관한 property도 설정할 수 있다. DataWindow내의 object 리스트를 가지고있는 DataWindow Reference는 각 object의 property와 값을 가지고 있다. property의 명시는 다음과 같은 방법을 취한다: ·상수 ·따옴표로 둘러싸인 상수 ·표현식

Object 이름

DataWindow painter는 칼럼과 칼럼 레이블에 자동으로 이름을 부여한다. 사용자가 DataWindow object에 추가한 다른 object들은 이름을 부여하지 않는한 숫자로 구성된 문자열로 암호화된 이름이 부여된다. (Describe 함수는 그 암호화된 이름을 나타내주지만, painter 내에서 그것을 볼 수는 없다.) onject의 속성을 쉽게 기술하고 수정하려면, object에 이름을 부여하도록 한다.

Modify 함수의 표현

DataWindow property에 관한 표현을 명시할 때, 그 표현식은 형식을 가지고 있어야 한다:

defaultvalue~tDataWindowpainterexpression

defaultvalue는 property에 관한 적절한 데이터 타입으로 변환될 수 있는 값으며, 그 뒤에 탭(~t)이 뒤따른다. DataWindowpainterexpression은 어떠한 DataWindow painter 함수도 사용할 수 있는 표현식이다. 또한, 표현식은 반드시 그 property에 관한 적절한 데이터 타입을 평가할 수 있어야 한다. 사용자가 칼럼의 property를 설정하면, 그 표현식은 DataWindow내의 각 row에 관하여 평가하고, 그 데이터에 기초하여 다양하게 나타낼 수 있도록 해준다. 전형적인 표현식은 If 함수를 사용하는 것이다.

'16777215 ~t If(emp_status=~~'A~~',255,16777215)'

modstring내에 표현식을 사용하려면, 다음과 같이 명시한다 (한줄로 입력한다).

modstring = "emp_id.Color='16777215 ~t If(emp_status=~~'A~~',255,16777215)'"

모든 property가 표현식을 받아들이는 것은 아니다. 각 property에 관한 자세한 내용은 DataWindow Object Properties를 참조한다.

Quotes 와 tildes

Modify 함수의 argument는 다른 문자열을 포함할 수 있는 문자열이므로, 사용자는 따옴표를 명시하기 위하여 특별한 문법을 사용할 필요가 있다. 문자열내에 따옴표를 명시하려면, 다른 타입의 따옴표를 명시하거나 (홑따옴표 안에 따옴표를 중첩시키거나) 따옴표 앞에 tilde (~)를 사용한다. 다은 레벨의 중첩일 경우, 문자 그 자신은 ~"로 명시하여야 하므로, 반드시 ~~ 뒤에 ~"를 명시하여야 한다. 예를들어, 위의 예를 다른 방법으로 표현하면 다음과 같이된다:

modstring = "emp_id.Color=~"16777215 ~t If(emp_status=~~~"A~~~",255,16777215)~""

quotes 와 tildes에 관한 더 자세한 정보는 "quotation marks"를 참조한다.

변수를 가진 modstring

modstring내에서 메모리변수를 사용하기위하여, 프로그램 내에서 사용중인 메모리 변수를 포함할 수 있다. modstring의 한 부분을 연결 시킴으로써, 필요한 곳에 따옴표가 포함된 문자열을 포함시킬 수 있다. 예를들어, 아래에있는 코드는 modstring을 위의 경우와 유사하게 구축한 것이지만, If 함수 안에있는 기본설정 색상 값과 두 개의 색상 값은 스크립트내에서 계산된다.

red_amount = Integer(sle_1.Text)

modstring = "emp_id.Color='" + &

String(RGB(red_amount, 255, 255)) + "~tIf(emp_status=~~'A~~'," + &

String(RGB(255, 0, 0)) + "," + String(RGB(red_amount, 255, 255)) + ")'"

다음의 유사한 예는 If 함수를 사용하지 않은 것이다. 표현식을 명시하지 않으면 값 주의에 따옴표를 사용할 필요가 없다.

modstring = "emp_id.Color=" + String(RGB(red_amount, 255, 255))

modstring을 공란으로 분리하여 각 property를 설정함으로써 Modify 함수를 한 번 호출하여 여러개의 property를 설정할 수 있다. 예를들어, 다음 문장은 한 줄로 작성한 것이다.

rtn = dw_1.Modify("emp_id.Font.Italic=0 oval_1.Background.Mode=0

oval_1.Background.Color=255")

그러나, 하나의 property를 설정하기 위하여 각각 Modify 함수를 한 번씩 호출하는 것이 문장을 이해하고 디버깅하기에 더 쉽다.

Debugging tip

modstring을 구축하고 그것을 Modify 함수의 argument 변수에 저장한다면, Debug 모드 내에서 그 변수의 값을 찾을 수 있다. Modify 함수의 에러 메시지가 칼럼 번호를 나타낼 때, 컴파일된 modstring을 찾음으로써 문자들을 카운트 할 수 있다.

WHERE 절의 수정

효과적인 측면으로 보면, WHERE 절을 수정하기 위하여 SetSQLSelect 대신 Modify 함수를 사용하는 것이 더 좋다. Modify 함수는 syntax를 검증하지 않고 DataWindow object의 상태를 갱신하지 않기 때문에 더 빠르게 수행된다. 그러나, Modify 함수는 에러를 처리하기가 더 까다롭다. SetSQLSelect는 syntax를 두 번 수정 (syntax가 수정되었을 때와 retrieve를 실행할 때) 하고 DataWindow object의 상태를 갱신한다.

PowerBuilder는 DataWindow 수정을 위하여 이미 많은 함수들을 포함하고 있다. Modify 함수를 사용하기 전에, 변경할 수 있는 함수의 존재 여부를 체크 하도록 하자.

사용자는 전형적인 dot notation을 사용하여 object를 포함하고있는 DataWindow control의 property를 설정할 수 있다. 예를들어, control의 경계선을 설정하려면 다음과 같이 명시한다:

dw_1.Border = TRUE

[예제]

다음 예제들은 [용법]에 나열된 전형적인 사용 예를 설명한 것이다.

색상의 변경

Color property 설정의 효과는 수정중인 object에 의존한다. DataWindow object 전체의 배경색을 설정하려면, 다음의 문법을 따른다.

dwcontrolname.Modify("DataWindow.Color='long'")

칼럼 또는 텍스트 object의 색상을 설정하려면, 유사한 문법을 사용한다.

dwcontrolname.Modify("objectname.Color='long'")

칼럼 또는 다른 object의 배경색을 설정하려면, mode 와 색상을 설정하기 위하여 다음의 문법을 따른다.

dwcontrolname.Modify( "objectname.Background.Mode='<0 - Opaque, 1 - Transparent>'")

dwcontrolname.Modify("objectname.Background.Color='long'")

위 문법들의 실제 사용예는 다음과 같다.

DataWindow dw_cust의 배경 색상을 붉은 색으로 변경한다.

dw_cust.Modify("DataWindow.Color = 255")

DataWindow dw_cust의 salary 칼럼내의 값이 90000을 초과하면 적색으로 그렇지 않으면 녹색으로 설정하여 텍스트를 나타낸다.

dw_cust.Modify("salary.Color='0~tIf(salary>90000,255,65280)'")

다음은 세가지 색상을 제공하기 위하여 하나의 If 함수를 포함시킨 것이다. DataWindow dw_cust의 부서 ID가 200이면 녹색, 100이면 적색, 아니면 흑색으로 나타낸다.

dw_cust.Modify("dept_id.Color='0~t " &

+ "If(dept_id=200,65380,If(dept_id=100,255,0))'")

다음은 slaary 값에 따라 salary 칼럼의 배경색을 설정하기 위하여 If 함수를 포함시킨 복합적인 표현식을 사용한 예이다. 연결되는 문자열의 각 위치는 각 라인으로 분리하였다. 또한, 설정된 색상이 보이도록 배격색상 모드를 투명으로 하였고, Modify 함수의 에러 메시지를 나타내도록 에러 체크기능을 포함하였다.

string mod_string, err

long color1, color2, color3, default_color

err = dw_emp.Modify("salary.Background.Mode=0")

IF err <> "" THEN

MessageBox("Status", &

"Change to Background Mode Failed " + err)

RETURN

END IF

/* mod_string에 관한 Pseudocode :

salary가 10000 미만이면, 배경을 적색으로 설정한다.

salary가 10000 이상이고 20000 미만이면, 배경을 청색으로 설정한다.

salary가 20000 이상이고 30000 미만이면, 배경을 녹색으로 한다.

그 밖의 경우는 배경을 흰색으로 한다.

*/

color1 = 255 //적색

color2 = 16711680 //청색

color3 = 65280 //녹색

default_color = 16777215 //흰색

mod_string = &

"salary.Background.Color = '" &

+ String(default_color) &

+ "~tIf(salary < 10000," &

+ String(color1) &

+ ",If(salary < 20000," &

+ String(color2) &

+ ",If(salary < 30000," &

+ String(color3) &

+ "," &

+ String(default_color) &

+ ")))'"

err = dw_emp.Modify(mod_string)

IF err <> "" THEN

MessageBox("Status", &

"Change to Background Color Failed " + err)

RETURN

END IF

다음 예는 RadioButton 칼럼의 값이 "Y"일 경우 텍스트 색상을 적색으로 설정하고, 그 밖의 경우는 흑색으로 설정한다. 위의 경우와 같이 연결되는 문자열은 줄(line)로 분리하였다.

integer color1, default_color

string mod_string, err

color1 = 255 //적색

default_color = 0 //흑색

mod_string = "yes_or_no.Color ='" &

+ String(default_color) &

+ "~tif(yes_or_no=~~'Y~~'," &

+ String(color1) &

+ "," &

+ String(default_color) &

+ ")'"

err = dw_emp.Modify(mod_string)

IF err <> "" THEN

MessageBox("Status", &

"Modify to Text Color " &

+ "of yes_or_no Failed " + err)

RETURN

END IF

/*-----------------------------------------------*/

표시되는 텍스트의 변경

텍스트 object의 텍스트를 변경하려면 다음과 같은 문법을 사용한다.

dwcontrolname.Modify("textobjectname.Text='string'")

다음 문장은 DataWindow dw_cust내의 텍스트 object Dept_t 텍스트를 Dept로 변경한다.

dw_cust.Modify("Dept_t.Text='Dept'")

다음 장은 DataWindow dw_cust내의 dept_t의 텍스트를 부서 ID가 201 보다 크면 Marketing으로, 그렇지 않으면 Finance로 설정한다.

dw_cust.Modify("dept_t.Text='none~t " &

+ "If(dept_id > 201,~'Marketing~',~'Finance~')'")

하나이상의 테이블 갱신

Modify 함수의 중요한 사용목적 중 하나는 하나의 DataWindow object에서 하나 이상의 테이블 갱신이 가능하도록 만드는 것이다. 다음 스크립트는 DataWindow painter에서 updatable로 명시된 테이블을 갱신한 후, Modify 함수를 사용하여 join된 다른 테이블을 갱신 가능하게 만들고 키(key) 칼럼과 갱신할 칼럼들을 명시하는 것이다. 이러한 기법은 하나이상의 테이블을 갱신하기 위하여 여러개의 DataWindow object를 생성 하거나 embedded SQL 문장의 사용 필요성을 제거해 준다.

예에서, DataWindow object는 두 개의 테이블 department 및 employee와 join되어있다: 우선, f상태 flag가 재설정되 않도록 하면서 department를 갱신한다. 다음에 employee를 갱신 가능하도록 하고 갱신한다. 모든 작업이 성공하면, Update 명령은 flag를 재설정하고 COMMIT 명령은 변경된 내용을 허락한다. 스크립트에서 재사용이 가능하도록 하려면, 반드시 department를 갱신가능한 테이블로 다시 만들어 놓아야 한다.

integer rc

string err

/* DataWindow의 SELECT 문장은 :

SELECT department.dept_id, department.dept_name,

employee.emp_id, employee.emp_fname,

employee.emp_lname FROM department, employee ;

*/

// department를 갱신한다

rc = dw_1.Update(TRUE, FALSE)

IF rc = 1 THEN

// department 칼럼들의 갱신 속성을 변경한다

dw_1.Modify("department_dept_name.Update = No")

dw_1.Modify("department_dept_id.Update = No")

dw_1.Modify("department_dept_id.Key = No")

// employee를 갱신 가능하도록 만든다

dw_1.Modify( &

"DataWindow.Table.UpdateTable = ~"employee~"")

//필요한 employee 칼럼들을 갱신가능하도록 한다

dw_1.Modify("employee_emp_id.Update = Yes")

dw_1.Modify("employee_emp_fname.Update = Yes")

dw_1.Modify("employee_emp_lname.Update = Yes")

dw_1.Modify("employee_emp_id.Key = Yes")

// employee 테이블을 갱신한다

rc = dw_1.Update()

IF rc = 1 THEN

COMMIT USING SQLCA;

ELSE

ROLLBACK USING SQLCA;

MessageBox("Status", &

"Update of employee table failed. " &

+ "Rolling back all changes.")

END IF

ELSE

ROLLBACK USING SQLCA;

MessageBox("Status", &

"Update of department table failed. " &

+ "Rolling back changes to department.")

END IF

WHERE 절의 추가

다음 스크립트는 WHERE 절을 포함하지 않은 SELECT 문장을 가지고 생성된 DataWindow object에 WHERE 절을 동적으로 추가하는 것이다. (이 예는 원래의 SELECT 문장에 WHERE 절을 추가함으로, 원래 SELECT 문장이 WHERE 절을 가지고 있으면 그 WHERE 절을 제거하는 코드가 추가로 필요하다) 이 기법은 WHERE 절 내의 argument가 실행 시에 변경될 수도 있을 경우에 매우 유용하다.

원래 SELECT 문장은 다음과 같을 것이다:

SELECT employee.emp_id, employee.l_name

FROM employee

아마, 응용프로그램은 사용자의 선택에 기초하여 WHERE 절을 구축할 것이다. 예를들면;

WHERE emp_id > 40000

윈도우의 Open 이벤트 스크립트에서 원래 SELECT 문장은 instance 변수 original_select에 저장한다.

dw_emp.SetTransObject(SQLCA)

original_select = dw_emp.Describe("DataWindow.Table.Select")

CommandButton의 Clicked 이벤트 스크립트에서 instance 변수 where_clause에 저장된 WHERE 절을 original_select에 연결하고 DataWindow의 Table.Select property에 할당한다.

string rc, mod_string

mod_string = "DataWindow.Table.Select='" &

+ original_select + where_clause + "'"

rc = dw_emp.Modify(mod_string)

IF rc = "" THEN

dw_emp.Retrieve( )

ELSE

MessageBox("Status", "Modify Failed" + rc)

END IF

DataWindow painter내에 삽입된 따옴표

Sybase SQL Anywhere 와 ORACLE의 경우, DataWindow painter는 테이블과 칼럼이름 주의를 따옴표로 둘러싼다 (예, SELECT "EMPLOYEE"."EMP_LNAME"). 사용자가 따옴표를 제거하지 않는 한, 예제 WHERE은 반드시 이들 따옴표를 사용하여야 한다. 예를들면:

where_clause = " where ~~~"EMPLOYEE~~~".~~~"SALARY~~~" > 40000"

주의: 사용자가 명시하는 값들은 겹 따옴표를 사용하지 않는다.

Query mode 와 prompt for criteria

Query 모드는 데이터를 선택하는 조건을 사용자가 명시하도록 하는 DataWindow의 또다른 형식이다. PowerBuilder는 명시한 내용에 기초하여 WHERE 절을 구축한다. 사용자가 query 모드를 빠져나갈 때, 변경된 SELECT 문장에 기초하여 데이터를 retrieve 할 수 있다.

다음 예에서, DataWindow control을 나타내는 윈도우는 Select Data라는 메뉴를 가지고 있다. 사용자가 그것을 선택하면, 스크립트는 query 모드에서 DataWindow control을 나타내고 메뉴 아이템을 체크한다. 사용자가 그 메뉴를 다시 선택하면, 스크립트는 query 모드를 종료하고 사용자가 query 모드에서 명시한 새로운 WHERE 절에 기초하여 데이터를 retrieve 한다. 또한 Sort라는 레이블을 가진 CheckBox를 윈도우에 나타나게하고, query 정렬 모드를 on 또는 off 한다.

Select Data 메뉴 아이템에관한 스크립트는 다음과 같다:

string rtn

IF m_selectdata.Checked = FALSE THEN

// 사용자가 데이터를 명시할 수 있도록 query 모드를 설정한다

rtn = dw_1.Modify("DataWindow.QueryMode=YES")

IF rtn = "" THEN

// Modify 함수처리에 성공하면, check 메뉴를 보여주고

// quiery 모드를 시작하고 정렬 CheckBox를 나타낸다

This.Check()

ParentWindow.cbx_sort.Show()

ELSE

MessageBox("Error", &

"Can't access query mode to select data.")

END IF

ELSE

// query 모드를 종료하고 사용자 선택에 기초하여 데이터를 retrieve 한다

rtn = dw_1.Modify("DataWindow.QueryMode=NO")

IF rtn = "" THEN

// Modify 함수 처리에 성공하면 uncheck 메뉴를 보여주고

// query 모드를 종료하고, 정렬 CheckBox를 숨기고,

// 데이터를 retrieve 한다

This.UnCheck()

ParentWindow.cbx_sort.Hide()

dw_1.Retrieve()

ELSE

MessageBox("Error", &

"Failure exiting query mode.")

END IF

END IF

Sort data CheckBox의 Clicked 이벤트의 스크립트는 간단하다.

IF This.Checked = TRUE THEN

dw_1.Modify("DataWindow.QuerySort=YES")

ELSE

dw_1.Modify("DataWindow.QuerySort=NO")

END IF

"Prompt for criteria"는 사용자가 가져올 데이터 기준을 명시하는 또다른 방법이다. 사용자는 column-by-column 단위로 설정한다. 스크립트에서 데이터를 retrieve 할 때, PowerBuilder는 Specify Retrieval Criteria 윈도우를 나타내어, 설정된 모든 칼럼에 관한 기준을 명시할 수 있는 기회를 제공한다.

데이터를 retrieve 하기전에 실행되는 스크립트에서, 예를들면 DataWindow control을 나타내는 윈도우의 Open 이벤트에서, 다음 문장은 Retrieve 함수가 호출될 때 Specify Retrieval Criteria 대화상자를 나타내고 emp_name, emp_salary, dept_id 칼럼들의 설정을 가능하게 한다.

dw_1.Modify("emp_name.Criteria.Dialog=YES")

dw_1.Modify("emp_salary.Criteria.Dialog=YES")

dw_1.Modify("dept_id.Criteria.Dialog=YES")

query 모드 prompt for criteria 양쪽 모두에 영향을 주는 다른 Criteria property가 있다. 이들에 관한 자세한 내용은, Criteria DataWindow object property를 참조한다.

Retrieve as needed

다음 예에서, DataWindow object는 Retrieve Only As Needed가 선택된 상태로 설정되어있다. 이 옵션이 선택되어있을 때, PowerBuilder는 DataWindow를 채울 수 있는 row수 만큼 retrieve 한 후, 매우 빠르게 표시된다, 사용자가 다른 row를 나타내도록 시도할때까지 기다린다. 빠르게 나타나기를 원하지만 서버에 open 되어있는 cursor를 떠나지 않기 바란다면, Modify 함수를 사용하여 Retrieve Only As Needed를 off 시킬 수 있다.

row가 충분히 retrieve되었다고 결정한 이후에, RetrieveRow 이벤트내의 다음코드는 Retrieve.AsNeeded property를 변경하고, 나머지 row를 강제로 retirieve 한다.

dw_1.Modify("DataWindow.Retrieve.AsNeeded=NO")

데이터 source의 변경

다음 예제는 DataWindow object의 source를 SQL SELECT 문장에서 저장된 procedure로 변경한다. 이러한 기법은 result set을 변경하지 않을 경우에는 작업 가능하다 (칼럼의 수, 타입, 순서등이 양쪽 source 모두 같아야 한다).

DataWindow object를 정의할 때, 사용가능한 DataWindow retrieval argument를 모두 미리 정의하여야 한다. 예제에서, SELECT 문장은 타입이 각각 string, number, date인 3개의 argument를 가지고, painter내에 정의되어있다. stored procedure는 string 타입의 2두개의 argument만을 가지고 있다. 따라서, painter 내에서, 2개의 string 타입, 1개의 number 타입, 1개의 date 타입 argument를 정의할 필요가 있다 (주의: 정의한 argument를 모두 사용할 필요는 없다)

string rc, mod_string, name_str = "Watson"

integer dept_num = 100

// DataWindow의 SELECT 문장을 제거한다

Dw_1.Modify("DataWindow.Table.Select = ''")

// Procedure property를 사용자의 procedure로 설정한다

mod_string = "DataWindow.Table.Procedure = &

'1 execute dbo.emp_arg2;1 @dept_id_arg &

= :num_arg1, @lname_arg = :str_arg1'"

rc = dw_1.Modify(mod_string)

// 변경이 받아들여지면, 데이터를 retrieve 한다

IF rc = "" THEN

dw_1.Retrieve(dept_num, name_str)

ELSE

MessageBox("Status", &

"Change to DW Source Failed " + rc)

END IF

DataWindow object내의 object 삭제와 추가

다음 문장은 DataWindow dw_cust로부터 logo라는 bitmap object를 삭제한다.

dw_cust.Modify("destroy logo")

다음 문장은 DataWindow dw_cust에서 salary 칼럼을 삭제한다. 주의: 예제에 column 키워드가 포함되어 있으므로, DataWindow내의 칼럼과 데이터가 모두 삭제 된다.

dw_cust.Modify("destroy column salary")

다음 예제는 rect1 사각형을 DataWindow dw_cust의 header 영역에 추가한다. (modstring은 한줄로 입력한 것이다)

string modstring

modstring = 'create rectangle(Band=background X="206" Y="6" height="69" width="1363" brush.hatch="6" brush.color="12632256" pen.style="0" pen.width="14" pen.color="268435584" background.mode="2" background.color="-1879048064" name=rect1 )'

dw_cust.Modify(modstring)

다음 문장은 DataWindow dw_cust의 grouping level 1 header 영역에 logo라는 bitmap을 추가한다. (modstring은 한줄로 입력한 것이다)

string modstring

modstring = 'create bitmap(band=footer x="37" y="12" height="101" width="1509" filename="C:\PB\BEACH.BMP"

border="0" name=bmp1 )'

dw_cust.Modify(modstring)

object 생성 문법

object를 생성하려면 반드시 DataWindow syntax를 제공하여야 한다. 필요한 모든 property에 관한 syntax를 구하는 가장 쉬운 방법은 DataWindow painter내에서 object를 구성하고 그 syntax를 파일로 export하는 것이다. 다음에, 어떠한 원하는 부분을 변경하고 위에서처럼 스크립트에 syntax를 집어넣는 것이다. 이것은 실제로 graph와 같이 복잡한 object에 관한 정확한 syntax를 구할 수 있는 유일한 방법이다.

[참고]

Describe

Reset

SetBorderStyle

SetDataStyle

SetFilter

SetFormat

SetPosition

SetRowFocusIndicator

SetSeriesStyle

SetSQLPreview

SetSQLSelect

SetTabOrder

SetValidate

SyntaxFromSql


ModifyData PowerScript 함수: syntax 1

[설명]

그래프의 series내에있는 데이터 포인트의 값을 변경한다. 특정위치나 category에 의하여 수정할 데이터 포인터를 명시한다.

[적용]

윈도우와 사용자 object내의 graph control. DataWindow object내의 그래프는 DataWindow로부터 데이터를 직접 가지고 오므로 적용되지 않는다.

[문법]

controlname.ModifyData ( seriesnumber, datapoint, datavalue {, categoryvalue } )

[Argument]

controlname | 데이터를 수정하려는 그래프 이름
seriesnumber | 데이터를 수정하려는 series 번호
datapoint | 데이터를 수정하려는 데이터 포인트의 번호
datavalue | 데이터 포인트의 새로운 값. datavalue의 데이터 타입은 그래프의 value 축과 동일하다.
Categoryvalue | (선택사항) datavalue의 category categoryvalue의 데이터 타입은 그래프의 category축과동일하다.

[용법]

categoryvalue를 명시할 때, ModifyData 함수는 명시한 위치의 category 값을 변경한다. 명시한 category 이름이 다른 위치에 이미 존재하면, 그 위치의 데이터가 대신 수정되고 datapoint내의 그 위치는 무시된다 (InsertData와 동일한 현상이다).

위치를 0으로 명시하면, ModifyData 함수는 항상 InsertData 함수와 동일하게 동작된다.

*** AddData, InsertData, ModifyData 함수의 비교는, InsertData 함수를 참조한다.

[예제]

* 다음 문장은 그래프 gr_product_data에서 Costs series의 Apr에 관한 데이터를 변경한다.

gr_product_data.

integer SeriesNbr, CategoryNbr

// series 번호를 알아낸다

SeriesNbr = gr_product_data.FindSeries("Costs")

CategoryNbr = gr_product_data.FindCategory("Apr")

gr_product_data.ModifyData(SeriesNbr, CategoryNbr, 1250)

[참고]

AddData

FindCategory

FindSeries

InsertCategory

InsertData

ModifyData: Syntax2

ModifyData PowerScript 함수: syntax 2

[설명]

그래프의 series내에 있는 데이터 포인트의 값을 변경한다. 데이터 포인트는 특정위치와 x, y값에 의하여 명시한다.

[적용]

윈도우와 사용자 object내의 graph control. DataWindow object내의 그래프는 DataWindow로 부터 데이터를 직접 가지고 오므로 적용되지 않는다.

[문법]

controlname.ModifyData ( seriesnumber, datapoint, xvalue, yvalue )

[Argument]

controlname | series내의 데이터를 수정하려는 scatter 그래프의 이름
Seriesnumber | 데이터를 수정하려는 series의 번호
Datapoint | 데이터를 수정하려는 데이터 포인트의 번호
xvalue | 수정하려는 데이턴의 새로운 x값
yvalue | 수정하려는 데이턴의 새로운 y값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, ModifyData는 NULL을 리턴한다.

[용법]

scatter 그래프의 경우는, category가 존재하지 않는다. 사용자는 수정하려는 series의 위치를 명시하고 그 데이터에 관한 x와 y값을 정한다.

[예제]

* scatter 그래프 gr_product_data내의 Test One series에 잇는 데이터 포인트 9를 수정한다.

integer SeriesNbr

SeriesNbr = gr_product.FindSeries("Test One")

gr_product_data.ModifyData(SeriesNbr, 9, 4.55, 86.38)

[참고]

AddData

FindSeries

ModifyData: Syntax2


Month PowerScript 함수

[설명]

날짜 값의 달(月)을 구한다.

[문법]

Month ( date )

[Argument]

date

달(月)을 구하려는 날짜

[Return 값]

Integer.

날짜의 달(月) 위치에 있는 정수 (1에서 12) 값을 리턴한다. date가 NULL이면, Month 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 1을 리턴한다.

Month(1994-01-31)

* SingleLineEdit sle_start_date에 입력된 달(月)을 start_month에 저장한다.

integer start_month

start_month = Month(date(sle_start_date.Text))

[참고]

Day

Date

Year

Month (DataWindow painter 함수)


Move PowerScript 함수

[설명]

control이나 object를 parent 윈도우, 또는 어떤 윈도우 object, 또는 스크린의 상대적인 다른 위치로 이동시킨다.

[적용]

line control을 제외한 모든 object 또는 control

[문법]

objectname.Move ( x, y )

[Argument]

objectname | 새로운 위치로 이동시키려는 object나 control의 이름
X | PowerBuilder 단위로 새로운 x좌표 위치
Y | PowerBuilder 단위로 새로운 y좌표 위치

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하거나 objectname이 최대화되어있는 윈도우일 경우에는 -1을 리턴한다. argument 값중에 NULL이 있으면, Move 함수는 NULL을 리턴한다.

[용법]

명시한 x와 y 좌표는 object나 control에관한 새로운 좌측-상단 모서리 좌표이다. object나 control의 모양이 사각형이 아닐 경우 (예를들어, RadioButton 이나 Oval-타원-), x와 y는 그것을 둘러싼 박스의 좌측-상단 모서리 좌표이다.

control, drawing object, child window 등을 옮길 때, 명시한 좌표는 parent 윈도우의 좌측-상단 모서리에 대하여 상대적인 좌표이다. main, popup, 그리고 response window 등을 옮기기 위하여 Move 함수를 사용할 때, 명시한 좌표는 표시된 screen의 좌측-상단 모서리에 대하여 상대적이다.

Move 함수는 최대화된 쉬트나 윈도우를 이동 시키지는 않는다. 윈도우가 최대화 되어있을 때, Move 함수는 -1을 리턴한다.

line control은 복수의 x, y 좌표를 가지고 있기 때문에 Move 함수를 이용하여 이동 시킬수 없다.

parent window나 screen의 범위을 벗어난 좌표를 명시하면, object 나 control을 보이지않게 만들 수 있다.

Picture control을 이동시키지 않고 특정위치에 이미지를 그리려면, Draw 함수를 사용한다.

Move 함수는 이동된 object의 X 와 Y property를 변경시킨다.

동일한 문법

아래 문법은 object 나 control의 X 와 Y property를 직접 설정하는 것이다. 결과는 Move 함수와 동일하지만, PowerBuilder가 objectname을 두 번 다시 그리는 원인이 된다; 첫 번째는 새로운 위치 X에 그리고, 그 다음에 새로운 X 와 Y 위치에 그린다.

objectname.X = x

objectname.Y = y

다음 문장은 PowerBuilder가 gb_box1을 두 번 다시그린다.

gb_box1.X = 150

gb_box1.Y = 200

다음 문장은 동일한 결과이지만 gb_box1을 한 번만 다시 그린다.

gb_box1.Move(150,200)

[예제]

* 다음 문장은 gb_box1의 X 와 Y property를 150 과 200으로 변경하여, 새로운 위치로 gb_box1을 이동시킨다.

gb_box1.Move(150, 200)

* 다음 문장은 그림 p_Train2를 그림 p_Train1 다음으로 이동 시킨다.

P_Train2.Move(P_Train1.X + P_Train1.Width, P_Train1.Y)


MoveTab PowerScript 함수

[설명]

인덱스 번호를 변경하여, 탭 페이지를 Tab control의 다른 위치로 이동시킨다.

[적용]

Tab controls

[문법]

tabcontrolname.MoveTab ( source, destination )

[Argument]

tabcontrolname | 이동시키려는 탭을 포함하고있는 Tab control의 이름
source | 이동 시키려는 탭의 인덱스 값 (integer)
destination | 대상이 되는 탭의 인덱스 번호 (integer). destination이 0이거나 탭의 수보다 크면, source는 탭의 끝으로 이동된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[예제]

* 다음 문장은 첫 번째 탭을 마지막으로 이동시킨다.

tab_1.MoveTab(1, 0)

* 다음 문장은 4번째 탭을 첫 번째로 이동시킨다.

tab_1.MoveTab(4, 1)

* 다음 문장은 4번째 탭을 3번째 위치로 이동 시킨다.

tab_1.MoveTab(4, 3)

[참고]

OpenTab

SelectTab


Now PowerScript 함수

[설명]

client의 시스템 시간에 기초하여 현재 시간을 구한다.

[문법]

Now ( )

[Return 값]

Time.

client의 시스템 시간에 기초하여 현재 시간을 리턴한다.

[용법]

어떤 시간을 시스템 시간과 비교하거나 스크린에 시스템 시간을 나타낼 때 Now 함수를 사용한다. Now 함수를 다시 나타내기 위하여 Timer 이벤트를 트리거 하도록 Timer 함수를 사용할 수도 있다.

[예제]

* 현재 시스템 시간을 리턴한다.

Now( )

* 다음 문장은 StaticText st_time에 현재 시간을 나타낸다. 시간을 다시 나타내기 위하여 매 60초마다 Timer 이벤트를 트리거 한다. 윈도우의 Open 이벤트에서 초기 시간을 나타내고 타이머를 시작한다. Timer 이벤트에서는 시간을 다시 나타낸다.

윈도우의 Open 이벤트 스크립트.

st_time.Text = String(Now( ), "hh:mm")

Timer(60)

시간을 다시 나타내기위한 Timer 이벤트의 스크립트.

st_time.Text = String(Now( ), "hh:mm")

[참고]

Today

Now (DataWindow painter 함수)


ObjectAtPointer PowerScript 함수

[설명]

그래프내에 클릭한 장소를 찾는다. ObjectAtPointer 함수는 마우스 포인터 아래에있는 그래프의 영역을 알아내고, 메모리 변수에 연관된 series 와 데이터 포인트 번호를 저장한다.

[적용]

윈도우와 사용자 objects내의 그래프 control과 DataWindow control내의 그래프

[문법]

controlname.ObjectAtPointer( { graphcontrol, } seriesnumber, datapoint )

[Argument]

controlname | 클릭한 위치를 찾기 원하는 그래프 object, 또는 그래프를 포함하고있는 DataWindow control의 이름
Graphcontrol | (DataWindow control만 해당) DataWindow control내의 그래프 이름
Seriesnumber | 마우스 포인터 아래의 series 번호를 저장할 integer 변수
Datapoint | 마우스 포인터 아래의 데이터 포인트 번호를 저장할 integer 변수

[Return 값]

grObjectType.

그래프 내에 클릭한 장소를 나타내는 grObjectType 열거형 데이터를 리턴하고 그래프 밖에 클릭하면 NULL을 리턴한다. 또한, argument 값중에 NULL이 있으면, ObjctAtPointer 함수는 NULL을 리턴하다.

grObjectType의 값과 그와 연관된 그래프 파트는 다음과 같다:

◆TypeCategory! | category의 레이블
◆TypeCategoryAxis! | category 축 또는 category 레이블 사이
◆TypeCategoryLabel! | category 축의 레이블
◆TypeData! | 데이터 포인트 또는 그 밖의 데이터 마크
◆TypeGraph! | grObjectType의 값들을 제외한 모든 장소
◆TypeLegend! | series 레이블을 제외한 설명문 박스
◆TypeSeries! | line 타입의 그래프일 경우 series의 데이터 포인트 들을 연결하는 줄 또는 설명문 박스내의 series 레이블에 있는 줄
◆TypeSeriesAxis! | 3D 그래프의 series 축
◆TypeSeriesLabel! | 3D 그래프의 series 축의 레이블
◆TypeTitle! | 그래프의 타이틀
◆TypeValueAxis! | 값(value) 레이블을 포함하고있는 vlaue 축
◆TypeValueLabel! | value 축에 클릭한 레이블

[용법]

ObjectAtPointer 함수는 사용자가 그래프와 어떻게 상호작용하고 있는지를 찾아준다. 이 함수는 그래프의 한 영역을 나타내는 grObjectType 열거형 데이터 타입의 값을 리턴한다. 사용자가 series, 데이터 포인트, 또는 category에 클릭 하였을 때, ObjectAtPointer 함수는 지정한 메모리변수에 series 와(또는) 데이터 포인트 번호를 저장한다.

데이터 포인트 (또는 line 이나 bar와 같은 다른 데이터 마크)에 클릭하거나, 설명문내의 series 레이블상에 클릭하면, ObjectAtPointer 함수는 series 번호를 지정한 변수에 저장한다. 데이터 포인트나 category 체크 레이블에 클릭하면, ObjectAtPointer 함수는 데이터 포인트 번호를 메모리 변수에 저장한다.

series내의 실제 데이터 포인트가 아닌 다른 위치에 클릭하면, ObjectAtPointer 함수는 변수 datapoint에 0을 저장하고 categry내에 클릭하면, 변수 seriesnumber에 0을 저장한다. 또한, 그래프의 다른 영역에 클릭하면, ObjectAtPointer 함수는 양쪽 변수에 모두 0을 저장한다.

제일먼저 ObjectAtPointer 함수를 호출한다

ObjectAtPointer 함수는 그래프 control에 관한 Clicked 이벤트 스크립트에 제일먼저 호출하는 것이 가장 효과적이다. 그래프 control이 사용 가능한 상태로 되어있는지 반드시 확인하도록 한다 (기본설정 값은 disable 이다). 그렇지 않으면, Clicked 이벤트 스크립트는 결코 실행되지 않는다.

[예제]

* 다음 문장은 그래프 gr_product내의 포인터 위치에 있는 series 번호와 데이터 포인트를 SeriesNbr 과 ItemNbr에 저장한다. object 타입이 TypeSeries!면 series 이름을 구하고, TypeData!면 데이터 값을 구한다.

integer SeriesNbr, ItemNbr

double data_value

grObjectType object_type

string SeriesName

object_type = gr_product.ObjectAtPointer(SeriesNbr, ItemNbr)

IF object_type = TypeSeries! THEN

SeriesName = gr_product.SeriesName(SeriesNbr)

ELSEIF object_type = TypeData! THEN

data_value = gr_product.GetData(SeriesNbr, ItemNbr)

END IF

* 다음 문장은 DataWindow control dw_equipment안의 그래프 gr_computers에서 포인터 위치에있는 series 번호와 데이터 포인트 번호를 SeriesNbr 과 ItemNbr에 저장한다.

integer SeriesNbr, ItemNbr

dw_equipment.ObjectAtPointer("gr_computers", SeriesNbr, ItemNbr)

[참고]

AddData

AddSeries


OLEActivate PowerScript 함수

[설명]

명시한 object에 관한 Object Linking and Embedding (OLE)를 활성화하고 명시한 명령어 verb를 OLE 서버 응용프로그램에 보낸다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에서는 효과가 없다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.OLEActivate ( row, column, verb )

[Argument]

dwcontrol | OLE를 활성화하려는 DataWindow control 이나 child DataWindow 이름
row | OLE object의 row 위치를 나타내는 long 값
column | OLE object의 칼럼위치. 칼럼은 칼럼 번호 (integer) 나 칼럼 이름 (string)일 수 있다
verb | 통상적으로 0이지만, verb는 OLE 서버에 의존한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, OLEAcivate 함수는 NULL을 리턴한다.

[용법]

DataWindow의 OLE blob 칼럼을 더블-클릭 함으로써 OLE를 활성화할 수 있다. 사용자가 버튼을 클릭하였을 경우처럼, 어떤 다른 이벤트나 행동에 대한 응답으로 OLE를 활성화 시키려 할 때에는 OLEActivate 함수를 사용한다.

verb는 OLE server 응용프로그램이 이끌어졌을 때 어떤 행동을 발생시킬 것인지를 명시하도록 해준다. verb의 기본설정 값은 0이며, 일반적으로 문서를 편집하기 원한다는 것을 의미한다. 각 OLE 응용프로그램은 자신만의 특정한 verb 세트를 가지고 있다. 응용프로그램이 지원하는 verb가 무엇 인지는 Windows RegEdit 유틸리티 (run REGEDIT /V)를 사용하여 찾을 수 있다.

OLE 응용프로그램에 관한 데이터가 Binary/Text Large Object (blob)로 데이터베이스내에 저장된다. Sybase SQL Anywhere 내에서, 그 데이터베이스 칼럼은 long binary 타입이다. blob을 사용자가 접근할 수 있도록 만들려면, DataWindow object에 OLE Database Blob object를 추가하고 Database Binary/Text Large Object 윈도우 내에 OLE server 응용프로그램을 명시한다.

[예제]

* 다음 문장은 DataWindow dw_emp_data의 salary 칼럼에 있는 OLE object에 관한 OLE를 활성화한다. verb는 0이다.

dw_emp_data.OLEActivate(5, "salary", 0)

[참고]

Activate


Open PowerScript 함수: syntax 1

[설명]

알려진 데이터 타입의 윈도우 object를 오픈한다. Open 함수는 윈도우를 나타내고 그 윈도우의 모든 property와 control 들을 스크립트할 수 있게 만든다.

[적용]

Window objects

[문법]

Open ( windowvar {, parent } )

[Argument]

Windowvar | 나타내려는 윈도우의 이름. 사용자는 Window painter내에서나 window 데이터 타입의 변수에 윈도우 object를 명시할 수 있다.
Parent | (child 와 popup window만 해당) 오픈중인 child 또는 popup 윈도우의 parent로 만들고자하는 윈도우. parent를 생략하고 child 또는 popup 윈도우를 오픈하면, PowerBuilder는 오픈중인 윈도우를 현재 활성화되어있는 윈도우에 연결시킨다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[용법]

사용자는 윈도우의 property에 접근하기 전에 반드시 그 윈도우를 오픈하여야 한다. 윈도우를 오픈하기전에 그 윈도우의 property에 접근하게되면, 실행 에러가 발생하게될 것이다.

스크립트내에서 오픈 윈도우를 참조하려면, windowvar를 사용한다.

Open 함수의 두 번 호출

동일한 윈도우에 관한 Open 함수의 Syntax를 두 번 호출하면, PowerBuilder는 그 윈도우의 instance를 두 번 오픈하는 하지않고, 그 윈도우 자체를 두 번 활성화 한다.

서로 다른 데이터 타입을 가지고있는 윈도우의 배열을 오픈하려면, Open 함수의 Syntax를 사용한다.

오픈된 윈도우에 관한 parent

일반적으로, child 또는 popup 윈도우를 오픈하면서 parent를 명시하면, parent로 명시한 윈도우는 오픈된 윈도우 (windowname 또는 windowvar)의 parent가 된다. parent 윈도우가 닫히게 되면, 그와 연관된 모든 child 와 popup 윈도우도 함께 닫힌다.

모든 타입의 윈도우가 parent 윈도우가 될 수있는것은 아니다. 경계선이 다른 윈도우내에 갇혀있지않은 윈도우만이 parent가 될 수 있다. sheet로 오픈된 child 윈도우나 보통 윈도우는 parent가 될 수 없다. parent로 "confined"를 명시하면, PowerBuilder는 parent로 사용할 수 있는 윈도우를 찾을때까지 체크하게 될 것이다. 따라서, popup 윈도우를 오픈하고 parent로 sheet를 명시하면, PowerBuilder는 sheet를 포함하고있는 MDI frame을 만든다.

child 또는 popup 윈도우에 관한 parent를 명시하지 않으면, 활성화되어있는 윈도우가 parent가 될 것이다. 따라서, 하나의 popup이 활성화 되어있고 또다른 popup을 오픈한다면, 메인 윈도우가 아닌 첫 번째 popup이 parent가 된다. 첫 번째 poup을 닫으면, PowerBuilder는 두 번째 popup도 함께 닫는다.

MDI 응용프로그램에서, 활성화된 sheet는 활성화된 윈도우가 아니고 parent가 될 수 없음을 기억해야 한다. Windows에서는, MDI fram이 활성화된 윈도우이다. 타이틀 바는 활성화 색상이고 메뉴를 나타낸다. Macintosh에서는, frame이 보이지 않으므로 명백히 구분되지 않지만, frame이 활성화된 윈도우이다.

Windows platform에서, Windows는 parent 와 child window의 이러한 계층을 갖는다. Macintosh 상에서, PowerBuilder는 cross-platform 응용프로그램이 동일한 모양을 갖도록 계층 기능을 제공한다.

마우스 동작과 Response 윈도우

control은 어떤 작용을 수행하기 위하여 마우스를 capture한다. 예를들어, CommandButton은 마우스 클릭을 하는동안 cpature하고, Edit control은 선택한 텍스트를 capture하고, scrollbar는 scroll이 되는동안 captuer한다. 마우스를 capture하는동안 response(응답) 윈도우를 오픈하면, 예기치않은 결과가 발생할 수 있다.

왜냐하면, 응답(reponse) 윈도우는 focus를 움켜쥐고있기 때문에, LoseFocus 이벤트에서처럼, focus가 변할 때 오픈하지 말아야 한다.

[예제]

* 다음 문장은 윈도우 w_employee의 instance를 오픈한다.

Open(w_employee)

* 다음 문장은 w_employee 타입의 윈도우 instance를 오픈한다.

w_employee w_to_open

Open(w_to_open)

* 다음 문장은 cw_data라는 child 타입의 윈도우 instance를 오픈하고 w_employee를 parent로 만든다.

child cw_data

Open(cw_data, w_employee)

* 다음 문장은 w_emp 타입의 윈도우를 두 개 오픈한다.

w_emp w_e1, w_e2

Open(w_e1)

Open(w_e2)

[참고]

Close

OpenWithParm

Show

Open: Syntax 2

Open PowerScript 함수: syntax 2

[설명]

응용프로그램이 실행될 때 까지 그 데이터 타입을 알지 못할 때 window object를 오픈한다. Open 함수는 윈도우를 나타내고 모든 property와 control들을 사용한 가능한 상태로 만든다.

[적용]

Window objects

[문법]

Open ( windowvar, windowtype {, parent } )

[Argument]

Windowvar | window 데이터 타입의 윈도우 변수. Open 함수는 windowvar내에 오픈된 윈도우를 참조한다.
Windowtype | 오픈하려는 윈도우 타입의 데이터 값 (string). windowtype의 데이터 타입은 반드시 windowvar와 동일하거나 상속된 것이어야 한다.
Parent | (child 와 popup 윈도우만 해당) 오픈하고있는 child 또는 popup 윈도우의 parent로 만들려는 윈도우. parent를 생략하고 child 또는 popup 윈도우를 오픈하면, PowerBuilder는 오픈중인 윈도우를 현재 활성화되어있는 윈도우에 연결시킨다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[용법]

사용자는 윈도우의 property에 접근하기 전에 반드시 그 윈도우를 오픈하여야 한다. 윈도우를 오픈하기전에 그 윈도우의 property에 접근하게되면, 실행 에러가 발생하게될 것이다.

스크립트내에서 오픈 윈도우를 참조하려면, windowvar를 사용한다.

windowtype에 명시한 window object는 반드시 windowvar와 동일한 데이터 타입이어야 한다 (데이터 타입은 그것으로부터 상속된 데이터 타입들을 포함한다). windowvar의 데이터 타입은 일반적으로 상속된 모든 window이지만, windowtype의 어떠한 조상도 가능하다. 동일한 타입이 아닐경우에는, 실행 에러가 발생한다.

서로다른 데이터 타입을 가지고있는 윈도우의 배열을 오픈하려면, Open 함수를 사용한다. 하나의 배열에 여러 window 데이터 타입들이 저장되어있고, 다른 배열이 오픈될 때 windowtype argument를 사용하는 예는 마지막 예제를 참조한다.

window 타입을 명시할때의 고려

Open 함수를 사용할 때, PowerBuilder는 windowtype에 명시한 데이터 타입의 윈도우 instance를 오픈하고 이 instance를 참조하여 메모리변수 windowvar내에 위치시킨다.

windowtype이 자손 윈도우면, windowvar정의의 한 부분인 property, 이벤트, 함수, structure 등만 참조할 수 있다. 예를들어, windowtype에 관한 사용자 이벤트(user event)가 선언되어 있다면, 그것을 참조할 수가 없다.

windowtype에 명시한 object는 실행 가능한 응용프로그램에 자동으로 포함되지 않는다. 이 objdect를 포함시키려면 반드시 응용프로그램과 함께 배포하는 PBD(PowerBuilder 동적 라이브러리)에 저장하여야 한다.

[예제]

* 문자열 s_w_name에 명시한 타입의 윈도우를 오픈하고 w_to_open에 참조할 윈도우를 저장한다. SELECT 문장은 데이터베이스로부터 명시한 윈도우 타입의 데이터를 retrieve하고 s_w_name에 저장한다.

window w_to_open

string s_w_name

SELECT next_window INTO :s_w_name FROM routing_table

WHERE ... ;

Open(w_to_open, s_w_name)

* 다음 예제는 문자열 is_w_emp1에 명시한 타입으로 10개의 윈도우 배열을 오픈하고, 배열내의 각 윈도우에 타이틀을 할당한다. 문자열 is_w_emp1은 window 타입의 instance 변수이다.

integer n

window win_array[10]

FOR n = 1 to 10

Open(win_array[n], is_w_emp1)

win_array[n].title = "Window " + string(n)

NEXT

* 다음 문장은 4개의 윈도우를 오픈한다. 각 윈도우의 타입은 배열 w_stock_type에 저장된다. Open 함수로 부터 참조한 윈도우는 배열 w_stock_win의 요소로 할당된다.

window w_stock_win[ ]

string w_stock_type[4]

w_stock_type[1] = "w_stock_wine"

w_stock_type[2] = "w_stock_scotch"

w_stock_type[3] = "w_stock_beer"

w_stock_type[4] = "w_stock_soda"

FOR n = 1 to 4

Open(w_stock_win[n], w_stock_type[n])

NEXT

[참고]

Close

OpenWithParm

Show

Open: Syntax 1

Open PowerScript 함수: syntax 3

[설명]

파일내의 OLE object를 오픈하고 OLE 2.0 control에 load한다.

[적용]

OLE 2.0 controls

[문법]

ole2control.Open ( OLEsourcefile )

[Argument]

ole2control | OLE objec를 load 하여 넣으려는 OLE 2.0 control의 이름
OLEsourcefile | object를 포함하고있는 OLEstorage 파일의 이름. 이 파일은 반드시 이미 존재하고 있어야 하고 OLE object를 포함하고 있어야 한다. OLEsourcefile은 그 파일에 관한 경로를 포함할 수 있다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 중 하나의 값을 리턴한다:

-1 파일을 찾을 수 없거나 그 파일의 데이터가 올바르지않은 형식이다

-9 다른 에러가 발생하였다

argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 MYSTUFF.OLE 파일 내에 있는 object를 오픈하고 control ole_1에 load하여 넣는다.

integer result

result = ole_1.Open("c:\ole2\mystuff.ole")

[참고]

InsertFile

Save

SaveAs

Open (syntax 4 : OLE object에 관한 다른 문법)

Open (syntax 5 : OLE object에 관한 다른 문법)

Open (syntax 6 : OLE object에 관한 다른 문법)

Open (syntax 7 : OLE object에 관한 다른 문법)

Open PowerScript 함수: syntax 4

[설명]

메모리에 있는 OLE storage object에서 OLE object를 오픈하고 OLE 2.0 control안으로 load 한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에서는 효과가 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.Open ( sourcestorage , substoragename )

[Argument]

ole2control | OLE object를 load하여 넣으려는 OLE 2.0 control의 이름
Sourcestorage | ole2control에 넣으려는 object를 포함하고 있는 OLEStorage의 object 변수 명
Substoragename | storagename과 함께 원하는 object를 포함하고 있는 substorage의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 다음중 하나를 리턴한다:

-2 parent storage가 오픈되지 않았다

-9 그 밖의 에러가 발생하였다

argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 storage 변수 stg_stuff와 함께 substorage excel_obj에있는 object를 오픈하고 ole_1 control에 load 한다. ole stg_stuff는 이미 오픈되어 있다.

integer result

result = ole_1.Open(stg_stuff, "excel_obj")

* 다음 문장은 storage 변수 stg_stuff에서 substorage를 오픈하고 control ole_1으로 load한다. substorage 이름은 메모리변수 stuff_1에 명시하였다. ole stg_stuff는 이미 오픈되어있다.

integer result

string stuff_1 = "excel_obj"

result = ole_1.Open(stg_stuff, stuff_1)

[참고]

InsertFile

Save

SaveAs

Open (syntax 3 : OLE object에 관한 다른 문법)

Open (syntax 5 : OLE object에 관한 다른 문법)

Open (syntax 6 : OLE object에 관한 다른 문법)

Open (syntax 7 : OLE object에 관한 다른 문법)

Open PowerScript 함수: syntax 5

[설명]

OLE storage 파일에있는 OLE object를 오픈하고 메모리에있는 storage object로 load한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에서는 효과가 없다

[적용]

OLE storage objects

[문법]

olestorage.Open ( OLEsourcefile {, readmode {, sharemode } } )

[Argument]

Olestorage | OLE object를 load하여 넣으려는 OLEStorage 타입의 object 변수 명
OLEsourcefile | load 하려는 object를 포함하고있는 OLE storage 파일의 이름 (string). 파일은 반드시 존재하고 있어야 하고 OLE 2.0 object를 포함하고 있어야 한다. OLEsourcefile은 파일의 경로명을 포함할 수 있다.
Readmode | (선택사항) 원하는 OLEsourcefile에 접근하기위한 타입을 명시한 열거형 stgReadMode 타입.
 | ▷stgReadWrite! | (기본설정값) 읽기/쓰기 접근. 파일이 존재하지 않으면, Open함수는 그 파일을 생성한다.
 | ▷stgRead! | 읽기-전용 접근. OLEsourcefile을 변경할 수 없다.
 | ▷stgWrite! | 쓰기 접근. OLEsourcefile을 다시 기록할 수 있지만 현재 내용을 읽을 수는 없다. 파일이 존재하지 않으면,Open 함수는 그 파일을 생성한다.
Sharemode | (선택사항) 자신 또는 다른 응용프로그램이 OLEsourcefile을 오픈하기위하여 어떠한 방법으로 시도할 것인가를 명시한 stgShareMode 열거형 데이터 타입.
 | ·stgExclusive! | (기본설정 값) OLEsourcefile을 오픈 하기 위한 다른 사용자의 시도는 모두 실패한다.
 | ·stgDenyNone! | OLEsourcefile을 오픈 하기 위한 다른 사용자의 시도는 모두 성공한다.
 | ·stgDenyRead! | OLEsourcefile을 읽기 위한 다른 사용자의 시도는 실패한다.
 | ·stgDenyWrite! | OLEsourcefile에 쓰기 위한 다른 사용자의 시도는 실패한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값중 하나를 리턴한다:

-1 파일이 OLE 2.0 storage 파일이 아니다

-3 파일을 찾을 수 없다

-9 그 밖의 에러가 발생하였다

argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[용법]

OLE storage 파일은 디렉토리와 같이 구조화되어있다. 각 OLE object는 다른 OLE object (substorage)와 다른 데이터 (stream)를 포함할 수 있다. 서버 storage의 구조를 알수있다면 서버 응용프로그램에 속해있는 OLE storage의 멤버를 오픈할 수 있다. 그러나, storage를 다루는 PowerBuilder 함수들은 사용자의 응용프로그램에 사용된 OLE object를 구조화한 자신만의 storage 파일을 구축할 수 있도록 지원하고 있다.

전체 파일은 OLE object가 될 수있고 파일내의 substorage 또한 OLE object가 될 수 있다. 대부분, 사용자가 생성한 storage 파일에 관한 구조는 OLE object가 아닌 root 레벨이지만 substorage로써 독립된 OLE object를 포함한다. storage 계층내의 어떠한 레벨도 OLE object를 포함하거나 다른 레벨의 substorage를 저장할 수 있다.

중첩된 object의 오픈

OLE storage내에 backslash(\)를 가지고 경로 정보를 명시할 수 있기 때문에, Open 함수를 한 번 호출하여 깊이 중첩되어있는 object를 오픈할 수 있다. 그러나, 사용자가 명시한 경로에관한 에러 체크가 없고 Open 함수 처리에 실패한다면, 그 이유를 알수가 없다. 이런 경우 사용자가 원하는 object를 만날때까지 경로내의 각 object를 오픈해야만 한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일내의 object를 open하고 OLEStorage 변수 stg_stuff에 load 한다.

integer result

OLEStorage stg_stuff

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole")

* 다음 예제는 동일한 object를 읽기전용으로 오픈한다.

integer result

OLEStorage stg_stuff

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole", stgRead!)

* 다음 예제는 위의 예제처럼 MYSTUFF.OLE 파일내의 object를 오픈하고 OLEStorage 변수 stg_stuff에 load 한다. 다음에, substorage drawing_1을 오픈하여 두 번째 storage 변수에 저장한다 (이 예제에는 오픈되어있는 object를 닫고 제거하는 코드가 포함되어있지 않다).

integer result

OLEStorage stg_stuff, stg_drawing

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole")

IF result >= 0 THEN

stg_drawing = CREATE OLEStorage

result = opest_drawing.Open("drawing_1", &

stgRead!, stgDenyNone!, stg_stuff)

END IF

* 다음 예제는 MYSTUFF.OLE 파일내의 object를 오픈하고 OLEStorage 변수 stg_stuff에 load 한다. 다음에, OLE object내에 존재하는 정보를 호출한 stream인지 여부를 체크하고, 그렇다면, 읽기 접근방식으로 오픈한다(이 예제에는 오픈되어 있는 object를 닫고 제거하는 코드가 포함되어있지 않다).

integer result

boolean str_found

OLEStorage stg_stuff

OLEStream mystream

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole")

IF result < 0 THEN RETURN

result = stg_stuff.MemberExists("info", str_found)

IF result < 0 THEN RETURN

IF str_found THEN

mystream = CREATE OLEStream

result = mystream.Open(stg_stuff, "info", &

stgRead!, stgDenyNone!)

IF result < 0 THEN RETURN

END IF

[참고]

InsertFile

Save

SaveAs

Open (syntax3 : OLE object에 관한 다른 문법)

Open (syntax4 : OLE object에 관한 다른 문법)

Open (syntax6 : OLE object에 관한 다른 문법)

Open (syntax7 : OLE object에 관한 다른 문법)

Open PowerScript 함수: syntax 6

오픈한 OLE storage의 멤버를 오픈하고 메모리에 있는 다른 OLE storage object로 load한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에서는 효과가 없다

[적용]

OLE storage objects

[문법]

olestorage.Open ( substoragename, readmode, sharemode, sourcestorage )

[Argument]

Olestorage | OLE object를 load하여 넣으려는 OLEStorage 타입의 object 변수명
Substoragename | 오픈하려는 sourcestorage내의 storage 멤버이름. 문법에서 sourcestorage와 substoragename argument의 순서가 바뀌어져 있다는 점을 주의하여야 한다.
Readmode | 원하는 substoragename에 접근하기위한 타입을 명시한 열거형 stgReadMode 타입.
 | ·stgReadWrite! | (기본설정값) 읽기/쓰기 접근. 파일이 존재하지 않으면, Open 함수는 그 파일을 생성한다.
 | ·stgRead! | 읽기-전용 접근. substoragename을 변경할 수 없다.
 | ·stgWrite! | 쓰기 접근. 을 다시 기록할 수 있지만 현재내용을 읽을 수는 없다. 파일이 존재하지 않으면, Open 함수는 그 파일을 생성한다.
Sharemode | 자신 또는 다른 응용프로그램이 substoragename을 오픈하기위하여 어떠한 방법으로 시도할 것인가을 명시한 stgShareMode 열거형 데이터 타입.
 | ·stgExclusive! | (기본설정값) substoragename을 오픈하기 위한 다른 사용자의 시도는 모두 실패한다.
 | ·stgDenyNone! | substoragename을 오픈하기 위한 다른 사용자의 시도는 모두 성공한다.
 | ·stgDenyRead! | substoragename을 읽기 위한 다른 사용자의 시도는 실패한다.
 | ·stgDenyWrite! | substoragename에 쓰기 위한 다른 사용자의 시도는 실패한다.
Sourcestorage | substoragename을 포함하고있는 OLEStorage object

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값 중 하나를 리턴한다:

-2 parent storage가 오픈되지 않았다

-3 멤버가 오픈되지 않았다 (읽기 전용으로 오픈되었을 때)

-9 그 밖의 에러가 발생하였다

argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[용법]

OLE storage 파일은 디렉토리와 같이 구조화되어있다. 각 OLE object는 다른 OLE object (substorage)와 다른 데이터 (stream)를 포함할 수 있다. 서버 storage의 구조를 알수 있다면 서버 응용프로그램에 속해있는 OLE storage의 멤버를 오픈할 수 있다. 그러나, storage를 다루는 PowerBuilder 함수들은 사용자의 응용프로그램에 사용된 OLE object를 구조화한 자신만의 storage 파일을 구축할 수 있도록 지원하고 있다.

전체 파일은 OLE object가 될 수있고 파일내의 substorage 또한 OLE object가 될 수 있다. 대부분, 사용자가 생성한 storage 파일에 관한 구조는 OLE object가 아닌 root 레벨이지만 substorage로써 독립된 OLE object를 포함한다. storage 계층내의 어떠한 레벨도 OLE object를 포함하거나 다른 레벨의 substorage를 저장할 수 있다.

중첩된 object의 오픈

OLE storage내에 backslash(\)를 가지고 경로 정보를 명시할 수 있기 때문에, Open 함수를 한 번 호출하여 깊이 중첩되어있는 object를 오픈 할 수 있다. 그러나, 사용자가 명시한 경로에 관한 에러 체크가 없고 Open 함수 처리에 실패한다면, 그 이유를 알 수가 없다. 이런 경우 사용자가 원하는 object를 만날 때까지 경로내의 각 object를 오픈해야 만 한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일내의 object를 오픈하고 OLEStorage 변수 stg_stuff에 load한다. 다음은, substorage drawing_1를 오픈하여 두 번째 storage 변수에 넣는다.

integer result

OLEStorage stg_stuff, stg_drawing

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole")

IF result >= 0 THEN

stg_drawing = CREATE OLEStorage

result = opest_drawing.Open("drawing_1", &

stgRead!, stgDenyNone!, stg_stuff)

END IF

[참고]

InsertFile

Save

SaveAs

Open (syntax 3 :OLE object에 관한 다른 문법)

Open (syntax 4 :OLE object에 관한 다른 문법)

Open (syntax 5 :OLE object에 관한 다른 문법)

Open (syntax 7 :OLE object에 관한 다른 문법)

Open PowerScript 함수: syntax 7

[설명]

오픈된 OLE storage object내의 stream을 오픈하고 OLE stream object로 load 한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX에서는 효과가 없다

[적용]

OLE stream objects

[문법]

olestream.Open ( sourcestorage, streamname {, readmode {, sharemode } } )

[Argument]

Olestream | OLE object를 load하여 넣으려는 OLEStream 타입의 object 변수 이름
Sourcestorage | stream을 포함하고있는 OLE storage
Streamname | 오픈하려는 sourcestorage내의 스트림 이름
Readmode | (선택사항) streamname에 접근하려는 방법을 명시한 stgReadMode 열거형 데이터 타입의 값
 | stgReadWrite! | 읽기/쓰기 접근. Streamname이 존재하지 않을 경우 생성한다.
 | stgRead! | 읽기-전용 접근. Streamname을 변경시킬 수 없다.
 | stgWrite! | 쓰기 접근. streamname을 다시 기록할 수 있지만 현재 내용을 읽지 못한다. Streamname이 존재하지 않을 경우 생성한다.
Sharemode | 자신 또는 다른 응용프로그램이 substoragename을 오픈하기 위하여 어떠한 방법으로 시도할 것인가을 명시한 stgShareMode 열거형 데이터 타입.
 | stgExclusive! |  | (기본설정값) substoragename을 오픈하기위한 다른 사용자의 시도는 모두 실패한다.
 | stgDenyNone! |  | substoragename을 오픈하기 위한 다른 사용자의 시도는 모두 성공한다.
 | stgDenyRead! |  | substoragename을 읽기위한 다른 사용자의 시도는 실패한다.
 | stgDenyWrite! |  | substoragename에 쓰기위한 다른 사용자의 시도는 실패한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음값중 하나를 리턴한다:

-1 stream을 찾을 수 없다

-2 stream이 이미 존재한다

-3 stream이 이미 오픈되어있다

-4 stream을 오픈 할 수 없다

-5 접근이 금지되어있다

-6 이름이 올바르지 않다

-9 그 밖의 에러가 발생하였다

argument 값중에 NULL이 있으면, Open 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일내의 object를 오픈하고 OLEStorage 변수 stg_stuff에 load 한다. stream이 OLE object내의 정보를 호출하였는지 여부를 체크하고, 만일 그렇다면, 읽기-전용으로 오픈한다.

integer result

boolean str_found

OLEStorage stg_stuff

OLEStream mystream

stg_stuff = CREATE OLEStorage

result = stg_stuff.Open("c:\ole2\mystuff.ole")

IF result < 0 THEN RETURN

result = stg_stuff.MemberExists("info", str_found)

IF result < 0 THEN RETURN

IF str_found THEN

mystream = CREATE OLEStream

result = mystream.Open(stg_stuff, "info", &

stgRead!, stgDenyNone!)

IF result < 0 THEN RETURN

END IF

[참고]

InsertFile

Save

SaveAs

Open (syntax 3 : OLE object에 관한 다른 문법)

Open (syntax 4 : OLE object에 관한 다른 문법)

Open (syntax 5 : OLE object에 관한 다른 문법)

Open (syntax 6 : OLE object에 관한 다른 문법)


OpenChannel PowerScript 함수

[참고]

DDE 서버 응용프로그램을 위하여 channel을 오픈한다.

Platform 정보

DDE 함수는 Macintosh에서는 효과가 없다.

UNIX 플랫폼 상에서, DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder를 사용하여 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일되었을 경우에는 효과가 있다.

[문법]

OpenChannel ( applname, topicname {, windowhandle } )

[Argument]

applname | DDE 서버 응용프로그램의 DDE 이름을 명시한 문자열
topicname | 데이터나 사용하려는 응용프로그램의 instance를 나타내는 문자열 (예를들어, Microsoft Excel에서, topic 이름은 System이거나 오픈된 spreadsheet의 이름이다)
windowhandle | (선택사항) DDE 클라이언트로써 작용시키기 원하는 윈도우의 handle. 하나 이상의 오픈된 윈도우를 가지고있을 때 DDE 클라이언트로써 윈도우를 작용시키려면 이 argument를 명시한다.

[Return 값]

Long.

처리에 성공하면 handle을 channel (양의 정수)에 보내고, 에러가 발생하면 다음과같은 음수를 리턴한다:

-1 오픈에 실패하였다

-9 handle이 NULL이다

[용법]

DDE 서버 응용프로그램에 channel을 오픈하고 하나이상의 DDE 요청을 실행하기 위하여 그 오픈을 벗어나려면 OpenChannel 함수를 사용한다. 이런 타입의 DDE 대화를 warm link라 부른다. 사용자가 channel을 오픈하기 때문에, 운영 시스템은 사용자가 데이터를 보내거나 요청할 때마다 오픈한 모든 응용프로그램을 체크할 필요가 없다.

다음은 warm-link 대화의 개략적인 사용 방법이다:

·OpenChannel 함수로 DDE channel을 오픈하고 올바른 channel handle (양의 정수)을 리턴하는지 체크한다.

·여러가지 DDE 함수들을 실행한다. 다음과 같은 함수들을 사용할 수 있다:

ExecRemote(command, handle, <windowhandle>)

GetRemote(location, target, handle, <windowhandle>)

SetRemote(location, value, handle, <windowhandle>)

·CloseChannel로 DDE channel을 닫는다

remote DDE 함수를 한 번만 사용할 필요가 있을경우에는 channel을 오픈하지 않고 ExecRemote, GetRemote, 또는 SetRemote 함수를 호출할 수 있다. channel을 오픈하지 않으면, 운영 시스템은 DDE 함수를 호출할때마다 명시한 서버 응용프로램을 발견하기 위하여 실행중인 모든 응용프로그램을 점검한다.

PowerBuilder 응용프로그램도 DDE 서버가 될 수 있다. 더 자세한 정보는 StartServerDDE 함수를 참고한다.

서버 응용프로그램에 관하여

각 응용프로그램은 DDE을 어떻게 지원할 것인가를 결정한다. 올바른 topic이 무었이고 어떻게 명시되는지를 알기위하여 DDE 이름을 찾으려면 각각의 가능한 서버 응용프로그램 설명을 체크하여야 한다.

[예제]

* 다음 문장은 Microsoft Excel의 REGION.XLS 스프레드시트를 활성화시키기 위하여 channel을 오픈하고 handle을 그 channel의 handle로 설정한다.

long handle

handle = OpenChannel("Excel", "REGION.XLS")

* 다음 예제는 Excel을 위하여 DDE channel을 오픈하고 3개의 spreadsheet cell로부터 데이터를 요청한다. PowerBuilder 응용프로그램내에서, 데이터는 문자 배열 s_regiondata에 저장된다. DDE 대화를 위한 클라이언트 윈도우는 w_ddewin 이다.

long handle

string s_regiondata[3]

handle = OpenChannel("Excel", "REGION.XLS", Handle(w_ddewin))

GetRemote("R1C2", s_regiondata[1], handle, Handle(w_ddewin))

GetRemote("R1C3", s_regiondata[2], handle, Handle(w_ddewin))

GetRemote("R1C4", s_regiondata[3], handle, Handle(w_ddewin))

CloseChannel(handle, Handle(w_ddewin))

[참고]

CloseCHannel

ExecRemote

GetRemote

SetRemote


OpenSheet PowerScript 함수

[설명]

MDI (multiple document interface) frame 윈도우내의 sheet를 오픈하고 명시한 메뉴상에서 그 sheet를 선택할 수 있도록 메뉴 아이템을 생성한다.

[적용]

Window objects

[문법]

OpenSheet ( sheetrefvar {, windowtype , mdiframe {, position {, arrangeopen } } } )

[Argument]

sheetrefvar | MDI frame 윈도우가 아닌 모든 윈도우 변수. OpenSheet 함수는 sheetrefvar내에 참조할 오픈 sheet를 위치시킨다.
windowtype | (선택사항) 오픈하려는 윈도우의 타입 (문자열). Windowtype의 데이터 타입은 반드시 sheetrefvar과 동일하거나 상속된 것이어야 한다.
mdiframe | MDI frame 윈도우의 이름
position | (선택사항) 오픈한 sheet 이름을 추가하기위한 메뉴내의 아이템 번호 (메뉴는 sheet와 연관된 것이어야 한다). 메뉴 바의 메뉴 아이템들은 좌측부터 번호가 부여된다. 기본 설정값은 0 이다.
arrangeopen | (선택사항) sheet가 오픈될 때 MDI frame 내에서 다른 sheet들과 어떤 관계를 가지고 배열시킬 것인지를 명시하는 ArrangeOpen 열거형 데이터 타입의 값: ·Cascaded! (기본설정 값) 오픈된 다른 sheet와 계층적인 관계를 갖는다. 따라서 오픈되는 sheet의 타이틀-바는 이전에 오픈된 sheet의 타이틀-바 아래에 위치한다. ·Layered! 겹쳐서 오픈된다. 즉, frame을 가득채우고 이전에 오픈된 sheet를 덮어버린다. ·Original! 원래 크기를 가지고 계층적으로 오픈된다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, OpenSheet 함수는 NULL을 리턴한다.

[용법]

sheet는 MDI frame 윈도우 내에 포함된 문서 윈도우 이다. MDI 응용프로그램은 한 번에 여러개의 sheet를 오픈할 수 있도록 허락한다. 새로 오픈된 sheet는 활성화된 sheet가 된다. 오픈된 sheet가 관련된 메뉴를 가지고 있다면, 그 메뉴는 frame의 상단에 위치하게 된다.

windowtype을 명시하면, windowtype내에 명시된 윈도우 object는 반드시 sheetrefvar의 데이터 타입과 동일한 것이어야 한다. sheetrefvar의 데이터 타입은 보통 window 이고, 상속된 것이지만, windowtype의 조상도 가능하다. 동일한 타입이 아닐경우에는 , 실행 에러가 발생한다.

PowerBuilder는 문자열 변수를 통하여 동적으로 참조된 object를 실행 파일에 자동으로 복사하지 않는다. windowtype에 명시한 window object를 응용프로그램에 포함시키려면, 실행 파일을 구출할 때 사용하는 resource (PBR) 파일에 나열하여야 한다.

실행가능한 PBR 파일에 관한 더 자세한 정보는, PowerBuilder User's Guide를 참조한다.

OpenSheet 함수는 sheet를 오픈하고 명시한 메뉴-바상의 아이템에 그 이름을 추가한다. position이 0 이거나 메뉴 아이템의 수보다 크면, PowerBuilder는 sheet의 이름을 메뉴바의 마지막 아이템 다음에 추가한다. 대부분의 MDI 응용프로그램에서, 마지막 메뉴 아이템은 sheet 배열에 관한 정보를 포함하고 있는 Window 메뉴이다.

메뉴상에 sheet가 나타나지 않는다면

PowerBuilder는 메뉴 아이템 가지고 있지 않은 메뉴에 sheet를 추가할 수 없다. 메뉴를 명시하거나, 메뉴바에 최소한 하나의 메뉴 아이템이라도 가지고 있도록 하여야 한다.

frame에 9개 이상의 sheet가 오픈되면, 9개는 명시한 메뉴 위치에 나열되고 마지막에 "More Windows" 아이템이 추가된다.

frame내의 sheet는 보이지않게 할 수 없다. sheet가 오픈될 때, Visible property는 무시된다. 윈도우를 오픈하고 나서 Visible property를 변경하면 아무런 영향이 없다.

[예제]

* 다음 문장은 MDI frame MDI_User내의 sheet child_1을 원래 크기로 오픈한다. 오픈된 sheet의 이름은 메뉴-바의 두 번째 메뉴 아이템에 추가되고, 그 메뉴는 child_1과 연관된다.

OpenSheet(child_1, MDI_User, 2, Original!)

* 다음 문장은 MDI sheet로 window object child_1의 instance을 오픈하고 오픈된 윈도우의 참조를 child에 저장한다. sheet의 이름은 child_1과 연관된 4번째 메뉴에 겹침 형식으로 추가된다.

window child

OpenSheet(child, "child_1", MDI_User, 4, Layered!)

[참고]

ArrangeSheets

GetActiveSheet

OpenSheetWithParm


OpenSheetWithParm PowerScript 함수

[설명]

MDI (multiple document interface) frame 윈도우내의 sheet를 오픈하고 명시한 메뉴상에서 그 sheet를 선택할 수 있도록 메뉴 아이템을 생성한다. 또한 오픈된 sheet에서 사용할 수 있는 시스템 Message object에 parameter를 저장한다.

[적용]

Window objects

[문법]

OpenSheetWithParm ( sheetrefvar, parameter {, windowtype , mdiframe {, position {, arrangeopen } } } )

[Argument]

sheetrefvar | MDI frame 윈도우가 아닌 모든 윈도우 변수. OpenSheet 함수는 sheetrefvar내에 참조할 오픈 sheet를 위치시킨다.
parameter | sheet가 오픈될 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
windowtype | (선택사항) 오픈하려는 윈도우의 타입 (문자열). windowtype의 데이터 타입은 반드시 sheetrefvar과 동일하거나 상속된 것이어야 한다.
mdiframe | sheet를 오픈하려는 MDI frame 윈도우의 이름
position | (선택사항) 오픈한 sheet 이름을 추가하기위한 메뉴내의 아이템 번호 (메뉴는 sheet와 연관된 것이어야 한다). 메뉴 바의 메뉴 아이템들은 좌측부터 번호가 부여된다. 기본 설정값은 0 이다.
arrangeopen | (선택사항) sheet가 오픈될 때 MDI frame 내에서 다른 sheet들과 어떤 관계를 가지고 배열시킬 것인지를 명시하는 ArrangeOpen 열거형 데이터 타입의 값: ·Cascaded! (기본설정 값) 오픈된 다른 sheet와 계층적인 관계를갖는다. 따라서 오픈되는 sheet의 타이틀-바는 이전에 오픈된 sheet의 타이틀-바 아래에 위치한다. ·Layered! 겹쳐서 오픈된다. 즉, frame을 가득채우고 이전에 오픈된 sheet를 덮어버린다. ·Original! 원래 크기를 가지고 계증적으로 오픈된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenSheetWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenSheetWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 sheet에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 윈도우 내에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에의하여 통과 시킨다. 그 object는 사용자가 나중에 참조할때나 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

OpenSheetWithParm를 적용하는 것은 OpenSheet 용법을 참조한다

[예제]

* 다음 문장은 MDI frame MDI_User에 sheet w_child_1을 원래 크기로 오픈하고 message.StringParm에 MA를 저장한다. 오픈된 sheet의 이름은 메뉴-바 MDI_User의 두 번째 아이템에 추가된다.

OpenSheetWithParm(w_child_1, "MA", MDI_User, 2, Original!)

* 다음 예제는 Message object에 통과된 parameter를 어떻게 사용하는지 설명하는 것이다. 여기에 사용된 문장들은 두 개의 서로다른 윈도우 스크립트내에 있는 것이다. 첫 번재 윈도우 스크립트는 window로 child를 선언하고 MDI sheet로 w_child_1의 instance를 오픈한다. sheet의 이름은 w_child_1과 연관된 4번째 메뉴에 겹칩(layered) 형태로 추가된다.

또한 Message object의 PowerObject parameter로 SingleLineEdit control sle_state을 참조로 통과시킨다. w_child_1의 Open 이벤트 스크립트는 edit control내의 텍스트로 어떤 계산을 수행할 것인지 결정한다. 두 번째 스크립트가 sle_state를 참조할 때 존재하지 않게 되면 에러가 발생할 수도 있음을 주의하여야 한다. 다른 방법으로, Message의 String parameter에 저장하여 텍스트 자체를 통과시킬 수도 있다.

두 번째 스크립트는 SingleLineEdit내의 텍스트를 결정하고, 그에 의거하여 처리를 수행한다.

첫 윈도우에 관한 스크립트는 다음과 같다:

window child

OpenSheetWithParm(child, sle_state, "w_child_1", MDI_User, 4, Layered!)

w_child_1의 Open 이벤트에 관한 두 번째 스크립트는 다음과 같다:

SingleLineEdit sle_state

sle_state = Message.PowerObjectParm

IF sle_state.Text = "overtime" THEN

... // overtime hours calculations

ELSEIF sle_state.Text = "vacation" THEN

... // vacation processing

ELSEIF sle_state.Text = "standard" THEN

... // standard hours calculations

END IF

[참고]

ArrangeSheet

OpenSheet


OpenTab PowerScript 함수: syntax 1

[설명]

Tab control내의 탭 페이지로써 알고있는 데이터 타입의 사용자 object를 오픈한다.

[적용]

Tab controls

[문법]

tabcontrolname.OpenTab ( userobjectvar, index )

[Argument]

tabcontrolname | 탭 페이지로 사용자 object를 오픈하려는 Tab control의 이름
userobjectvar | 탭 페이지로 오픈하려는 사용자 object의 이름. 사용자 object는 User Object painter나 사용자 object 데이터 타입의 메모리변수로 정의할 수 있다.
index | 새로운 탭을 삽입하려는 번호. index가 0이거나 탭의 수보다 클 경우, 탭 페이지는 마지막에 추가된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenTab 함수는 NULL을 리턴한다.

[용법]

오픈하려는 사용자 object를 알고있을 경우에는 'Syntax: 1'을 사용한다. 스크립트를 실행할 때 어떤 타입의 사용자 object가 오픈되는지 프로그램에 의하여 결정될때에는 'Syntax: 2'를 사용한다.

사용자 object에 관한 탭 페이지는 자동으로 선택되지 않으므로, 사용자 object상의 control에 관한 constructor 이벤트 스크립트는 탭 페이지를 선택할 때까지 실행되지 않는다.

사용자 object의 property에 접근하기 전에 반드시 사용자 object를 오픈하여야 한다. 사용자 object를 오픈하기전에 property를 사용하게 되면, 실행 에러가 발생한다.

사용자 object가 Tab control 정의 (Window painter내의 Tab control에 추가된 것)의 한 부분일 경우는 스크립트내에서 오픈할 필요가 없다. PowerBuilder는 Tab control을 포함하고있는 윈도우가 오픈될 때 사용자 object도 오픈하기 때문이다.

Tip

동일한 사용자 object를 오픈하기위하여 'Syntax: 1'을 반복하여 호출하면, PowerBuilder는 또다른 탭 페이지에 사용자 object를 다시 오픈한다. (Open 함수와 OpenUserObject 함수를 참조)

[예제]

* 다음 문장은 Tab control tab_1의 탭 페이지로 사용자 object u_Employe의 instance를 오픈한다.

tab_1.OpenTab(u_Employee, 0)

* 다음 문장은 Tab control tab_1의 탭 페이지로 사용자 object u_to_open의 instance를 오픈하고, control의 첫 번째 탭 페이지가 되도록 한다.

u_employee u_to_open

tab_1.OpenTab(u_to_open, 1)

[참고]

OpenTabWithParm

OpenTab : Syntax 2

OpenTab PowerScript 함수: syntax 2

[설명]

스크립트가 실행될 때까지 사용자 object의 데이터 타입을 알수 없을 때 Tab control내의 탭 페이지로 사용자 object를 오픈한다.

[적용]

Tab controls

[문법]

tabcontrolname.OpenTab ( userobjectvar, userobjecttype, index )

[Argument]

tabcontrolname | 탭 페이지로 사용자 object를 오픈하려는 Tab control의 이름
userobjectvar | DragObject 데이터 타입의 메모리변수
userobjecttype | 오픈하려는 사용자 object의 이름. userobjecttype의 데이터 타입은 반드시 userobjectvar에서 상속받은 것이어야 한다
index | 새로운 탭을 삽입하려는 번호. index가 0이거나 탭의 수보다 클 경우, 탭페이지는 마지막에 추가된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenTab 함수는 NULL을 리턴한다.

[용법]

오픈하려는 사용자 object를 알고있을 경우에는 'Syntax: 1'을 사용한다. 스크립트를 실행할 때 어떤 타입의 사용자 object가 오픈되는지 프로그램에 의하여 결정될때에는 'Syntax: 2'를 사용한다.

자세한 용법은 'Syntax: 1'을 참조한다.

사용자 object 타입을 명시할때의 고려

'Syntax: 2'를 사용할 때, PowerBuilder는 userobjecttype에 명시한 데이터 타입의 사용자 object instance를 오픈하고 메모리 변수 userobjectvar에 이 instance의 참조를 위치 시킨다. 따라서 스크립트내에서 instance를 참조하려면, userobjectvar를 사용하면 된다.

userobjecttype이 사용자 object의 자손이면, userobjectvar 정의의 한 부분인 property, 이벤트, 함수 또는 structure만 참조할 수 있다. 예를들어, 사용자 이벤트가 userobjecttype에 관하여 선언되었다면, 그것을 참조할 수 없다.

userobjecttype에 명시한 object는 실행가능한 응용프로그램에 자동으로 포함되지 않는다. 이 object를 포함시키려면, 반드시 배포용 PBD 파일 (PowerBuilder dynamic library)에 저장 시켜야 한다.

[예제]

* 다음 문장은 Tab control tab_1에 마지막 탭 페이지로 사용자 object를 오픈한다. 사용자 object 타입은 문자열 s_u_name에 명시되어있고 사용자 object의 참조는 메모리 변수 u_to_open에 저장한다.

DragObject u_to_open

string s_u_name

s_u_name = sle_user.Text

tab_1.OpenTab(u_to_open, s_u_name, 0)

[참고]

OpenTabWithParm

OpenTab : Syntax 1


OpenTabWithParm PowerScript 함수: syntax 1

[설명]

데이터 타입을 알고있는 사용자 object를 Tab control의 탭 페이지로 오픈하고 시스템의 Message object에 parameter를 저장한다.

[적용]

Tab controls

[문법]

tabcontrolname.OpenTabWithParm ( userobjectvar, parameter, index )

[Argument]

tabcontrolname | 탭 페이지로 사용자 object를 오픈하려는 Tab control의 이름
userobjectvar | 탭 페이지로 오픈하려는 사용자 object의 이름. 사용자 object는 User Object painter나 사용자 object 데이터 타입의 메모리변수로 정의할 수 있다.
parameter | 사용자 object를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
index | 새로운 탭을 삽입하려는 번호. index가 0이거나 탭의 수보다 클 경우, 탭페이지는 마지막에 추가된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, OpenTabWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenTabWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 사용자 object내에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에 의하여 통과 시킨다. 그 object는 사용자가 나중에 참조 할 때 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용 하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

OpenTab 함수의 용법은 모두 OpenTabWithParm에도 적용되므로, 자세한 내용은 OpenTab 함수를 참조한다.

[예제]

* 다음 문장은 Tab control tab_empsettings내의 탭 페이지로 사용자 object u_Employee의 instance를 오픈하고 Message.StringParm에 문자열 James Newton을 저장한다. 사용자 object의 Constructor 이벤트 스크립트에서는 그 object내의 StaticText control st_empname의 텍스트로 string parameter를 사용한다. 탭 페이지를 오픈하는 스크립트는 다음과 같다.

tab_empsettings.OpenTabWithParm(u_Employee, "James Newton", 0)

사용자 object의 Constructor 이벤트 스크립트는 다음과 같다.

st_empname.Text = Message.StringParm

* 다음 문장은 Tab control tab_empsettings내의 첫 번째 탭 페이지로 사용자 object u_to_open 의 instance를 오픈하고 Message.DoubleParm에 수치를 저장한다. 마지막 문장은 그 탭 페이지를 선택한다.

u_employee u_to_open

integer age = 50

tab_1.OpenTabWithParm(u_to_open, age, 1)

tab_1.SelectTab(u_to_open)

[참고]

OpenTab

OpenTabWithParm: Syntax 2

OpenTabWithParm PowerScript 함수: syntax 2

[설명]

스크립트가 실행될 때 까지 사용자 object의 타입을 알 수 없을 때 Tab control내에 탭 페이지로 사용자 object를 오픈하고, 오픈된 object에서 사용할 수 있도록 시스템 Message object에 parameter를 저장한다.

[적용]

Tab controls

[문법]

tabcontrolname.OpenTabWithParm ( userobjectvar, parameter, userobjecttype, index )

[Argument]

tabcontrolname | 탭 페이지로 사용자 object를 오픈하려는 Tab control의 이름
userobjectvar | DragObject 데이터 타입의 메모리변수
parameter | 사용자 object를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
userobjecttype | 오픈하려는 사용자 object의 이름. userobjecttype의 데이터 타입은 반드시 userobjectvar에서 상속받은 것이어야 한다.
index | 새로운 탭을 삽입하려는 번호. index가 0이거나 탭의 수보다 클 경우, 탭페이지는 마지막에 추가된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, OpenTabWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenTabWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 사용자 object내에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에 의하여 통과 시킨다. 그 object는 사용자가 나중에 참조 할 때 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용 하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

OpenTab 함수의 용법은 모두 OpenTabWithParm에도 적용되므로, 자세한 내용은 OpenTab 함수를 참조한다.

[예제]

* 다음 문장은 Tab control tab_1의 마지막 탭 페이지로 u_benefit_plan 데이터 타입의 사용자 object u_data의 instance를 오픈하고 message.StringParm에 parameter "Benefits"를 저장한다.

DragObject u_data

tab_1.OpenTabWithParm(u_data, "Benefits", "u_benefit_plan", 0)

* 다음 문장은 문자열 s_u_name에 명시한 타입의 사용자 object를 오픈하고 메모리변수 u_to_open에 사용자 object 참조를 저장한다. 스크립트에서는 데이터베이스로 부터, 오픈한 사용자 object의 타입 s_u_name의 값을 구한다. parameter는 Message.StringParm에 저장된 SingleLineEdit sle_loc의 텍스트이다. 사용자 object는 Tab control tab_1의 3번째 탭 페이지가 된다.

DragObject u_to_open

string s_u_name, e_location

e_location = sle_location.Text

SELECT next_userobj INTO :s_u_name

FROM routing_table

WHERE ... ;

tab_1.OpenTabWithParm(u_to_open, e_location, s_u_name, 3)

* 다음 문장은 문자열 s_u_name에 명시한 타입의 사용자 object를 오픈하고 사용자 object의 참조를 메모리 변수 u_to_open에 저장한다. parameter는 숫자로써 message.DoubleParm에 저장된다. 또한, 사용자 object는 Tab control tab_1의 첫 번째 탭 페이지가 된다.

userobject u_to_open

integer age = 60

string s_u_name

s_u_name = sle_user.Text

tab_1.OpenTabWithParm(u_to_open, age, s_u_name, 1)

[참고]

OpenTab

OpenTabWithParm: Syntax 1


OpenUserObject PowerScript 함수: syntax 1

[설명]

데이터 타입을 알고있는 사용자 object를 오픈한다.

[적용]

Window objects

[문법]

windowname.OpenUserObject ( userobjectvar {, x, y } )

[Argument]

windowname | 사용자 object를 오픈하려는 윈도우의 이름
userobjectvar | 나타내려는 사용자 object의 이름. 사용자 object는 User Object painter나 원하는 사용자 object 데이터 타입의 메모리변수로 정의할 수 있다.
x | (선택사항) 윈도우 frame내에 사용자 object의 x 좌표 (PowerBuilder 단위). 기본설정 값은 0이다
y | (선택사항) 윈도우 frame내에 사용자 object의 y 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenUserObject 함수는 NULL을 리턴한다.

[용법]

오픈하려는 사용자 objdec가 무엇인지 알고있을 경우에는 'Syntax: 1'을 사용한다. 스크립트를 실행할 때 어떤 타입의 사용자 object가 오픈되는지 프로그램에 의하여 결정될 때에는 'Syntax: 2'를 사용한다.

사용자 object의 property에 접근하기 전에 반드시 사용자 object를 오픈하여야 한다. 사용자 object를 오픈하기 전에 property를 사용하게 되면, 실행 에러가 발생한다.

사용자 object가 window 정의 (Window painter내의 window에 추가된 것)의 한 부분일 경우는 스크립트내에서 오픈할 필요가 없다. PowerBuilder는 윈도우가 오픈될 때 사용자 object도 오픈하기 때문이다.

OpenUserObject 함수는 사용자 object를 윈도우 control의 property가 나열된 윈도우 Control 배열에 추가하지 않는다.

실행하는 동안 사용자 object를 오픈하면, 윈도우를 닫을 때 자동으로 사용자 object를 제거하지 않는다. 일반적으로 윈도우를 닫을 때 사용자 object를 제거하기 위하여 CloseUserObject 함수를 호출할 필요가 있다. 사용자 object를 제거하지 않으면, 할당된 메모리를 차지하고 있게 되므로 메모리 부족의 결과를 초래한다.

OpenUserObject의 반복 호출

동일한 사용자 object를 오픈하기 위하여 'Syntax: 1'을 두 번 호출하면, PowerBuilder는 사용자 object를 두 번 활성화한다. 즉, 사용자 object의 instance를 2개 오픈하지 않는다.

[예제]

* 다음 문장은 사용자 object u_Employee의 instance를 윈도우 w_emp의 좌측상단 모서리에 나타낸다. (좌표 0, 0)

w_emp.OpenUserObject(u_Employee)

* 다음 문장은 사용자 object u_to_open의 instance를 윈도우 w_empstatus의 좌표 200, 100 위치에 나타낸다.

u_employee u_to_open

w_empstatus.OpenUserObject(u_to_open, 200, 100)

* 다음 문장은 사용자 object u_data의 instance를 w_info의 20,100 위치에 나타낸다.

w_info.OpenUserObject(u_data, 20, 100)

[참고]

OpenUserObjectWithParm

OpenUserObject: Syntax 2

OpenUserObject PowerScript 함수: syntax 2

[설명]

스크립트가 실행될 때 까지 사용자 object의 데이터 타입을 알지 못할 때 사용자 object를 오픈한다.

[적용]

Window objects

[문법]

windowname.OpenUserObject ( userobjectvar, userobjecttype {, x, y } )

[Argument]

windowname | 사용자 object를 오픈하려는 윈도우의 이름
userobjectvar | DragObject 데이터 타입의 값
userobjecttype | 나타내려는 사용자 object의 이름. userobjecttype의 데이터 타입은 userobjectvar로부터 상속된 것이어야 한다.
x | (선택사항) 윈도우 frame내에 사용자 object의 x 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.
y | (선택사항) 윈도우 frame내에 사용자 object의 y 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, OpenUserObject 함수는 NULL을 리턴한다.

[용법]

오픈하려는 사용자 objdec가 무엇인지 알고있을 경우에는 'Syntax: 1'을 사용한다. 스크립트를 실행할 때 어떤 타입의 사용자 object가 오픈되는지 프로그램에 의하여 결정될때에는 'Syntax: 2'를 사용한다.

사용자 object의 property에 접근하기 전에 반드시 사용자 object를 오픈하여야 한다. 사용자 object를 오픈하기전에 property를 사용하게 되면, 실행 에러가 발생한다.

사용자 object가 window 정의 (Window painter내의 window에 추가된 것)의 한 부분일 경우는 스크립트내에서 오픈할 필요가 없다. PowerBuilder는 윈도우가 오픈될 때 사용자 object도 오픈하기 때문이다.

OpenUserObject 함수는 사용자 object를 윈도우 control의 property가 나열된 윈도우 Control 배열에 추가하지 않는다.

실행하는 동안 사용자 object를 오픈하면, 윈도우를 닫을 때 자동으로 사용자 object를 제거하지 않는다. 일반적으로 윈도우를 닫을 때 사용자 object를 제거하기 위하여 CloseUserObject 함수를 호출할 필요가 있다. 사용자 object를 제거하지 않으면, 할당된 메모리를 차지하고 있게되므로 메모리 부족의 결과를 초래한다.

Tip

'Syntax: 2'를 사용할 때, PowerBuilder는 userobjecttype에 명시한 데이터 타입의 사용자 object의 instance를 오픈하고 메모리변수 userobjectvar에 이 instance의 참조를 위치시킨다. 스크립트 내에서 instance를 참조하려면 userobjectvar를 사용한다.

userobjecttype이 사용자 object의 자손이면, userobjectvar 정의의 한 부분인 property, 이벤트, 함수 또는 structure만 참조할 수 있다. 예를들어, 사용자 이벤트가 userobjecttype에 관하여 선언되었다면, 그것을 참조할 수 없다.

userobjecttype에 명시한 object는 실행 가능한 응용프로그램에 자동으로 포함되지 않는다. 이 object를 포함시키려면, 반드시 배포용 PBD 파일 (PowerBuilder dynamic library)에 저장 시켜야 한다.

[예제]

* 다음 문장은 문자열 s_u_name에 명시한 타입의 사용자 object를 나타내고 메모리 변수 u_to_open에 그 참조를 저장한다. 사용자 object는 윈도우 w_info의 100, 200 좌표에 위치한다.

DragObject u_to_open

string s_u_name

s_u_name = sle_user.Text

w_info.OpenUserObject(u_to_open, s_u_name, 100, 200)

[참고]

OpenUserObjectWithParm

OpenUserObject: Syntax 1


OpenUserObjectWithParm PowerScript 함수: syntax 1

[설명]

데이터 타입을 알고있는 사용자 object를 오픈하고 시스템 Message object에 parameter를 저장한다.

[적용]

Window objects

[문법]

windowname.OpenUserObjectWithParm ( userobjectvar, parameter {, x, y} )

[Argument]

windowname | 사용자 object를 오픈하려는 윈도우의 이름
userobjectvar | 나타내려는 사용자 object의 이름. 사용자 object는 User Object painter나 원하는 사용자 object 데이터 타입의 메모리변수로 정의할 수 있다.
parameter | 사용자 object를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
x | (선택사항) 윈도우 frame내에 사용자 object의 x 좌표 (PowerBuilder 단위). 기본설정 값은 0이다
y | (선택사항) 윈도우 frame내에 사용자 object의 y 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenUserObjectWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenUserObjectWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 사용자 object내에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에의하여 통과 시킨다. 그 object는 사용자가 나중에 참조할때나 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

OpenUserObject 함수의 용법은 모두 OpenUserObjectWithParm에도 적용되므로, 자세한 내용은 OpenUserObject 함수를 참조한다.

[예제]

* 다음 문장은 윈도우 w_emp내에 사용자 object u_Employee의 instance를 나타내고 Message.StringParm에 문자열 James Newton을 저장한다. 사용자 object의 Constructor 이벤트 스크립트는 StaticText control st_empname의 텍스트로 문자열 parameter를 사용한다. 사용자 object를 오픈하는 스크립트는 다음과 같다.

w_emp.OpenUserObjectWithParm(u_Employee, "James Newton")

사용자 objectdm Constructor 이벤트 스크립트는 다음과 같다.

st_empname.Text = Message.StringParm

* 다음 문장은 윈도우 w_emp에 사용자 object u_to_open의 instance를 나타내고 message.DoubleParm에 수치를 저장한다.

u_employee u_to_open

integer age = 50

w_emp.OpenUserObjectWithParm(u_to_open, age)

[참고]

OpenUserObject

OpenUserObjectWithParm: Syntax 2

OpenUserObjectWithParm PowerScript 함수: syntax 2

[설명]

스크립트가 실행될 때 까지 사용자 object의 타입을 알 수 없는 사용자 object를 오픈하고, 오픈된 object에서 사용할 수 있도록 시스템 Message object에 parameter를 저장한다.

[적용]

Window objects

[문법]

windowname.OpenUserObjectWithParm ( userobjectvar, parameter, userobjecttype {, x, y } )

[Argument]

windowname | 사용자 object를 오픈하려는 윈도우의 이름
userobjectvar | DragObject 데이터 타입의 값
parameter | 사용자 object를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
userobjecttype | 오픈하려는 사용자 object의 이름. userobjecttype의 데이터 타입은 userobjectvar로부터 상속된 것이어야 한다.
x | (선택사항) 윈도우 frame내에 사용자 object의 x 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.
y | (선택사항) 윈도우 frame내에 사용자 object의 y 좌표 (PowerBuilder 단위). 기본설정 값은 0이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발행하면 -1을 리턴한다. argument 값중에 NULL이 있으면, OpenUserObjectWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenUserObjectWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를

체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 사용자 object내에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에의하여 통과 시킨다. 그 object는 사용자가 나중에 참조할때나 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

OpenUserObject 함수의 용법은 모두 OpenUserObjectWithParm에도 적용되므로, 자세한 내용은 OpenUserObject 함수를 참조한다.

[예제]

* 다음 문장은 윈도우 w_hresource의 20, 100 위치에 u_benefit_plan 타입의 사용자 objdect u_data의 instance를 나타낸다. parameter "Benefits"는 message.StringParm에 저장된다.

DragObject u_data

w_hresource.OpenUserObjectWithParm(u_data, "Benefits", "u_benefit_plan", 20, 100)

* 다음 문장은 문자열 s_u_name에 명시된 타입의 사용자 object를 오픈하고 메모리 변수 u_to_open에 사용자 object 참조를 저장한다. 스크립트에서는 데이터베이스로 부터, 오픈한 사용자 object의 타입 s_u_name의 값을 구한다. Message.StringParm에는 SingleLineEdit sle_loc의 텍스트를 저장한다. 사용자 object의 좌표는 기본 설정값 0,0 이다.

DragObject u_to_open

string s_u_name, e_location

e_location = sle_location.Text

SELECT next_userobj INTO :s_u_name

FROM routing_table

WHERE ... ;

w_info.OpenUserObjectWithParm(u_to_open, e_location, s_u_name)

* 다음 문장은 문자열 s_u_name에 명시된 타입의 사용자 object를 나타내고 변수 u_to_open에 그 참조를 저장한다. parameter는 수치이므로 message.DoubleParm에 저장된다. 사용자 object는 윈도우 w_emp의 100, 200에 위치한다.

userobject u_to_open

integer age = 60

string s_u_name

s_u_name = sle_user.Text

w_emp.OpenUserObjectWithParm(u_to_open, age, s_u_name, 100, 200)

[참고]

OpenUserObject

OpenUserObjectWithParm: Syntax 1


OpenWithParm PowerScript 함수: syntax 1

[설명]

타입을 알고있는 window object를 오픈한다. OpenWithParm은 윈도우를 나타내고 모든 property와 control들을 스크립트에서 사용할 수 있도록 만든다. 또한, 시스템 Message object에 parameter를 저장한다.

[적용]

Window objects

[문법]

OpenWithParm ( windowvar, parameter {, parent } )

[Argument]

windowvar | 나타내려는 윈도우의 이름. 사용자는 Window painter (window 데이터 타입)에서 정의한 윈도우를 명시하거나 원하는 window 데이터 타입의 메모리 변수를 명시할 수 도 있다.
parameter | 윈도우를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
parent | (child 와 popup 윈도우만 해당) 오픈중인 child 또는 popup 윈도우의 parent로 만들고자 하는 윈도우. child 또는 popup 윈도우를 오픈하면서 parent를 생략하면, PowerBuilder는 현재 활성화 되어있는 윈도우를 연관시킨다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면 OpenWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 윈도우에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에 의하여 통과 시킨다. 그 object는 사용자가 나중에 참조할 때나 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용하려 할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

구조체로 여러개의 값을 통과시킨다

여러개의 값들을 통과 시키려면, 그 값들을 보관할 수 있는 사용자-정의 구조체를 생성하고 오픈된 윈도우에서 Message object의 PowerObjectParm property를 사용한다. 구조체는 값에 의한 통과 (passed by value)를 하므로, 원래 구조체가 제거되어도 통과된 정보를 사용할 수 있다.

Open 함수의 용법은 모두 OpenWithParm에도 적용되므로, 자세한 내용은 Open 함수를 참조한다.

[예제]

* 다음 문장은 윈도우 w_employee의 instance를 오픈하고 Message.StringParm에 문자열을 저장시킨다. 윈도우의 Open 이벤트 스크립트에서는 StaticText control st_empname의 텍스트로 문자열 parameter를 사용한다. 윈도우를 오픈하는 스크립트는 다음과 같다.

OpenWithParm(w_employee, "James Newton")

윈도우의 Open 이벤트 스크립트는 다음과 같다.

st_empname.Text = Message.StringParm

* 다음 문장은 w_to_open 타입의 윈도우 instance를 오픈한다. parameter는 수치이므로 Message.DoubleParm에 저장된다.

w_employee w_to_open

integer age = 50

OpenWithParm(w_to_open, age)

* 다음 문장은 child 윈도우 cw_data의 instance를 오픈하고 w_employee를 parent로 만든다. 이때, 윈도우 w_employee는 반드시 오픈되어 있어야 한다. parameter "benefit_plan"은 문자열이므로 Message.StringParm에 저장된다.

OpenWithParm(cw_data, "benefit_plan", w_employee)

[참고]

CloseWithReturn

Open

OpenWithParm : Syntax 2

OpenWithParm PowerScript 함수: syntax 2

[설명]

응용프로그램이 실행될 때까지 데이터 타입을 알지 못할 때 윈도우를 오픈한다. OpenWithParm은 윈도우를 나타내고 모든 property와 control들을 스크립트에서 사용할 수 있도록 만든다. 또한, 시스템 Message object에 parameter를 저장한다.

[적용]

Window objects

[문법]

OpenWithParm ( windowvar, parameter, windowtype {, parent } )

[Argument]

windowvar | 통상적으로, window 타입의 메모리 변수
parameter | 윈도우를 오픈할 때 Message object에 저장할 parameter. parameter는 반드시 다음의 데이터 타입이어야 한다: ·String ·Numeric ·PowerObject
windowtype | 오픈하려는 윈도우의 데이터 타입. windowtype의 데이터 타입은 반드시 windowvar로부터 상속된 것이어야 한다.
parent | (child 와 popup 윈도우만 해당) 오픈중인 child 또는 popup 윈도우의 parent로 만들고자 하는 윈도우. child 또는 popup 윈도우를 오픈하면서 parent를 생략하면, PowerBuilder는 현재 활성화 되어있는 윈도우를 연관시킨다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면 OpenWithParm 함수는 NULL을 리턴한다.

[용법]

시스템 Message object는 3가지의 property를 갖는다. OpenWithParm 함수에 명시한 parameter의 타입에 따라, 오픈된 사용자 object에 관한 스크립트는 다음 property중에서 하나를 체크할 수 있다.

Message object property | Argument 데이터 타입
Message.DoubleParm | Numeric
Message.PowerObjectParm | PowerObject (사용자-정의 structure를 포함하고있는 PowerBuilder objects)
Message.StringParm | String

오픈된 윈도우에서, 다른 목적으로 Message object를 사용할 수도 있기 때문에 Message object내에 통과된 값을 사용하는 것은 좋은 생각이다.

null object 참조 회피방법

parameter로 PowerObject를 통과할 때, object를 참조에의하여 통과 시킨다. 그 object는 사용자가 나중에 참조할때나 반드시 존재하여야 한다. 예를들어, 닫혀진 윈도우상의 control 이름을 통과시키면, 스크립트에서 parameter를 사용하려할 때 control이 존재하지 않게 되어, null object 참조에 의한 에러를 유발시킨다.

구조체로 여러개의 값을 통과시킨다

여러개의 값들을 통과 시키려면, 그 값들을 보관할 수 있는 사용자-정의 구조체를 생성하고 오픈된 윈도우에서 Message object의 PowerObjectParm property를 사용한다. 구조체는 값에의한 통과 (passed by value)를 하므로, 원래 구조체가 제거되어도 통과된 정보를 사용할 수 있다.

Open 함수의 용법은 모두 OpenWithParm에도 적용되므로, 자세한 내용은 Open 함수를 참조한다.

[예제]

* 다음 문장은 문자열 s_w_name에 명시된 타입의 윈도우를 오픈하고 메모리변수 w_to_open에 그 윈도우의 참조를 저장한다. 데이터베이스로부터 윈도우 타입 s_w_name의 값을 구한다. e_location내의 parameter는 텍스트이므로, Message.StringParm에 저장된다.

window w_to_open

string s_w_name, e_location

e_location = sle_location.Text

SELECT next_window INTO :s_w_name

FROM routing_table

WHERE ... ;

OpenWithParm(w_to_open, e_location, s_w_name)

* 다음 문장은 문자열 c_w_name에 명시된 타입의 윈도우를 오픈하고, 메모리변수 wc_to_open에 그 윈도우의 참조를 저장하고, w_emp 윈도우를 wc_to_open의 parent 윈도우로 만든다. parameter는 수치이므로, Message.DoubleParm에 저장된다.

window wc_to_open

string c_w_name

integer age = 60

c_w_name = "w_c_emp1"

OpenWithParm(wc_to_open, age, c_w_name, w_emp)

[참고]

CloseWithReturn

Open

OpenWithParm: Syntax 1


PageCount PowerScript 함수

[설명]

RichTextEdit control내의 문서에대한 전체 페이지 수를 리턴한다.

[적용]

RichTextEdit controls

[문법]

rtename.PageCount ( )

[Argument]

rtename

페이지수를 카운트 하려는 RichTextEdit control의 이름

[Return 값]

Integer.

RichTextEdit control의 페이지 수를 리턴한다. control이 페이지를 포함하고 있지 않으면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

문서의 페이지 수는 텍스트의 양과 페이지 크기, 여백, 폰트 크기 등과 같은 layout 형태에 의하여 결정된다.

RichTextEdit control이 DataWindow와 데이터를 공유하고 있으면, DataWindow의 각 row는 문서의 instance로 나타난다. PageCount 함수는 하나의 instance에 대한 페이지를 카운트 한다. 따라서 전체 페이지 수를 카운트 하려면 DataWindow의 RowCount 함수 값을 곱해야 한다.

[예제]

* 다음 문장은 RichTextEdit rte_1에 있는 문서의 페이지수를 StaticText st_status의 텍스트로 나타낸다.

st_status.Text = String(rte_1.PageCount( ))

[참고]

LineCount

LineLength

RowCount


ParentWindow PowerScript 함수

[설명]

윈도우의 parent 윈도우를 구한다.

[적용]

Window objects

[문법]

windowname.ParentWindow ( )

[Argument]

windowname

parent object를 구하려는 윈도우의 이름

[Return 값]

Window.

windowname의 parent를 리턴한다. 에러가 발생하거나 windowname이 NULL이면 null object 참조로인한 에러 메시지를 리턴한다.

[용법]

ParentWindow 함수는, 실제 윈도우 이름을 코딩하지 않도록 함으로써 더욱 일반적인 스크립트가 가능하도록 해준다. parent는 현재 object 또는 control, 다시 말하면, local 환경을 포함하고있는 윈도우를 참조한다. ParentWindow 함수는 명시한 윈도우의 parent 윈도우를 리턴한다. 이것은 그 윈도우의 "환경"에 관한 정보를 사용자에게 제공하는 것이다.

윈도우가 parent를 가지고있는지 여부는 그 윈도우의 타입과 오픈되는 방법에 의하여 결정된다. 윈도우를 오픈할 때 parent 윈도우를 명시할 수 있다. parent를 항상 가지고있는 윈도우의 경우, parent를 명시하지 않으면 PowerBuilder는 그 윈도우의 parent를 자동으로 선택한다. response 윈도우와 child 윈도우는 항상 parent 윈도우를 갖는다. MDI 응용프로그램에서 sheet의 parent는 MDI frame 윈도우 이다. popup 윈도우는 다른 윈도우에서 오픈되었을 때 parent 윈도우를 갖는다. 응용프로그램의 Open 이벤트에서 오픈된 popup 윈도우는 parent를 가지지 않는다.

pronoun ParentWindow는 메뉴 아이템과 이 메뉴 아이템과 연관된 윈도우를 참조하는 스크립트 내에서만 사용된다.

[예제]

* 다음 문장은 child_1의 parent를 리턴한다. parent는 Win1 데이터 타입의 윈도우이다.

Win1 w_parent

w_parent = child_1.ParentWindow( )

* 다음 popup 윈도우의 Cancel 버튼 스크립트는 parent 윈도우에 관한 이벤트를 트리거하고 그 버튼의 윈도우를 닫는다. 이 윈도우의 parent 윈도우는 cancelrequested 이벤트에 관한 스크립트를 가지고 있을 것이다.

Parent.ParentWindow().TriggerEvent ("cancelrequested")

Close(Parent)


Paste PowerScript 함수

[설명]

클립보드으 내용을 명시한 control로 삽입(paste)한다. 편집가능한 control의 경우, 클립보드상의 텍스트는 삽입 포인트 위치에 paste 된다. OLE 2.0 control의 경우, 클립보드상의 OLE object는 control내에 이미 존재하고 있는 어떠한 object도 대치시킨다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX 상에서는 효과가 없다

[적용]

EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox, DataWindow, OLE 2.0 controls

[문법]

controlname.Paste ( )

[Argument]

controlname

클립보드상의 내용을 삽입하려는 DataWindow control, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox, 또는 OLE 2.0 control의 이름. controlname이 DataWindow일 경우, 텍스트는 현재 row 와 column 상의 편집 control로 paste 된다. controlname이 DropDownListBox 나 DropDownPictureListBox일 경우, 반드시 AllowEdit property가 TRUE로 설정되어 있어야 한다.

[Return 값]

Integer.

controlname이 NULL이면, Paste 함수는 NULL을 리턴한다.

편집 control의 경우, controlname으로 paste된 문자의 수를 리턴한다. cut 또는 copy된 내용이 없을 경우, 편집 control의 내용을 변경시키지 않고 0을 리턴한다. 클립보드가 텍스트가아닌 데이터(예를들어, bitmap 이나 OLE object)를 가지고 있고 control이 그 데이터를 받아들일 수 없을 경우, Paste 함수는 control의 내용을 변경시키지 않고 0을 리턴한다.

OLE 2.0의 경우, 처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값들을 리턴한다:

-1 데이터가 아니거나 클립보드의 내용을 끼워넣을 수 없다

-9 그 밖의 에러가 발생하였다.

[용법]

편집 가능한 control의 경우, controlname내에 텍스트가 선택되어있으면, Paste 함수는 클립보드의 내용으로 그 텍스트를 대치한다. 클립보드의 내용이 편집 control의 줄(line)보다 더 많을 경우, 해당 라인의 수 만큼만 paste 된다.

DataWindow control에서, 텍스트는 현재 row 와 column 상의 편집 control로 paste 된다. 만일 클립보드의 내용이 그 칼럼의 크기보다 클 경우, 텍스트의 남는 부분은 잘려나간다. 클립보드의 텍스트가 칼럼의 데이터 타입과 일치하지 않을 경우, 모든 텍스트가 잘려나가서, 선택되어있는 텍스트는 빈 문자열로 대치된다.

텍스트 처럼 bitmap 들도 RichTextEdit control로 paste할 수 있다.

controlname에 명시한 문자열을 삽입하거나 선택되어있는 텍스트를 명시한 문자열로 대치하려면, ReplaceText 함수를 사용한다.

OLE 2.0 control에 OLE object를 넣기위하여 Paste 함수를 사용할 때, PowerBuilder 응용프로그램에 끼워 넣어진 데이터는 링크(link)되지 않는다.

[예제]

* 클립보드가 "Proposal good for 90 days"를 포함하고 있고 선택된 텍스트가 없다면, 다음 문장은 mle_Comment1내의 삽입포인트에 "Proposal good for 90 days"를 paste하고 25를 리턴한다.

mle_Comment1.Paste( )

* 클립보드가 문자열 "Final Edition"을 포함하고 있고, mle_Comment2가 "This is a Preliminary Draft"를 포함하고 있고, 이 텍스트가 mle_Comment2내에 선택되어있다면, 다음 문장은 "This is a Preliminary Draft"를 삭제하고, "Final Edition"으로 대치한 후, 13을 리턴한다.

mle_Comment2.Paste( )

* 클립보드가 OLE object를 포함하고 있다면, 다음 문장은 OLE object를 control ole_1의 내용으로 만들고 1을 리턴한다.

ole_1.Paste( )

[참조]

Copy

Cut

PasteLink

PasteSpecial

ReplaceText


PasteLink PowerScript 함수

[설명]

클립보드 내용의 link를 control로 paste 한다. 클립보드상의 object에 관한 서버 응용프로그램은 반드시 실행중인 상태 이어야 한다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX 상에서는 효과가 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.PasteLink ( )

[Argument]

ole2control

클립보드상의 object를 paste하고자 하는 OLE 2.0 control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값들을 리턴한다:

-1 데이터가 아니거나 클립보드의 내용을 Link 시킬 수 없다

-9 그밖의 에러가 발생하였다.

ole2control이 NULL이면, PasteLink 함수는 NULL을 리턴한다.

[용법]

OLE 2.0을 지원하는 응용프로그램으로부터 클립보드로 데이터를 복사하면, 원래 데이터와의 link도 PowerBuilder의 OLE 2.0 control에 paste할 수 있다. 데이터의 소스에 관한 object 정보는, 서버 응용프로그램이 실행중일 때에만 유용하다. PowerBuilder library내에 있는 object나 윈도우내의 object가 control 정의의 일부분인 것과 같이 PowerBuilder가 알고있는 OLE object와 함께 작업중일 경우라면 사용자는 실행중인 서버 응용프로그램에 관하여 걱정할 필요가 없다. 이러한 object들의 경우, PowerBuilder는 link를 사용가능 하도록 하기 위하여 background 상태로 서버 응용프로그램을 실행하게 될 것이다.

사용자가 서버응용프로그램의 변경, 데이터 복사, 응용프로그램 종료 등을 행한 후, PowerBuilder 응용프로그램내의 object에 paste 와 link를 하려고 시도하면 실패하게 될 것이다.

[예제]

* 클립보드가 OLE object를 가지고있고 그 object의 서버 응용프로그램이 실행중이라면, 다음 문장은 control ole_1내의 object를 paste 한다.

integer result

result = ole_1.PasteLink( )

[참고]

LinkTo

Paste

PasteSpecial


PasteRTF PowerScript 함수

[설명]

문자열로부터 rich 텍스트 데이터를 DataWindow control, DataStore object, 또는 RichTextEdit control에 paste 한다.

[적용]

DataWindow controls, DataStore objects, RichTextEdit controls

[문법]

rtename.PasteRTF ( richtextstring, { band } )

[Argument]

rtename | rich 텍스트 형식의 데이터를 paste하려는 DataWindow control, DataStore object, 또는 RichTextEdit control의 이름. DataWindow control 이나 DataStore내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.
richtextstring | rich 텍스트 형식의 데이터 (문자열)
band (선택사항) | Rich 텍스트 데이터가 paste될 밴드를 명시하는 Band 열거형 데이터 타입. ·Detail! 데이터를 detail 밴드에 paste한다 ·Header! 데이터를 header 밴드에 paste한다 ·Footer! 데이터를 footer 밴드에 paste한다 기본설정 값은 삽입 포인트를 포함하고있는 밴드이다.

[Return 값]

Long.

처리에 성공하면 paste된 문자의 수를 리턴하고 에러가 발생하면 -1을 리턴한다. richtextstring이 NULL이면, PasteRTF 함수는 NULL을 리턴한다.

[용법]

RTE 스타일의 DataWindow는 3개의 밴드만을 가지고 있고, summary 또는 trailer 밴드와 group header 및 group footer 밴드는 존재하지 않는다.

[예제]

* 다음 문장은 문자열 ls_richtext내의 rich 텍스트를 RichTextEdit rte_message의 header로 paste 한다.

string ls_richtext

rte_message.PasteRTF(ls_richtext, Header!)

[참고]

CopyRTF


PasteSpecial PowerScript 함수

[설명]

명시한 control에 클립보드상에 있는 OLE object를 paste할 때 끼워넣기(embed) 또는 링크(link)를 사용자가 선택할 수 있도록 표준 OLE 2.0 대화상자를 나타낸다. 끼워넣기는 Paste 함수를 호출하는 것과 동일하고, 링크는 PasteLink 함수를 호출하는 것과 동일하다.

Platform 정보

OLE 함수들은 Macintosh 와 UNIX 상에서는 효과가 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.PasteSpecial ( )

[Argument]

ole2control

클립보드상의 object를 paste하려는 OLE 2.0 control의 이름

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

1 paste 옵션을 선택하지 않고 취소 시켰다

-1 데이터를 찾을 수 없다

-9 그 밖의 에러가 발생하였다

ole2control이 NULL이면, PasteSpecial 함수는 NULL을 리턴한다.

[용법]

PasteLink 함수를 참조한다.

[예제]

* 클립보드가 OLE object를 가지고 있고 그 object의 server 응용프로그램이 실행중이라면, 다음 문장은 object를 control ole_1에 끼워넣기(embed) 또는 링크(link) 할 수 있도록 대화상자를 나타낸다.

integer result

result = ole_1.PasteSpecial( )

[참고]

LinkTo

Paste

PasteLink


Pi PowerScript 함수

[설명]

명시한 숫자로 파이( )를 곱한다.

[문법]

Pi ( n )

[Argument]

n

파이( : 3.14159265358979323...)와 곱하고자 하는 수

[Return 값]

Double.

처리에 성공하면 n과 파이( )의 곱을 리턴하고 에러가 발생하면 -1을 리턴한다. n이 NULL이면, Pi 함수는 NULL을 리턴한다.

[용법]

각도(angle)를 라디안(radian)으로 변환하고자 할 때 Pi 함수를 사용한다.

[예제]

* 다음 문장은 파이( )를 리턴한다.

Pi(1)

* 다음 문장은 double 타입의 instance 변수 id_Rad 반지름을 가진 원의 넓이를 구한다.

Pi(1) * id_Rad^2

Pi(id_Rad^2)

* 다음 문장은 cosine 45도를 계산한다.

real degree = 45.0, cosine

cosine = Cos(degree * (Pi(2)/360))

[참고]

Cos

Sin

Tan

Pi (DataWindow painter 함수)


PixelsToUnits PowerScript 함수

[설명]

pixel을 PowerBuilder 단위로 변환한다. pixel은 면적이 아니기 때문에 수직 또는 수평중 어느 방향으로 변환할 것인지도 명시하여야 한다.

[문법]

PixelsToUnits ( pixels, type )

[Argument]

pixels | PowerBuilder 단위로 변환하려는 pixel의 수
type | 어떤 방향으로 변환할 것인지를 나타내는 ConvertType의 열거형 데이터 타입 ·XPixelsToUnits! -- pixel을 수평 방향으로 변환한다 ·YPixelsToUnits! -- pixel을 수직 방향으로 변환한다

[Return 값]

Integer.

처리에 성공하면 변환된 값을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PixelsToUnits 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 수평방향의 35 pixel을 PowerBuilder 단위로 변환하고 Value에 저장한다.

integer Value

Value = PixelsToUnits(35, XPixelsToUnits!)

[참고]

UnitsToPixels


PointerX PowerScript 함수

[설명]

명시한 object의 좌측면으로 부터 포인터까지의 거리를 구한다.

[적용]

모든 object 또는 control

[문법]

objectname.PointerX ( )

[Argument]

objectname

왼쪽 측면으로부터 포인터까지의 거리를 구하려는 control 또는 윈도우의 이름. objectname을 명시하지 않으면, 현재 sheet 또는 윈도우의 좌측 모서리로부터 거리를 나타낸다.

[Return 값]

Integer.

처리에 성공하면 objectname의 왼쪽 측면으로부터의 거리를 PowerBuilder 단위로 나타내고 에러가 발생하면 -1을 리턴한다. 이 NULL이면, PointerX 함수는 NULL을 리턴한다.

[예제]

* 다음은 어떤 윈도우의 control에 관한 스크립트로, 윈도우 측면으로부터 포인터까지의 거리를 메모리변수 li_dist에 저장한다.

integer li_dist

li_dist = Parent.PointerX( )

* 다음 어떤 control의 RButtonDown 스크립트는 커서 위치에 팝업메뉴 m_Appl.M_Help를 나타낸다.

m_Appl.m_Help.PopMenu(Parent.PointerX( ), Parent.PointerY( ))

* 위의 스크립트가 윈도우의 RButtonDown 스크립트 중 일부라면, 다음 문장은 윈도우 대신 control에 관하여 적용한 것이다.

m_Appl.m_Help.PopMenu(This.PointerX( ), This.PointerY( ))

[참고]

PointerY

PopMenu

WorkSpaceHeight

WorkSpaceWidth

WorkSpaceX

WorkSpaceY


PointerY PowerScript 함수

[설명]

명시한 object의 상단으로부터 포인터까지의 거리를 구한다.

[적용]

모든 object 또는 control

[문법]

objectname.PointerY ( )

[Argument]

objectname

상단에서 포인터까지의 거리를 구하려는 control 또는 윈도우의 이름. objectname을 명시하지 않으면, 현재 sheet 또는 윈도우의 상단으로부터 거리를 나타낸다.

[Return 값]

Integer.

처리에 성공하면 objectname의 왼쪽 모서리로부터의 거리를 PowerBuilder 단위로 나타내고 에러가 발생하면 -1을 리턴한다. 이 NULL이면, PointerY 함수는 NULL을 리턴한다.

[예제]

* 다음은 어떤 윈도우의 control에 관한 스크립트로, 윈도우 상단으로부터 포인터까지의 거리를 메모리변수 li_dist에 저장한다.

integer li_Dist

li_Dist = Parent.PointerY( )

* 다음 어떤 control의 RButtonDown 스크립트는 커서 위치에 팝업메뉴 m_Appl.M_Help를 나타낸다.

m_Appl.M_Help.PopMenu(Parent.PointerX( ), Parent.PointerY( ))

[참고]

PointerX

PopMenu

WorkSpaceHeight

WorkSpaceWidth

WorkSpaceX

WorkSpaceY


PopMenu PowerScript 함수

[설명]

명시한 위치에 메뉴를 나타낸다.

[적용]

Menu objects

[문법]

menuname.PopMenu ( xlocation, ylocation )

[Argument]

menuname | 명시한 위치에 나타내려하는 메뉴 또는 메뉴바의 이름
xlocation | 윈도우의 좌측면으로부터 메뉴가 나타나는곳 까지의 거리 (PowerBuilder 단위)
ylocation | 윈도우의 상단면으로부터 메뉴가 나타나는곳 까지의 거리 (PowerBuilder 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면 PopMenu 함수는 NULL을 리턴한다.

[용법]

메뉴 object가 윈도우(윈도우가 오픈될 때 함께 오픈하기위한 윈도우)와 연관되어있지 않다면, 메뉴를 메모리에 할당하기 위하여 반드시 CREATE를 사용하여야 한다.

메뉴의 Visible property가 FALSE라면, 팝업 메뉴로 나타내기 전에 반드시 TRUE로 설정하여야 한다.

PopMenu 함수에 명시한 좌표는 활성화되어있는 윈도우를 기준한 값이다. MDI 응용프로그램에서, 좌표는 frame 윈도우를 기준한다. 커서 위치에 메뉴를 나타내려면 그 위치를 알아내기 위하여 활성화된 윈도우 (MDI 응용프로그램의 경우는 frame 윈도우)에 관하여 PointerX 와 PointerY 함수를 호출한다.

[예제]

* 다음 문장은 활성화된 윈도우의 100, 200 위치에 m_Emp.M_Procedures 메뉴를 나타낸다. m_Emp는 그 윈도우와 연관된 메뉴이다.

m_Emp.M_Procedures.PopMenu(100, 200)

* 다음 문장은 커서 위치에 m_Appl.M_File 메뉴를 나타낸다. m_Appl은 그 윈도우와 연관된 메뉴이다.

m_Appl.M_file.PopMenu(PointerX( ), PointerY( ))

* 다음 문장은 커서 위치에 팝업 메뉴를 나타낸다. Menu4는 Menu painter에서 생성되었고 m_language라는 메뉴를 포함하고 있다. menu4는 활성화된 윈도우에 관한 메뉴가 아니다. NewMenu는 Menu4의 instance이다.

Menu4 NewMenu

NewMenu = CREATE Menu4

NewMenu.m_language.PopMenu(PointerX(), PointerY())

* MDI 응용프로그램에서는, 포인터 함수에 관한 object로 MDI frame을 명시한다.

NewMenu.m_language.PopMenu(w_frame.PointerX(), w_frame.PointerY())


Pos PowerScript 함수

[설명]

한 문자열 내에서 명시한 문자열을 찾는다.

[문법]

Pos ( string1, string2 {, start } )

[Argument]

string1 | string2를 찾으려는 문자열
string2 | string1내에서 찾으려는 문자열
start | (선택사항) string1에서 탐색을 시작할 위치를 나타내는 값 (long). 기본설정 값은 1이다.

[Return 값]

Long.

start내에 명시한 위치 이후에 string1에서 string2가 처음 나타나는 시작위치를 리턴한다. string1에서 string2를 찾지 못하거나 start가 string1범위를 벗어나면 Pos 함수는 0을 리턴한다. 또한, argument값 중에 NULL이 있으면, Pos 함수는 NULL을 리턴한다.

[용법]

Pos 함수는 대소문자를 구별한다.

[예제]

* 다음 문장은 6을 리턴한다.

Pos("BABE RUTH", "RU")

* 다음 문장은 1을 리턴한다.

Pos("BABE RUTH", "B")

* 다음 문장은 0을 리턴한다.

Pos("BABE RUTH", "be") // 일치하는 문자열이 없다

* 다음 문장은 5번째 위치부터 찾기 시작하고, 그 위치 이후에 "BE"가 나타나지 않으므로 0을 리턴한다.

Pos("BABE RUTH", "BE", 5)

* 다음 문장은 SingleLineEdit sle_group내의 텍스트 "NY"를 North East로 변환한다.

long place_nbr

place_nbr = Pos(sle_group.Text, "NY")

sle_group.SelectText(place_nbr, 2)

sle_group.ReplaceText("North East")

* 다음 문장은 GetBandAtPointer의 값은 밴드 이름과 row 번호로 분리한다. Pos 함수는 문자열 내에서 탭(tab) 위치를 찾고 Left와 Mid 함수들은 탭(tab)의 왼쪽과 오른쪽 정보를 추출한다.

string s, ls_left, ls_right

integer li_tab

s = dw_groups.GetBandAtPointer()

li_tab = Pos(s, "~t", 1)

ls_left = Left(s, li_tab - 1)

ls_right = Mid(s, li_tab + 1)

사용자는 3개의 argument를 가진 함수를 분해하는 코드를 위의예와 유사하게 작성할 수 있다. 문자열 s는 값에의하여 통과된 argument가 되고 ls_left 와 ls_right는 참조에 의하여 통과된 것이다.

분해 함수를 사용할 수 있도록 tab으로 분리된 값을 리턴하는 다른 함수들은 GetObjectAtPointer 와 GetValue 등이다.

[참고]

Left

Mid

Right

Pos (DataWindow painter 함수)


Position PowerScript 함수: syntax 1

[설명]

편집 control에서 삽입 포인트의 위치를 구한다.

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.Position ( )

[Argument]

editname

삽입 포인트의 위치를 찾으려는 DataWindow control, EditMask, MultiLineEdit, SingleLineEdit, DropDownListBox, 또는 DropDownPictureListBox control 등의 이름

[Return 값]

Integer.

처리에 성공하면 editname내의 삽입 포인트의 위치를 리턴한다. editname이 NULL이면, Position 함수는 NULL을 리턴한다.

[용법]

Position 함수는 삽입 포인트 바로 다음에 위치한 문자의 위치를 구한다. 예를들어, 커서가 editname의 시작위치에 있다면 Position 함수는 1을 리턴한다. editname내에서 텍스트가 선택되어 있을 경우, Position 함수는 그 선택된 텍스트의 첫 번째 문자 위치를 리턴한다. DataWindow control에서는, 현재 row 와 column위에 있는 편집 control내의 삽입 포인트 위치를 구한다.

[예제]

* mle_EmpAddress가 Boston Street를 포함하고 있고, 커서가 Boston의 n 다음에 있으면서 선택된 텍스트가 없다면, 다음 문장은 7을 리턴한다.

mle_EmpAddress.Position( )

* mle_EmpAddress가 Boston Street를 포함하고 있고, Street가 선택되어 있다면, 다음 문장은 8 (Street의 S 문자 위치)를 리턴한다.

mle_EmpAddress.Position( )

[참고]

SelectedLine

SelectedStart

Position: Syntax 2

Position PowerScript 함수: syntax 2

[설명]

RichTextEdit control에서 삽입 포인트 또는 선택된 텍스트의 시작과 끝 라인과 칼럼 위치를 구한다.

[적용]

RichTextEdit 와 DataWindow controls

[문법]

rtename.Position ( fromline, fromchar {, toline, tochar })

[Argument]

rtename | 삽입 포인트나 선택된 텍스트 위치를 구하려는 RichTextEdit 또는 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.
fromline | 삽입 포인트 또는 선택영역의 시작 라인 번호를 저장하려는 long 타입의 변수
fromchar | 선택영역의 첫 번째 문자 또는 삽입포인트 바로 다음 문자의 라인 번호를 저장하려는 long 타입의 변수
toline (선택사항) | 선택 영역의 마지막 라인 번호를 저장하려는 long 타입의 변수
tochar (선택사항) | 선택영역 마지막 문자의 라인 번호를 저장하려는 long 타입의 변수

[Return 값]

Band 열거형 데이터 타입

선택영역 이나 삽입포인트를 포함하고잇는 밴드 (Detail!, Header!, 또는 Footer!)를 리턴한다.

[용법]

Position 함수는 toline과 tochar argument를 생략하면 삽입 포인트의 위치를 알아낸다. 텍스트가 선택되어있을 경우, 삽입 포인트는 삽입 포인트는 그 선택영역의 시작 위치 또는 마지막 위치에 올 수 있다. 예를들어, 텍스트를 선택하기 위하여 아래쪽으로 마우스를 드래그 하면, 삽입포인트는 선택영역의 끝에 위치하게 될 것이다.

선택영역이 존재하면, 어떤 라인의 시작위치에서 선택이 시작되거나 끝났다는 것을 나타내기 위하여(그 라인은 아무것도 선택되지않은 상태이다) 문자 argument를 0으로 설정할 수 있다. 마우스를 위쪽으로 드래그할 때, 선택은 어떤 라인의 처음 위치부터 시작할 수 있고 fromchar은 0으로 설정된다. 마우스를 아래쪽으로 드래그 할 때, 어떤 라인의 시작위치에서 선택이 끝날 수 있고 tochar는 0으로 설정된다.

선택영역 또는 삽입포인트

선택영역이 존재하는지 또는 삽입 포인트만 존재하는지 여부를 찾으려면, 4개 argument를 모두 명시한다. toline 과 tochar 가 모두 0으로 설정되어있으면, 선택영역은 없고 삽입포인트만 존재한다. 선택영역이 존재하고 삽입포인트의 위치를 알고자 한다면, 2개의 argument만 가지고 다시 Position 함수를 호출하여야 할 것이다.

삽입 포인트의 위치와 선택영역의 마지막 위치는 다를 수 있다

Position 함수는 선택된 영역의 첫 번째 라인과 문자 그리고 마지막 라인과 문자들을 나타낸다. 삽입 포인트의 위치를 구할 때, Position 함수는 삽입 포인트 바로 다음 문자를 나타낸다. 따라서, 텍스트가 선택되어있고 삽입 포인트가 그 끝에 있다면, 삽입 포인트의 값과 선택영역의 값은 서로 다르게 될 것이다.

예를들어, 처음부터 4개의 문자들이 라인 1에 선택되어있고 삽입 포인트가 그 끝에 있다고 가정하자. 삽입 포인트의 위치를 알고자 한다면:

rte_1.Position(ll_line, ll_char)

? ll_line은 1로 설정된다

ll_char는 5로 설정된다. 문자는 삽입포인트 다음의 문자를 나타내기 때문이다.

선택영역의 위치를 알고자 한다면:

rte_1.Position(ll_startline, ll_startchar, ll_endline, ll_endchar)

? ll_startline 과 ll_startchar 모두 1로 설정된다

ll_endline 은 1로 설정되고 ll_endchar는 4로 설정된다. 선택영역의 마지막 문자를 나타내기 때문이다.

SelectText 함수로 값을 통과시키기

Position 함수로 구할 수 있는 값들은 단순히 선택영역을 나타내는 정보보다 더 많을 것을 포함하고 있기 때문에, 직접 SelectText 함수로 값을 통과 시킬 수 없다. 예를들어, 텍스트를 선택할 때 문자 위치 0은 선택영역을 설명하는데에는 의미가 있더라도 타당한 문자 위치는 될 수가 없는 것이다.

[예제]

* 다음 문장은 선택영역의 시작과 끝에관한 밴드, 라인 칼럼값 등을 구하기 위하여 Position 함수를 호출하는 예이다. 구한 값들은 문자열로 변환되고 StaticText st_status에 표시된다.

integer li_rtn

long ll_startline, ll_startchar

long ll_endline, ll_endchar

string ls_s, ls_band

band l_band

// 선택영역의 밴드와 시작 및 마지막 위치를 알아낸다

l_band = rte_1.Position(ll_startline, ll_startchar, ll_endline, ll_endchar )

// 문자열로 변환한다

ls_s = "Start line/char: " + String(ll_startline) + ", " + String(ll_startchar)

ls_s = ls_s + " End line/char: " + String(ll_endline) + ", " + String(ll_endchar)

// Band 데이터 타입을 문자열로 변환한다

CHOOSE CASE l_band

CASE Detail!

ls_band = " Detail"

CASE Header!

ls_band = " Header"

CASE Footer!

ls_band = " Footer"

CASE ELSE

ls_band = " No band"

END CHOOSE

ls_s = ls_s + ls_band

// 구한 값들을 나타낸다

st_status.Text = ls_s

* 다음 예는 현재 선택된 영역을 1줄 아래로 확장한다. 삽입 포인트 또는 선택영역의 존재여부를 알아내고, 삽입 포인트의 위치가 선택영역의 시작 또는 마지막위치에 있는지 알아내고, 선택영역의 마지막 위치가 라인의 시작 위치인지 여부를 알아낸다.

integer rtn

long l1, c1, l2, c2, linsert, cinsert

long l1select, c1select, l2select, c2select

// 선태기영역의 시작과 끝을 구한다

rte_1.Position( l1, c1, l2, c2)

// 삽입 포인트 위치를 알아낸다

rte_1.Position(linsert, cinsert)

IF l2 = 0 and c2 = 0 THEN //삽입포인트만 존재하면

l1select = linsert

c1select = cinsert

l2select = l1select + 1 // 마지막 라인을 1 증가한다

c2select = c1select

ELSEIF l2 > l1 THEN // 선택영역이 있고, 삽입포인트가 그 끝에 있다

IF c2 = 0 THEN // 선택영역의 마지막이 어떤 라인의 첫 번째에 위치한다

c2 = 999

l2 = l2 - 1

END IF

l1select = l1

c1select = c1

l2select = l2 + 1 // 마지막 라인을 1 증가한다

c2select = c2

ELSEIF l2 < l1 THEN // 삽입포인트가 선택영역에 첫번째에 있다

IF c1 = 0 THEN

c1 = 999

l1 = l1 - 1

END IF

l1select = l2

c1select = c2

l2select = l1 + 1 // 마지막 줄을 1 증가 시킨다

c2select = c1

ELSE

l1select = l1

l2select = l2 + 1

IF c1 < c2 THEN

c1select = c1

c2select = c2

ELSE // c1 > c2, 시작위치에 삽입포인트가 있다

c1select = c2

c2select = c1

END IF

END IF

// 선택영역을 확장한다

rtn = rte_1.SelectText( l1select, c1select, l2select, c2select )

[참고]

SelectedLine

SelectedStart

SelectText

Position: Syntax 1


Post PowerScript 함수

[설명]

메시지를 PowerBuilder 윈도우 또는 다른 응용프로그램 윈도우의 message queue에 추가한다.

[문법]

Post ( handle, message#, word, long )

[Argument]

handle | 메시지를 추가하려는 윈도우 (PowerBuilder나 다른 응용프로그램에서 생성한 윈도우)의 system handle 값 (long)
message# | 추가하려는 시스템 메시지 번호 (UnsignedInteger)
word | 메시지의 정수 값 (long). 메시지에 의하여 이 argument가 사용되지 않는다면, 0을 넣는다
long | 메시지의 long 값 또는 문자열

[Return 값]

Boolean.

argument 값 중에 NULL이 있으면, Post 함수는 NULL을 리턴한다.

[용법]

PowerBuilder에서 정의하지 않은 시스템 이벤트를 트리거 시키고자 할 때에 Post 나 Send 함수를 사용한다. Post 함수는 비동시적(asynchronous)이므로, 윈도우의 메시지 큐(message queue) 끝에 메시지를 추가한다. Send 함수는 동시적(synchronous)이므로, 즉시 이벤트를 트리거 한다.

PowerBuilder 윈도우의 handle을 구하려면, Handle 함수를 사용한다.

PowerBuilder 이벤트를 트리거 하려면, TriggerEvent 나 PostEvent를 사용한다. 이들 함수는 그 이벤트와 연관된 스크립트를 실행한다. 이들 함수는 더 손쉽게 메시지 큐 코드를 작성하고 통과시킬 수 있다.

long으로 문자열을 명시하면, Post 함수는 문자열의 복사본을 저장하고 포인터를 통과 시킨다.

Platform 정보

Macintosh 상에서, PowerBuilder object의 handle을 구하고 메시지를 추가하기 위하여 Handle 함수를 사용할 수 있다. 그러나, 외부 object의 handle을 구하기 위하여 Handle 함수를 사용하지는 못한다.

[예제]

* 다음 문장은 w_date 윈도우가 가지고있던 메시지 큐안의 모든 메시지를 처리하고 한 페이지 아래로 스크롤 시킨다.

Post(Handle(w_date), 277, 3, 0)

[참고]

Handle

PostEvent

Send

TriggerEvent


PostEvent PowerScript 함수

[설명]

object의 이벤트 큐에 이벤트를 추가한다.

[적용]

응용프로그램 object를 제외한 모든 object

[문법]

objectname.PostEvent ( event, { word, long } )

[Argument]

objectname | 연관된 이벤트를 가지고 있는 PowerBuilder object 또는 control (응용프로그램 제외)의 이름
event | PowerBuilder 이벤트(예를들어, Clicked!, Modified!, DoubleClicked! 등)를 나타내는 TrigEvent 열거형 데이터 타입 또는 이벤트 이름을 나타내는 문자열. 이벤트는 반드시 objectname에관하여 타당한 이벤트여야 하고 objectname내에 그 이벤트에관한 스크립트가 반드시 존재하여야 한다.
word | (선택사항) 시스템 Message object의 WordParm property에 저장될 long 값. long값을 명시하고자 할 때에는 word에 0을 명시한다. (platform간의 호환을 고려하여, WordParm 과 LongParm 모두 long 값을 갖는다)
long | (선택사항) 시스템 Message object의 LongParm property에 저장시키고자 하는 long 값 또는 문자열. 문자열을 명시하면, LongParm property에 문자열의 포인터가 저장되고, String 함수를 이용하여 사용할 수 있다 ([용법] 참조)

[Return 값]

Boolean.

처리에 성공하면 TRUE를 리턴하고 이벤트가 objectname에 관하여 타당하지 않거나 objectname내의 그 이벤트에관한 스크립트가 존재하지 않을 경우에는 FALSE를 리턴한다. argument 값중에 NULL이 있으면, PostEvent 함수는 NULL을 리턴한다.

[용법]

응용프로그램 object에 관해서는 이벤트 큐에 이벤트를 추가할 수 없다. 대신 TriggerEvent 함수를 사용하도록 한다.

그리기용 object와 같이 이벤트를 가지고있지 않은 object에 대해서는 이벤트를 추가하거나 트리거할 수 없다. 또한 사용자와 상호작용이 없는 일괄처리 응용프로램은 이벤트 큐를 가지고있지 않기 때문에 이벤트를 추가하거나 트리거할 수 없다.

PostEvent를 호출한 이후에, 처리에 성공하였는지 여부를 판단하기 위하여 리턴 코드를 체크하는 것이 좋다.

word 와 long argument를 가지고 이벤트 스크립트에 정보를 통과 시킬 수 있다. 그 정보는 Message object에 저장된다. 스크립트 내에서, 그 정보에 접근하기 위하여 Message object의 WordParm 과 LongParm 필드를 참조할 수 있다. Message object는 사용자가 통과 시킨 정보를 유용하게 하기 위하여 다른 코드가 그 Message object를 사용 중이라 할지라도 추가된 이벤트 스크립트가 실행되기 직전에 저장되고 restore 된다.

long으로 문자열을 명시하였다면, 형식 파라미터 "address"와 함께 String 함수를 사용함으로써 트리거된 이벤트내에서 그 문자열을 사용할 수 있다. (PowerBuilder는 임의의 메모리 위치에 문자열을 저장한다) 사용자는 다음과 같은 스크립트를 작성할 수 있을 것이다.

string PassedString

PassedString = String(Message.LongParm, "address")

TriggerEvent 와 PostEvent 함수는 코드의 중복을 방지하는데 매우 유용하다. 두 개의 control이 동일한 일을 수행한다면, 양쪽에 동일한 코드를 작성하는 대신에 하나의 control 이벤트 스크립트에서 다른 이벤트를 실행시키기 위하여 PostEvent 함수를 사용할 수 있다. 예를들어, 어떤 버튼과 어떤 메뉴가 모두 데이터를 삭제하는 것이라면, 버튼의 Clicked 스크립트에서는 삭제를 수행하고 메뉴의 Clicked 이벤트 스크립트에서는 버튼의 Clicked 이벤트 스크립트를 실행하는 이벤트를 추가할 수 있는 것이다.

PostEvent 또는 TriggerEvent의 선택

PostEvent 와 TriggerEvent 모두 이벤트 스크립트를 실행시킨다. PostEvent 함수는 비동시적(asynchronous)이므로, object의 이벤트 큐(event queue) 끝에 이벤트를 추가한다. TriggerEvent 함수는 동시적(synchronous)이므로, 즉시 이벤트를 트리거 한다.

추가된 이벤트가 실행되기 전에 현재의 이벤트 스크립트를 완전히 수행하고자 할 때에는 PostEvent 함수를 사용한다. TriggerEvent 함수는 트리거된 이벤트 스크립트를 수행하기 위하여 현재 스크립트를 잠시 중단 시킨다. 이 함수는 인쇄를 취소 시키는 것과같이, 처리 중에 끼어 들 필요가 있을 때 사용한다.

이들 함수가 이벤트 스크립트의 마지막 줄에 있고 수행하지 않은 다른 이벤트가 없을 경우, PostEvent 와 TriggerEvent 함수는 모두 동일한 효과를 가진다.

Windows에서의 이벤트와 메시지

PostEvent 와 TriggerEvent는 모두 이벤트와 연관된 스크립트를 실행시킨다. 그러나, 이들 함수는 실제 이벤트 메시지를 보내지는 않는다. 이것은 대상이 되는 object와 이벤트를 선택할 때 매우 중요한 것이다. 다음의 배경 정보는 이러한 개념을 설명한 것이다.

많은 PowerBuilder 함수들은 Windows 메시지를 보낸다. 예를들어, Close 함수는 Windows 닫기 메시지 (WM_CLOSE)를 보내고, PowerBuilder는 내부적 닫기 메시지 (PBM_CLOSE)에 대응시킨다. 다음에, 스크립트의 Close 이벤트 스크립트를 실행하고 윈도우를 닫는다.

Close! argument와 함께 TriggerEvent 나 PostEvent 함수를 사용하면, PowerBuilder는 Close 이벤트 스크립트를 실행하지만 닫기 메시지를 받지않기 때문에 윈도우를 닫지는 않는다. 따라서, 트리거할 이벤트를 선택하는 것은 매우 중요하다. 만일 Close 함수를 호출하는 스크립트를 가진 버튼에 관한 Clicked! 이벤트를 트리거한다면, PowerBuilder는 Close 이벤트 스크립트를 실행한 후 윈도우를 닫게 될 것이다.

PowerBuilder에서 정의하지않은 시스템 이벤트를 트리거하고자 한다면 Post 또는 Send 함수를 사용한다.

[예제]

* 다음 문장은 CommandButton cb_OK의 이벤트 큐에 Clicked 이벤트를 추가한다. 추가한 이벤트 스크립트는 다른 이벤트 스크립트를 모두 실행한 이후에 실행될 것이다.

cb_OK.PostEvent(Clicked!)

* 다음 문장은 사용자-정의 이벤트 cb_exit_request를 parent 윈도우의 이벤트 큐에 추가한다.

Parent.PostEvent("cb_exit_request")

* 다음 문장은 argument와 함께 cb_exit_request에관한 이벤트를 추가한 다음 그 이벤트의 스크립트에서 Message object로부터 값을 받는다.

예제의 첫 번째 부분은 윈도우내의 버튼에관한 코드이다. 여기에서는 사용자-정의 이벤트 cb_exit_request를 parent 윈도우의 이벤트 큐에 추가한다. 이벤트 스크립트에서 사용하기위한 값 455는 Message object에 저장된다.

Parent.PostEvent("cb_exit_request", 455, 0)

예제의 두 번째 부분은 Message object에 통과된 값을 지역변수에 할당하는 cb_exit_request 이벤트 스크립트의 시작 부분이다.

integer numarg

numarg = Message.WordParm

[참고]

Post

Send

TriggerEvent


Preview PowerScript 함수

[설명]

RichTextEdit control의 내용을 인쇄할 문서의 미리보기 형식 이나 편집 형식으로 나타낸다.

[적용]

RichTextEdit controls

[문법]

rtename.Preview ( previewsetting )

[Argument]

rtename | 미리보기 또는 편집 하려는 RichTextEdit control의 이름
previewsetting | RichTextEdit를 미리보기 또는 편집 모드로 나타나도록 지시하는 boolean 값 ·True -- RichTextEdit의 내용을 인쇄할때의 미리보기 형식으로 나타낸다 ·False -- 편집 가능한 형식으로 나타낸다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit control은 그 내용을 보기위하여 편집 모드와 미리보기 모드의 두가지 방법을 가지고 있다. Preview 함수는 이들 두 가지 모드 중에서 선택할 수 있도록 해준다.

편집 모드는 텍스트를 읽기 가능한 형식으로 나타낸다. 사용자는 텍스트의 입력, 선택, 변경 등을 할 수 있다. 여기에는 carriage return, 공란, 탭, 입력 필드 등과 같은 인쇄할 수 없는 문자의 표시를 제어하는 property가 있다. 편집 모드에서는 control의 편집 영역에 toolbar, ruler bar, tab bar 등을 나타낼 수 있다.

미리보기 모드는 control내에 축소된 페이지 형태로 나타낸다. 페이지는 control내에 가득 차도록 크기가 조정된다. 미리보기 모드는 용지 크기와 여백 등을 명시하기위한 편집 박스를 제공한다. control이 미리보기 모드로 전환되면 모든 선택영역은 무시된다. 사용자는 미리보기 모드에서 텍스트를 편집할 수 없지만, 스크립트에서 텍스트의 선택과 변경, 문서의 삽입 등을 위한 함수를 호출할 수 있다.

RichTextEdit control의 크기

미리보기 모드에서 RichTextEdit control을 페이지 형식으로 나타내고 스크롤을 제어하기에 충분한 크기가 되도록 조정한다.

control이 미리보기 모드일 때 ShowHeadFoot 함수를 호출하면, 머리말과 꼬리말을 편집할 수 있도록 편집 모드로 돌아간다.

[예제]

* 다음 문장은 RichTextEdit rte_1을 미리보기 형식으로 전환한다.

rte_1.Preview(TRUE)

* 다음 문장은 편집 모드로 RichTextEdit rte_1의 내용을 나타낸다.

rte_1.Preview(FALSE)

[참고]

IsPreview


Print PowerScript 함수: syntax 1

[설명]

DataWindow control 이나 DataStore object의 내용을 프린터로 보낸다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Print ( { canceldialog } )

[Argument]

dwcontrol | 인쇄할 정보를 포함하고 있는 DataWindow control, DataStore, child DataWindow의 이름
canceldialog | (선택사항) 인쇄를 중단할 수 있도록 non-modal 대화상자를 표시할 것인지 여부를 나타내는 boolean. ·TRUE -- (기본설정 값) 대화상자를 나타낸다 ·FALSE -- 대화상자를 나타내지 않는다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument의 값 중에 NULL이 있으면, Print 함수는 NULL을 리턴한다.

[용법]

PowerBuilder는 opening job, sending data, closing job에 의하여 프린트 job을 관리한다. "Syntax 1"을 사용할 때에는, 프린트 job이 자동으로 발생하므로 PrintOpen 과 PrintClose 함수를 사용할 필요가 없다.

DataWindow object의 내용을 인쇄하려면 "Syntax 1"을 사용한다. Print 함수는 retrieve된 모든 row들을 인쇄한다. 하나의 job에 여러 개의 DataWindow들을 인쇄할때에는, Print 함수를 사용하지 말고, PrintOpen 함수로 프린트 job을 오픈하고 각 DataWindow에 대하여 PrintDataWindow 함수를 호출한 다음 그 job을 닫도록 한다.

인쇄된 출력물은 DataWindow object에관하여 스크린상에 나타난 것과 동일한 폰트와 레이아웃을 사용한다.

DataWindow object의 표현형식이 RichTextEdit일 경우, 각 row는 새 페이지에 출력된다.

DataWindow 인쇄에관한 이벤트

DataWindow control 이나 DataStore에 관하여 Print 함수를 사용하면, 데이터가 프린터 (또는 스풀러)로 보내지기 직전에 PrintStart 이벤트를 트리거하고, 각 페이지에 관하여 PrintPage 이벤트를 트리거하고, 마지막으로 인쇄를 완료하면 PrintEnd 이벤트를 트리거한다.

PrintPage 이벤트는 형식화된 페이지에 관한 인쇄여부를 제어할 수 있도록 리턴 코드를 가진다. PrintPage 이벤트에서 1을 리턴시킴으로써 인쇄할 페이지를 넘어갈 수 도 있다.

[예제]

* 다음 문장은 dw_employee의 내용을 현재 프린터로 보낸다.

dw_employee.Print( )

[참고]

PrintDataWindow

Print: Syntax 2

Print: Syntax 3

Print: Syntax 4

Print PowerScript 함수: syntax 2

[설명]

PrintOpen 함수와 함께 시작된 프린트 job에 윈도우나 그래프 control과 같은 가시적 object를 포함 시킨다.

[적용]

모든 object

[문법]

objectname.Print ( printjobnumber, x, y {, width, height } )

[Argument]

objectname | 인쇄하려는 object의 이름. object는 윈도우 또는 윈도우 내에 위치할 수 있는 모든 control들을 포함한 DragObject 타입이어야 한다
printjobnumber | 프린트 job에 할당할 PrintOpen 함수의 번호
x | object 좌측 모서리에 대한 페이지상의 x 좌표 ( 1/1000 인치 )
y | object 좌측 모서리에 대한 페이지상의 y 좌표 ( 1/1000 인치 )
width | (선택사항) 인쇄할 object의 폭 ( 1/1000 인치 ). 생략하면, object의 원래 폭을 사용한다.
height | (선택사항) 인쇄할 object의 높이 ( 1/1000 인치 ). 생략하면, object의 원래 높이를 사용한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Print 함수는 NULL을 리턴한다.

[용법]

PowerBuilder는 opening job, sending data, closing job에 의하여 프린트 job을 관리한다. "Syntax 2"와 "Syntax 3"을 사용할 때에는, 사용자가 처리를 관리하기 위하여 반드시 PrintOpen 함수와 PrintClose 함수 또는 PrintCancel 함수를 호출하여야 한다.

인쇄영역과 여백

인쇄 영역은 실제 페이지 크기에서 여백을 뺀 것이다. 프린터에 따라, PrintSend 함수와 프린터에 정의된 제어코드(escape sequence)를 사용하여 여백을 변경할 수 있다.

[예제]

* 다음 예제는 500, 1000 위치에 원래 크기로 CommandButton cb_close을 인쇄한다.

long Job

Job = PrintOpen( )

cb_close.Print(Job, 500,1000)

PrintClose(Job)

* 다음 예제는 새로운 페이지를 정의하여 프린트 job을 오픈한 다음 Print 함수의 3번째 문법을 사용하여 타이틀을 인쇄한다. 다음에 첫 번째 페이지에 그래프를 인쇄하고 두 번째 페이지에 윈도우를 인쇄하기 위하여 Print의 2번째 문법을 사용한다.

long Job

Job = PrintOpen( )

Print(Job, "Report of Year-to-Date Sales")

gr_sales1.Print(Job, 1000,PrintY(Job)+500, 6000,4500)

PrintPage(Job)

w_sales.Print(Job, 1000,500, 6000,4500)

PrintClose(Job)

[참고]

PrintCancel

PrintClose

PrintOpen

PrintScreen

Print: Syntax 1

Print: Syntax 3

Print: Syntax 4

Print PowerScript 함수: syntax 3

[설명]

PrintOpen 함수로 오픈한 프린트 job의 일부로 한 줄 이상의 텍스트를 보낸다. 텍스트를 전,후에 탭을 설정을 명시할 수도 있다. 탭 설정은 페이지상에서 텍스트의 수평 위치를 제어한다.

[적용]

object를 명시하지 않는다

[문법]

Print ( printjobnumber, { tab1, } string {, tab2 } )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
tab1 | (선택사항) string을 인쇄하기 전에 프린트 커서를 이동시키기 위하여 인쇄 영역의 좌측면으로부터 1/1000 인치 단위로 측정된 위치. 프린트 커서가 이미 그 위치에 있거나 그 위치를 나타낼 수 없거나 tab1을 생략하면, Print 함수는 프린트 커서의 현재 위치에서부터 인쇄하기 시작한다. string 인쇄할 문자열. 문자열이 캐리지리턴과 개행 문자의 쌍(~r~n)을 포함하고 있으면, 문자열은 여러 줄로 인쇄된다. 그러나, 다음 라인부터는 최초의 탭 위치가 무시된다.
tab2 | (선택사항) string을 인쇄한 이후에 프린트 커서를 새로 이동시키기 위하여 인쇄 영역의 좌측면으로부터 1/1000 인치 단위로 측정된 위치. 프린트 커서가 이미 그 위치에 있거나 그 위치를 나타낼 수 없으면, Print 함수는 tab2를 무시하고 프린트 커서는 텍스트의 끝에 남아 있는다. tab2를 생략하면, 프린트 커서는 새로운 라인의 시작위치로 이동한다.

[Return 값]

Integer.

처리에성공하면 1을 리턴하고 에러가발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Print 함수는 NULL을 리턴한다.

[용법]

PowerBuilder는 opening job, sending data, closing job에 의하여 프린트 job을 관리한다. "Syntax 2"와 "Syntax 3"을 사용할 때에는, 사용자가 처리를 관리하기 위하여 반드시 PrintOpen 함수와 PrintClose 함수 또는 PrintCancel 함수를 호출하여야 한다.

Print 커서

프린트 job에서, PowerBuilder는 인쇄 위치를 유지시키기 위하여 프린트 커서를 사용한다. 프린트 커서는 인쇄될 위치의 좌측-상단 모서리 좌표를 저장한다. PowerBuilder는 텍스트를 인쇄한 이후에 그 프린트 커서를 갱신한다.

텍스트를 인쇄할 때의 줄 간격

PowerBuilder에서 줄 간격은 문자 높이에 비례한다. 기본 설정된 줄 간격은 문자 높이의 1.2배이다. 새로운 줄에 인쇄를 시작할 때, 커서의 x 좌표는 0으로 설정되고 y 좌표는 현재 설정된 줄 간격 만큼 증가한다. 문자 높이에 곱할 인수를 명시하는 PrintSetSpacing 함수를 사용하여 줄 간격을 변경 시킬 수 있다.

Print 함수의 "Syntax 3"은 매번 y 좌표를 증가시켜 새로운 줄을 생성하기 때문에, 자동으로 페이지 넘김을 다둘 수 있다. y 좌표가 페이지 크기를 초과할 때, PowerBuilder는 자동으로 프린트 job에 새 페이지를 생성한다. 커서 위치를 제어하는 인쇄 함수들(예를들어, PrintText 또는 PrintLine)을 사용하고 있다면, PrintPage 함수를 호출할 필요가 없다.

프린트 영역과 여백

인쇄 영역은 실제 페이지 크기에서 프린터 자체내의 여백을 뺀 것이다. 프린터에 맞추어, PrintSend 함수와 자체내의 프린터-정의 escape 코드를 이용하여 여백을 변경할 수 있다.

폰트의 사용

문자열을 인쇄할 때 Print 함수에 의하여 사용될 폰트를 명시하기 위하여 PrintDefineFont 와 PrintSetFont 함수를 사용할 수 있다.

[예제]

* 다음 예제는 프린트 job을 오픈하고, 기본설정 폰트로 문자열 Powersoft Corporation을 인쇄한 후 새로운 줄을 시작한다.

long Job

// 빈 페이지를 정의하고 job 번호를 할당한다

Job = PrintOpen( )

// 문자열을 인쇄하고 새로운 줄을 시작한다

Print(Job, "Powersoft Corporation")

...

PrintClose(Job)

* 다음 예제는 프린트 job을 오픈하고, 기본설정 폰트로 문자열 Powersoft Corporation을 인쇄하고, 탭을 5인치로 하고 새로운 줄은 시작하지 않는다.

long Job

// 빈 페이지를 정의하고 job 번호를 할당한다

Job = PrintOpen( )

// 문자열을 인쇄하고 새로운 줄을 시작하지는 않는다

Print(Job, "Powersoft Corporation", 5000)

...

PrintClose(Job)

* 첫 번째 Print 문장은 1/2인치 탭 위치에 문자열 Powersoft Corporation을 인쇄하고, 새로운 줄을 시작한다. 두 번째 Print 문장은 1인치 탭 위치에 문자열 Directors를 시작하고 새로운 줄을 시작한다.

long Job

// 빈 페이지를 정의하고 job 번호를 할당한다

Job = PrintOpen( )

// 문자열을 인쇄하고 새로운 줄을 시작한다

Print(Job, 500, "Powersoft Corporation")

// 좌측면에서 1인치 탭 위치에 인쇄한다

Print(Job, 1000, "Directors:")

...

PrintClose(Job)

* 첫 번째 문장은 1/2인치 탭 위치에 문자열 Powersoft Corporation을 인쇄하고, 6인치 탭 위치를 지정하고 새로운 줄을 시작하지는 않는다. 두 번째 Print 문장은 현재 날짜를 인쇄하고 새로운 줄을 시작한다.

long Job

// 빈 페이지를 정의하고 job 번호를 할당한다

Job = PrintOpen( )

// 문자열을 인쇄하고 6인치 위치에 탭을 지정한다

Print(Job, 500, "Powersoft Corporation", 6000)

// 같은 줄에 현재 날짜를 인쇄한다

Print(Job, String(Today()))

...

PrintClose(Job)

* MultiLineEdit mle_message에 데이터베이스 에러 메시지를 나타내는 윈도우에서, Print 버튼에 관한 다음 스크립트는 날짜와 시간 그리고 에러메시지와 함께 타이틀을 인쇄한다.

long li_prt

li_prt = PrintOpen("Database Error")

Print(li_prt, "Database error - " + String(Today(), "mm/dd/yyyy") &

+ " - " + String(Now(), "HH:MM:SS"))

Print(li_prt, " ")

Print(li_prt, mle_message.text)

PrintClose(li_prt)

[참고]

PrintCancel

PrintClose

PrintDataWindow

PrintOpen

PrintScreen

PrintSetFont

PrintSetSpacing

Print: Syntax 1

Print: Syntax 2

Print: Syntax 4

Print PowerScript 함수: syntax 4

[설명]

RichTextEdit control의 내용을 인쇄한다.

[적용]

RichTextEdit controls

[문법]

rtename.Print ( copies, pagerange, collate, canceldialog )

[Argument]

rtename | 인쇄하려는 RichTextEdit control의 이름
Copies | 인쇄하려는 복사 매수 (integer)
Pagerange | 인쇄하려는 페이지를 지정한 문자열. 모든 페이지를 인쇄하려면 빈 문자열("")을 지정한다. 일부 페이지를 지정하려면 "1-3" 또는 "2,5,8-10"등과 같이 대쉬(-)를 사용하여 범위를 지정하거나 쉼표(,)를 이용하여 인쇄할 페이지들을 분리한다. rtename이 DataWindow와 데이터를 공유할 때, pagerange는 문서의 각 instance를 참조하지 않고 그 control내의 모든 페이지에 기초하여 페이지를 참조한다.
Collate | 페이지 순서대로 복사할 것인지 여부를 나타내는 boolean. ·TRUE -- 페이지 순서로 복사한다 ·FALSE -- 페이지 순서로 복사하지 않는다
Canceldialog | 사용자가 인쇄를 취소할 수 있도록 non-modal 대화상자를 표시할 것인지 여부를 나타내는 bollean. ·TRUE -- 대화상자를 나타낸다 ·FALSE -- 대화상자를 나타내지 않는다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit control이 DataWindow와 데이터를 공유하고 있을 때, controlso에 포함된 전체 페이지 수는 문서의 페이지 카운트에 DataWindow의 row 카운트를 곱한 것이다.

문서의 머리말이나 꼬리말에 입력 필드를 포함시켜서 인쇄된 페이지 번호를 나타낼 수도 있다. PrintHeader나 PrintFooter 이벤트에서 InputFieldChangeData 함수를 호출하면, 입력 필드의 현재 값을 명시할 수 있다.

[Event]

Print 함수는 다음 이벤트들을 유발 시킬 수 있다:

· PrintHeader

· PrintFooter

[예제]

* 다음 문장은 RichTextEdit control rte_1내 문서의 1 부터 5 페이지 까지 1매 복사한다. 출력은 페이지 순서로 하지않고 사용자가 인쇄를 중단할 수 있도록 대화상자를 나타낸다.

rte_1.Print(1, "1-5", FALSE, TRUE)

[참고]

Preview

Print: Syntax 1

Print: Syntax 2

Print: Syntax 3


PrintBitmap PowerScript 함수

[설명]

현재 페이지상의 명시한 위치에 bitmap을 기록한다.

[문법]

PrintBitmap ( printjobnumber, bitmap, x, y, width, height )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
bitmap | 비트맵 이미지 파일 이름 (string)
x | 비트맵 이미지에대한 페이지상의 x 좌표 (1/1000인치 단위) (integer)
y | 비트맵 이미지에대한 페이지상의 y 좌표 (1/1000인치 단위) (integer)
width | 비트맵 이미지의 폭 (1/1000인치 단위) (integer). width가 0이면, PowerBuilder는 그 이미지의 원래 폭을 사용한다.
height | 비트맵 이미지의 높이 (1/1000인치 단위) (integer). width가 0이면, PowerBuilder는 그 이미지의 원래 높이를 사용한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintBitmap 함수는 NULL을 리턴한다.

[용법]

PrintBitmap 함수는 프린트 커서의 위치를 변경시키지 않고, 이 함수를 호출하기 전 값을 그대로 유지한다. 일반적으로, 좌표를 명시하는 프린트관련 함수들은 프린트 커서에 영향을 주지 않는다.

[예제]

* 다음 문장은 새로운 페이지를 정의하고 50, 100 위치에 원래 크기로 비트맵 파일 d:\PB\BITMAP1.BMP을 인쇄한다.

long Job

// 비어있는 새로운 페이지를 정의한다

Job = PrintOpen( )

// 원래크기로 비트맵을 인쇄한다

PrintBitmap(Job, "d:\PB\BITMAP1.BMP", 50,100, 0,0)

// 그 페이지를 프린터로 보내고 Job을 종료한다

PrintClose(Job)

On Macintosh

Macintosh 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "HD:PB:Bitmap1.BMP", 50,100, 0,0)

On UNIX

UNIX 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "/export/home/pb/bitmap1.bmp", 50,100, 0,0)

[참고]

PrintClose

PrintLine

PrintOpen

PrintOval

PrintRect

PrintRoundRect


PrintCancel PowerScript 함수: syntax 1

[설명]

Print 함수의 "Syntax 1"을 사용하여 인쇄한 DataWindow나 DataStore의 인쇄작업을 취소한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.PrintCancel ( )

[Argument]

dwcontrol

Print 함수의 "Syntax 1"로 인쇄한 DataWindow control, DataStore object, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, PrintCancel 함수는 NULL을 리턴한다.

[용법]

PrintCancel 함수는 스풀 파일을 삭제하고 그 job을 닫으므로써 명시한 DataWindow나 DataStore의 인쇄작업을 취소한다.

DataWindow나 DataStore를 인쇄하기 위하여 PrintOpen 함수를 사용하지 않고 Print 함수를 사용하였을 때에는, 인쇄를 취소하기 위하여 "Syntax 1"을 사용한다. 프린트 job의 일부분으로 DataWindow를 인쇄하기 위하여 PrintDataWindow 함수를 사용하였을 때에는, 인쇄를 취소하기 위하여 "Syntax 2"를 사용한다.

[예제]

* 다음 문장은 Cancel 대화상자를 나타내지 않고 현재 프린터에 DataWindow dw_employee의 내용을 보낸 다음 인쇄작업을 취소 시킨다.

dw_Employee.Print(FALSE)

dw_employee.PrintCancel( )

[참고]

Print

PrintCancel:Syntax 2

PrintCancel PowerScript 함수: syntax 2

[설명]

PrintOpen 함수로 오픈된 프린트 job의 인쇄를 취소한다. 프린트 job은 PrintOpen 함수에의하여 리턴되는 숫자로 식별된다.

[문법]

PrintCancel ( printjobnumber )

[Argument]

printjobnumber

프린트 job에 할당된 PrintOpen 함수의 리턴값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. printjobnumber가 NULL이면, PrintCancel 함수는 NULL을 리턴한다.

[용법]

PrintCancel 함수는 스풀 파일을 삭제하고 job 을 닫음으로써 명시한 프린트 job을 취소한다. PrintCancel 함수가 프린트 job을 닫기 때문에, PrintClose 함수를 추가로 호출할 필요는 없다.

[예제]

* 다음 예제에서, Print 버튼 스크립트는 프린트 job을 오픈 한 다음 cancel 버튼을 가진 윈도우를 오픈한다. 사용자가 cancel 버튼에 클릭하면, 스크립트는 job을 취소시키기 원하는지 여부를 나타내는 global 변수를 설정한다. Print 버튼의 각 인쇄 명령을 실행한 이후에, global 변수를 체크하고 그 변수가 TRUE이면 job을 취소한다.

정의한 global 변수는 다음과 같다:

boolean gb_printcancel

Print 버튼의 스크립트는 다음과 같다:

long job, li

gb_printcancel = FALSE

job = PrintOpen("Test Page Breaks")

IF job < 1 THEN

MessageBox("Error", "Can't open a print job.")

RETURN

END IF

Open(w_printcancel)

PrintBitmap(Job, "d:\PB\bitmap1.bmp", 5, 10, 0, 0)

IF gb_printcancel = TRUE THEN

PrintCancel(job)

RETURN

END IF

... // gb_printcancel 체크 기능을 포함한 추가적인 인쇄명령

... //

PrintClose(job)

Close(w_printcancel)

두 번째 윈도우의 cancel 버튼에관한 스크립트:

gb_printcancel = TRUE

Close(w_printcancel)

On Macintosh

Macintosh 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "HD:PB:Bitmap1.BMP", 50,10, 0,0)

On UNIX

UNIX 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "/export/home/pb/bitmap1.bmp", 50,10, 0,0)

[참고]

Print

PrintClose

PrintOpen

PrintCancel:Syntx 1


PrintClose PowerScript 함수

[설명]

현재 페이지를 프린터 (또는 스풀러)로 보내고 그 job을 닫는다. PrintCancel 함수로 프린트 job을 닫지 않은 한 프린트의 마지막 명령으로 PrintClose 함수를 호출하도록 한다.

[문법]

PrintClose ( printjobnumber )

[Argument]

printjobnumber

프린트 job에 할당된 PrintOpen 함수의 리턴값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. printjobnumber가 NULL이면, PrintClose 함수는 NULL을 리턴한다.

[용법]

프린트 job을 오픈하면, 반드시 그 job을 닫거나 취소시켜야 한다. 프린트 job이 계속 열려있는 현상을 방지하려면, 그 job을 오픈한 이벤트 안에서 job의 처리와 종료를 함께하는 것이 좋다.

[예제]

* 다음 예제는 빈 페이지를 가진 프린트 job을 오픈하고, 비트맵을 인쇄한 다음, 현재 페이지를 프린터나 스풀러로 보내고 그 job을 닫는다.

long Job

// 새로운 job과 새 페이지를 오픈한다

Job = PrintOpen( )

// 원래 크기로 비트맵을 인쇄한다

PrintBitmap(Job, d:\PB\BITMAP1, 5,10, 0,0)

// 프린터로 페이지의 내용을 보내고 Job을 닫는다

PrintClose(Job)

On Macintosh

Macintosh 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "HD:PB:Bitmap1.BMP", 50,10, 0,0)

On UNIX

UNIX 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "/export/home/pb/bitmap1.bmp", 50,10, 0,0)

[참고]

PrintCancel

PrintOpen


PrintDataWindow PowerScript 함수

[설명]

프린트 job으로 DataWindow control의 내용을 인쇄한다.

[문법]

PrintDataWindow ( printjobnumber, dwcontrol )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
dwcontrol | 인쇄하려는 DataWindow object에 연결되어있는 DataWindow control 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintDataWindow 함수는 NULL을 리턴한다.

[용법]

PrintDataWindow 함수는 PrintOpen과 PrintClose 함수를 제외한 다른 모든 Print 함수와 함께 사용하지 말아야 한다.

PrintOpen, PrintClose 함수와 함께 PrintDataWindow 함수를 사용하면, 하나의 프린트 job에 여러 개의 DataWindow 들을 인쇄할 수 있다. 각 DataWindow control의 정보는 새로운 페이지에서 시작한다.

DataWindow를 인쇄할 때, PowerBuilder는 DataWindow에 나타난 폰트와 레이아웃을 사용한다. 따라서, PrintDefineFont와 PrintSetFont 함수는 아무 효과가 없다.

DataWindow의 표현 스타일이 RichTextEdit일 때, 각 row는 새로운 페이지에 인쇄된다.

· PrintPage 이벤트에서 리턴 코드를 가지고 각각의 페이지를 건너뛰는 것에 관한 정보는 Print 함수를 참조한다.

[예제]

* 다음 문장은 DataWindow control 3개의 내용을 하나의 프린트 job내의 현재 프린터로 보낸다.

long job

job = PrintOpen( )

// 새로운 페이지에 각각의 DataWindow를 인쇄한다

PrintDataWindow(job, dw_EmpHeader)

PrintDataWindow(job, dw_EmpDetail)

PrintDataWindow(job, dw_EmpDptSum)

PrintClose(job)

[참고]

Print

PrintClose

PrintOpen


PrintDefineFont PowerScript 함수

[설명]

사용자 프린터에 의하여 지원되는 폰트로 구성된 폰트 정의(번호를 부여한다)를 생성하고 폰트 property를 설정한다. PrintSetFont 또는 PrintText 함수내에서 폰트 번호를 사용할 수 있으며, 한 번에 8개의 폰트까지 정의할 수 있다.

[문법]

PrintDefineFont ( printjobnumber, fontnumber, facename, height, weight, fontpitch, fontfamily, italic, underline )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
fontnumber | 폰트에 할당하고자 하는 번호 (1 부터 8)
facename | 사용자의 프린터에의하여 지원되는 typeface의 이름 (예를들면, Courier 10Cpi)
height | 1/1000 인치단위의 타입 높이 (예를들어, 250은 18-point 10Cpi) 또는 폰트 크기를 나타내는 음수 값 (예를들어, -18은 18 point). 더 정확히 말하자면 폰트 크기를 명시하는 것이다; 1/1000인치의 높이는 폰트 크기에만 적합하다.
weight | stroke weight의 타입. 보통문자의 weight는 400이고 굵은글씨체의 weight는 800이다
fontpitch | 폰트의 pitch를 나타내는 FontPitch 열거형 데이터 타입: · Default! · Fixed! · Variable!
fontfamily | 폰트의 그룹을 나타내는 FontFamily 열거형 데이터 타입: · AnyFont! · Decorative! · Modern! · Roman! · Script! · Swiss!
italic | 이탤릭 폰트 여부를 나타내는 boolean. 기본설정 값은 FALSE, 즉, 이탤릭이 아니다.
underline | 밑줄 폰트 여부를 나타내는 boolean. 기본설정 값은 FALSE, 즉, 밑줄 폰트가 아니다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintDefineFont 함수는 NULL을 리턴한다.

[용법]

사용자는 하나의 프린트 job에 8개의 폰트까지 사용할 수 있다. 하나의 job에 그 이상의 폰트가 필요하다면, 폰트 번호에 관한 설정내용을 변경시키기 위하여 PrintDefineFont를 다시 호출할 수 있다.

폰트 번호를 오픈한 프린트 job의 기본 폰트로 만들려면 PrintSetFont 함수를 사용한다.

Microsoft Windows에서의 폰트

fontfamily argument가 폰트 이름들 내에서 중복되는 것처럼 보여도, Windows는 정확한 폰트를 찾기 위하여 그 argument의 폰트이름을 사용하고 그 이름의 폰트를 사용할 수 없을 경우에는 유사한 폰트를 대신 사용한다.

Macintosh에서의 폰트

Macintosh는 폰트를 선택하기 위하여 facename, height, 그리고 weight argument를 사용하고, fontfamily와 fontpitch는 무시한다.

폰트 이름과 크기

어떤 폰트이름은 크기를 포함한다, 특별히 monospaced 폰트는 인치 당 문자 수를 포함한다. 이것은 폰트에 대한 크기를 요구하고, argument로 명시한 height는 인쇄에 영향을 주지 않는다.

[예제]

* 다음 문장은 새로운 페이지를 정의하고, 프린트 job에 관하여 Courier 10Cpi, 18 point, 보틍 weight, 기본설정 pitch, Decorative font, 이탤릭이 아니고 밑줄도 아닌 폰트 1을 정의한다.

long Job

Job = PrintOpen( )

PrintDefineFont(Job, 1, "Courier 10Cpi", -18, 400, Default!, Decorative!, FALSE, FALSE)

[참고]

PrintClose

PrintOpen

PrintSetFont


PrintLine PowerScript 함수

[설명]

현재 프린트 페이지상에서 명시한 끝점사이에 지정한 두께의 라인을 그린다.

[문법]

PrintLine ( printjobnumber, x1, y1, x2, y2, thickness )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
x1 | 라인의 시작 x좌표 (1/1000 인치)
y1 | 라인의 시작 y좌표 (1/1000 인치)
x2 | 라인의 끝 x좌표 (1/1000 인치)
y2 | 라인의 끝 y좌표 (1/1000 인치)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintLine 함수는 NULL을 리턴한다.

[용법]

PrintLine 함수는 프린트 커서의 위치를 변경시키지는 않고, 함수를 호출하기 이전의 위치를 유지한다. 일반적으로, 좌표를 명시하는 프린트관련 함수들은 프린트 커서에 영향을 주지 않는다.

[예제]

* 다음 문장은 새로운 프린트 job을 시작하고 0,5 위치에서 시작하여 7500, 5까지 10/1000 인치의 두께로 라인을 인쇄한다.

long Job

// job을 오픈한다

Job = PrintOpen( )

... // 프린트 관련 명령들

// 새로운 페이지의 시작

PrintPage(Job)

// 라인을 인쇄한다

PrintLine(Job, 0, 5, 7500, 5, 10)

... // 다른 내용인쇄

PrintClose(Job)

[참고]

PrintBitmap

PrintClose

PrintOpen

PrintOval

PrintRect

PrintRoundRect


PrintOpen PowerScript 함수

[참고]

프린트 job을 오픈하고, 다른 인쇄 문장에서 사용하도록 번호를 할당한다.

[문법]

PrintOpen( { jobname } )

[Argument]

jobname

(선택사항) 프린트 job에관한 이름을 명시한 문자열. 이 이름은 Print Manager 대화상자와 Spooler 대화상자에 표시된다.

[Return 값]

Long.

처리에 성공하면 job 번호를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintOpen 함수는 NULL을 리턴한다.

[용법]

새로운 프린트 job은 새 페이지 상에서 시작되고 폰트는 프린터에 관한 기본설정 폰트로 설정된다. 프린트 커서는 인쇄가능 영역의 좌측상단 모서리에 위치한다.

뒤따르는 모든 프린트 함수에서 이 프린트 job을 구별하려면 PrintOpen 함수가 리턴한 job 번호를 사용한다.

PrintOpen 함수를 호출한 이후에 MessageBox 함수를 호출하면 원하지 않는 결과를 초래할수도 있다. PrintOpen 함수를 호출하면 PowerBuilder내에서 현재 활성화되어있는 윈도우를 사용할 수 없도록 Windows는 인쇄작업으로 전환된다. PrintOpen 함수를 호출한 이후에 MessageBox를 나타낸다면, Windows는 활성화된 윈도우를 parent 윈도우로 할당하므로, 그 윈도우가 다른 응용프로그램의 윈도우일 경우는 그 응용프로그램을 활성화 시키게 된다.

PrintOpen과 PrintClose

프린트 job을 오픈하면, 반드시 그 job을 닫거나 취소 시켜야 한다. 프린트 job이 계속 열려있는 현상을 방지하려면, 그 job을 오픈한 이벤트 안에서 job의 처리와 종료를 함께하는 것이 좋다.

[예제]

* 다음 문장은 job을 오픈하지만 이름을 부여하지 않는다.

long li_job

li_job = PrintOpen( )

* 다음 문장은 job을 오픈하고 이름을 부여한다.

long li_job

li_job = PrintOpen("Phone List")

[참고]

Print

PrintBitmap

PrintCancel

PrintClose

PrintDataWindow

PrintDefineFont

PrintLine

PrintOval

PrintPage

PrintRect

PrintRoundRect

PrintSend

PrintSetFont

PrintText

PrintWidth

PrintX

PrintY


PrintOval PowerScript 함수

[참고]

프린트 페이지상에 명시한 두께의 라인으로 타원을 그린다.

[문법]

PrintOval ( printjobnumber, x, y, width, height, thickness )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
x | 타원을 둘러싼 상자의 좌측상단 모서리 x 좌표 (1/1000인치 단위)
y | 타원을 둘러싼 상자의 좌측상단 모서리 y 좌표 (1/1000인치 단위)
width | 타원을 둘러싼 상자의 폭 (1/1000인치 단위)
height | 타원을 둘러싼 상자의 높이 (1/1000인치 단위)
thickness | 타원을 그리는 라인의 두께 (1/1000인치 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintOval 함수는 NULL을 리턴한다.

[용법]

PrintOval, PrintRect, 그리고 PrintRoundRect 함수들은 무늬를 채워서 그리는 함수들이다. 그 안쪽을 다른 무늬나 텍스트로 프린트하려면, 먼저 모양을 그린 다음에 그 안쪽에 텍스트나 다른 무늬를 추가한다. 다른 인쇄 함수를 사용한 다음에 이들 함수를 사용하면 그 안쪽에는 아무것도 채워지지 않게 된다. 예를들어, 경계선 주의에 텍스트나 라인을 그리려면, 타원형이나 사각형을 먼저 그리고 다음에 PrintLine과 PrintText 함수들을 이용하여 그 안쪽에 라인과 텍스트를 위치시킨다.

PrintOval 함수는 프린트 커서의 위치를 변경시키지는 않고, 함수를 호출하기 이전의 위치를 유지한다. 일반적으로, 좌표를 명시하는 프린트관련 함수들은 프린트 커서에 영향을 주지 않는다.

[예제]

* 다음 예제는 새로운 프린트 job을 시작한 후, 1-인치 면적 안에 타원형을 인쇄한다. 타원형을 둘러싼 박스의 좌측상단 모서리는 인쇄영역 상단으로부터 4인치, 왼쪽 측면은 3인치 거리에 있다. 높이와 폭이 동일하기 때문에, 이 타원은 실제로 원이 된다.

long Job

// 새로운 페이지를 정의한다

Job = PrintOpen( )

// 타원을 인쇄한다

PrintOval(Job, 4000, 3000, 1000, 1000, 10)

...

PrintClose(Job)

[참고]

PrintBitmap

PrintClose

PrintLine

PrintOpen

PrintRect

PrintRoundRect


PrintPage PowerScript 함수

[설명]

현재 페이지를 프린터나 스풀러로 보내고 현재 프린트 job의 새로운 페이지를 시작한다

[문법]

PrintPage ( printjobnumber )

[Argument]

printjobnumber

프린트 job에 할당된 PrintOpen 함수의 리턴값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. printjobnumber가 NULL이면, PrintPage 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 새로운 페이지와 함께 프린트 job을 오픈하고, 페이지상에 비트맵을 프린트하고, 그 페이지를 프린터로 보내고 새로운 페이지를 설정한다. 마지막 Print 문장은 새 페이지에 회사명을 인쇄한다.

long Job

// job을 오픈한다

Job = PrintOpen( )

// 비트맵을 프린트한다

PrintBitmap(Job, "d:\PB\BITMAP1.BMP", 100,250, 0,0)

// 새 페이지를 시작한다

PrintPage(Job)

// 새 페이지에 회사명을 인쇄한다

Print(Job, "Powersoft Corporation")

On Macintosh

Macintosh 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "HD:PB:Bitmap1.BMP", 100,250, 0,0)

On UNIX

UNIX 상에서는, 다음과 같은 형식이 될 것이다.

PrintBitmap(Job, "/export/home/pb/bitmap1.bmp", 100,250, 0,0)

[참고]

PrintClose

PrintOpen


PrintRect PowerScript 함수

[설명]

프린트 페이지상에 명시한 두께의 라인으로 사각형을 그린다.

[문법]

PrintRect ( printjobnumber, x, y, width, height, thickness )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
x | 사각형 좌측상단 모서리의 x 좌표 (1/1000인치 단위)
y | 사각형 좌측상단 모서리의 y 좌표 (1/1000인치 단위)
width | 사각형의 폭 (1/1000인치 단위)
height | 사각형의 높이 (1/1000인치 단위)
thickness | 사각형을 그리는 라인의 두께 (1/1000인치 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintRect 함수는 NULL을 리턴한다.

[용법]

PrintOval, PrintRect, 그리고 PrintRoundRect 함수들은 무늬를 채워서 그리는 함수들이다. 그 안쪽을 다른 무늬나 텍스트로 프린트하려면, 먼저 모양을 그린 다음에 그 안쪽에 텍스트나 다른 무늬를 추가한다. 다른 인쇄 함수를 사용한 다음에 이들 함수를 사용하면 그 안쪽에는 아무것도 채워지지 않게 된다. 예를 들어, 경계선 주의에 텍스트나 라인을 그리려면, 타원형이나 사각형을 먼저 그리고 다음에 PrintLine과 PrintText 함수들을 이용하여 그 안쪽에 라인과 텍스트를 위치시킨다.

PrintRect 함수는 프린트 커서의 위치를 변경시키지는 않고, 함수를 호출하기 이전의 위치를 유지한다. 일반적으로, 좌표를 명시하는 프린트관련 함수들은 프린트 커서에 영향을 주지 않는다.

[예제]

* 다음 문장은 프린트 job을 오픈하고 1/8인치의 두께로 1인치평방의 사각형을 그린다. 사각형의 좌측상단 모서리는 인쇄영역의 좌측으로부터 4인치 상단으로부터 3인치 떨어진 위치에 있다.

long Job

Job = PrintOpen( )

// 사각형을 인쇄한다

PrintRect(Job, 4000,3000, 1000,1000, 125)

... // 다른 인쇄 문장

PrintClose(Job)

[참고]

PrintBitmap

PrintClose

PrintLine

PrintOpen

PrintOval

PrintRoundRect


PrintRoundRect PowerScript 함수

[설명]

명시한 두께로 모서리가 둥근 사각형을 그린다.

[문법]

PrintRoundRect ( printjobnumber, x, y, width, height, xradius, yradius, thickness )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 리턴값
x | 사각형 좌측상단 모서리의 x 좌표 (1/1000인치 단위)
y | 사각형 좌측상단 모서리의 y 좌표 (1/1000인치 단위)
width | 사각형의 폭 (1/1000인치 단위)
height | 사각형의 높이 (1/1000인치 단위)
xradius | 둥근 모서리의 x축 반경
yradius | 둥근 모서리의 y축 반경
thickness | 둥근 사각형을 그리는 라인의 두께 (1/1000인치 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintRoundRect 함수는 NULL을 리턴한다.

[용법]

PrintOval, PrintRect, 그리고 PrintRoundRect 함수들은 무늬를 채워서 그리는 함수들이다. 그 안쪽을 다른 무늬나 텍스트로 프린트하려면, 먼저 모양을 그린 다음에 그 안쪽에 텍스트나 다른 무늬를 추가한다. 다른 인쇄 함수를 사용한 다음에 이들 함수를 사용하면 그 안쪽에는 아무것도 채워지지 않게 된다. 예를들어, 경계선 주의에 텍스트나 라인을 그리려면, 타원형이나 사각형을 먼저 그리고 다음에 PrintLine과 PrintText 함수들을 이용하여 그 안쪽에 라인과 텍스트를 위치시킨다.

PrintRoundRect 함수는 프린트 커서의 위치를 변경시키지는 않고, 함수를 호출하기 이전의 위치를 유지한다. 일반적으로, 좌표를 명시하는 프린트관련 함수들은 프린트 커서에 영향을 주지 않는다.

[예제]

* 다음 예제는 새로운 프린트 job을 시작하고, 모서리가 둥근 사각형을 그린다. 다음에 페이지의 내용을 프린터로 보내고 프린트 job을 닫는다. 사각형은 6/4인치의 폭과 9인치의 높이를 갖고 있으며 좌측상단 모서리는 인쇄영역의 좌측과 상단으로부터 각각 1인치 떨어진 거리에 있다. 경계선은 1/8인치의 두께이고 모서리 반경은 300이다.

long Job

Job = PrintOpen( )

// 둥근 모서리 사각형을 인쇄한다

PrintRoundRect(Job, 1000,1000, 6250,9000, 300,300, 125)

// 페이지의 내용을 프린터로 보내고 job을 닫는다

PrintClose(Job)

[참고]

PrintBitmap

PrintClose

PrintLine

PrintOpen

PrintOval

PrintRect


PrintScreen PowerScript 함수

[설명]

프린트 job의 일부로 스크린 이미지를 프린트한다.

[문법]

PrintScreen ( printjobnumber, x, y {, width, height } )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
x | 스크린 이미지 좌측-상단 모서리의 x 좌표 (1/1000인치 단위)
y | 스크린 이미지 좌측-상단 모서리의 y 좌표 (1/1000인치 단위)
width | (선택사항) 인쇄될 스크린의 폭 (1/1000인치 단위). width를 생략하면, PowerBuilder는 스크린의 원래 폭을 인쇄한다. width를 명시하면, height도 역시 명시하여야 한다.
height | (선택사항) 인쇄될 스크린의 높이 (1/1000인치 단위). height를 생략하면, PowerBuilder는 스크린의 원래 높이를 인쇄한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintScreen 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 현재 스크린 이미지를 원래크기로 500, 1000 위치에 인쇄한다.

long Job

Job = PrintOpen( )

PrintScreen(Job, 500,1000)

PrintClose(Job)

[참고]

Print

PrintClose

PrintOpen


PrintSend PowerScript 함수

[설명]

문자열을 프린터로 보낸다. PrintSend 함수는 대게 프린터 설정을 변경하기위하여 escape sequence를 보내는데 사용된다.

[문법]

PrintSend ( printjobnumber, string {, zerochar } )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
string | 프린터로 보내고자 하는 문자열. 문자열 내에는 인쇄할 수 없는 문자들에 대해서는 ASCII 값을 사용한다.
Zerochar | (선택사항) string내에 숫자 영(zero)을 대신 사용하기 윈하는 ASCII 값 (1 에서 255)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintSend 함수는 NULL을 리턴한다.

[용법]

명시한 프린터로 escape sequence를 보내려면 PrintSend 함수를 사용한다 (예를들어, 인쇄 모드의 설정이나 여백 설정을 하기위한 경우). escape sequence는 프린터를 명시한다.

모든 문자열을 사용함에 따라, 숫자 영은 string을 종료 시킨다. 보내려는 프린터 코드가 영(zero)을 포함하고 있으면, string내에서 영을 다른 문자로 사용하고 영(zero)을 대신하여 사용할 문자는 zerochar내에 명시한다. 사용자가 선택할 문자는 통상적으로 사용되지 않는 문자여야 한다. PowerBuilder가 문자열을 프린터로 보낼 때, 그 대치 문자는 영(zero)으로 변환된다.

프린터 설정을 명시하는 전형적인 프린트 job은, 다음 함수들로 구성된다:

1 -- PrintOpen

2 -- PrintSend, 급지방법 등의 프린터 내용를 변경한다

3 -- PrintDefineFont 와 PrintSetFont 프린트 job에서 사용할 폰트를 결정한다

4 -- Print 텍스트를 출력한다

5 -- PrintClose

[예제]

* 다음 예제는 프린트 job을 오픈하고 IBM Proprinter 모드에서 여백을 변경하기 위하여 escape sequence를 프린트로 보낸다. 여기에서 영(0)을 대치시킬 문자는 필요치 않다.

long Job

// 프린트 job을 오픈한다

Job = PrintOpen( )

/* escape sequence를 보낸다.

1B -- 16진수 escape 문자이다

X -- 여백을 변경시킬 것을 지정한다

030 -- 좌측 여백을 30 문자로 설정한다

040 -- 우측 여백을 40 문자로 설정한다

*/

PrintSend(Job,"~h1BX~030~040")

... // 텍스트나 DataWindow를 인쇄한다

// job을 프린터나 스풀러로 보낸다

PrintClose(Job)

* 다음 예제는 프린트 job을 오픈하고 IBM Proprinter 모드에서 여백을 변경하기 위하여 escape sequence를 프린트로 보낸다. ASCII 코드 255는 영(0)을 대치하는 문자이다.

long Job

// 프린트 job을 오픈한다

Job = PrintOpen( )

/* escape sequence를 보낸다

1B -- 16진수 escape 문자이다

X -- 여백을 변경시킬 것을 지정한다

255 -- 좌측 여백을 0으로 설정한다

040 -- 우측여백을 40문자 여백으로 설정한다

*/

PrintSend(Job, "~h1BX~255~040", 255)

PrintDataWindow(Job, dw_1)

// job을 프린터나 스풀러로 보낸다

PrintClose(Job)

[참고]

PrintClose

PrintOpen


PrintSetFont PowerScript 함수

[설명]

Print 함수로 인쇄할 텍스트에서 사용될 폰트를 설정한다. 폰트는 번호로 명시한다. 원하는 폰트에 번호를 할당하고 크기와 속성 등을 설정하려면 PrintDefineFont 함수를 사용한다.

[문법]

PrintSetFont ( printjobnumber, fontnumber )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
fontnumber | PrintDefineFont 함수에서 job에 관하여 정의한 폰트의 번호 (1 부터 8) 또는 0 (프린터에 관한 기본설정 폰트)

[Return 값]

Integer.

처리에 성공하면 현재 폰트의 문자 높이를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintSetFont 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 새로운 프린트 job을 시작하고 Courier, 18 포인트, 강조체, 기본설정 pitch, modern 폰트, 보통모양으로 폰트 번호 2를 명시한다. PrintSetFont 문장은 현재 폰트를 폰트 2로 설정한다. 다음에 Print 문장은 회사명을 인쇄한다.

long Job

// 새로운 프린트 job과 새 페이지를 시작한다

Job = PrintOpen( )

// job에 관한 폰트를 정의한다

PrintDefineFont(Job, 2, "Courier 10Cps", 250, 700, Default!, Modern!, FALSE, FALSE)

// job에 관한 폰트를 설정한다

PrintSetFont(Job, 2)

// 명시한 폰트로 회사명을 인쇄한다

Print(Job,"Powersoft Corporation")

[참고]

PrintDefineFont

PrintOpen


PrintSetSpacing PowerScript 함수

[설명]

PowerBuilder에서 줄 간격을 계산하는데 사용을 인자(factor)을 설정한다.

[문법]

PrintSetSpacing ( printjobnumber, spacingfactor )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
spacingfactor | 줄 간격을 결정하기 위하여 문자 높이에 곱하기 위한 수. 기본설정 값은 1.2이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintSetSpacing 함수는 NULL을 리턴한다.

[용법]

PowerBuilder에서의 줄간격은 문자 높이에 비례한다. 기본 설정 줄 간격은 문자 높이의 1.2배이다. 새로운 줄에 인쇄가 시작되면, x 좌표는 0으로 설정되고 y 좌표는 현재 줄 간격 만큼 증가된다. PrintSetSpacing 함수는 오픈된 프린트 job에 관한 문자 높이에 곱하기위한 인자(factor)를 명시하도록 해준다.

[예제]

* 다음 문장은 새로운 프린트 job을 시작하고 줄 간격 인자를 1.5로 설정한다.

long Job

Job = PrintOpen( )

// 줄 간격 인자(factor)를 설정한다

PrintSetSpacing(Job, 1.5)

[참고]

PrintOpen


PrintSetup PowerScript 함수

[설명]

시스템 프린터 드라이버에 의하여 제공되는 Printer Setup 대화상자를 호출하여 사용자가 그 프린터에 관한 설정내용을 명시할 수 있도록 해준다.

[문법]

PrintSetup ( )

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintSetup 함수는 NULL을 리턴한다.

[용법]

Windows 95 와 Windows NT 3.51 이상의 경우, 사용자의 설정은 그 응용프로그램이 실행되는 동안에만 영향을 준다. 응용프로그램을 종료한 이후, 프린터의 설정내용은 이전 값으로 복구된다.

Windows 3.1의 경우, 설정내용은 그 프린터 드라이버에 관한 새로운 설정이되고 모든 응용프로그램에 관한 프린트 job에 영향을 준다.

[예제]

* 다음 문장은 현재 시스템 프린터에 관한 Printer Setup 대화상자를 호출한 후, 새로운 프린트 job을 시작한다.

long Job

PrintSetup( )

// job과 새 페이지를 시작한다.

Job = PrintOpen( )

[참고]

PrintOpen


PrintText PowerScript 함수

[설명]

명시한 좌표에 텍스트를 한 줄 인쇄한다.

[문법]

PrintText ( printjobnumber, string, x, y {, fontnumber } )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
string | 인쇄하려는 텍스트 (string)
x | 텍스트를 인쇄하려는 x 좌표 (1/1000인치 단위)
y | 텍스트를 인쇄하려는 y 좌표 (1/1000인치 단위)
Fontnumber | (선택사항) PrintDefineFont 함수에서 job에 관하여 정의한 폰트의 번호 (1 부터 8) 또는 0 (프린터에 관한 기본설정 폰트). fontnumber를 생략하면, print job에 관한 현재 폰트로 텍스트를 인쇄한다.

[Return 값]

Integer.

처리에 성공하면 커서 위치의 x 좌표 ( x파라미터의 값에 텍스트의 폭을 더한 값)를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintText 함수는 NULL을 리턴한다.

[용법]

PrintText 함수는 좌표를 명시하는 다른 프린트 함수들과 다르게 프린터 커서의 위치를 변경시킨다. 프린트 커서는 인쇄된 텍스트의 끝으로 이동한다. 또한, PrintText 함수는 프린트 커서의 x좌표를 리턴한다. 리턴되는 값은 추가로 텍스트를 인쇄할 것인지 여부를 결정하는데 사용된다.

PrintText 함수는 페이지 상의 수직 위치인 커서의 y 좌표는 변경하지 않는다.

[예제]

* 다음 문장은 새로운 프린트 job을 시작하고 좌측에서 3.7인치 떨어진 상단 (3700, 10)에서 현재폰트를 사용하여 인쇄한다.

long Job

Job = PrintOpen( )

// 텍스트를 인쇄한다

PrintText(Job,"PowerBuilder", 3700, 10)

... //

PrintClose(Job)

* 다음 문장은 새로운 페이지를 정의하고 폰트번호 3으로 페이지 상단 중앙에 "Confidential"을 인쇄한다.

long Job

Job = PrintOpen( )

// 폰트를 정의한다

PrintDefineFont(Job, 3, "Courier 10Cps", 250,700, &

Default!, AnyFont!, FALSE, FALSE)

// 텍스트를 인쇄한다

PrintText(Job, "Confidential", 3700, 10, 3)

... //

PrintClose(Job)

* 다음 문장은 페이지 중앙에 4줄의 텍스트를 인쇄한다. PrintText에 관한 좌표는 프린트 커서의 새로운 수직 위치를 설치하고, 뒤따르는 Print 함수를 이용하여 증가 시킨다. 첫 번째 Print 함수는 첫 번째 라인을 계속하기위한 PrintText 함수에 의하여 리턴되는 x 좌표를 사용한다. 나머지 Print 함수들은 텍스트의 추가적인 줄을 인쇄한다. 각 Print 함수는 y 좌표를 증가 시키므로 새로운 줄에 인쇄하게 된다.

long Job

Job = PrintOpen( )

// 텍스트를 인쇄한다

x = PrintText(Job,"The material ", 2000, 4000)

Print(Job, x, " in this report")

Print(Job, 2000, "is confidential and should not")

Print(Job, 2000, "be disclosed to anyone who")

Print(Job, 2000, "is not at this meeting.")

... // Other printing

PrintClose(Job)

[참고]

Print

PrintClose

PrintOpen


PrintWidth PowerScript 함수

[설명]

명시한 프린트 job의 현재 폰트를 사용하여 문자열의 폭을 결정한다.

[문법]

PrintWidth ( printjobnumber, string )

[Argument]

printjobnumber | 프린트 job에 할당된 PrintOpen 함수의 번호
string | 폭을 결정하려는 텍스트

[Return 값]

Integer.

처리에 성공하면 printjobnumber의 현재 폰트를 사용하여 문자열의 폭을 1/1000인치 단위로 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintWidth 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 새로운 페이지를 정의하고 W를 문자열의 길이로 설정한 후, 다음 텍스트 라인에 위치시키기 위한 길이로 사용한다.

long Job, W

Job = PrintOpen( )

// 텍스트의 폭을 결정한다

W = PrintWidth(Job,"PowerBuilder")

// 그 폭을 사용하여 다음 프린트 위치를 구한다

Print(Job, W - 500, "Features List")

[참고]

PrintClose

PrintOpen


PrintX PowerScript 함수

[설명]

프린트 커서의 x 좌표를 구한다.

[문법]

PrintX ( printjobnumber )

[Argument]

printjobnumber

프린트 job에 할당된 PrintOpen 함수의 번호

[Return 값]

Integer.

처리에 성공하면 프린트 커서의 x 좌표를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, PrintX 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 커서의 x 좌표를 LocX로 설정하고 그 위치에 End of Report를 인쇄한다.

integer LocX

long Job

Job = PrintOpen( )

... // 인쇄 문장

LocX = PrintX(Job)

Print(LocX+1000, "End of Report")

[참고]

PrintY


PrintY PowerScript 함수

[설명]

프린트 커서의 y 좌표를 구한다.

[문법]

PrintY ( printjobnumber )

[Argument]

printjobnumber

프린트 job에 할당된 PrintOpen 함수의 번호

[Return 값]

Integer.

처리에 성공하면 프린트 커서의 y 좌표를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, PrintY 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 프린트 커서의 위치에 비트맵 이미지를 인쇄한다.

integer LocX, LocY

long Job

Job = PrintOpen( )

... // 인쇄 문장

LocX = PrintX(Job)

LocY = PrintY(Job) + 1000

PrintBitmap(Job, "CORP.BMP", LocX, LocY, 1000,1000)

[참고]

PrintX


ProfileInt PowerScript 함수

[설명]

응용프로그램에 관한 프로파일 파일에서 설정된 정수값을 구한다

[문법]

ProfileInt ( filename, section, key, default )

[Argument]

filename | 프로파일 파일의 이름. 경로를 명시하지 않으면 그 파일을 찾기 위하여 오퍼레이팅 시스템의 탐색 순서를 이용한다.
section | 프로파일 파일 내에서 연관된 값들의 그룹이름. 섹션 이름들은 대괄호([ ])로 둘러싸여있다. section에는 대괄호([ ])을 포함시키지 않는다. section은 대소문자를 구분하지 않는다.
key | section에서 찾으려는 설정 명. 설정 명은 그 뒤에 등호(=)가 뒤따른다. key는 대소문자를 구분하지 않는다.
default | filename을 찾지 못하였을 때, filename에 section 또는 key가 존재하지 않을 때, 또는 key값을 정수로 변환할 수 없을 때 ProfileInt 함수가 리턴할 정수 값.

[Return 값]

Integer.

filename을 찾지 못하였을 때, filename에 section 또는 key가 존재하지 않을 때, 또는 key값을 정수로 변환할 수 없을 때에는 default를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, ProfileInt 함수는 NULL을 리턴한다.

[용법]

응용프로그램의 프로파일 파일에서 설정된 환경을 알아내려면 ProfileInt 또는 ProfileString 함수를 사용한다.

프로파일내의 값을 변경하여 응용프로그램을 실행하는 동안 응용프로그램의 환경을 개별화 하려면 SetProfileString 함수를 사용한다. 값을 변경하기 전에, 응용프로그램을 빠져나갈 때 원래 값을 복원 시킬 수 있도록 ProfileInt나 ProfileString 함수를 이용하여 원래 설정내용을 구해놓아야 한다.

[예제]

* 다음 예제는 PROFILE.INI에 아래와 같은 내용이 있다고 가정한다.

[Pb]

Maximized=1

[security]

Class=7

PROFILE.INI의 PB 섹션에서 키워드 Maximized의 정수 값을 리턴한다. PB 섹션이 없거나 PB 섹션에 Maximized 키워드가 없으면 3을 리턴한다.

ProfileInt("C:\PROFILE.INI", "PB", "maximized", 3)

C:\PROFILE.INI 파일의 Security 섹션의 Class 설정내용 값이 10보다 작으면 MessageBox를 나타낸다. 프로파일이 없거나 Class 설정내용이 존재하지 않으면 기본 security 설정은 6이다.

IF ProfileInt("C:\PROFILE.INI", "Security", "Class", 6) < 10 THEN

// Class < 10

MessageBox("Warning", "Access Denied")

ELSE

... // 처리 문장

END IF

[참고]

ProfileString

SetProfileString

ProfileInt (DataWindow painter 함수)


ProfileString PowerScript 함수

[설명]

응용프로그램의 프로파일에서 설정되어있는 문자열의 값을 구한다.

[문법]

ProfileString ( filename, section, key, default )

[Argument]

filename | 프로파일 파일의 이름. 경로를 명시하지 않으면 그 파일을 찾기 위하여 오퍼레이팅 시스템의 탐색 순서를 이용한다.
section | 프로파일 파일 내에서 연관된 값들의 그룹이름. 섹션 이름들은 대괄호([ ])로 둘러싸여있다. section에는 대괄호([ ])을 포함시키지 않는다. section은 대소문자를 구분하지 않는다.
key | section에서 찾으려는 설정 명. 설정 명은 그 뒤에 등호(=)가 뒤따른다. key는 대소문자를 구분하지 않는다.
default | filename을 찾지 못하였을 때, filename에 section 또는 key가 존재하지 않을 때, 또는 key값을 정수로 변환할 수 없을 때 ProfileString 함수가 리턴할 문자열.

[Return 값]

String, 4096 문자.

filename의 section내의 key값을 리턴한다. filename을 찾을 수 없거나 filename에 section이 존재하지 않거나, 또는 section에서 key를 찾을 수 없으면, ProfileString 함수는 default를 리턴한다. 에러가 발생하면, 빈 문자열("")을 리턴한다. argument 값중에 NULL이 있으면, ProfileString 함수는 NULL을 리턴한다.

[용법]

응용프로그램의 프로파일 파일에서 설정된 환경을 알아내려면 ProfileInt 또는 ProfileString 함수를 사용한다.

프로파일내의 값을 변경하여 응용프로그램을 실행하는 동안 응용프로그램의 환경을 개별화 하려면 SetProfileString 함수를 사용한다. 값을 변경하기 전에, 응용프로그램을 빠져나갈 때 원래 값을 복원 시킬 수 있도록 ProfileInt나 ProfileString 함수를 이용하여 원래 설정내용을 구해놓아야 한다.

[예제]

* 다음 예제는 PROFILE.INI 파일의 내용이 아래와 같다고 가정한다.

[Employee]

Name=Smith

[Dept]

Name=Marketing

C:\PROFILE.INI의 Employee 섹션에서 Name 키워드가 포함한 문자열을 리턴하고 에러가 발생하면 None을 리턴한다.

ProfileString("C:\PROFILE.INI", "Employee", "Name", "None")

Macintosh에서, 다음 문장은 PROFILE.INI 에서 동일한 정보를 찾는다.

ProfileString("Hard Disk:PowerBuilder:PROFILE.INI","Employee", "Name", "None")

C:\PROFILE.INI에서 Department 섹션의 Name 키워드가 Marketing이면 w_marketing을 오픈한다.

IF ProfileString("C:\PROFILE.INI", "Department", "Name", "None") = "Marketing" THEN

Open(w_marketing)

END IF

[참고]

ProfileInt

SetProFileString

ProfileString (DataWindow painter 함수)


Rand PowerScript 함수

[설명]

1과 명시한 상한 값 사이에서 임의의수를 구한다.

[문법]

Rand ( n )

[Argument]

n

구하고자 하는 임의의 수의 상한 값. 하한 값은 항상 1이고 상한 값은 32,767 이다.

[Return 값]

n의 데이터 타입 값.

1과 n사이의 난수를 리턴한다. n이 NULL이면, Rand 함수는 NULL을 리턴한다.

[용법]

Rand 함수를 반복 호출하여 생성되는 번호의 순서는 pseudo-random 순서이다. 생성되는 번호의 순서를 응용프로그램 실행 때마다 다르게 할 것인지 여부는 난수 생성기를 초기화 하는 Randomize 함수를 호출함으로써 제어할 수 있다.

[예제]

* 다음 문장은 1 과 10 사이에서 임의의 수를 리턴한다.

Rand(10)

[참고]

Randomize

Rand(DataWindow painter 함수)


Randomize PowerScript 함수

[설명]

Rand 함수가 pseudo-random 번호의 새로운 시리즈로 시작하도록 난수 발생기 (random number generator)를 초기화 한다.

[문법]

Randomize ( n )

[Argument]

n

난수 발생기의 시작 값 (seed). n이 0이면, PowerBuilder는 시스템 시간으로 부터 시작 값 (seed)를 취하고 반복되지 않는 순서로 시작한다. 영(0)이 아닌 숫자는 각 초기값에 관하여 반복되는 순서로 생성한다. n은 32,767을 초과하지 못한다.

[Return 값]

Integer.

n이 NULL이면, Randomize 함수는 NULL을 리턴한다. 리턴값은 사용하지 않는다.

[용법]

난수 순서를 항상 다르게 하려면 시스템 시간을 이용하거나, 값을 변경시켜 Randomize 함수를 호출함으로써 난수 발생기를 초기화 할 수 있다. 테스트를 목적으로 한다면, 특정 값을 선택하여 응용프로그램을 실행할 때 마다 일정 난수가 반복되도록 할 수 있다.

Randomize 함수는 응용프로그램의 Open 이벤트 스크립트에 포함 시킨다.

[예제]

* 다음 문장은 스크립트를 실행할 때마다 새로운 순서로 난수를 발생시키기 위하여 난수 발생기의 시작 값을 0으로 설정한다.

Randomize(0)

* 다음 문장은 스크립트를 실행할 때마다 일정한 순서로 난수를 발생시키기 위하여 난수 발생기의 시작 값을 4로 설정한다.

Randomize(4)

[참고]

Rand


Read PowerScript 함수: syntax 1

[설명]

OLE stream object로부터 데이터를 읽어 문자열에 저장한다.

Platform 정보

OLE 관련 함수들은 Macintosh와 UNIX 에서는 효과가 없다.

[적용]

OLEStream objects

[문법]

olestream.Read ( variable {, stopforline } )

[Argument]

olestream | 오픈할 OLE stream 변수의 이름
variable | olestream으로부터 데이터를 읽어 저장하려는 문자열 변수의 이름
stopforline | (선택사항) 한 번에 한 줄씩 읽을 것인지 여부를 명시하는 boolean 값. 즉, Read 함수가 carriage return/linefeed를 만나면 읽기를 중지할 것인지 여부를 나타내는 값. ·TRUE -- (기본설정 값) 한 줄의 끝에서 읽기를 중지하고 포인터는 다음 줄을 읽기 위하여 carriage return/linefeed 다음에 위치한다. ·FALSE -- stream 전체 또는 최대 32,765 문자를 읽는다.

[Return 값]

Integer.

읽은 문자나 바이트 수를 리턴한다. 모든 문자를 읽기전에 파일의 끝(EOF) 표시를 만나면, Read 함수는 100을 리턴한다. 에러가 발생하면 다음 값을 리턴한다:

-1 stream이 오픈되어 있지 않다

-2 읽기 에러가 발생하였다

-9 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, Read 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일내의 OLE object를 오픈하고 OLEStorage object stg_stuff에 할당한 다음, stg_stuff안에 info stream을 오픈하고 stream object olestr_info에 할당한다. 끝으로, olestr_info의 내용을 읽어서 ls_info에 저장한다.

예제에서는 각 함수의 리턴값을 체크하지 않았지만, 실제 스크립트에서는 반드시 체크해야 한다.

boolean lb_memexists

OLEStorage stg_stuff

OLEStream olestr_info

blob ls_info

stg_stuff = CREATE OLEStorage

stg_stuff.Open("c:\ole2\mystuff.ole")

olestr_info.Open(stg_stuff, "info", stgRead!, stgExclusive!)

olestr_info.Read(ls_info)

[참고]

Open

Length

Seek

Write

Read: Syntax 2

Read PowerScript 함수: syntax 2

[설명]

OLE stream object로부터 데이터를 읽어 문자 배열 이나 blob에 저장한다.

Platform 정보

OLE 관련 함수들은 Macintosh와 UNIX 에서는 효과가 없다.

[적용]

OLEStream objects

[문법]

olestream.Read ( variable {, maximumread } )

[Argument]

olestream | 오픈할 OLE stream 변수의 이름
Variable | olestream으로부터 데이터를 읽어 저장하려는 blob 변수 또는 문자 배열의 이름
Maximumread | (선택사항) 읽으려는 최대 바이트 수를 명시한 long 값. 기본설정 값은 32,767 또는 olestream의 길이 이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- stream이 오픈 되어있지 않다

-2 -- 읽기 에러가 발생하였다

-9 -- 그 밖의 에러가 발생하였다

argument 값중에 NULL이 있으면, Read 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일내의 OLE object를 오픈하고 OLEStorage object stg_stuff에 할당한 다음, stg_stuff안에 info stream을 오픈하고 stream object olestr_info에 할당한다. 끝으로, olestr_info의 내용을 읽어서 blob lb_info에 저장한다.

예제에서는 각 함수의 리턴값을 체크하지 않았지만, 실제 스크립트에서는 반드시 체크해야 한다.

boolean lb_memexists

OLEStorage stg_stuff

OLEStream olestr_info

blob lb_info

stg_stuff = CREATE OLEStorage

stg_stuff.Open("c:\ole2\mystuff.ole")

olestr_info.Open(stg_stuff, "info", &

stgRead!, stgExclusive!)

olestr_info.Read(lb_info)

[참고]

Open

Length

Seek

Write

Read: Syntax 1


Real PowerScript 함수

[설명]

문자열 값을 real 데이터 타입으로 변환하거나 blob에 저장되어있는 real 값을 구한다.

[문법]

Real ( stringorblob )

[Argument]

stringorblob

Real 값으로 변환할 문자열 또는 첫 번째 값이 real인 blob. blob의 나머지 내용은 무시된다. stringorblob은 문자열이나 blob을 포한한 모든 메모리 변수도 가능하다.

[Return 값]

Real.

stringorblob의 값을 real로 리턴한다. stringorblob이 타당하지 않은 PowerScript 숫자이거나 데이터 타입이 맞지않을 경우는 -1을 리턴한다. stringorblob이 NULL이면, Real 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 real로 24를 리턴한다.

Real("24")

* 다음 문장은 SingleLineEdit sle_Temp의 내용을 real로 리턴한다.

Real(sle_Temp.Text)

* 다음 예제는, real 값을 어떻게 blob에 할당하고 그 값을 추출하기 위하여 어떻게 Real 함수를 사용하는지 설명한다. 두 개의 BlobEdit 문장은 두 개의 real 값을 각각 blob에 저장한다. 값을 추출하기 위하여 Real 함수를 사용한 문장에서, 사용자는 real 값의 시작위치가 어디인지 반드시 알아야 한다. BlobMid내에 명시한 길이는 Real 함수가 몇 바이트를 평가할 것인지 알고있기 때문에 중요하지 않다.

blob{20} lb_blob

real r1, r2

integer len1, len2

len1 = BlobEdit(lb_blob, 1, 32750E0)

len2 = BlobEdit(lb_blob, len1, 43750E0)

// 시작 위치부터 real 값을 추출하고 나머지는 무시한다

r1 = Real(lb_blob)

// blob에서 두 번째 real 값을 추출한다

r2 = Real(BlobMid(lb_blob, len1, len2 - len1))

[참고]

Double

Integer

Long

Real (DataWindow painter 함수)


RegistryDelete PowerScript 함수

[설명]

Window 시스템 레지스트리에서 키 또는 키의 값을 삭제한다.

Platform 정보

레지스트리 함수는 Macintosh에서는 영향이 없다.

[문법]

RegistryDelete ( key, valuename )

[Argument]

key | 삭제하려는 시스템 레지스트리내의 키 또는 키의 값. 키를 확인하려면 계층구조에서 root 키부터 상위 parent 키들의 리스트를 명시한다. 리스트내의 키들은 백슬래시(\)에 의하여 분리된다.
valuename | 레지스트리에서 값의 이름을 포함하고있는 문자열. 키, 키의 값, 그리고 모든 하위 키들을 삭제하려면, 빈 문자열("")을 명시한다. 명명된 값이 없는 Windows 3.1 레지스트리에 접근하려면, valuename으로 항상 빈 문자열("")을 명시하도록 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* Windows NT에서, 다음 문장은 레지스트리로부터 Title과 그와 연관된 값을 삭제한다. 키는 삭제하지 않는다.

RegistryDelete("HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts", "Title")

* Windows 3.1에서, 다음 문장은 레지스트리에서 키 Fonts를 삭제한다.

RegistryDelete("HKEY_CLASSES_ROOT\MyApp.Settings\Fonts", "")

[참고]

RegistryGet

RegistryKeys

RegistrySet

RegistryValues


RegistryGet PowerScript 함수

[설명]

Windows 시스템 레지스트리에서 값을 구한다.

Platform 정보

레지스트리 함수는 Macintosh에서는 영향이 없다.

[문법]

RegistryGet ( key, valuename, valuevariable )

[Argument]

key | 구하려는 시스템 레지스트리내의 키 이름. 키를 확인하려면 계층구조에서 root 키부터 상위 parent 키들의 리스트를 명시한다. 리스트내의 키들은 백슬래시(\)에 의하여 분리된다.
valuename | 레지스트리에서 값의 이름을 포함하고있는 문자열. 각 키는 하나의 이름없는 값과 다수의 이름이 붙여진 값들을 가질 수 있다. 이름이 없는 값은, 빈 문자열("")을 명시한다. 명명된 값을 가지지 않은 Windows 3.1 레지스트리에 접근하려면, valuename으로 항상 빈 문자열("")을 명시하도록 한다.
valuevariable | 명시한 키와 값에 관하여 시스템 레지스트리로부터 구한 값을 저장하려는 문자열 변수.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

레지스트리는 다양한 데이터 타입의 값을 저장할 수 있다. RegistryGet 함수는 valuevariable에 저장하기 전에 숫자 값을 문자열로 변환한다. 레지스트리내에 입력된 값이 이진 값이면, RegistryGet 함수는 에러를 리턴한다.

[예제]

* Windows NT에서, 다음 문장은 Title에 관한 값을 구하고 문자열 ls_titlefont에 저장한다.

string ls_titlefont

RegistryGet("HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts", "Title", ls_titlefont)

* Windows 3.1에서, 다음 문장은 레지스트리에서 Fonts에 관한 값을 구하고 문자열 ls_titlefont에 저장한다.

string ls_titlefont

RegistryGet("HKEY_CLASSES_ROOT\MyApp.Settings\Fonts", "", ls_titlefont)

[참고]

ResistryDelete

ResistryKeys

ResistrySet

ResistryValues


RegistryKeys PowerScript 함수

[설명]

Windows 시스템 레지스트리에서 어떤 키보다 한 레벨 아래에 있는 child 아이템 (하위 키)의 리스트를 구한다.

Platform 정보

레지스트리 함수는 Macintosh에서는 영향이 없다.

[문법]

RegistryKeys ( key, subkeys [ ] )

[Argument]

key | 하위 키를 구하려는 시스템 레지스트리내의 키 이름. 키를 확인하려면 계층구조에서 root 키부터 상위 parent 키들의 리스트를 명시한다. 리스트내의 키들은 백슬래시(\)에 의하여 분리된다.
subkeys [ ] | 하위 키를 저장하기위한 문자열 변수의 배열. 배열이 가변 크기일 경우, 상한 값은 발견한 하위 키의 수를 반영하게 된다. 배열이 고정 크기일 경우, 반드시 모든 하위 키를 포함할 수 있는 충분한 크기여야 한다. 그러나, 실제로 얼마나 많은 하위 키를 가지고있는지 알아낼 수 있는 방법은 없다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* 다음 문장은 키 HKEY_CLASSES_ROOT\MyApp와 연관된 하위 키를 구한다. 하위 키들은 가변-크기 배열 ls_subkeylist에 저장된다.

string ls_subkeylist[]

integer li_rtn

li_rtn = RegistryKeys("HKEY_CLASSES_ROOT\MyApp", ls_subkeylist)

IF li_rtn = -1 THEN

... // 에러 처리

END IF

[참고]

ResistryDelete

ResistryGet

ResistrySet

ResistryValues


RegistrySet PowerScript 함수

[설명]

시스템 레지스트리에 키와 이름을 설정한다. 레지스트리에 키 또는 이름이 존재하지 않을 경우, RegistrySet 함수는 새로운 키 또는 이름을 생성하고 그 값을 설정한다.

Platform 정보

레지스트리 함수는 Macintosh에서는 영향이 없다.

[문법]

RegistrySet ( key, valuename, valuetype, value )

[Argument]

key | 시스템 레지스트리에 값을 설정하려는 키 이름. 키를 확인하려면 계층구조에서 root 키부터 상위 parent 키들의 리스트를 명시한다. 리스트내의 키들은 백슬래시(\)에 의하여 분리된다. 레지스트리내에 키가 존재하지 않으면, RegistrySet 함수는 새로운 키를 생성한다. 이름 값 없이 키를 생성하려면, valuename으로 빈 문자열("")을 명시한다.
valuename | 레지스트리에서 값의 이름을 포함하고있는 문자열. 각 키는 여러개의 이름이 부여된 값들을 가질 수 있다. 이름이 부여되지 않은 값을 명시하려면 (Windows 3.1에만 해당), 빈 문자열 ("")을 명시한다. RegistrySet 함수에 의하여 키에 관한 새로운 이름이 생성될 수 있다.
valuetype | 레지스트리 값의 데이터 타입을 구별하기위한 RegistryValueType 열거형 데이터 타입의 값. · RegString! -- null-terminated 문자열 · RegExpandString! -- 확장되지 않은 환경 변수를 참조를 포함하고 있는 null-terminated 문자열 · RegBinary! -- 이진(binary) 데이터 · ReguLong! -- 32-비트 숫자 · ReguLongBigEndian! -- 32-비트 숫자 · RegLink! -- unicode 심볼 링크 · RegMultiString! -- 무한 배열 문자열
value | 레지스트리내에 설정될 값 (string). 값은 레지스트리내에 문자열로 저장된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

레지스트리는 다양한 데이터 타입의 값을 저장할 수 있다. 그러나, RegistrySet 함수는 항상 레지스트리에 문자열로 값을 보낸다.

레지스트리의 구조는 오퍼레이팅 시스템에따라, 16-bit ((Window 3.1) 또는 32-bit (Windows NT 나 Windows 95)가 된다.

32-bit 시스템 (Windows NT 와 Windows 95)의 경우, 레지스트리는 이름이 부여된 값을 지원한다. 키는 다음과 같은 구조를 갖는다.

항목 | 설명
Key | 레지스트리의 요소. 하나의 키는 키 트리(tree)의 일부이고, 미리 정의된 루트(root) 키들의 자손 중 하나이다. 각 키는 계층구조에서 하위키(subkey) 또는 상위 parent 키의 child이다. 4개의 root 문자열이 있다: · HKEY_CLASSES_ROOT · HKEY_LOCAL_MACHINE · HKEY_USERS · HKEY_CURRENT_USER 하나의 키는 위에 나열한 parent 키에 의하여 식별된다. 리스트내의 키들은 아래 예와같이 백슬래시(\)에 의하여 구분된다.
 |  | HKEY_CLASSES_ROOT\Powersoft.Application HKEY_USERS\MyApp\Display\Fonts
Value name | 키에 속해있는 값의 이름. 하나의 키는 하나의 이름이 부여되지 않은 값과 하나 이상의 이름이 부여된 값들을 가질 수 있다.
Value type | 레지스트리내의 데이터 타입 값을 구별하기 위한 값
Value | 키와 연관된 값 과, 선택적으로, 값의 이름. 여러개의 문자열, 숫자, 그리고 이진 데이터 타입들이 레지스트리에 의하여 지원된다.

16-bit 시스템 (Windows 3.1)의 경우, 레지스트리내의 각 입력항목은 2개의 항목을 갖는다. Windows 3.1은 value name을 사용하지 않는다.

항목 | 설명
Key | 레지스트리내의 요소. 하나의 키는 키 트리(tree)의 일부이고, 미리 정의된 루트(root) 키들의 자손 중 하나이다. 각 키는 계층구조에서 하위키(subkey) 또는 상위 parent 키의 child이다. HKEY_CLASSES_ROOT는 Windows 3.1 레지스트리의 하나밖에 없는 문자열이다. 하나의 키는 위의 parent 키에 의하여 식별된다. 리스트내의 키들은 아래 예와같이 백슬래시(\)에 의하여 구분된다.
 |  | HKEY_CLASSES_ROOT\Powersoft.Application HKEY_CLASSES_ROOT\MyApp\Display\Fonts
Value | 키에관한 값. Windows 3.1 레지스트리는 문자열 값만 갖는다.

[예제]

* Windows NT에서, 다음 예제는 키 Fonts에관한 값을 설정하고 그 값의 이름을 Title로 한다.

RegistrySet("HKEY_LOCAL_MACHINE\Software\MyApp\Fonts", "Title", sle_font.Text)

* Windows 3.1에서, 다음 예제는 Fonts의 하위키 Title에 관한 값을 설정한다.

RegistrySet("HKEY_CLASSES_ROOT\MyApp\Fonts\Title", "", sle_font.Text)

[참고]

ResistryDelete

ResistryGet

ResistryKeys

ResistryValues


RegistryValues PowerScript 함수

[설명]

키와 관련되어 이름이 부여된 값들의 리스트를 구한다.

Platform 정보

레지스트리 함수는 Macintosh에서는 영향이 없다.

[문법]

RegistryValues ( key, valuename [ ] )

[Argument]

key | 하위키(subkey)의 값을 알고자 하는 시스템 레지스트리내의 키 값. 키를 확인하려면 계층구조에서 root 키부터 상위 parent 키들의 리스트를 명시한다. 리스트내의 키들은 백슬래시(\)에 의하여 분리된다.
valuename [ ] | 이름을 저장하기위한 문자열 변수의 배열. 배열이 가변 크기일 경우, 상한 값은 발견한 값들의 수를 반영하게 된다. 배열이 고정 크기일 경우, 반드시 모든 이름들을 포함할 수 있는 충분한 크기여야 한다. 그러나, 실제로 얼마나 많은 이름들을 가지고있는지 알아낼 수 있는 방법은 없다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* Windows NT에서, 다음 예제는 키 Fonts와 연관된 값의 이름들을 구하고 배열 ls_valuearray에 저장한다.

string ls_valuearray[]

RegistryValues( "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts", ls_valuearray)

[참고]

ResistryDelete

ResistryGet

ResistryKeys

ResistrySet


RelativeDate PowerScript 함수

[설명]

명시한 날짜 수 이전 또는 이후의 날짜를 구한다.

[문법]

RelativeDate ( date, n )

[Argument]

date | 날짜타입의 값
n | 날짜 수를 나타내는 정수

[Return 값]

Date.

n이 0보다 크면, n일 이후의 날짜를 리턴한다. n이 0보다 작으면, n일 이전의 날짜를 리턴한다. argument 값 중에 NULL이 있으면, RelativeDate 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 1990-02-10을 리턴한다.

RelativeDate(1990-01-31, 10)

* 다음 문장은 1990-01-21을 리턴한다.

RelativeDate(1990-01-31, -10)

[참고]

DaysAfter

RelativeDate (DataWindow painter 함수)


RelativeTime PowerScript 함수

[설명]

명시한 초 이후 또는 이전의 시간을 구한다.

[문법]

RelativeTime ( time, n )

[Argument]

time | 시간 타입의 값
n | 초(second) 수 (long 값)

[Return 값]

Time.

n이 0보다 크면, n초 이후의 시간을 리턴한다. n이 0보다 작으면, n초 이전의 시간을 리턴한다. argument 값 중에 NULL이 있으면, RelativeTime 함수는 NULL을 리턴한다.

[예제]

* 다음 문장을 19:01:41을 리턴한다.

RelativeTime(19:01:31, 10)

* 다음 문장은 19:01:21을 리턴한다.

RelativeTime(19:01:31, -10)

[참고]

SecondsAfter

RelativeTime (DataWindow painter 함수)


ReleaseAutomationNativePointer PowerScript 함수

[설명]

GetAutomationNativePointer로 구한 OLE object의 포인터를 해제한다.

[적용]

OLEObject

[문법]

oleobject.ReleaseAutomationNativePointer ( pointer )

[Argument]

oleobject | native pointer를 해제하려는 object를 포함하고있는 OLEObect 변수
pointer | 해제하려는 포인터를 가지고있는 UnsignedLong 변수. ReleaseAutomationNativePointer는 포인터가 더 이상 유효하지않도록 지우기 위하여 0으로 설정한다.

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

호출한 사용자 DLL에서 포인터 사용하기

pointer는 OLE의 IUnknown 인터페이스 포인터이다. 다른 인터페이스 포인터를 구하려면 QueryInterface() 함수를 사용할 수 있다.

GetAutomationNativePointer를 호출할 때, PowerBuilder는 OLE의 AddRef() 함수를 호출하여 그 포인터를 잠근다. 사용자의 DLL 함수나 PowerBuilder 스크립트내의 이러한 포인터를 해제하기 위하여 ReleaseAutomationNativePointer 함수를 사용할 수 있다.

· 관련 예제는 GetAutomationNativePointer 함수를 참조한다.

[참고]

GetAutomationNativePointer

GetNativePointer

ReleaseNativePointer


ReleaseNativePointer PowerScript 함수

[설명]

GetNativePointer로 구한 OLE object 포인터를 해제한다.

[적용]

OLE 2.0 control 과 OLE custom control

[문법]

olename.ReleaseNativePointer ( pointer )

[Argument]

olename | native 포인터에 관한 object를 포함하고 있는 OLE control의 이름
pointer | 해제하려는 포인터를 가지고 있는 UnsignedLong 변수. ReleaseNativePointer는 포인터가 더 이상 유효하지않도록 지우기 위하여 0으로 설정한다.

[Return 값]

Integer.

처리에성공하면 0을 리턴하고 에러가발생하면 -1을 리턴한다.

[용법]

호출한 사용자 DLL에서 포인터 사용하기

pointer는 OLE의 IUnknown 인터페이스 포인터이다. 다른 인터페이스 포인터를 구하려면 QueryInterface() 함수를 사용할 수 있다.

GetNativePointer를 호출할 때, PowerBuilder는 OLE의 AddRef() 함수를 호출하여 그 포인터를 잠근다. 사용자의 DLL 함수나 PowerBuilder 스크립트내의 이러한 포인터를 해제하기 위하여 ReleaseNativePointer 함수를 사용할 수 있다.

· 관련예제는 GetNativePointer 함수를 참조한다.

[참고]

GetAutomationNativePointer

GetNativePointer

ReleaseAutomationNativePointer


RemoteStopConnection PowerScript 함수

[설명]

서버 응용프로그램과 연결된 다른 클라이언트 응용프로그램을 해제 할 수 있도록 클라이언트 응용프로그램에 허가한다.

[적용]

Connection objects

[문법]

connection.RemoteStopConnection (disconnectid)

[Argument]

connection | RemoteStopConnection 함수를 호출하고있는 클라이언트 응용프로그램에 관하여 설치된 connection object의 이름
disconnectid | 접속을 해제하려는 다른 클라이언트 응용프로그램의 id

[Return 값]

Long.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

50 분산 서비스 에러 (Distributed service error)

52 분산 통신 에러 (Distributed communications error)

53 요청한 서버가 활성화 되지 않음 (Requested server not active)

54 서버가 요청을 받아들일 수 없음 (Server not accepting requests)

55 요청이 비정상적으로 종료됨 ( Request terminated abnormally)

56 요청에대한 응답이 완전하지 않음 (Response to request incomplete)

57 접속되어있지 않음 (Not connected)

62 서버의 통신량이 많음 (Server busy)

[용법]

RemoteStopConnection 함수를 사용하려면, 클라이언트 응용프로그램은 반드시 관리자 권한 (administrative privilege)을 가지고 있어야만 한다. 서버 응용프로그램은 접속 권한을 부여한다. 서버 응용프로그램의 ConnectionBegin 이벤트에관한 스크립트에서 ConnectPrivilege 값에 의하여 리턴되는 각 접 속의 권한을 명시할 수 있다. ConnectWithAdminPrivilege!의 ConnectPrivilege 값은 클라이언트에 관리자 권한을 부여한다.

RemoteStopConnection 함수는 전형적으로 GetServerInfo 함수와 결합하여 사용한다. 클라이언트 응용프로그램은 서버 응용프로그램에 접속되어있는 모든 클라이언트에관한 정보를 받아들이기 위하여 GetServerInfo 함수를 사용할 수 있다. 정보를 한 번 받아들이고 난 후, 하나 이상의 다른 클라이언트 접속을 해제하기 위하여 RemoteStopConnection 함수를 사용한다.

[예제]

* 다음 예제에서, 클라이언트 응용프로그램은 다른 클라이언트의 접속을 해제하기 위하여 RemoteStopConnection 함수를 사용하였다. 다른 클라이언트에 관한 ID는 DataWindow control로부터 구한다. DataWindow control은 GetServerInfo 함수를 사용하여 구한 접속 정보를 포함하고 있다.

int li_rownum

string ls_id

long ll_rc

li_rownum = dw_connections.GetSelectedRow(0)

if li_rownum = 0 then

MessageBox("Select Client","Select client first, then disconnect")

end if

ls_id = dw_connections.object.clientid[li_rownum]

ll_rc = MessageBox("Disconnect Client?","OK to disconnect client " + ls_id +

"?",StopSign!,OKCancel!,2)

if ll_rc = 1 then

myconnect.RemoteStopConnection(ls_id)

end if

[참고]

GetServerInfo


RemoteStopListening PowerScript 함수

[설명]

클라이언트 요청에 관한 listening을 중지시키기 위하여 클라이언트 응용프로그램이 서버 응용프로그램에 알리도록 허락한다.

[적용]

Connection objects

[문법]

connection.RemoteStopListening ( )

[Argument]

connection

listening을 중지할 것을 알리기 위한 서버 응용프로그램에 관한 connection object 이름

[Return 값]

Long.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

50 -- 분산 서비스 에러 (Distributed service error)

52 -- 분산 통신 에러 (Distributed communications error)

53 -- 요청한 서버가 활성화 되지 않음 (Requested server not active)

54 -- 서버가 요청을 받아들일 수 없음 (Server not accepting requests)

55 -- 요청이 비정상적으로 종료됨 (Request terminated abnormally)

56 -- 요청에 대한 응답이 완전하지 않음 (Response to request incomplete)

57 -- 접속되어있지 않음 (Not connected)

62 -- 서버의 통신량이 많음 (Server busy)

[용법]

RemoteStopListening 함수를 사용하려면, 클라이언트 응용프로그램은 반드시 ConnectWithAdminPrivilege! 권한을 가지고 있어야 한다.

[예제]

* 클라이언트 응용프로그램은 myconnect connection object에 의하여 확인된 서버 응용프로그램에 listening을 중지하도록 알리기 위하여 RemoteStopListening 함수를 호출한다.

myconnect.RemoteStopListening( )

[참고]

ConnectToServer


Repair PowerScript 함수

[설명]

사용자 object의 Error DataWindow 파이프라인에서 만들어진 교정내용을 가지고 대상 데이터베이스를 갱신한다.

[적용]

Pipeline objects

[문법]

pipelineobject.Repair ( destinationtrans )

[Argument]

pipelineobject | 실행중인 pipeline object를 포함하고있는 pipeline 사용자 object의 이름
destinationtrans | 대상 데이터베이스에 연결되어있는 transaction object의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-5 -- 접속 실패 (Missing connection)

-9 -- 대상 데이터베이스에 관한 치명적 SQL 에러(Fatal SQL error in destination)

-10 -- 최대 에러 수 초과 (Maximum number of errors exceeded)

-11 -- 올바르지않은 윈도우 handle (Invalid window handle)

-12 -- 잘못된 테이블 문법 ( Bad table syntax)

-15 -- 처리 중에 있는 파이프 (Pipe already in progress)

-17 -- 대상 데이터베이스내의 에러 ( Error in destination database)

-18 -- 대상 데이터베이스가 읽기-전용임 (Destination database is read-only)

argument 값 중에 NULL이 있으면, Repair 함수는 NULL을 리턴한다.

[용법]

파이라인 데이터가 옮겨지는 동안 에러가 발생하면, 에러의 원인이 된 row를 가지고 pipeline-error DataWindow control이 시작된다. 사용자가 또는 스크립트에서는 그 데이터를 교정할 수 있다. Repair 함수는 통상 pipeline-error DataWindow에서 데이터를 교정한 이후에 클릭할 수 있는 CommandButton과 함께 사용된다.

에러가 다시 발생하면, 그 row들은 pipeline-error DataWindow에 남아있는다. 사용자는 데이터를 다시 교정하고 Repair 함수를 호출하는 버튼을 클릭하면 된다.

[예제]

* 다음 문장은 transaction instance 변수 i_dst를 사용하여 대상 데이터베이스에 접속한다. 다음에, 파이프라인 i_pipe에 관한 Error DataWindow내에서 교정한 내용으로 데이터베이스를 갱신한다.

i_pipe.Repair(i_dst)

[참고]

Cancel

Repair

Start


Replace PowerScript 함수

[설명]

문자열의 일부분을 다른 내용으로 대치한다.

[문법]

Replace ( string1, start, n, string2 )

[Argument]

string1 | string2로 대치하려는 문자들을 가지고 있는 문자열
start | 대치하려는 첫 번째 문자의 번호 (long). (문자열내의 첫 번째 문자는 1이다)
n | 대치하려는 문자의 수 (long)
string2 | string1내의 문자들을 대치할 문자열. string2의 문자 수는 대치하려는 문자 수 보다 많거나, 같거나, 또는 적을 수도 있다.

[Return 값]

String.

처리에 성공하면 대치된 문자들을 리턴하고 실패하면 빈 문자열("")을 리턴한다. argument 값 중에 NULL이 있으면, Replace 함수는 NULL을 리턴한다.

[용법]

start 위치가 문자열의 범위를 벗어나면, Replace 함수는 string2를 string1에 추가한다. n에 명시한 수보다 start 위치 이후의 문자들이 더 적을 경우에, Replace 함수는 start 우측의 문자들을 모두 대치한다.

n이 0(영)이면, 사실상, string1에 string2를 삽입한다.

[예제]

* 다음 문장은 Name의 값을 Davis에서 Dave로 대치한다.

string Name

Name = "Davis"

Name = Replace(Name, 4, 2, "e")

* 다음 문장은 BABY RUTH를 리턴한다.

Replace("BABE RUTH", 1, 4, "BABY")

* 다음 문장은 Closed for the Winter를 리턴한다.

Replace("Closed for Vacation", 12, 8, "the Winter")

* 다음 문장은 ABZZZZEF를 리턴한다.

Replace("ABCDEF", 3, 2, "ZZZZ")

* 다음 문장은 ABZZZZ을 리턴한다.

Replace("ABCDEF", 3, 50, "ZZZZ")

* 다음 문장은 ABCDEFZZZZ을 리턴한다.

Replace("ABCDEF", 50, 3, "ZZZZ")

* 다음 문장은 문자열 mystring내의 모든 red를 green으로 대치한다. 원래 문장은 SingleLineEdit sle_1로부터 취하고 그 결과는 sle_1의 새로운 텍스트가 된다.

long start_pos=1

string old_str, new_str, mystring

mystring = sle_1.Text

old_str = "red"

new_str = "green"

// 처음으로 나타나는 old_str을 찾는다

start_pos = Pos(mystring, old_str, start_pos)

// old_str을 발견하면

DO WHILE start_pos > 0

// old_str을 new_str로 대치한다

mystring = Replace(mystring, start_pos, Len(old_str), new_str)

// 다음 old_str을 찾는다

start_pos = Pos(mystring, old_str, start_pos+Len(new_str))

LOOP

sle_1.Text = mystring

[참고]

Replace (DataWindow painter 함수)


ReplaceText PowerScript 함수

[설명]

편집 control에 선택한 텍스트를 명시한 문자열로 대치한다.

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.ReplaceText ( string )

[Argument]

editname | 선택한 문자열을 대치하려는 DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, 또는 DropDownPictureListBox control의 이름. DataWindow control의 ruddn, 텍스트는 현재 row와 column 상에있는 편집 control에서 대치된다.
string | 선택한 텍스트를 대치할 문자열

[Return 값]

Integer.

처리에 성공하면 string내의 문자 수를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, ReplaceText는 NULL을 리턴한다.

[용법]

선택한 텍스트가 없을 경우, ReplaceText 함수는 커서 위치에 대치할 텍스트를 삽입한다.

RichTextEdit control의 경우는, 그림 선택도 가능하다.

[Tips]

클립보드의 내용을 대치할 텍스트로 사용하려면, ReplaceText 대신 Past 함수를 사용한다.

control이 아닌 문자열내의 텍스트를 대치하려면, Replace 함수를 사용한다.

[예제]

* MultiLineEdit mle_Comment가 Offer Good for 3 Months를 포함하고 있고 3 Months가 선택되어있다면, 다음 문장은 3 Months를 60 Days로 바꾼다. mle_Comment의 결과값은 Offer Good for 60 Days가 될 것이다.

mle_Comment.ReplaceText("60 Days")

* 선택된 텍스트가 없다면, 다음 문장은 SingleLineEdit sle_Comment3의 커서 위치에 "Draft"를 삽입한다.

sle_Comment3.ReplaceText("Draft")

[참고]

Copy

Cut

Paste


ReselectRow PowerScript 함수

[설명]

갱신할 수 있는 모든 칼럼의 값을 다시 받아들이고 DataWindow control 이나 DataStore내의 한 row에 대한 모든 timestamp 칼럼을 다시 나타내기 위하여 데이터베이스에 접근한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ReselectRow ( row )

[Argument]

dwcontrol | row를 다시 선택하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 다시 선택하기위한 row를 나타내는 long 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 row를 다시 선택할 수 없으면 (예를들어, DataWindow object를 갱신할 수 없거나 다른 사용자에 의하여 그 row가 삭제된 경우) -1을 리턴한다. argument 값중에 NULL이 있으면, ReselectRow 함수는 NULL을 리턴한다.

[용법]

갱신에 실패하여 timestamp 에러가 발생한 후, 사용자가 변경한 값들을 취소하고 데이터베이스의 값을 다시 나타내려면 ReselectRow 함수를 사용한다.

timestamp 지원에 관하여

timestamp 지원은 모든 DBMS에서 유용하지는 않다. timestamp 칼럼에 관한 정보는, 사용중인 DBMS에 관한 설명서를 참조한다.

[예제]

* 다음 문장은 DataWindow control dw_emp의 row 5를 다시 선택한다.

dw_emp.ReselectRow(5)

* 다음 문장은 갱신에 실패할 경우 클릭한 row를 다시 나타낸다.

IF dw_emp.Update( ) < 0 THEN

dw_emp.ReselectRow(dw_emp.GetClickedRow( ))

END IF

[참고]

GetClickedRow

SelectRow

Update


Reset PowerScript 함수: syntax 1

[설명]

DataWindow control 이나 DataStore object의 모든 데이터를 지운다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Reset ( )

[Argument]

dwcontrol

지우려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, Reset 함수는 NULL을 리턴한다. 리턴값은 통상 사용되지 않는다.

[용법]

Reset 함수로 DataWindow object나 child DataWindowrow의 row를 지우는 것은 삭제하는 것과 동일한 것이 아니다. Reset 함수는 응용프로그램에만 영향을 주고, 데이터베이스에는 영향을 주지 않는다. row들을 삭제하고 Update 함수를 호출하였다면, 그 row들은 DataWindow object와 연결된 데이터베이스 테이블로부터 삭제된다. Reset 함수를 호출한 후 Update 함수를 호출하였다면, 테이블에는 아무런 변화가 일어나지 않는다. Retrieve As Needed 옵션을 설정하고 Reset 함수를 호출하였다면, Reset 함수는 retrieve 된 row들을 지우게 된다. 그러나. Retrieve As Needed가 on으로 설정되어있기 때문에, DataWindow는 즉시 다음 row들을 retrieve 하게된다. 이러한 row들이 retrieve되는 것을 방지하려면, Reset 함수를 호출하기 전에 DBCancel 함수를 호출하도록 한다. 모든 row들이 retrieve되어 있다면 (커서가 close 되고 RetrieveEnd 이벤트가 발생하였다), Reset 함수는 DataWindow를 지우고 비어있는 상태가 된다.

[예제]

* 다음 문장은 dw_employee의 내용을 완전히 지운다.

dw_employee.Reset( )

* Retrieve As Needed 옵션이 on으로 설정된 DataWindow에서, 다음 예제는 DataWindow를 재설정하기 전에 retrieve를 취소한다.

dw_employee.DBCancel( )

dw_employee.Reset( )

[참고]

DeleteRow

Reset: Syntax 2

Reset: Syntax 3

Reset PowerScript 함수: syntax 2

[설명]

리스트의 아이템을 모두 지운다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.Reset ( )

[Argument]

listboxname

아이템을 삭제하려는 listbox control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. listboxname이 NULL이면, Reset 함수는 NULL을 리턴한다. 리턴값은 통상 사용하지 않는다.

[예제]

* 다음 문장은 ddlb_Actions의 ListBox 영역에서 모든 아이템을 삭제한다.

ddlb_Actions.Reset( )

[참고]

DeleteItem

Reset: Syntax 1

Reset: Syntax 3

Reset PowerScript 함수: syntax 3

[설명]

그래프에서 데이터, category, 또는 series를 삭제한다.

[적용]

윈도우내의 Graph control 과 외부 데이터 소스를 가진 DataWindow object내의 사용자 object 및 그래프

DataWindow object내의 그래프는 DataWindow로부터 데이터를 직접 가져오기 때문에 이 함수에 적용되지 않는다.

[문법]

controlname.Reset ( graphresettype )

[Argument]

controlname | 모든 데이터 값 또는 모든 series와 데이터 값을 삭제하려고 하는 graph object의 이름
graphresettype | 데이터만 삭제할 것인지 또는 데이터와 series를 모두 삭제할 것인지를 명시하는 grResetType 열거형 데이터 타입의 값.
 | · All! -- controlname내의 series, catogory 및 데이터를 모두 삭제한다.
 | · Category! -- controlname내의 category와 데이터를 삭제한다.
 | · Data! -- controlname내의 데이터를 삭제한다.
 | · Series! -- controlname내의 series와 데이터를 삭제한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Reset 함수는 NULL을 리턴한다. 리턴값은 통상 사용하지 않는다.

[용법]

새로운 데이터를 추가하기 전에 그래프내의 데이터를 지우기 위하여 Reset 함수를 사용한다.

[예제]

* 다음 문장은 그래프 gr_product_data에서 category를 제외하고 series와 데이터를 삭제한다.

gr_product_data.Reset(Series!)

[참고]

AddData

AddSeries

Reset: Syntax 1

Reset: Syntax 2


ResetDataColors PowerScript 함수

[설명]

series에 관한 데이터 포인트 색상을 기본설정 색상으로 되돌린다.

[적용]

윈도우와 사용자 object내의 graph control 및 DataWindow control 과 DataStore object 내의 그래프

[문법]

controlname.ResetDataColors ( { graphcontrol, } seriesnumber, datapointnumber )

[Argument]

controlname | 데이터 포인트의 색상을 재설정하려는 그래프의 이름, 또는 그래프를 포함하고 있는 DataWindow나 DataStore의 이름
graphcontrol | (DataWindow control과 DataStore만 해당) 색상을 재설정하려는 DataWindow control이나 DataStore 내의 그래프 이름
seriesnumber | 데이터 포인트의 색상을 재설정하려는 series의 번호
datapointnumber | 색상을 재설정하려는 데이터 포인트의 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, ResetDataColors 함수는 NULL을 리턴한다.

데이터 포인트의 기본설정 색상

series의 색상을 설정하려면, SetSeriesStyle 함수를 사용한다. series에 관하여 설정한 색상은 series내의 모든 데이터 포인트에 관한 기본설정 색상이다.

[예제]

* 다음 문장은 그래프 gr_product_data에서 series Costs의 데이터 포인트 0의 색상을 series에 관한 색상으로 변경한다.

SeriesNbr = gr_product_data.FindSeries("Costs")

gr_product_data.ResetDataColors(SeriesNbr, 10)

* 다음 문장은 DataWindow control dw_equipment내에 있는 그래프 gr_computers에서 series Costs의 데이터 포인트 0 색상을 series에 관한 색상으로 변경한다

SeriesNbr = dw_equipment.FindSeries("Costs")

dw_equipment.ResetDataColors("gr_computers", SeriesNbr, 10)

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetDataStyle

SetSeriesStyle


ResetTransObject PowerScript 함수

[설명]

SetTransObject 함수를 호출함으로써 현재 영향을 주고있는, 프로그래머가 명시하여 사용중인 transaction object로부터 DataWindow control이나 DataStore를 중지한다. ResetTransObject를 호출한 이후에, DataWindow control이나 DataStore는 내부 transaction object를 사용한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ResetTransObject ( )

[Argument]

dwcontrol

프로그래머가 명시한 transaction object 사용을 중지하고 DataWindow control의 내부 transaction object 사용을 시작하고자하는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, ResetTransObject 함수는 NULL을 리턴한다.

[용법]

transaction object를 재설정하고 내부 transaction object의 값을 설정하기 위한 SetTrans 함수를 호출하지 않았다면, SetTrans 함수를 호출하여 transaction object의 값을 설정하거나 SetTransObject를 호출하여 프로그래머가 명시한 새로운 transaction object를 설치하도록 한다.

ResetTransObject 함수는 일반적으로 하나의 응용프로그램내에서 프로그래머-명시 transaction object와 내부 transaction object를 혼용하여 사용하지 않기 때문에 거의 사용되지 않는다. 프로그래머-명시 transaction object는, SetTransObject 함수로 명시한다, 응용프로그램의 수행능력을 더 향상시킨다. 프로그래머-명시 transaction object를 변경하려면, 단순히 SetTransObject 함수를 다시 호출하면 된다.

[예제]

* 다음 문장은 사용중인 프로그래머-명시 transaction object로부터 dw_employee를 중지한다.

dw_employee.ResetTransObject( )

[참고]

GetTrans

SetTrans

SetTransObject


ResetUpdate PowerScript 함수

[설명]

DataWindow나 DataStore의 primary와 filter 버퍼에있는 flag를 지우고 delete 버퍼을 비운다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ResetUpdate ( )

[Argument]

dwcontrol

update flag를 reset하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, ResetUpdate 함수는 NULL을 리턴한다.

[용법]

row가 변경되거나, 삽입되거나, 삭제되었을 때, update flag가 설정된다, update에 관한 표시를 만든다. 기본적으로 Update 함수는 이들 flag를 turn off 시킨다. 그러나, 하나 이상의 DataWindow 또는 DataStore를 갱신하는 코드를 작성하려 한다면, Update 함수가 flag를 변경시키는 것을 방지한 다음, 모든 갱신이 성공적으로 이루어졌는지 확인한 후, flag를 지우기 위하여 각 DataWindow에 관한 ResetUpdate 함수를 호출할 수 있다. 하나라도 갱신에 실패한다면, update flag를 그대로 유지 시키고, 사용자가 문제점을 해결하도록 한 후, 다시 갱신을 시도할 수 있다.

GetItemStatus 함수를 이용하면 update 표시된 row들을 찾아낼 수 있다. row가 delete 버퍼에 있거나 또는, primary나 filter 버퍼에 있으면서 NewModified!나 DataModified! 상태를 가지고 있다면, update flag가 설정된 것이다. update flag가 지워진 이후에, 모든 row들은 NotModified! 나 New! 상태를 갖고 delete 버퍼는 비어있게 된다.

[예제]

* 다음 문장은 2개의 DataWindow object를 갱신하는 코드이다.

int rtncode

CONNECT USING SQLCA;

dw_cust.SetTransObject(SQLCA)

dw_sales.SetTransObject(SQLCA)

rtncode = dw_cust.Update(TRUE, FALSE)

IF rtncode = 1 THEN

rtncode = dw_sales.Update(TRUE, FALSE)

IF rtncode = 1 THEN

dw_cust.ResetUpdate( ) // 모두 갱신에 성공하면

dw_sales.ResetUpdate( ) // update flag를 지운다

COMMIT USING SQLCA;

ELSE

ROLLBACK USING SQLCA; // 2번째 갱신 실패

END IF

END IF

[참고]

Update


Resize PowerScript 함수

[설명]

Width와 Height property를 설정하여 object나 control의 크기를 변경하고 다시 나타낸다.

[적용]

child DataWindow를 제외한 모든 object

[문법]

objectname.Resize ( width, height )

[Argument]

objectname | 크기를 변경하려는 object나 control의 이름
width | 새로운 폭 (PowerBuilder 단위)
height | 새로운 높이 (PowerBuilder 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하거나 objectname이 최소 또는 최대화 되어있는 윈도우일 경우에는 -1을 리턴한다. argument 값 중에 NULL이 있으면, Resize 함수는 NULL을 리턴한다.

[용법]

child DataWindow에 대해서는 Resize 함수를 사용할 수 없다.

또한, 최소 또는 최대화 되어있는 쉬트(sheet)나 윈도우는 크기가 조정되지 않는다. 윈도우가 최소 또는 최대화 되어있을 경우에는 -1을 리턴한다.

동일한 문법

Resize 함수를 사용하지 않고도 아래와 같이 Width와 Height property를 설정하여 object의 크기를 변경할 수 있다. 그러나, 두 개의 문장을 사용하게 됨으로 PowerBuilder는 objectname을 연속하여 두 번 다시 그린다 (한번은 새로운 폭으로 그리고, 다음에 새로운 폭과 높이로 그린다).

objectname.Width = width

objectname.Height = height

다음 문장은 gb_box1을 두 번 반복하여 그린다.

gb_box1.Width = 100

gb_box1.Height = 150

다음 문장은 위의 두 문장과 동일한 결과이지만 하나의 문장만 사용한다:

gb_box1.Resize(100, 150)

[예제]

* 다음 문장은 gb_box1의 Width와 Height property를 변경하고 새로 그린다.

gb_box1.Resize(100, 150)

* 다음 문장은 picture control p_1의 폭과 높이를 각각 두 배로 한다.

p_1.Resize(p_1.Width*2, p_1.Height*2)


RespondRemote PowerScript 함수

[설명]

remote DDE 응용프로그램으로부터 받은 명령 또는 데이터를 접수할 수 있는지 여부를 나타내는 DDE 메시지를 보낸다.

Platform 정보

DDE관련 함수들은 Macintosh에서는 영향이 없다.

UNIX의 경우, DDE 함수들은 서버와 클라이언트 응용프로그램이 PowerBuilder를 사용하여 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일된 경우에만 효과가 있다.

[문법]

RespondRemote ( boolean )

[Argument]

boolean

논리표현

· TRUE -- 받은 명령이나 데이터를 접수할 수 있다.

· FALSE -- 받은 명령이나 데이터를 접수할 수 없다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. boolean이 NULL이면, RespondRemote 함수는 NULL을 리턴한다.

[용법]

PowerBuilder 응용프로그램이 DDE server나 DDE client 응용프로그램일 때 RespondRemote 함수를 사용할 수 있다.

일반적으로 다음 함수들을 사용한 이후에 RespondRemote 함수를 호출한다:

· GetCommandDDE

· GetCommandDDEOrigin

· GetDataDDE

· GetDataDDEOrigin

▷ 클라이언트로 PowerBuilder를 사용할 때의 정보는 OpenChannel과 ExecRemote 함수를 참고하고, 서버로 PowerBuilder를 사용할 때의 정보는 StartServerDDE 함수를 참조한다.

[예제]

* HotLinkAlarm 이벤트에관한 스크립트에서, 다음 문장은 응용프로그램 Gateway에 데이터를 성공적으로 받았다는 메시지를 준다.

String Applname, Topic, Item, Value

GetDataDDEOrigin(Applname, Topic, Item)

IF Applname = "Gateway" THEN

IF GetDataDDE(Value) = 1 THEN

RespondRemote(TRUE)

END IF

END IF

[참고]

GetCommandDDE

GetCommandDDEOrigin

GetDataDDE

GetDataDDEOrigin


Restart PowerScript 함수

[설명]

모든 스크립트의 실행을 중지하고 모든 윈도우 (Close 이벤트에관한 스크립트를 실행중이지 않는 모든 윈도우)를 닫고, 자료를 commit하고, 데이터베이스에 접속을 해제하고나서 응용프로그램을 재시작한 후 응용프로그램-수준의 Open 이벤트 스크립트를 실행한다.

[문법]

Restart ( )

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 실패하면 -1을 리턴한다. 일반적으로 리턴 값은 사용하지 않는다.

[용법]

전형적으로 진열해놓은 응용프로그램에서, 일정 시간동안 아무런 작동을 하지않으면 응용프로그램을 다시 시작시키기 위하여 응용프로그램-수준의 Idle 이벤트 스크립트에 Restart 함수를 사용할 수 있다.

[예제]

* 응용프로그램-레벨의 Idle 이벤트 스크립트에서, 다음 문장은 응용프로그램을 재시작한다.

Restart( )

[참고]

HALT


Retrieve PowerScript 함수

[설명]

DataWindow control이나 DataStore에 관한 데이터베이스로부터 row들을 retrieve 한다. argument들을 포함하면, 그 argument는 DataWindow object나 child DataWindow에 관한 SQL SELECT 문장에서 retrieval argument로 사용된다.

[적용]

DataWindow contro과 child DataWindows

[문법]

dwcontrol.Retrieve ( {..., argument, argument, ...} )

[Argument]

dwcontrol | 데이터베이스로부터 row들을 retrieve하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
argument | (선택사항) dwcontrol내에서 정의된 SQL SELECT 문장에서 retrieval argument로 사용하기 원하는 하나 이상의 값

[Return 값]

Long.

처리에 성공하면 표시된 row (즉, primary 버퍼내의 row) 수를 리턴하고 실패하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Retrieve 함수는 NULL을 리턴한다.

[용법]

row들이 retrieve된 이후에, DataWindow object의 필터가 적용된다. 따라서, 필터 조건에 일치하지 않는 retrieve된 모든 row들은 즉시 filter 버퍼로 이동되고 리턴 카운트에는 포함되지 않는다.

DataWindow control이나 DataStore에 관하여 row들을 retrieve 할수 있도록 하려면, 반드시 SetTransObject나 SetTrans 함수로 transaction을 명시하여야 한다. SetTransObject 함수를 사용한다면, 데이터베이스 접속을 설치하기 위하여 SQL CONNECT 문장도 함께 사용하여야 한다.

보통, Retrieve 함수를 호출할 때, DataWindow control이나 DataStore 내에 이미 존재하고 하고있던 모든 row들은 버려지고 retrieve된 row들로 대치된다. 이러한 현상을 막기 위하여 RetrieveStart 이벤트내에서 리턴코드 2를 리턴할 수 있다. 이 경우, Retrieve 함수는 버퍼 내에 미리 존재하고 있던 row에 새로 retrieve한 row를 추가한다. (마지막 예제 참조)

필요한 argument를 명시하지 않으면, retrieval argument를 입력하도록 대화상자가 나타난다.

[Events]

Retrieve함수는 다음 이벤트들을 트리거할 수 있다

DBError

RetrieveEnd

RetrieveRow

RetrieveStart

[예제]

* 다음 문장은 dw_emp1이 데이터베이스로부터 row들을 retrieve하도록 한다.

dw_emp1.Retrieve( )

* 다음 예제는 접속을 설정하는 방법을 나타내고 DataWindow control내에 row들을 retrieve한다. 전형적인 각본은 응용프로그램의 Open 이벤트에서 접속을 설치하고 DataWindow control을 포함하고있는 윈도우의 Open 이벤트에서 row들을 retrieve 하는 것이다.

다음 문장은 응용프로그램의 Open 이벤트에관한 스크립트이다. SQLCA는 기본설정된 transaction object이고, ProfileString 함수는 초기화된 파일로부터 데이터베이스 접속에관한 정보를 가지고 온다.

// INI 파일로부터 Transaction object를 설정한다

SQLCA.DBMS = ProfileString("PB.INI", "Database", "DBMS", " ")

SQLCA.DbParm = ProfileString("PB.INI", "Database", "DbParm", " ")

// 데이터베이스에 접속한다

CONNECT USING SQLCA;

// 접속에 성공하였는지 여부를 체크한다

IF SQLCA.SQLCode <> 0 THEN

MessageBox("Connect Failed", &

"Cannot connect to database." + SQLCA.SQLErrText)

RETURN

END IF

Open(w_main)

계속하여, w_main의 open 이벤트에서는 DataWindow control dw_main의 transaction object를 SQLCA로 설정하고 데이터베이스로부터 row들을 retrieve 한다. retrieve된 row가 없거나 에러가 있으면 (즉, 리턴값이 음수이면), 메시지를 나타낸다.

long ll_rows

dw_main.SetTransObject( SQLCA )

ll_rows = dw_main.Retrieve( )

IF ll_rows < 1 THEN MessageBox( &

"Database Error", &

"No rows retrieved." )

* 다음 예제는 retrieval argument의 사용법을 설명한 것이다. 단, dw_emp는 다음 SQL SELECT 문장을 포함한다고 가정한다.

SELECT Name, emp.sal, sales.rgn From Employee

WHERE emp.sal > :Salary and sales.rgn = :Region

[설명]

:Salary 와 :Region은 DataWindow painter에서 argument로 선언한 것이다. SQL SELECT 문장을 수정하기 위하여, DataWindow painter에서 Design -> Data Source를 선택한 다음 SQL painter에서 Edit -> Retrieval Arguments를 선택하였다.

다음에, 데이터베이스로부터 급여가 $50,000 보다 많고 northwest 지역에 근무하는 사원들을 retrieve 하였다.

dw_1.Retrieve(50000, "NW")

* 다음 예제 또한 retrieval argument를 설명한 것이다. dw_EmpHist는 다음 SQL SELECT 문장을 포함하고있고 emps는 숫자 배열로 정의되어있다고 가정한다.

SELECT EmpNbr, Sal, Rgn From Employee

WHERE EmpNbr IN (:emps)

다음 문장은 데이터베이스로부터 종업원 칼럼 Employees가 배열 emps의 값인것만 retrieve 한다.

Double emps[3]

emps[1] = 100

emps[2] = 200

emps[3] = 300

dw_EmpHist.Retrieve(emps)

* 다음 문장은 서로 다른 기준을 가진 데이터를 Retrieve 함수를 이용하여 두 번 구하는 방법을 설명한 것이다. DataWindow object에 관한 SELECT 문장은 한 개의 argument 부서번호를 필요로 한다고 가정한다. 다음 문장은 데이터베이스에서 부서번호가 100이나 200인 모든 row들을 retrieve 한다.

DataWindow control의 RetrieveStart 이벤트 스크립트에서는 리턴 코드를 2로 설정하여 각각의 retrieve가 일어나기 전에 DataWindow control의 row와 버퍼가 지워지지 않도록 한다.

RETURN 2

Retrieve CommandButton의 Clicked 이벤트에서는 함수를 두 번 호출하여 데이터를 retrieve한다. Reset 함수는 보통 Retrieve에서 처리하는 것처럼, 이전에 retrieve하였던 row들을 모두 지운다. 여기에서는 RetrieveStart 이벤트의 리턴코드를 2로 설정하여 Retrieve 함수에 의하여 이전에 retrieve하였던 row들이 지워지는 것을 방지하였다.

dw_1.Reset( )

dw_1.Retrieve(100)

dw_1.Retrieve(200)

[참고]

DeleteRow

InsertRow

SetTrans

SetTransObject


Reverse PowerScript 함수

[설명]

문자열내의 문자 순서를 역순으로 변경한다.

[문법]

Reverse ( string )

[Argument]

string

마지막 문자를 첫 번째로 첫 번째 문자를 마지막으로 변경시키려하는 문자열

[Return 값]

String.

역순으로 만든 문자들을가진 문자열을 리턴한다. 처리에 실패하면 빈 문자열("")을 리턴한다.

[용법]

Reverse 함수는 PowerBuilder와 Windows의 RightToLeft 버전을 사용할 때 RightToLeft 문자들을 나타내기 위하여 IsArabic 및 IsHebrew 함수들과 함께 사용하면 유용하다.

[예제]

* Windows의 RightToLeft 버전에서, 다음 문장은 sle_name에 입력된 문자들을 역순으로 바꾼다.

string ls_name

ls_name = Reverse(sle_name.Text)

[참고]

IsArabic

IsHebrew


RGB PowerScript 함수

[설명]

적색, 녹색, 청색 부분에 관한 숫자 값으로 명시하여 표현한 색상을 long 값으로 계산한다.

[문법]

RGB ( red, green, blue )

[Argument]

red | 원하는 색상의 적색 부분에 해당하는 정수값
green | 원하는 색상의 녹색 부분에 해당하는 정수값
blue | 원하는 색상의 청색 부분에 해당하는 정수값

[Return 값]

Long.

적, 녹, 청색에 관하여 명시한 값을 결합하여 생성한 색상을 long 값으로 다시 나타낸다. 에러가 발생하면 RGB 함수는 -1을 리턴한다. argument 값 중에 NULL이 있으면, RGB 함수는 NULL을 리턴한다.

[용법]

색상을 결합하는 공식은 다음과 같다:

65536 * Blue + 256 * Green + Red

텍스트에 관하여 설정하려는 색상의 long 값을 구하고 object를 그 색상으로 그리기 위하여 RGB 함수를 사용한다. 또한, object의 색상을 원하는 색상의 long 값으로 설정할 수 있다. RGB 함수는 그 값을 손쉽게 계산할 수 있도록 마련된 것이다.

색상 값에 관하여

색상 요소의 값은 원하는 색상을 생성하는데 필요한 색상의 양을 나타내는 0과 255사이의 정수이다. 낮은 값은 어두운 색상이고, 높은 값은 밝은 색상이 된다.

RGB 값으로 알려진 색상 요소의 값을 결정하려면, Edit Color Entry 윈도우를 사용한다. Edit Color Entry 윈도우를 사용하려면 workspace의 하단의 color bar에서 색상을 선택한 다음, 선택한 색상이 color bar 박스의 첫 번째에 나타날 때 더블-클릭한다.

다음 표는 표준 16색상에 관한 적, 녹, 청색의 값을 나타낸 것이다.

Color(색상) | Red value(적색) | Green value(녹색) | Blue value(청색)
Black | 0 | 0 | 0
White | 255 | 255 | 255
Light Gray | 192 | 192 | 192
Dark Gray | 128 | 128 | 128
Red | 255 | 0 | 0
Dark Red | 128 | 0 | 0
Green | 0 | 255 | 0
Dark Green | 0 | 128 | 0
Blue | 0 | 0 | 255
Dark Blue | 0 | 0 | 128
Magenta | 255 | 0 | 255
Dark Magenta | 128 | 0 | 128
Cyan | 0 | 255 | 255
Dark Cyan | 0 | 128 | 128
Yellow | 255 | 255 | 0
Brown | 128 | 128 | 0

[예제]

* 다음 문장은 흑색의 long 값을 리턴한다.

RGB(0, 0, 0)

* 다음 문장은 백색의 long 값을 리턴한다.

RGB(255, 255, 255)

* 다음 문장은 StaticText st_title의 색상 property를 dark magenta 배경의 green 문자로 설정한다.

st_title.TextColor = RGB(0, 255, 0)

st_title.BackColor = RGB(128, 0, 128)

[참고]

RGB (DataWindow painter 함수)


Right PowerScript 함수

[설명]

문자열의 끝에서부터 명시한 수의 문자들을 구한다.

[문법]

Right ( string, n )

[Argument]

string | 문자들을 구하려는 문자열
n | string의 우측 끝에서부터 구하기 위한 문자들의 수 (long 값)

[Return 값]

String.

처리에 성공하면 string의 최 우측 n문자들을 리턴하고 에러가 발생하면 빈 문자열 ("")을 리턴한다. argument 값 중에 NULL이 있으면, Right 함수는 NULL을 리턴한다.

n이 문자열의 길이보다 크거나 같으면, Right 함수는 문자열 전체를 리턴한다. 리턴값의 길이를 n과 맞추기 위하여 공란을 추가하지는 않는다.

[예제]

* 다음 문장을 RUTH를 리턴한다.

Right("BABE RUTH", 4)

* 다음 문장은 BABE RUTH를 리턴한다.

Right("BABE RUTH", 75)

[참고]

Left

Mid

Pos

Right (DataWindow painter 함수)


RightTrim PowerScript 함수

[설명]

문자열 우측 여백을 제거한다.

[문법]

RightTrim ( string )

[Argument]

string

끝부분의 공란을 삭제하려는 문자열

[Return 값]

String.

처리에 성공하면 문자열 우측의 공란을 제거한 문자열을 리턴하고 에러가 발생하면 빈 문자열 ("")을 리턴한다. argument 값 중에 NULL이 있으면, RightTrim 함수는 NULL을 리턴한다.

[예제]

* 다음 문장을 RUTH를 리턴한다.

RightTrim("RUTH ")

[참고]

LeftTrim

Trim

RightTrim (DataWindow painter 함수)


Round PowerScript 함수

[설명]

명시한 수의 소수 위치에서 반올림한다.

[문법]

Round ( x, n )

[Argument]

x | 반올림 하려는 수
n | x를 반올림하기 위한 소수 자리 수. 값의 범위는 0 부터 18이다.

[Return 값]

Decimal.

처리에 성공하면 명시한 소수 자리에서 반올림된 x를 리턴하고, 처리에 실패하거나 argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[예제]

* 다음 문장은 9.62를 리턴한다.

Round(9.624, 2)

* 다음 문장은 9.63을 리턴한다.

Round(9.625, 2)

* 다음 문장은 9.600을 리턴한다.

Round(9.6, 3)

* 다음 문장은 -9.63을 리턴한다.

Round(-9.625, 2)

* 다음 문장을 NULL을 리턴한다.

Round(-9.625, -1)

[참고]

Ceiling

Int

Truncate

Round (DataWindow painter 함수)


RowCount PowerScript 함수

[참고]

DataWindow control 이나 DataStore에서 현재 사용 가능한 row들의 수를 구한다. 사용 가능한 row의 수를 결정하기 위해, RowCount 함수는 primary 버퍼를 체크한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.RowCount ( )

[Argument]

dwcontrol

현재 사용 가능한 row의 수를 나타내려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Long.

dwcontrol에서 현재 사용 가능한 row의 수를 리턴한다. 사용가능한 row가 없을 경우에는 0을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, RowCount 함수는 NULL을 리턴한다.

[용법]

DataWindow control이나 DataStore의 primary 버퍼는 화면에 나타내거나 인쇄할 수 있는 row를 포함하고 있으며, 이 row들이 RowCount 함수에 의하여 카운트 된다. 현재 사용 가능한 row의 수는 retrieve된 전체 row 수에서 삭제된 row을 빼고 삽입된 row를 더하고 필터에서 제외된 모든 row를 뺀 값과 동일하다. 삭제 및 필터에서 제외된 row들은 각각 DataWindow의 delete 및 filter 버퍼에 저장된다.

[예제]

* 다음 문장은 dw_Employee에서 현재 사용 가능한 row의 수를 리턴한다.

long NbrRows

NbrRows = dw_Employee.RowCount( )

* 다음 문장은 사용자가 DataWindow control의 마지막까지 scroll 하였을 때를 결정하는 것으로, row 수와 DataWindow property LastRowOnPage를 비교한다.

dw_1.ScrollNextPage()

IF dw_1.RowCount( ) = Integer(dw_1.Describe( &

"DataWindow.LastRowOnPage")) THEN

. . . // Appropriate processing

END IF

[참고]

DeleteRow

DeletedCount

Filter

FilteredRow

InsertRow

ModifiedCount

SetFilter

Update


RowsCopy PowerScript 함수

[설명]

한 DataWindow control (또는 DataStore object)에서 다른 곳으로 특정 범위의 row를 복사하거나, 단일 DataWindow control (또는 DataStore object)내의 한 버퍼에서 다른 버퍼로 특정 범위의 row를 복사한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.RowsCopy ( startrow, endrow, copybuffer, targetdw, beforerow, targetbuffer )

[Argument]

dwcontrol | row를 복사하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
startrow | 복사하려는 첫 번째 row의 번호 (long 값)
endrow | 복사하려는 마지막 row의 번호 (long 값)
copybuffer | row를 복사하려는 버퍼를 명시한 dwBuffer 열거형 데이터 타입의 값: · Primary! · Delete! · Filter!
targetdw | row를 복사하려는 DataWindow control 이나 DataStore의 이름. targetdw는 동일한 DataWindow control (또는 DataStore object)도 가능하고 다른 DataWindow control (또는 DataStore object)도 가능하지만, child DataWindow는 불가능하다.
beforerow | 복사된 row가 삽입되기 직전의 row 번호 (long 값). 마지막 row 이후에 삽입하려면, 존재하는 row의 수보다 큰 임의의 값을 사용한다.
targetbuffer | 복사된 row에관한 대상 버퍼를 명시하는 dwBuffer 열거형 데이터 타입의 값: · Primary! · Delete! · Filter!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, RowCopy 함수는 NULL을 리턴한다.

[용법]

RowsCopy 함수를 사용할 때, primary 버퍼로 복사된 row의 상태는 NewModified!이므로, Update를 요청하면 PowerBuilder는 SQL INSERT 문장을 DBMS에 보낼 것이다.

RowsCopy 함수를 사용할 때, DataWindow나 DataStore내의 drop-down DataWindow에 관한 자료는 InsertRow 함수를 호출할 때처럼 자동으로 retrieve 되지 않으므로 반드시 대상 DataWindow내의 child DataWindow에 관하여 Retrieve 함수를 호출하여야 한다.

RowsCopy 함수의 용도는 다음과 같다:

· 기존의 데이터를 바탕으로 새로운 row를 생성할 수 있도록 하나이상의 row을 복사본을 만든다

· 선택한 row들을 다른 DataWindow로 복사하여 특정 범위의 row를 인쇄한다

[예제]

* 다음 문장은 dw_1의 현재 row부터 모든 row를 dw_2의 primary 버퍼에 복사한다.

dw_1.RowsCopy(dw_1.GetRow(), dw_1.RowCount(), Primary!, dw_2, 1, Primary!)

[참고]

RowsDiscard

RowsMove


RowsDiscard PowerScript 함수

[설명]

DataWindow control에서 특정 범위의 row를 제거한다. RowsDiscard 함수를 이용하여 제거된 row는 다시 불러들일 수 없다. 그 row를 다시 사용하려면 데이터베이스로부터 retrieve를 다시 하여야 한다.

[적용]

DataWindow controls와 child DataWindows

[문법]

dwcontrol.RowsDiscard ( startrow, endrow, buffer )

[Argument]

dwcontrol | row를 제거하려는 DataWindow control 또는 child DataWindow의 이름
startrow | 제거하려는 첫 번째 row의 번호 (long 값)
endrow | 제거하려는 마지막 row의 번호 (long 값)
buffer | 제거하려는 row를 포함하고있는 dwBuffer 열거형 데이터 타입의 값: · Primary! · Delete! · Filter!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, RowsDiscard 함수는 NULL을 리턴한다.

[용법]

응용프로그램이 DataWindow control에서 어떤 row와 함께 종료되고 그 row들이 데이터베이스 갱신에 영향을 주지않기를 원할 때 RowsDiscard 함수를 사용한다. 예를들어, Update 함수를 호출할 때 row가 삭제되는 것을 방지하기 위하여, delete 버퍼내의 row를 제거할 수 있다.

DataWindow control의 모든 row를 제거하려면, Reset 함수를 사용한다.

[예제]

* 다음 문장은 dw_1 delete 버퍼에 있는 모든 row를 제거한다. 결과적으로 응용프로그램에서 나중에 dw_1.Update()를 호출한다면, DataWindow는 이들 row에 관한 SQL DELETE 문장을 DBMS에 보내지 않을 것이다.

dw_1.RowsDiscard(1, dw_1.DeletedCount(), Delete!)

[참고]

Reset

RowsCopy

RowsMove


RowsMove PowerScript 함수

[설명]

하나의 DataWindow control (또는 DataStore)에서 특정 범위의 row를 다른 곳으로 삽입한다. 단일 DataWindow control (또는 DataStore)의 경우는 한 버퍼에서 다른 버퍼로 row를 이동 시킨다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.RowsMove ( startrow, endrow, movebuffer, targetdw, beforerow, targetbuffer )

[Argument]

dwcontrol | row를 이동시키려는 DataWindow control, DataStore, child DataWindow 이름
startrow | 이동시키려는 첫 번째 row 번호 (long 값)
endrow | 이동시키려는 마지막 row 번호 (long 값)
movebuffer | row를 이동시키려는 버퍼를 명시한 dwBuffer 열거형 데이터 타입의 값: · Primary! · Delete! · Filter!
targetdw | Row가 이동될 DataWindow control 이나 DataStore 이름. targetdw는 동일한 DataWindow control (또는 DataStore)과 다른 DataWindow control (또는 DataStore) 모두 가능하지만, child DataWindow는 명시할 수 없다.
beforerow | 이동된 row를 삽입하기 직전의 row 번호 (long 값). 마지막 row 이후에 삽입하려면, 존재하는 row의 수보다 큰 임의의 값을 사용한다.
targetbuffer | 복사된 row에관한 대상 버퍼를 명시하는 dwBuffer 열거형 데이터 타입의 값: · Primary! · Delete! · Filter!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, RowsMove 함수는 NULL을 리턴한다.

[용법]

RowsMove 함수를 사용할 때, 대상 DataWindow내의 row는 NewModified! 상태를 갖는다. 단일 DataWindow control 이나 DataStore의 버퍼 사이에 row를 이동한다면, PowerBuilder는 row가 어느 버퍼에서 왔는지 계속하여 인지하고 있으며 row상태는 적절하게 변경된다. 예를들어, 수정되지 않은 row를 primary 버퍼에서 delete 버퍼로 이동하면, 각 row에 삭제 마크가된다. 만일 그 rowemf을 primary 버퍼로 다시 이동시키면, row의 상태는 NotModified!로 되돌아간다. 그러나, DataWindow control (또는 DataStore)에서 다른 DataWindow control (또는 DataStore)로 이동 시켰다가 다시 가져오면, 그 row들은 다른 DataWindow로부터 왔기 때문에 NewModified! 상태가 된다는 점에 유의하여야 한다.

RowsMove 함수를 사용할 때, 대상 DataWindow안의 drop-down DataWindow에 관한 데이터 retrieve는 자동으로 이루어지지 않는다 (InsertRow 함수의 경우는 자동으로 이루어진다). 따라서 대상 DataWindow에 있는 child DataWindow를 위하여 반드시 Retrieve 함수를 호출하여야 한다.

RowsMove 함수의 용도는 다음과 같다:

· 한번에 한 row씩 삭제하지 않고 여러 개의 row를 primary 버퍼에서 delete 버퍼로 이동시킨다

· 응용프로그램에 Undo(실행취소) 기능을 부여하기 위하여, 여러 개의 row를 delete 버퍼에서 primary 버퍼로 이동시킨다

[예제]

* 다음 문장은 dw_1의 delete 버퍼에서 첫 번째 row부터 시작하여 모든 row들을 dw_1의 primary 버퍼로 이동시킨다; 따라서 이들 row들은 삭제가 취소되는 것이다.

dw_1.RowsMove(1, dw_1.DeletedCount(), Delete!, dw_1, 1, Primary!)

[참고]

RowsCopy

RowsDiscard


Run PowerScript 함수

[설명]

명시한 응용프로그램을 실행한다.

[문법]

Run ( string {, windowstate } )

[Argument]

string | 실행하려는 프로그램의 파일이름. 선택적으로, string은 프로그램에 관한 파라미터들을 포함할 수 있다.
windowstate | (선택사항) 실행하려는 프로그램의 상태를 나타내는 WindowState 열거형 데이터 타입의 값:
 | · Maximized! | 최대화; 시작할 때 윈도우의 최대 크기로 확장된다.
 | · Minimized! | 최소화; 시작할 때 윈도우의 최소 크기로 축소된다. Macintosh 상에서는, background에 응용프로그램이 추가된다.
 | · Normal! | (기본설정 값) 윈도우의 보통크기로 실행한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Run 함수는 NULL을 리턴한다.

[용법]

오퍼레이팅 시스템에서 실행할 수 있는 모든 프로그램에 Run 함수를 적용할 수 있다. 파라미터를 명시하지 않으면, Run 함수는 해당 응용프로그램을 오픈하고 최대화된 응용프로그램 윈도우를 나타낸다. windowstate를 명시하면, 응용프로그램 윈도우는 명시한 상태로 오픈된다.

파라미터를 명시하면, 응용프로그램은 파라미터의 의미를 결정한다. 전형적으로 프로그램이 실행될 때 오픈할 데이터 파일을 결정하기 위하여 파라미터를 사용한다. 다른 PowerBuilder 응용프로그램을 실행하고있는 중이라면, 파라미터를 가져오고 그에 알맞게 처리하기 위하여 CommandParm 함수를 호출할 수 있다.

파일명에 확장자를 생략하면, PowerBuilder는 확장자가 .EXE인 것으로 가정한다. 다른 확장자 (예를들어, .BAT, .COM, .PIF 등)을 가진 프로그램을 실행시키려면, 반드시 확장자를 명시하여야 한다.

[예제]

* 다음 문장은 Microsoft Windows 95 Calc accessory 응용프로그램을 일반 크기로 실행한다.

Run("Calc")

* 다음 문장은 Microsoft Windows 95 Calc accessory 응용프로그램을 최소 크기로 실행한다.

Run("Clock", Minimized!)

* Windows에서, 다음 문장은 C 드라이브상의 WINNER.COM 프로그램을 최대 윈도우 크기로 실행하고 EMPLOYEE.INF 파일을 오픈하도록 파라미터 EMPLOYEE.INF를 통과시킨다.

Run("C:\WINNER.COM EMPLOYEE.INF", Maximized!)

* 다음 예제는 DOS batch 파일 MYBATCH.BAT를 실행하고 파라미터 "TEST"를 그 batch 파일에 통과시킨다. batch 파일내에, 파라미터가 사용되는 곳을 나타내기 위하여 % 첨자를 포함시킨다.

Run("MYBATCH.BAT TEST")

batch 파일의 문장은 FILE1을 TEST로 변경한다.

RENAME c:\PB\FILE1 %1

* Macintosh에서, 다음 문장은 System 폴더에서 Apple Items 폴더 안의 Chooser를 실행한다.

Run("Hard Disk:System Folder:Apple Menu Items:Chooser")

* UNIX에서, 다음 문장은 employee 디렉토리내의 데이터 입력 응용프로그램을 실행한다. 파라미터 new는 프로그램에 통과된다.

Run("/export/home/employee/dataentr.exe new")


Save PowerScript 함수

[설명]

OLE 2.0 control 이나 OLE storage object내의 OLE object를 저장한다.

Platform 정보

OLE 함수들은 Macintosh와 UNIX에서는 효과가 없다.

[문법]

oleobject.Save ( )

[Argument]

oleobject

OLE 2.0 control이나 OLE storage 변수의 이름

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- control이 비어있다

-9 -- 그 밖의 에러가 발생하였다

oleobject가 NULL이면, Save 함수는 NULL을 리턴한다.

[용법]

OLE object를 저장할 때, PowerBuilder는 OLE object와 open storage 또는 파일사이의 현재 접속을 따른다. Open 함수를 호출할 때 초기 접속을 설치한다. SaveAs 함수를 오픈하면, 이전의 접속은 해제되고 새로운 다른 storage 또는 파일과 함께 새로운 접속이 설치된다.

OLE 2.0 control에관한 Save 함수를 호출할 때, PowerBuilder는 OLE 2.0 control내의 object를 현재 접속된 storage에 저장한다. storage는 storage object 변수나 OLE storage 파일일 수 있다.

서버 응용프로그램에 데이터를 저장할 수 없을 때, 즉 디스크에 파일이 없을 때, PowerBuilder내의 Save 함수는 에러를 리턴한다.

storage object 변수에관한 Save 함수를 호출하면, PowerBuilder는 그 storage를 현재 접속된 파일, 또는 그 파일내의 하위 storage에 저장한다. 반드시 디스크상의 OLE storage 파일 또는 파일내의 하위 storage에 Open이나 SaveAs 함수로 접속을 미리 설치하여야 한다.

언제 저장을 두 번 하는가 ?

storage object 변수를 생성하고 난 후 OLE 2.0 control에 object를 오픈한다면, 디스크에 변경된 OLE 정보를 기록하기 위하여 Save 함수를 두 번 호출할 필요가 있다: 한 번은 control내의 object로부터 storage에 저장하기 위한 것이고, 다시 한번은 그 storage를 연관된 파일에 저장하기 위한 것이다.

[예제]

* 다음 예제는 control ole_1내의 object를 storage로 저장한다.

integer result

result = ole_1.Save( )

* 다음 예제는 storage object를 파일에 저장한다. Olestor_1은 olestorage 타입의 instance 변수이다.

integer result

result = olestor_1.Save( )

* 윈도우의 Open 스크립트에서, 다음 문장은 instance 변수로 선언되 storage 변수 ole_stor를 생성하고, 여러개의 Visio 그림을 포함하고있는 storage 파일과 연관시킨다. 다음에 그림중 하나를 ole_draw control에 오픈한다. object를 편집하고난 후, Save 버튼은 그 object를 storage에 저장하고 다음에 그 storage의 파일에 저장한다.

윈도우의 Open 이벤트 스크립트는 다음을 포함하고 있다:

OLEStorage stg_stor

stg_stor = CREATE OLEStorage

stg_stor.Open("myvisio.ole")

ole_draw.Open(ole_stor, "visio_drawing1")

Save 버튼의 Clicked 이벤트 스크립트는:

integer result

result = ole_draw.Save( )

IF result = 0 THEN ole_stor.Save( )

[참고]

Close

SaveAs


SaveAs PowerScript 함수: syntax 1

[설명]

DataWindow나 DataStore의 내용을 명시한 형식으로 저장한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SaveAs ( { filename, saveastype, colheading } )

[Argument]

dwcontrol | 저장하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
filename | (선택사항) 내용이 저장될 파일 이름. filename을 생략하거나 빈 문자열("") 명시하면, PowerBuilder는 대화상자를 나타낸다.
Saveastype | (선택사항) DataWindow object의 내용을 저장하기 위한 형식을 명시한 SaveAsType 열거형 데이터 타입의 값. · Clipboard! : 클립보드에 저장한다 · CSV! : 쉼표(,)로 분리된 값 · dBASE2! : dBASE-II 형식 · dBASE3! : dBASE-III 형식 · DIF! : Data Interchange 형식 · Excel! : Microsoft Excel 형식 · HTMLTable! : DataWindow layout과 유사한 HTML 형식의 텍스트 · PSReport! : Powersoft Report (PSR) 형식 · SQLInsert! : SQL 문법 · SYLK! : Microsoft Multiplan 형식 · Text! : (기본설정 값) 각 row의 끝에 return 값을 갖는 Tab-분리 칼럼형식의 텍스트 · WKS! : Lotus 1-2-3 형식 · WK1! : Lotus 1-2-3 형식 · WMF! : Windows Metafile 형식
colheading | (선택사항) 파일의 시작 부분에 DataWindow의 칼럼 머리말을 포함할 것인지 여부를 나타내는 논리값. 기본설정 값은 TRUE이다. dBASE 파일은 항상 칼럼 머리말이 저장된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

SaveAs 함수의 모든 argument를 명시하지 않으면, PowerBuilder는 Save Rows As 대화상자를 나타낸다.

이 대화상자의 dropdown listbox는 저장할 데이터의 형식을 사용자가 명시할 수 있도록 해준다.

DataWindow가 composite report라면, Report 형식 (SaveAsType의 PSReport! 값)만 가능하다. 레포트가 다른 사용자에 의하여 제공되는 것이라면, 반드시 중첩된 DataWindow로 정의되어있어야 한다.

DataWindow object가 RichText 형식일 경우, PSReport!를 선택하는 것은 아무런 효과가 없다.

[예제]

* 다음 문장은 dw_History의 내용을 G:\INVENTORY\EMPLOYEE.HIS 파일에 저장한다. 저장되는 파일은 칼럼 머리말이 없는 CSV 형식이다.

dw_History.SaveAs("G:\INVENTORY\EMPLOYEE.HIS", CSV!, FALSE)

[참고]

Print

Update

SaveAs: Syntax 2 (그래프)

SaveAs: Syntax 3 (파일내의 OLE 2.0 control)

SaveAs: Syntax 4 (OLE 2.0 control과 storage object)

SaveAs: Syntax 5 (OLE storage object와 파일)

SaveAs: Syntax 6 (OLE storage object)

SaveAs PowerScript 함수: syntax 2

[설명]

명시한 형식으로 그래프내의 데이터를 저장한다.

[적용]

윈도우와 사용자 object내의 그래프 및 DataWindow control과 DataStore내의 그래프

[문법]

controlname.SaveAs ( { filename, { graphcontrol, saveastype , colheading } } )

[Argument]

controlname | 저장하려는 graph control의 이름 또는 그래프를 포함하고 있는 DataWindow나 DataStore 이름
filename | (선택사항) 그래프의 데이터를 저장할 파일 이름. filename을 생략하거나 빈 문자열("") 명시하면, PowerBuilder는 대화상자를 나타낸다.
graphcontrol | (DataWindow control만 해당, 선택사항) 저장할 내용을 가지고 있는 DataWindow control이나 DataStore내의 그래프 이름
saveastype | (선택사항) 그래프 내에 표현된 데이터를 저장하기위한 형식을 명시한 SaveAsType 열거형 데이터 타입의 값. · Clipboard! : 클립보드에 저장한다 · CSV! : 쉼표(,)로 분리된 값 · dBASE2! : dBASE-II 형식 · dBASE3! : dBASE-III 형식 · DIF! : Data Interchange 형식 · Excel! : Microsoft Excel 형식 · HTMLTable! : DataWindow layout과 유사한 HTML 형식의 텍스트 · PSReport! : Powersoft Report (PSR) 형식 · SQLInsert! : SQL 문법 · SYLK! : Microsoft Multiplan 형식 · Text! : (기본설정값) 각 row의 끝에 return 값을 갖는 Tab-분리 칼럼형식의 텍스트 · WKS! : Lotus 1-2-3 형식 · WK1! : Lotus 1-2-3 형식 · WMF! : Windows Metafile 형식
colheading | (선택사항) 저장된 데이터의 시작 부분에 칼럼 머리말을 포함할 것인지 여부를 나타내는 논리값. 기본설정 값은 TRUE이다. dBASE 파일은 항상 칼럼 머리말이 저장되므로 이 옵션은 무시된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

SaveAs 함수의 모든 argument를 명시하지 않으면, PowerBuilder는 Save Rows As 대화상자를 나타내어 저장할 데이터 형식을 사용자가 명시할 수 있도록 해준다.

[예제]

* 다음 문장은 graph gr_History의 내용을 저장한다. 파일이름과 형식을 명시하지 않았기 때문에, PowerBuilder는 파일 이름을 명시하도록 대화상자를 나타내고 그래프는 탭-분리형식의 텍스트로 저장된다.

gr_History.SaveAs( )

* 다음 문장은 gr_History의 내용을 G:\HR\EMPLOYEE.HIS 파일에 저장한다. 형식은 칼럼 머리말을 포함하지 않는 CSV 형식이다.

gr_History.SaveAs("G:\HR\EMPLOYEE.HIS" ,CSV!, FALSE)

* 다음 문장은 DataWindow control dw_equipmt의 gr_computers 내용을 G:\INVENTORY\SALES.XLS 파일에 저장한다. 형식은 칼럼 머리말을 포함하는 Excel 형식이다.

dw_equipmt.SaveAs("gr_computers", "G:\INVENTORY\SALES.XLS", Excel!, TRUE)

[참고]

Print

SaveAs: Syntax 1 (DataWindow)

SaveAs: Syntax 3 (파일내의 OLE 2.0 control)

SaveAs: Syntax 4 (OLE 2.0 control과 storage object)

SaveAs: Syntax 5 (OLE storage object와 파일)

SaveAs: Syntax 6 (OLE storage object)

SaveAs PowerScript 함수: syntax 3

[설명]

storage 파일내에있는 OLE 2.0 control의 object를 저장한다.

Platform 정보

OLE 함수는 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.SaveAs ( OLEtargetfile )

[Argument]

ole2control

저장하려는 object를 포함하고있는 OLE 2.0 control의 이름

OLEtargetfile OLE storage 파일의 이름. 이 파일은 이미 존재하고있을 수도 있다. OLEtargetfile은 파일의 내부구조 내에 object가 저장된 장소에관한 정보를 나타내기 위하여 경로를 포함할 수 있다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값들을 리턴한다:

-1 -- control이 비어있다

-2 -- storage가 오픈되어 있지 않다

-3 -- storage 이름이 올바르지 않다

-9 -- 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

Open 함수는 storage 파일과 storage object사이, 또는 storage 파일이나 object와 OLE 2.0 control 사이에 연결(connection)을 설치한다. Save 함수는 OLE 데이터를 저장하기 위하여 이 연결(connection)을 사용한다.

OLE 2.0 control에 관한 SaveAs 함수를 호출할 때, OLE object와 OLE storage, 파일 또는 storage object사이의 현재 연결(connection)은 닫혀진다. 이것은 새로운 storage와의 새로운 연결을 설치하여, 뒤이어 호출하는 Save 함수의 대상(target)이 되는 것이다.

[예제]

* 다음 문장은 ole_1 control내의 object를 저장한다.

integer result

result = ole_1.SaveAs("c:\ole2\expense.ole")

[참고]

Open

Save

SaveAs: Syntax 1 (DataWindow)

SaveAs: Syntax 2 (그래프)

SaveAs: Syntax 4 (OLE 2.0 control과 storage object)

SaveAs: Syntax 5 (OLE storage object와 파일)

SaveAs: Syntax 6 (OLE storage object)

SaveAs PowerScript 함수: syntax 4

[설명]

OLE 2.0 control내의 onject를 메모리내의 OLE storage object에 저장한다.

Platform 정보

OLE 함수는 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.SaveAs (targetstorage, substoragename )

[Argument]

ole2control | 저장하려는 object를 포함하고있는 OLE 2.0 control의 이름
substoragename | targetstorage내의 substorage 이름. substorage가 존재하지 않으면, SaveAs 함수는 이를 생성한다
targetstorage | ole2control내에 object를 저장하기 위한 OLEStorage 타입의 object 변수 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값들을 리턴한다:

-1 -- control이 비어있다

-2 -- storage가 오픈되어 있지 않다

-3 -- storage 이름이 올바르지 않다

-9 -- 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

Open 함수는 storage 파일과 storage object사이, 또는 storage 파일이나 object와 OLE 2.0 control 사이에 연결(connection)을 설치한다. Save 함수는 OLE 데이터를 저장하기 위하여 이 연결(connection)을 사용한다.

OLE 2.0 control에 관한 SaveAs 함수를 호출할 때, OLE object와 OLE storage, 파일 또는 storage object사이의 현재 연결(connection)은 닫혀진다. 이것은 새로운 storage와의 새로운 연결을 설치하여, 뒤이어 호출하는 Save 함수의 대상(target)이 되는 것이다.

[예제]

* 다음 문장은 ole_1 control내의 object를 storage 변수 stg_stuff에 저장한다.

integer result

result = ole_1.SaveAs(stg_stuff)

[참고]

Open

Save

SaveAs: Syntax 1 (DataWindow)

SaveAs: Syntax 2 (그래프)

SaveAs: Syntax 3 (파일내의 OLE 2.0 control)

SaveAs: Syntax 5 (OLE storage object와 파일)

SaveAs: Syntax 6 (OLE storage object)

SaveAs PowerScript 함수: syntax 5

[설명]

OLE storage object를 파일에 저장한다. OLE 2.0 control이 오픈된 OLE storage object를 가지고 있다면, SaveAs의 이 문법은 그들의 상태도 함께 저장한다.

Platform 정보

OLE 함수는 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLE storage objects

[문법]

olestorage.SaveAs ( OLEtargetfile )

[Argument]

olestorage | 저장하려는 OLE object를 포함하고있는 OLEStorage 타입의 object 변수 이름
OLEtargetfile | 새로운 OLE storage 파일 이름. OLEtargetfile은 경로를 포함할 수 있다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- storage가 오픈되어 있지 않다

-2 -- storage 이름이 올바르지 않다

-3 -- parent storage가 오픈되어 있지 않다

-4 -- 파일이 이미 존재한다

-5 -- 메모리가 불충분 하다

-6 -- 너무 많은 파일이 오픈되어 있다

-7 -- 접근이 금지되어있다

-9 -- 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

Open 함수는 storage 파일과 storage object사이, 또는 storage 파일이나 object와 OLE 2.0 control 사이에 연결(connection)을 설치한다. Save 함수는 OLE 데이터를 저장하기 위하여 이 연결(connection)을 사용한다.

storage object에 관한 SaveAs 함수를 호출할 때, storage object와 파일 사이의 현재 연결(connection)은 닫혀지고 storage object 데이터에 관한 새로운 파일이 생성된다.

storage 파일의 구조에 관한 정보는, Open 함수를 참조한다.

[예제]

* 다음 예제는 storage object stg_stuff를 MYSTUFF.OLE 파일에 저장한다. olest_stuff는 instance 변수이다.

integer result

result = stg_stuff.SaveAs("c:\ole2\mystuff.ole")

* 다음 예제는 하나의 파일내에 substorage를 오픈하고 그것을 다른 파일에 저장한다. OLE 2.0 storage 파일인 MYROOT.OLE는 여러 개의 substorage를 포함하고 있다: 그 중 하나는 sub1이다. sub1을 오픈하고 그것을 다른 파일에 저장하기 위하여, 예제에서는 두 개의 storage object stg1과 stg2를 선언하였다. 우선 MYROOT.OLE는 stg1으로 오픈된다. 다음에, sub1은 stg2로 오픈된다. 마지막으로, stg2는 새로운 파일 MYSUB.OLE에 저장된다. 워드 작업용 문서를 오픈하고 새로운 이름으로 저장할 때 처럼, stg2내에 오픈된 object는 더 이상 MYROOT.OLE와 연관되어있지 않으며; 이제 MYSUB.OLE와 연결된다.

olestorage stg1, stg2

stg1 = CREATE OLEStorage

stg2 = CREATE OLEStorage

stg1.Open("myroot.ole")

stg2.Open("sub1", stg1)

stg2.SaveAs("mysub.ole")

[참고]

Close

Open

Save

SaveAs: Syntax 1 (DataWindow)

SaveAs: Syntax 2 (그래프)

SaveAs: Syntax 3 (파일내의 OLE 2.0 control)

SaveAs: Syntax 4 (OLE 2.0 control과 storage object)

SaveAs: Syntax 6 (OLE storage object)

SaveAs PowerScript 함수: syntax 6

[설명]

OLE storage object를 메모리내의 다른 OLE storage object 변수에 저장한다.

Platform 정보

OLE 함수는 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLE storage objects

[문법]

olestorage.SaveAs ( substoragename, targetstorage )

[Argument]

olestorage | 저장하려는 OLE object를 포함하고있는 OLEStorage 타입의 object 변수 이름
substoragename | targetstorage내의 substorage 이름. substorage가 존재하지 않으면, SaveAs 함수는 이를 생성한다
targetstorage | olestorage내에 object를 저장하기 위한 OLEStorage 타입의 object 변수 이름. Substoragename과 targetstorage의 순서가 Syntax 4와 바뀐것에 주의하여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴 하고 에러가 발생하면 다음 값을 리턴 한다:

-1 -- storage가 오픈 되어 있지 않다

-2 -- storage 이름이 올바르지 않다

-3 -- parent storage가 오픈 되어 있지 않다

-4 -- 파일이 이미 존재한다

-5 -- 메모리가 불충분 하다

-6 -- 너무 많은 파일이 오픈 되어 있다

-7 -- 접근이 금지되어있다

-9 -- 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, SaveAs 함수는 NULL을 리턴한다.

[용법]

Open 함수는 storage 파일과 storage object사이, 또는 storage 파일이나 object와 OLE 2.0 control 사이에 연결(connection)을 설치한다. Save 함수는 OLE 데이터를 저장하기 위하여 이 연결(connection)을 사용한다.

storage object에 관한 SaveAs 함수를 호출할 때, storage object와 파일 사이의 현재 연결(connection)은 닫혀지고 storage object의 데이터에 관한 새로운 파일이 생성된다.

storage 파일의 구조에 관한 정보는, Open 함수를 참조한다.

[예제]

* 다음 예제는 OLEStorage variable stg_stuff내의 object를 두 번째 storage 변수 stg_clone에 substorage copy1으로 저장한다.

integer result

result = stg_stuff.SaveAs("copy1", stg_clone)

[참고]

Close

Open

Save

SaveAs: Syntax 1 (DataWindow)

SaveAs: Syntax 2 (그래프)

SaveAs: Syntax 3 (파일내의 OLE 2.0 control)

SaveAs: Syntax 4 (OLE 2.0 control과 storage object)

SaveAs: Syntax 5 (OLE storage object와 파일)


SaveDocument PowerScript 함수

[설명]

RichTextEdit control의 내용을 파일에 저장한다. 저장할 파일의 형식으로 rich-text 형식 (RTF)이나 ASCII 텍스트 형식을 명시할 수 있다.

[적용]

RichTextEdit controls

[문법]

rtename.SaveDocument ( filename {, filetype } )

[Argument]

rtename | 저장하려는 RichTextEdit control의 이름
filename | 저장할 파일의 이름. 파일이 이미 존재하면, FileExists 이벤트가 트리거 된다
filetype | 저장될 파일의 형식을 명시하는 FileType 열거형 데이터 타입의 값: · FileTypeRichText! -- rich 텍스트 형식 (RTF)으로 파일을 저장한다 · FileTypeText! -- ASCII 텍스트로 파일을 저장한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[Event]

저장할 파일이름이 이미 존재하면 SaveDocument 함수는 FileExists 이벤트를 트리거한다.

[예제]

* CommandButton에 관한 다음 문장은 RichTextEdit rte_1의 문서를 저장한다.

integer li_rtn

li_rtn = rte_1.SaveDocument("c:\test.rtf", FileTypeRichText!)

TEST.RTF 파일이 이미 존재하면, PowerBuilder는 다음 스크립트를 가진 FileExists 이벤트를 트리거한다. OpenWithParm은 Yes를 선택하였을 때 그 파일에 겹쳐쓰는 response 윈도우를 나타낸다. FileExists로부터의 리턴 값은 파일의 저장 여부에 의하여 결정된다.

OpenWithParm( w_question, &

"The specified file already exists. " + &

"Do you want to overwrite it?" )

IF Message.StringParm = "Yes" THEN

RETURN 0 // 파일이 저장되었다

ELSE

RETURN -1 // 저장을 취소하였다

END IF

[참고]

InsertDocument


Scroll PowerScript 함수

[설명]

multiline 편집 control이나 DataWindow의 편집 control에 명시한 라인 수만큼 상/하로 스크롤한다.

[적용]

DataWindow, MultiLineEdit, RichTextEdit controls

[문법]

editname.Scroll ( number )

[Argument]

editname | 상/하로 스크롤하려는 DataWindow, RichTextEdit, 또는 MultiLineEdit의 이름. editname이 DataWindow면, Scroll 함수는 그 편집 control에 영향을 준다.
number | 스크롤하려는 라인 수와 방향. 아래로 스크롤하려면 양수를 사용하고, 위로 스크롤하려면 음수를 사용한다.

[Return 값]

Integer.

RichTextEdit controls의 경우, 처리에 성공하면 1을 리턴한다. 그 밖의 control 경우는, 처리에 성공하면 editname에서 첫 번째로 보이는 라인의 번호를 리턴한다. 에러가 발생하면 -1을 리턴하고, argument 값 중에 NULL이 있으면 Scroll 함수는 NULL을 리턴한다.

[용법]

리스트내에 남아있는 라인의 수가 스크롤하려는 라인의 수보다 적으면 Scroll 함수는 명시된 방향에 따라 처음이나 끝으로 스크롤한다.

[예제]

* 다음 문장은 4라인 아래로 mle_Employee를 스크롤한다.

mle_Employee.Scroll(4)

* 다음 문장은 4라인 위로 mle_Employee를 스크롤한다.

mle_Employee.Scroll(-4)

[참고]

ScrollNextPage

ScrollNextRow

ScrollPriorPage

ScrollPriorRow

ScrollToRow


ScrollNextPage PowerScript 함수: syntax 1

[설명]

DataWindow control의 다음 페이지로 스크롤하고, 다음 그룹의 row들을 나타낸다. (한 페이지는 DataWindow control에 한 번에 표시할수 있는 row의 수이다.) ScrollNextPage 함수는 현재 row를 변경 시키지만, 현재 칼럼은 변경하지 않는다.

[적용]

DataWindow controls, child DataWindows

[문법]

dwcontrol.ScrollNextPage ( )

[Argument]

dwcontrol

다음 페이지로 스크롤하려는 DataWindow control 이나 child DataWindow의 이름

[Return 값]

Long.

스크롤이 완료된 후 DataWindow control에 첫 번째 표시된 row 또는 이전 페이지의 마지막 row 번호를 리턴한다. 에러가 발생하면 -1을 리턴하고, argument 값중에 NULL이 있으면 ScrollNextPage 함수는 NULL을 리턴한다.

[용법]

ScrollNextPage 함수는 현재 row를 반전시키지 않는다. 현재 row를 알려면 SelectRow를 사용한다.

[Note]

마지막 페이지로 스크롤 하였는지 여부를 체크하기 위하여 RowCount와 Describe 함수를 사용하는 예제는 RowCount 함수를 참조한다.

[Events]

ScrollNextPage함수는 다음 이벤트를 트리거 시킬 수 있다:

ItemChanged

ItemError

ItemFocusChanged

RowFocusChanged

[예제]

* 다음 문장은 dw_employee의 다음 페이지로 스크롤 한다:

dw_employee.ScrollNextPage( )

[참고]

Scroll

ScrollNextRow

ScrollPriorPage

ScrollPriorRow

ScrollToRow

ScrollNextPage: Syntax 2

ScrollNextPage PowerScript 함수: syntax 2

[설명]

RichTextEdit control이나 RichTextEdit DataWindow에서 다음 페이지로 스크롤 한다.

[적용]

DataWindow와 RichTextEdit controls

[문법]

rtename.ScrollNextPage ( )

[Argument]

rtename

다음 페이지로 스크롤하려는 RichTextEdit나 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit control이 DataWindow와 데이터를 공유하고 있을 때, RichTextEdit는 그 문서의 여러 instance를 포함한다, 하나의 instance는 각각의 row에 해당하는 것이다.

문서의 마지막 row가 표시되어있을 때, ScrollNextPage를 호출하면 다음 페이지의 첫 번째 row로 나타난다.

[예제]

* 다음 문장은 RichTextEdit control rte_1에서 문서의 다음 페이지로 스크롤한다. 문서의 다중 instance가 존재하면, 다음 instance로 스크롤 할 수 있다.

rte_1.ScrollNextPage( )

[참고]

Scroll

ScrollNextRow

ScrollPriorPage

ScrollPriorRow

ScrollToRow

ScrollNextPage: Syntax 1


ScrollNextRow PowerScript 함수: syntax 1

[설명]

DataWindow control의 다음 row로 스크롤한다. ScrollNextRow 함수는 현재 row를 변경 시키지만, 현재 칼럼은 변경하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.ScrollNextRow ( )

[Argument]

dwcontrol

다음 row로 스크롤하려는 DataWindow control 이나 child DataWindow의 이름

[Return 값]

Long.

스크롤이 완료된 후 DataWindow control에 첫 번째 표시된 row 또는 이전 페이지의 마지막 row 번호를 리턴한다. 에러가 발생하면 -1을 리턴하고, argument 값중에 NULL이 있으면 ScrollNextRow 함수는 NULL을 리턴한다.

[용법]

ScrollNextRow 함수를 호출한 이후에, 스크롤된 row가 현재 row가 된다. row가 이미 보이는 상태였다면, 표시된 row들에는 변화가 일어나지 않는다. 보이지 않는 상태였다면, 그 row를 나타내기 위하여 표시된 row들이 위로 이동한다.

ScrollNextRow 함수는 row를 반전시키지 않는다. 현재 row가 무엇인지 알아보려면 SelectRow 함수를 사용한다.

[Events]

ScrollNextRow는 다음 이벤트를 트리거할 수 있다:

ItemChanged

ItemError

ItemFocusChanged

RowFocusChanged

[예제]

* 다음 문장은 dw_employee의 다음 row로 스크롤 한다.

dw_employee.ScrollNextRow( )

[참고]

Scroll

ScrollNextPage

ScrollPriorPage

ScrollPriorRow

ScrollToRow

ScrollNextRow: Syntax 2

ScrollNextRow PowerScript 함수: syntax 2

[설명]

RichTextEdit control이나 RichTextEdit DataWindow내 문서의 다음 instance로 스크롤한다. DataWindow와 데이터를 공유할 때 RichTextEdit control은 문서의 다중 instance를 갖는다. 문서의 다음 instance는 DataWindow의 다음 row와 연관되어있다.

[적용]

DataWindow와 RichTextEdit controls

[문법]

rtename.ScrollNextRow ( )

[Argument]

rtename

다음 문서 instance로 스크롤하려는 RichTextEdit나 DataWindow control의 이름. 각 instance는 하나의 DataWindow row와 연관되어있다. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit control이 DataWindow와 데이터를 공유하고 있을 때, RichTextEdit는 그 문서의 여러 instance를 포함한다, 하나의 instance는 각각의 row에 해당하는 것이다.

ScrollNextRow는 RichTextEdit 문서의 다음 instance로 진행된다. 대조적으로, 문서 instance의 모든 페이지를 통과하도록 ScrollNextPage 함수를 반복하여 호출하고 나면 그 다음 row에 관한 페이지로 이동한다.

[예제]

* 다음 문장은 RichTextEdit control rte_1 문서의 다음 instance로 스크롤한다. (각 문서의 instance는 데이터 row와 연관되어있다.)

rte_1.ScrollNextRow( )

[참고]

Scroll

ScrollNextPage

ScrollPriorPage

ScrollPriorRow

ScrollToRow

ScrollNextPage: Syntax 1


ScrollPriorPage PowerScript 함수: syntax 1

[설명]

DataWindow control의 이전 페이지로 스크롤하고, 이전 그룹의 row들을 나타낸다. (한 페이지는 DataWindow control에 한 번에 표시할수 있는 row의 수이다.) ScrollPriorPage 함수는 현재 row를 변경 시키지만, 현재 칼럼은 변경하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.ScrollPriorPage ( )

[Argument]

dwcontrol

이전 페이지로 스크롤하려는 DataWindow control 이나 child DataWindow의 이름

[Return 값]

Long.

스크롤이 완료된 후 DataWindow control에 첫 번째 표시된 row 또는 이전 페이지의 마지막 row 번호를 리턴한다. 에러가 발생하면 -1을 리턴하고, dwcontrol 값이 NULL이 있으면 ScrollPriorPage 함수는 NULL을 리턴한다.

[용법]

ScrollPriorPage 함수는 현재 row를 반전시키지 않는다. 현재 row를 알려면 SelectRow를 사용한다.

[Events]

ScrollPriorPage 함수는 다음 이벤트들을 트리거 할 수도 있다:

ItemChanged

ItemError

ItemFocusChanged

RowFocusChanged

[예제]

* 다음 문장은 dw_employee의 한 페이지 이전으로 스크롤한다.

dw_employee.ScrollPriorPage( )

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorRow

ScrollToRow

ScrollPriorPage: Syntax 2

ScrollPriorPage PowerScript 함수: syntax 2

[설명]

RichTextEdit control 이나 RichTextEdit DataWindow 문서의 이전 페이지로 스크롤한다.

[적용]

DataWindow와 RichTextEdit controls

[문법]

rtename.ScrollPriorPage ( )

[Argument]

rtename

이전 페이지로 스크롤하려는 RichTextEdit나 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit가 DataWindow와 데이터를 공유할 때, RichTextEdit는 각 row가 하나의 instance에 대응하는 다중 instance를 포함한다.

row에 관한 문서의 첫 번째 페이지가 스크린에 나타나 있을때, ScrollPriorPage는 마지막 페이지의 이전 row로 이동한다.

[예제]

* 다음 문장은 RichTextEdit control rte_1 문서의 이전 페이지로 스크롤한다. 문서의 다중 instance가 존재하면, 이전 instance로 스크롤할 수 있다.

rte_1.ScrollPriorPage( )

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorRow

ScrollToRow

ScrollPriorPage: Syntax 1


ScrollPriorRow PowerScript 함수: syntax 1

[설명]

DataWindow control에서 한 row 이전으로 스크롤한다. ScrollPriorRow는 현재 row를 변경하지만 현재 칼럼은 변경하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.ScrollPriorRow ( )

[Argument]

dwcontrol

한 row이전으로 스크롤하려는 DataWindow의 이름

[Return 값]

Long.

스크롤이 완료된 후 DataWindow control에 첫 번째 표시된 row 또는 이전 페이지의 마지막 row 번호를 리턴한다. 에러가 발생하면 -1을 리턴하고, dwcontrol 값이 NULL이 있으면 ScrollPriorRow 함수는 NULL을 리턴한다.

[용법]

ScrollPriorRow 함수를 호출한 후에는, 현재 row 이전에 위치하였던 row가 새로운 현재 row가 된다. 그 row가 화면상에 나타나 있었다면, 표시된 row들은 변하지 않는다. 화면상에 나타나 있지 않았다면, 새로운 row를 나타내기 위하여 row들이 아래쪽으로 이동한다.

ScrollPriorRow 함수는 row를 반전 시키지 않는다. 현재 row가 무었인지 알아보려면 SelectRow 함수를 사용한다.

[Event]

ScrollPriorRow는 다음 이벤트들을 트리거 시킬 수 있다:

ItemChanged

ItemError

ItemFocusChanged

RowFocusChanged

[예제]

* 다음 문장은 dw_employee의 이전 row로 스크롤한다.

dw_employee.ScrollPriorRow( )

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorPage

ScrollToRow

ScrollPriorRow: Syntax 2

ScrollPriorRow PowerScript 함수: syntax 2

[설명]

RichTextEdit control 이나 RichTextEdit DataWindow 문서의 이전 instance로 스크롤한다. RichTextEdit control은 DataWindow와 데이터를 공유할 때 문서의 다중 instance를 갖는다. 문서의 다음 instance는 DataWindow의 다음 row와 연관되어있다.

[적용]

DataWindow 와 RichTextEdit controls

[문법]

rtename.ScrollPriorRow ( )

[Argument]

rtename

문서의 이전 instance로 스크롤하려는 RichTextEdit 또는 DataWindow control의 이름. 각 instance는 하나의 DataWindow row와 연관되어있다. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit가 DataWindow와 데이터를 공유할 때, RichTextEdit는 그 문서의 다중 instance를 갖고, 하나의 instance는 각 row에 해당한다.

ScrollPriorRow는 RichTextEdit 문서의 이전 instance로 이동한다. 대조적으로, 문서 instance의 모든 페이지를 통과하도록 ScrollPriorPage 함수를 반복하여 호출하고 나면 그 이전 row에 관한 페이지로 돌아간다.

[예제]

* 다음 문장은 RichTextEdit control rte_1 문선의 이전 instance로 스크롤한다 (각 instance는 데이터의 한 row와 연관되어있다.)

rte_1.ScrollPriorRow( )

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorPage

ScrollToRow

ScrollPriorRow: Syntax 1


ScrollToRow PowerScript 함수: syntax 1

[설명]

명시한 row로 DataWindow control을 스크롤 한다. ScrollToRow 함수는 현재 row를 변경하지만 현재 column은 변경하지 않는다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.ScrollToRow ( row )

[Argument]

dwcontrol | 명시한 row로 스크롤 하려는 DataWindow control 이나 child DataWindow의 이름
row | 스크롤하려는 row를 나타내는 long 값. row가 0 이면, ScrollToRow 함수는 첫 번째 row로 스크롤한다. row가 마지막 row 번호보다 크면, 마지막 row로 스크롤한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, ScrollToRow 함수는 NULL을 리턴한다.

[용법]

ScrollToRow 함수를 호출한 이후에 명시한 row는 새로운 현재 row가 된다. 그 row가 화면에 표시되어있으면, 표시된 row들은 변하지 않는다. 명시한 row가 화면에 나타나있지 않을 경우에는, 명시한 row를 나타내기 위하여 표시한 row들을 변경한다.

ScrollToRow 함수는 row를 반전시키지 않는다. 현재 row가 무엇인지 알려면 SelectRow 함수를 사용한다.

[Event]

ScrollToRow 함수는 다음 이벤트를 트리거할 수 있다:

ItemChanged

ItemError

ItemFocusChanged

RowFocusChanged

[예제]

* 다음 문장은 DataWindow control dw_employee의 row 10으로 스크롤하고 현재 row로 만든다.

dw_Employee.ScrollToRow(10)

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorPage

ScrollPriorRow

SelectRow

ScrollToRow: Syntax 2

ScrollToRow PowerScript 함수: syntax 2

[설명]

RichTextEdit control이 DataWindow와 데이터를 공유할 때 명시한 row와 연관된 문서 instance로 스크롤한다.

[적용]

RichTextEdit controls

[문법]

rtename.ScrollToRow ( row )

[Argument]

rtename | 명시한 row와 연관된 문서 instance로 스크롤하려는 RichTextEdit control의 이름
row | 스크롤하려는 row를 나타내는 long 값. row가 0이면 첫 번째 row로 스크롤하고, row가 연관된 DataWindow의 row수보다 크면 마지막 row로 스크롤한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit가 DataWindow와 데이터를 공유할 때, RichTextEdit는 문서의 다중 instance를 포함하며, 하나의 instance는 각 row에 대응된다. ScrollToRow 함수는 명시한 row와 연관된 instance로 이동한다.

[예제]

* 다음 예제에서 dw_1은 적어도 25개의 row들을 retrieve한다. DataSource를 호출한 이후에, RichTextEdit control은 최소한 그 문선의 25개 instance를 포함하게된다. ScrollToRow 함수는 25번째 instance로 스크롤한다.

rte_1.DataSource(dw_1)

rte_1.ScrollToRow(25)

[참고]

Scroll

ScrollNextPage

ScrollNextRow

ScrollPriorPage

ScrollPriorRow

ScrollToRow: Syntax 1


Second PowerScript 함수

[설명]

시간 값에서 초를 구한다.

[문법]

Second ( time )

[Argument]

time

초를 구하려는 시간 값

[Return 값]

Integer.

시간의 초 부분을 리턴한다 (00 부터 59). time이 NULL이면, Second 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 31을 리턴한다.

Second(19:01:31)

[참고]

Hour

Minute

Second (DataWindow painter 함수)


SecondsAfter PowerScript 함수

[설명]

어떤 시간에서 다른 시간까지 경과한 초를 구한다.

[문법]

SecondsAfter ( time1, time2 )

Argument Description

time1 간격을 측정하려는 시작 시간 값

time2 간격을 측정하려는 마지막 시간 값

[Return 값]

Long.

time1이후에 time2까지 경과한 초를 리턴한다. time2가 time1이전에 발생하면, SecondsAfter 함수는 음수를 리턴한다. argument 값 중에 NULL이 있으면, SecondsAfter 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 15를 리턴한다.

SecondsAfter(21:15:30, 21:15:45)

* 다음 문장은 -15를 리턴한다.

SecondsAfter(21:15:45, 21:15:30)

* 다음 문장은 0을 리턴한다.

SecondsAfter(21:15:45, 21:15:45)

* start_time과 end_time 변수를 선언하고 각각에 19:02:16과 19:02:28을 할당하면

time start_time, end_time

start_time = 19:02:16

end_time = 19:02:28

다음 문장들은 각각 12를 리턴한다.

SecondsAfter(start_time, end_time)

SecondsAfter(19:02:16, end_time)

SecondsAfter(start_time, 19:02:28)

SecondsAfter(19:02:16, 19:02:28)

[참고]

DaysAfter

RelativeDate

RelativeTime

SecondsAfter(DataWindow painter 함수)


Seek PowerScript 함수

[설명]

OLE stream object내의 명시한 위치로 read/write 포인터를 이동한다. 그 포인터는 stream내에서 다음 읽기 또는 기록하기 시작할 곳에 위치한다.

Platform 정보

OLE 함수들은 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLEStream objects

[문법]

olestream.Seek ( position {, origin } )

[Argument]

olestream | 오픈 되어 있는 OLE stream 변수의 이름
Position | 읽기/쓰기 포인트를 이동시키기 위한 원래 위치에 상대적인 위치 값
Origin | (선택사항) 탐색을 시작하기 원하는 위치를 명시한 SeekType 열거형 데이터 타입의 값: · FromBeginning! -- (기본 설정 값) 파일의 시작 위치 · FromCurrent! -- 현재 위치 · FromEnd! -- 파일의 끝

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- Stream이 오픈 되어 있지 않다

-2 -- 탐색 에러

-9 -- 그 밖의 에러

argument 값중에 NULL이 있으면, Seek 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 OLE stream에 추가로 데이터를 기록한다. 우선, MYSTUFF.OLE 파일내의 OLE object를 오픈하고 그것을 OLEStorage object stg_stuff에 할당한다. 다음에 stg_stuff내에서 info를 호출하여 stream을 오픈 하고 stream object olestr_info에 할당한다. instance blob 변수 lb_info의 내용 끝에 기록하기 위하여 stream의 끝에 읽기/쓰기 포인터 위치를 찾는다.

예제에서는 성공여부를 알아 보기 위하여 함수의 리턴값을 체크하지 않았지만, 실제 코드에서는 리턴 값을 반드시 체크 하여야 한다.

boolean lb_memexists

OLEStorage stg_stuff

OLEStream olestr_info

stg_stuff = CREATE OLEStorage

stg_stuff.Open("c:\ole2\mystuff.ole")

olestr_info.Open(stg_stuff, "info", stgReadWrite!, stgExclusive!)

olestr_info.Seek(0, FromEnd!)

olestr_info.Write(lb_info)

[참고]

Open

Length

Read

Write


SelectedColumn PowerScript 함수

[설명]

RichTextEdit control에서 삽입 포인트 바로 다음 칼럼 문자수를 구한다.

[적용]

RichTextEdit controls

[문법]

rtename.SelectedColumn ( )

[Argument]

rtename

바로 전에 삽입 포인트가 있는 문자의 번호를 구하려는 RichTextEdit의 이름

[Return 값]

Integer.

rtename에서 바로 전에 삽입 포인트가 있는 문자의 번호를 리턴한다. 에러가 발생하면 SelectedColumn 함수는 -1을 리턴한다.

[용법]

삽입 포인트는 선택영역의 시작위치 또는 끝 위치에 올 수 있다. 따라서, SelectedColumn 함수는 삽입 포인트의 위치에 따라 선택영역의 첫 번째 문자나 선택영역 바로 다음 문자를 리턴한다.

[예제]

* 삽입 포인트가 RichTextEdit rte_Contact에서 8번째 라인의 5번째 문자 직전에 위치하고 있다면, 다음 예제는 li_SL을 5로 설정하고 li_line을 8로 설정한다.

integer li_SL, li_line

li_SL = rte_Contact.SelectedColumn( )

li_line = rte_Contact.SelectedLine( )

[참고]

LineLength

Position

SelectedLine

SelectedPage

SelectedText

TextLine


SelectedIndex PowerScript 함수

[설명]

ListBox나 ListView control에서 선택된 아이템의 번호를 구한다.

[적용]

ListBox와 ListView control

[문법]

listcontrolname.SelectedIndex ( )

[Argument]

listcontrolname

선택된 아이템의 위치를 구하려는 ListBox 또는 ListView control의 이름

[Return 값]

Integer.

listcontrolname내에 선택된 인덱스의 번호를 리턴한다. 여러개의 아이템이 선택되어있을 경우, SelectedIndex 함수는 첫 번째로 선택된 아이템의 인덱스를 리턴한다. 선택된 아이템이 없거나 에러가 발생하면 -1을 리턴한다. listcontrolname이 NULL이면, SelectedIndex 함수는 NULL을 리턴한다.

[용법]

SelectedIndex와 SelectedItem 함수는 단일 선택만 허용하는 (control에 관한 MultiSelect property가 FALSE로 선택되어있을 경우) 리스트에 관해서만 의미가 있다.

MultiSelect property가 TRUE로 선택되어있을 경우, SelectedIndex 함수는 첫 번째로 선택된 아이템의 인덱스만 리턴한다. 리스트내의 각 아이템을 체크하고 선택된 아이템들을 찾아내려면 SelectedIndex대신 State 함수를 사용한다. 리스트내의 아이템 텍스트를 구하려면 Text 함수를 사용한다.

[예제]

* lb_actions내에 5번째 아이템이 선택되어 있다면, 다음 예제는 li_Index를 5로 설정한다.

integer li_Index

li_Index = lb_actions.SelectedIndex( )

* lb_actions내에 5번째 아이템이 선택되어 있다면, 다음 문장은 윈도우 w_emp를 오픈한다.

integer li_X

li_X = lb_actions.SelectedIndex( )

If li_X = 5 then Open(w_emp)

[참고]

SelectedItem


SelectedItem PowerScript 함수

[설명]

listbox control내에 선택된 아이템의 텍스트를 구한다.

[적용]

ListBox 와 PictureListBox control

[문법]

listboxname.SelectedItem ( )

[Argument]

listboxname

현재 선택된 아이템의 텍스트를 구하려는 ListBox 또는 PictureListBox의 이름

[Return 값]

String.

listboxname내에 선택된 아이템의 텍스트를 리턴한다. 아이템이 선택되어있지 않으면 빈 문자열 ("")을 리턴한다. 또한, listboxname이 NULL이면, SeletedItem은 NULL을 리턴한다.

[용법]

SelectedIndex와 SelectedItem 함수는 단일 선택만 허용하는 (control에 관한 MultiSelect property가 FALSE로 선택되어있을 경우) 리스트에 관해서만 의미가 있다.

MultiSelect property가 TRUE로 선택되어있을 경우, SelectedItem 함수는 첫 번째로 선택된 아이템의 텍스트만 리턴한다. 리스트내의 각 아이템을 체크하고 선택된 아이템들을 찾아내려면 SelectedItem대신 State 함수를 사용한다. 리스트내의 아이템 텍스트를 구하려면 Text 함수를 사용한다.

[예제]

* ListBox lb_shortcuts내에 선택된 아이템의 텍스트가 F1이라면, 다음 예제는 ls_item을 1로 설정한다.

string ls_Item

ls_Item = lb_Shortcuts.SelectedItem( )

[참고]

SelectedIndex

State


SelectObject PowerScript 함수

[설명]

OLE 2.0 control내의 object를 선택하거나 선택해제하지만 서버 응용프로그램을 활성화하지는 않는다. 서버 메뉴는 PowerBuilder 응용프로그램 메뉴에 추가된다.

Platform 정보

OLE 함수들은 Macintosh와 UNIX에서는 영향이 없다

[적용]

OLE 2.0 controls

[문법]

ole2control.SelectObject ( selectstate )

[Argument]

ole2control | 선택하려는 object를 포함하고있는 OLE 2.0 control의 이름
Selectstate | object의 선택 또는 선택해제를 나타내는 값 (boolean)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- control이 비어있다

-9 -- 그 밖의 에러가 발생하였다

argument 값 중에 NULL이 있으면, SelectObject 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 OLE 2.0 control ole_1내의 object를 선택한다.

integer result

result = ole_1.SelectObject(TRUE)


SelectRow PowerScript 함수

[설명]

DataWindow control 또는 DataStore에서 row를 반전 시키거나 반전을 해제한다. 모든 row 또는 하나의 row만 선택할 수 있다. SelectRow 함수는 현재(current) row에 영향을 주지 않는다. 또한 데이터베이스내의 row를 발췌하는 것이 아니다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SelectRow ( row, boolean )

[Argument]

dwcontrol | row를 선택 또는 해제하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 선택 또는 해제하려는 row. 0을 명시하면 모든 row가 선택되거나 해제된다.
boolean | row의 선택 또는 선택해제를 나타내는 boolean: · TRUE -- row(들)를 선택한다 · FALSE -- row(들)의 선택을 해제한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SelectRow 함수는 NULL을 리턴한다.

[용법]

row가 이미 선택되어있고 선택 (논리값 TRUE)를 명시하면, 선택된 상태를 유지한다. row가 선택되어있지 않고 선택해제 (논리값 FALSE)를 명시하면, 해제된 상태를 유지한다.

[예제]

* 다음 문장은 dw_employee의 15번째 row를 선택한다.

dw_employee.SelectRow(15, TRUE)

* DataWindow의 Clicked 이벤트 스크립트로서, 다음 예제는 모든 row의 반전을 해제하고 사용자가 클릭한 row를 반전 시킨다.

This.SelectRow(0, FALSE)

This.SelectRow(This.GetClickedRow(), TRUE)


SelectTab PowerScript 함수

[설명]

명시한 탭을 선택하고 Tab control내의 탭 페이지를 나타낸다.

[적용]

Tab controls

[문법]

tabcontrolname.SelectTab ( tabidentifier )

[Argument]

Tabcontrolname | 탭을 선택하려는 Tab control의 이름
Tabidentifier | 선택하려는 탭. 다음과 같이 명시할 수 있다: · 탭 페이지 인덱스 (integer) · 사용자 object의 이름 (데이터 타입 DragObject 또는 UserObject) · 사용자 object의 이름을 가지고있는 문자열

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

동일한 문법

SelectedTab property에 탭의 인덱스 번호를 설정함으로써 탭을 선택할 수도있다.

tab_1.SelectedTab = 3

[예제]

* 다음의 세가지 예제는 tab_1내의 3번째 탭을 선택한다. 각각 Tab control tab_1을 포함하고있는 윈도우의 CommandButton에 관한 스크립트가 될 수 있다.

1) tab_1.SelectTab(3)

2) tab_1.SelectTab(tab_1.uo_3)

3) string ls_tabpage

ls_tabpage = "uo_3"

tab_1.SelectTab(ls_tabpage)

* 다음 예제는 탭 페이지로 사용자 object uo_fontsettings의 instance를 오픈하고 선택한다.

userobject uo_tabpage

string ls_tabpage

ls_tabpage = "uo_fontsettings"

tab_1.OpenTab(uo_tabpage, ls_tabpage, 0)

tab_1.SelectTab(uo_tabpage)

[참고]

Open Tab


SelectText PowerScript 함수: syntax 1

[설명]

편집 control내의 텍스트를 선택한다. 선택을 시작할 위치와 몇 개의 문자를 선택할 것인지를 명시한다.

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.SelectText ( start, length )

[Argument]

editname | 텍스트를 선택하려는 DataWindow, EditMask, MultiLineEdit, SingleLineEdit, DropDownListBox, 또는 DropDownPictureListBox control의 이름
Start | 선택을 시작할 위치
Length | 선택하려는 문자의 수. length가 0이면, 텍스트가 선택되지는 않지만 삽입 포인트를 명시한 start위치로 옮긴다.

[Return 값]

Integer.

선택된 문자의 수를 리턴한다. 에러가 발생하면 -1을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

SelectText 함수를 호출하였을 때 그 control이 focus를 가지고 있지 않다면, 텍스트는 그 control이 focus를 가질 때 까지 반전되지 않는다. 선택된 텍스트를 반전시키기 위하여 control에 focus를 설정하려면, SetFocus 함수를 호출한다.

Tip

한 라인의 모든 텍스트를 선택하거나 명시한 위치부터 끝까지 선택하고자 할 때에는, 텍스트의 길이를 구하기 위하여 Len 함수를 사용한다.

RichTextEdit 표현 형식을 가진 DataWindow에서 텍스트를 선택하려면, Syntax 2를 참조한다.

[예제]

* 다음 문장은 삽입 포인트를 SingleLineEdit sle_name의 텍스트 끝에 위치 시킨다.

sle_name.SelectText(Len(sle_name.Text), 0)

* 다음 문장은 SingleLineEdit sle_name의 전체 내용을 선택한다.

sle_name.SelectText(1, Len(sle_name.Text))

* 다음의 나머지 예제는 MultiLineEdit mle_EmpAddress가 Boston Street을 포함하고 있다고 가정한다.

==> 다음 문장은 문자열 ost를 선택하고 3을 리턴한다.

mle_EmpAddress.SelectText(2, 3)

==> 다음 문장은 문자열 oston Street을 선택하고 12를 리턴한다.

mle_EmpAddress.SelectText(2, Len(mle_EmpAddress.Text))

==> 다음 문장은 문자열 Bos를 선택하고 3을 리턴한 후, Bos를 반전시키기 위하여 focus를 mle_EmpAddress로 설정한다.

mle_EmpAddress.SelectText(1, 3)

mle_EmpAddress.SetFocus()

[참고]

Len

Position

SelectedItem

SelectedText

SetFocus

TextLine

SelectText: Syntax 2

SelectText PowerScript 함수: syntax 2

[설명]

RichTextEdit control에서 라인과 문자의 시작과 끝을 명시하여 선택한다.

[적용]

RichTextEdit 와 DataWindow controls

[문법]

rtename.SelectText ( fromline, fromchar, toline, tochar { band } )

[Argument]

rtename | 텍스트를 선택하려는 RichTextEdit 또는 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.
fromline | 선택을 시작할 라인의 번호 (long)
fromchar | 라인에서 선택이 시작될 문자의 번호 (long)
toline | 선택을 끝낼 라인의 번호 (long). 삽입 포인트를 명시하려면, toline 과 tochar를 0으로 설정한다.
tochar | 선택을 끝낼 문자의 번호 (long)
band | (선택사항) 선택할 밴드를 명시하는 Band 열거형 데이터 타입의 값: · Detail! · Header! · Footer! 기본설정 값은 삽입 포인트를 포함하고있는 밴드이다.

[Return 값]

Long.

선택된 문자의 수를 리턴한다. 에러가 발생하면 -1을 리턴하고, argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

삽입 포인트는 toline 과 tochar에 의하여 명시된 선택영역의 끝부분에 위치한다. toline 과 tochar가 fromline 과 fromchar 이전에 위치하면, 삽입 포인트는 선택영역의 시작부분에 위치한다.

선택영역을 만들 때 에는 문자 위치로 0을 명시할 수 없다.

선택 영역을 만들기 위하여 Position에 의하여 리턴되는 값을 항상 사용할 수는 없다. Position 함수는 라인의 시작 부분에 삽입 포인트가 있을 때 문자 위치로 0을 리턴 할 수 있기 때문이다.

라인 전체를 선택하려면, 삽입 포인트를 설정하고 SelectTextLine 함수를 호출한다. 라인의 나머지 부분을 선택하려면, 삽입 포인트를 설정하고 라인 길이보다 더 큰 문자 위치를 명시하여 SelectText 함수를 호출한다.

[예제]

* 다음 문장은 RichTextEdit control의 첫 번째 문자부터 3번째 라인의 4번째 문자까지의 텍스트를 선택한다.

rte_1.SelectText(1, 1, 3, 4)

* 다음 문장은 삽입포인트를 2번째라인의 시작 위치에 설정한다.

rte_1.SelectText(2, 1, 0, 0)

* 다음 예제는 2번째 라인의 문자 수보다 큰 값을 명시함으로써 삽입 포인트를 그 라인의 끝에 설정한다. 선택영역은 그 라인 이후로 확장될 것이다.

rte_1.SelectText(2, 999, 0, 0)

* 다음 예제는 2번째 라인의 실제 길이를 찾아서 그 끝에 삽입 포인트를 설정한다. 코딩에서는 삽입 포인트를 그 라인의 시작 위치에 설정하고, 길이를 구한다음, 그 라인의 끝에 삽입 포인트를 다시 설정한다.

long ll_length

// 2번째 라인을 현재 라인으로 만든다

rte_1.SelectText(2, 1, 0, 0)

// 마지막 문자 이후의 위치를 명시한다

ll_length = rte_1.LineLength( ) + 1

// 삽입 포인트를 라인의 끝에 위치시킨다

rte_1.SelectText(2, ll_length, 0, 0)

rte_1.SetFocus( )

* 다음 예제는 삽입 포인트부터 현재 라인 끝까지의 문자를 선택한다. 현재 라인이 마지막 라인이면, 선택할 수 있는 문자 수보다 1 큰 라인 길이를 나타낸다.

long ll_insertline, ll_insertchar

long ll_line, ll_count

// 삽입 포인트를 구한다

rte_1.Position( ll_insertline, ll_insertchar)

// 라인 번호와 길이를 구한다

ll_line = rte_1.SelectedLine( )

ll_count = rte_1.LineLength( )

// 마지막 라인의 경우는 선택할 수 없는 eof 파일 문자를 포함하고있다

IF ll_line = rte_1.LineCount( ) THEN ll_count -= 1

// 삽입 포인트부터 그 라인의 끝까지 선택한다

rte_1.SelectText( ll_insertline, ll_insertchar, ll_line, ll_count )

[참고]

SelectedText

SelectTextAll

SelectTextLine

SelectTextWord

SelectText: Syntax 1


SelectTextAll PowerScript 함수

[설명]

RichTextEdit control의 모든 내용을 선택한다.

[적용]

RichTextEdit 와 DataWindow controls

[문법]

rtename.SelectTextAll ( { band } )

[Argument]

rtename | 모든 내용을 선택하려는 RichTextEdit 또는 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.
band | (선택사항) 모든 텍스트를 선택할 밴드를 명시하는 Band 열거형 데이터 타입의 값: · Detail! · Header! · Footer! 기본설정 값은 삽입 포인트를 포함하고있는 밴드이다.

[Return 값]

Integer.

처리에 성공하면 선택된 문자의 수를 리턴하고, 에러가 발생하면 -1을 리턴한다.

[예제]

* 다음 문장은 detail band내의 모든 텍스트를 선택한다.

rte_1.SelectTextAll( )

* 다음 문장은 header band내의 모든 텍스트를 선택한다.

rte_1.SelectTextAll(Header!)

[참고]

SelectedText

SelectText

SelectTextLine

SelectTextWord


SelectTextLine PowerScript 함수

[설명]

RichTextEdit control에서 삽입 포인트를 포함하고있는 라인을 선택한다.

[적용]

RichTextEdit 와 DataWindow controls

[문법]

rtename.SelectTextLine ( )

[Argument]

rtename

라인을 선택할 RichTextEdit 또는 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 선택된 문자의 수를 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

RichTextEdit control이 선택영역을 포함하고 있다면, 삽입 포인트는 선택영역을 만드는 방법에 따라 선택의 시작 또는 마지막에 존재한다. 아래쪽으로 드래그하여 선택영역을 만들었다면, SelectTextLine은 선택영역의 마지막 라인을 선택한다. 위쪽으로 드래그하여 선택영역을 만들었다면, SelectTextLine은 선택영역의 시작 라인을 선택한다.

SelectTextLine 함수는 라인의 끝 문자 (Windows의 carriage return 과 linefeed, Macintosh의 carriage return, UNIX의 linefeed)는 선택하지 않는다.

[예제]

* 다음 문장은 현재 라인을 선택한다.

rte_1.SelectTextLine( )

[참고]

SelectedText

SelectText

SelectTextAll

SelectTextWord


SelectTextWord PowerScript 함수

[설명]

RichTextEdit control에서 삽입 포인트를 포함하고있는 단어를 선택한다.

[적용]

RichTextEdit 와 DataWindow controls

[문법]

rtename.SelectTextWord ( )

[Argument]

rtename

단어를 선택할 RichTextEdit 또는 DataWindow control의 이름. DataWindow control내의 DataWindow object는 반드시 RichTextEdit DataWindow여야 한다.

[Return 값]

Integer.

처리에 성공하면 선택된 문자 수를 리턴하고 단어를 선택할 수 없거나 에러가 발생하면 -1을 리턴한다.

[용법]

선택된 단어 뒤에 공란이 뒤따르면, 그 공란도 함께 선택된다. 단어는 구두점과 $ 또는 #과 같은 특수 문자를 포함하지 않는다. 구두점이나 특수 문자 다음에 있는 단어를 선택 하려하면, 선택되지 않는다.

삽입 포인트 다음 문자가 공란, 구두점, 특수문자, 또는 라인의 끝 기호 등이면, SelectTextWord는 아무것도 선택하지 않고 -1을 리턴한다.

[예제]

* 다음 문장은 삽입 포인트를 포함하고있는 단어를 선택한다.

rte_1.SelectTextWord( )

* 다음 예제는 삽입 포인트가 있는 단어를 선택한다. 단어가 존재하지 않으면, 단어를 찾을 때 까지 삽입 포인트의 위치를 증가 시킨다. 라인의 끝에 도달하였을 때를 체크하고 다음 라인으로 계속 진행한다. 다음 스크립트가 command에 할당되어있고 버튼을 계속 클릭한다면, 단어 단위로 텍스트를 이동할 수 있다.

integer li_rtn

long llstart, lcstart, ll_lines, ll_chars

ll_lines = rte_1.LineCount( )

ll_chars = rte_1.LineLength( )

li_rtn = rte_1.SelectTextWord( )

// 삽입 포인트에 단어가 없으면 -1이다

DO WHILE li_rtn = -1

// 커서 위치를 구한다

rte_1.Position(llstart, lcstart)

// 다음 단어를 찾기 위하여 1 증가한다

lcstart += 1

// 라인의 끝이면 다음 라인으로 증가한다

IF lcstart >= ll_chars THEN

lcstart = 1 // 첫 번째 문자로 설정한다

llstart += 1 // 라인을 증가 시킨다

// 마지막 라인을 넘어가면 리턴한다

IF llstart > ll_lines THEN

RETURN 0

END IF

END IF

// 삽입 포인트를 설정한다

rte_1.SelectText(llstart, lcstart, 0, 0)

// 새 라인이면 라인 길이를 새로 구한다

// (삽입 포인트가 라인내에 있을 동안은 사용할 수 없다)

ll_chars = rte_1.LineLength( )

// 단어를 선택한다

li_rtn = rte_1.SelectTextWord( )

LOOP

// 이곳에 단어를 처리할 코드를 추가한다

// (예를 들어, spelling checker에 단어를 통과시키는 루틴 등)

[참고]

SelectedText

SelectText

SelectTextAll

SelectTextLine


Send PowerScript 함수

[설명]

즉시 실행되도록 윈도우에 메시지를 보낸다.

[문법]

Send ( handle, message#, lowword, long )

[Argument]

handle | 메시지를 보내려는 (PowerBuilder나 다른 응용프로그램에서 생성된) 윈도우의 시스템 핸들 (long)
message# | 보내려는 메시지의 시스템 메시지 번호 (UnsignedInteger)
lowword | 메시지의 정수 값 (long). 이 argument가 메시지에 의하여 사용되지 않는다면, 0을 명시한다.
long | 메시지의 long 값 또는 문자열

[Return 값]

Long.

처리에 성공하면 Windows의 SendMessage에 의하여 리턴되는 값을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Send 함수는 NULL을 리턴한다.

[용법]

Send 함수는 message#와 옵션 lowword 및 long에 의하여 확인된 메시지를 Windows 함수 SendMessage handle에 의하여 확인된 윈도우로 보낸다. 메시지는 object의 메시지 큐(queue)를 통하지않고 object로 직접 보내진다. Send 함수는 메시지가 처리되어 SendMessage에 의해 리턴 되는 값을 얻을 때 까지 기다린다.

Windows내의 메시지

PowerBuilder object에 대한 Windows handle을 구하려면 Handle 함수를 사용한다.

Windows 메시지는 숫자로 명시한다. 이 숫자는 Microsoft Windows Software Development Kit (SDK)와 Windows 개발 도구의 한 부분인 WINDOWS.H 파일에 설명되어있다.

[Tip]

Send 함수로 보내진 메시지는 즉시 실행된다. object의 메시지 큐(queue) 끝에 메시지를 추가하려면, Post 함수를 사용한다.

[예제]

* 다음 문장은 윈도우 w_emp를 한 페이지 위로 스크롤 한다.

Send(Handle(w_emp), 277, 2, 0)

* 다음 문장은 모두 CommandButton cb_OK을 클릭한다.

Send(Handle(Parent), 273, 0, Handle(cb_OK))

cb_OK.TriggerEvent(Clicked!)

* DataWindow을 최대화 또는 최소화 시키고, 원래 상태로 되돌리도록 메시지를 보낼 수 있다. 이들 메시지를 이용하려면, DataWindow control의 TitleBar, Minimize, Maximize priperty 들을 사용가능 상태로 만들어야 한다. 또한, 최소화 시켰을 때를 위한 DataWindow control 아이콘을 지정하여 놓아야 한다.

다음 문장은 DataWIndow를 최소화 한다.

Send(Handle(dw_whatever), 274, 61472, 0)

다음 문장은 DataWIndow를 최대화 한다.

Send(Handle(dw_whatever), 274, 61488, 0)

다음 문장은 DataWIndow를 원해 정의한 크기로 되돌린다.

Send(Handle(dw_whatever), 274, 61728, 0)

* 여러 아이템이 선택 가능한 ListBox내에서 마지막으로 클릭 된 아이템이 무엇인지 알아 내기 위하여 Windows 메시지를 보낼 수 있다. ListBox control의 SelectionChanged 이벤트에 관한 다음 스크립트는 리스트내의 아이템 번호인 LB_GETCURSEL 메시지의 리턴 값을 구한다. 리스트 아이템의 PowerBuilder 인덱스를 구하기 위하여 Send 함수로 부터 리턴 되는 값에 1을 더하였다. 예제 중에서, idx는 윈도우에 관한 integer instance 변수이다.

// LB_GETCURSEL에 관한 Windows 메시지를 리스트박스에 보낸다

idx = Send(Handle(This), 1033, 0, 0)

idx = idx + 1

[참고]

Handle

Post


SeriesCount PowerScript 함수

[설명]

그래프내의 series 수를 카운트한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SeriesCount ( { graphcontrol } )

[Argument]

controlname | series의 수를 구하려는 그래프 이름, 또는 그래프를 포함하고있는 DataWindow control이나 DataStore의 이름
graphcontrol | (DataWindow control과 DataStore만 해당) series 수를 구하려는 DataWindow control 또는 DataStore내의 그래프 이름

[Return 값]

Integer.

처리에 성공하면 series의 수를 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SeriesCount 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 그래프 gr_product_data내의 series 수를 메모리변수 li_series_count에 저장한다.

integer li_series_count

li_series_count = gr_product_data.SeriesCount( )

* 다음 문장은 DataWindow control dw_equipment내의 그래프 gr_computers의 series 수를 변수 li_series_count에 저장한다.

integer li_series_count

li_series_count = dw_equipment.SeriesCount("gr_computers")

[참고]

CategoryCount

DataCount


SeriesName PowerScript 함수

[설명]

명시한 series 번호와 연관된 series 이름을 구한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SeriesName ( { graphcontrol, } seriesnumber )

[Argument]

controlname | series 이름을 구하려는 그래프 이름, 또는 그래프를 포함하고있는 DataWindow 나 DataStore의 이름
graphcontrol | (DataWindow control과 DataStore만 해당) series 이름을 구하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesnumber | 이름을 구하려는 series의 번호

[Return 값]

String.

series에 할당된 이름을 리턴한다. 에러가 발생하면 빈 문자열("")을 리턴하고, argument 값중에 NULL이 있으면 NULL을 리턴한다.

[용법]

series는 1 부터 SeriesCount에 의하여 리턴되는 값까지 연속적으로 번호가 부여된다. series를 삭제하였을 때, series는 번호의 연속성을 유지하기 위하여 번호를 재부여한다. series 번호와 연관된 이름을 찾기위하여 SeriesName 함수를 사용할 수 있다.

[예제]

* 다음 문장은 그래프 gr_product_data의 5번째 series 이름을 변수 ls_SeriesName에 저장한다.

string ls_SeriesName

ls_SeriesName = gr_product_data.SeriesName(5)

* 다음 문장은 데이터윈도우 dw_equipment내의 gr_computers 그래프의 시리즈 5번의 이름을 ls_SeriesName 변수에 저장한다.

string ls_SeriesName

ls_SeriesName = dw_equipment.SeriesName("gr_computers", 5)

[참고]

CategoryName

DeleteSeries

FindSeries


SetActionCode PowerScript 함수

[설명]

DataWindow control내의 이벤트에 관한 action code를 설정한다. action code는 PowerBuilder가 이벤트이후에 취할 행동을 결정한다. 기본설정 값은 0이다.

쓰이지않는 함수

SetActionCode는 사용하지 않는다. 값을 리턴하려면, 이벤트 스크립트에 리턴 코드를 사용하여 RETURN 문장을 포함시킨다.

[적용]

DataWindow controls와 child DataWindows

[문법]

dwcontrol.SetActionCode ( code )

[Argument]

dwcontrol | action code를 설정하기 원하는 DataWindow control 또는 child DataWindow 의 이름
code | DataWindow control에 설정하기를 윈하는 long 값. action code의 의미는 이벤트에 따른다

[Return 값]

Integer.

만약 성공하였다면 1을 리턴하고 error가 발생하면 -1을 리턴한다. argument값 중에 NULL이 있으면 NULL을 리턴한다.

[용법]

Datawindow 이벤트 다음에 발생하는 행동을 변경하고자 할 때 SetActionCode 함수를 사용한다. 모든 DataWindow 이벤트가 action code를 가지는 것은 아니며, 서로다른 결과를 초래하는 이벤트만이 action code를 갖는다.

[Tip]

SetActionCode가 스크립트의 마지막 문장으로 요구되지 않을지라도, 반드시 마지막 문장에 위치시켜야 한다. 마지막 문장이 아닐 때에는 원하는 것과 다르게 수행될 수도 있다.

[예제]

* dw_Employee의 ItemChanged 이벤트 스크립트 중에서, 다음 문장은 고용연령보다 작은 데이터가 들어오는 것을 방지하기 위하여 dw_Employee의 action code를 설정한다.

integer a, age

age = Integer(sle_Age.Text)

a = Integer(dw_Employee.GetText( ))

IF a < age THEN dw_Employee.SetActionCode(1)

* 다음 예제는 사용자에게 에러 메시지를 나타내주는 DBError 이벤트 스크립트를 보여준다. 이벤트가 발생한 이후에 PowerBuilder도 메시지를 나타내기 때문에, PowerBuilder의 에러 메시지가 나타나지 않도록 하기 위하여 SetActionCode 함수를 호출하는 스크립트이다.

integer errnum

errnum = dw_emp.DBErrorCode()

// 에러코드와 메시지를 보여준다

MessageBox("Database Error", "Number " + String(errnum) + " " + &

dw_emp.DBErrorMessage(), StopSign!)

// PowerBuilder 메시지가 나타나지 않도록 한다

dw_emp.SetActionCode(1)


SetAlignment PowerScript 함수

[설명]

RichTextEdit control내에서 선택한 단락을 정렬한다.

[적용]

RichTextEdit controls

[문법]

rtename.SetAlignment ( align )

[Argument]

rtename | 선택한 단락의 정렬을 설정하려는 RichTextEdit control의 이름
align | 단락의 정렬을 명시하기위한 Alignment 열거형 데이터 타입의 값 · Left! -- 각 라인을 좌측 여백에 정렬한다 · Right! -- 각 라인을 우측 여백에 정렬한다 · Center! -- 좌측과 우측 여백 중앙에 텍스트를 위치시킨다 · Justify! -- 단락을 고르게 배분한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* 다음 예제는 RichTextEdit control rte_1내에서 선택한 단락의 정렬을 설정한다.

integer li_success

li_success = rte_1.SetAlignment(Right!)

[참고]

GetAlignment

GetSpacing

GetTextStyle

SetSpacing

SetTextStyle


SetAutomationLocale PowerScript 함수

[설명]

OLE object에관한 automation 프로그램에서 사용된 언어를 설정한다. 다른 언어에서 프로그램된 automation 명령을 가지고있다면 SetAutomationLocale 함수를 호출한다.

[적용]

OLE 2.0 controls, OLE custom controls

[문법]

olename.SetAutomationLocale ( language, sortorder )

[Argument]

olename | automation 장소를 설정하려는 control의 이름
language | automation 명령을 위하여 사용된 언어를 명시하는 LanguageID 열거형 데이터 타입의 값. OLE 서버는 반드시 명시한 언어내에서 정의된 함수와 property를 가지고있어야 한다. * LanguageNeutral! -- 언어를 가정하지 않았다. automation 언어는 서버의 기본 명령어세트와 매치된다. * LanguageUserDefault! -- International 제어판넬에 정의되어있는 언어를 취한다 * LanguageSystemDefault! -- 사용자 기계에 설치된 Windows 버전에서 언어를 취한다.또한, LanguagePolish! 또는 LanguagePortuguese_Brazilian! 등과같이 언어나 방언 등을 명시할 수도 있다. LanguageID 값으로 명시된 언어의 리스트를 보려면, PowerBuilder Object browser를 사용한다.
sortorder | 언어의 정렬 방법을 명시한 LanguageSortID 열거형 데이터 타입의 값 * LanguageSortNative! -- 선택한 언어에 정의된 순서로 정렬한다 * LanguageSortUnicode! -- Unicode로 정의된 순서로 정렬한다

[Return]

Integer.

처리에 성공하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다.

[용법]

대부분의 경우, SetAutomationLocale을 호출할 필요는 없다. automation 명령이 실패하였다면, PowerBuilder는 Error 이벤트를 트리거하기전에 다른 언어로 실행하려고 시도할 것이다. 명령을 실행하기 위한 시도는 다음과 같은 언어들을 이용하게 된다.

1 -- 존재하는 명령 (명령은 서버에서 사용중인 언어에 있다)

2 -- 현재 위치 (사용자의 기본설정 장소가 다를 때)

3 -- 사용자의 기본설정 위치 (LanguageUserDefault!)

4 -- 시스템의 기본설정 위치 (LanguageSystemDefault!)

5 -- 영어 (LanguageEnglish!)

PowerBuilder가 위에 나열한 언어 중에서 타당한 곳을 찾게 되면, 그 장소로 재 설정한다. 그러나 타당한 위치를 찾지 못하면, 표준 Microsoft Office에 접근할 것이다.

SetAutomationLocale로 언어를 명시하면, 그러나 OLE 서버가 그 언어에 function 과 property 이름을 가지고 있지 않다면, OLE automation 명령은 위에 나열한 언어 중에서 찾지 못할 경우 실패하게 될 것이다.

[예제]

* 다음 예제는 OLE 2.0 control ole_report의 언어를 German으로 설정한다.

ole_report.SetAutomationLocale(LanguageGerman!, LanguageSortNative!)


SetBorderStyle PowerScript 함수

[설명]

DataWindow control 또는 DataStore에서 칼럼의 border style을 설정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetBorderStyle ( column, borderstyle )

[Argument]

dwcontrol | column의 border style을 변경하고자 하는 DataWindow control, DataStore,또는 child DataWindow의 이름
column | border style을 변경하고자 하는 column. column은 column 번호(Integer)나 column명(String)이 될 수 있다.
borderstyle | column에 사용하기를 원하는 border style을 나타내는 Border의 열거형 data type의 값 ·Box! ·NoBorder! ·ShadowBox! ·Underline!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 어떤 argument가 NULL값을 갖는다면 SetBorderStyle 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 dw_emp안의 column의 border를 확인하고 border가 없다면 column은 shadow box border를 갖는다.

Border B3

B3 = dw_emp.GetBorderStyle(2)

IF B3 = NoBorder! THEN dw_emp.SetBorderStyle(2, ShadowBox!)

[참고]

GetBorderStyle


SetColumn PowerScript 함수: syntax 1

[설명]

DataWindow control 또는 DataStore안의 현재 column을 설정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetColumn ( column )

[Argument]

dwcontrol | 현재 column을 설정하기 원하는 DataWindow control, DataStore 또는 childDataWindow의 이름
column | 현재 column으로 되기를 원하는 column. column은 column 번호(integer)나 column명(string)이 될 수 있다.

[Returnr 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. column이 1보다 작거나 column수보다 크면 SetColumn함수는 처리에 실패한다. argument 값중에 NULL이 있으면, Setcolumn 함수는 NULL을 리턴한다.

[용법]

SetColumn은 현재 column으로 cursor를 옮길뿐이지 DataWindow control을 스크롤하지 않는다.

단지 편집가능한 칼럼만이 현재 column이 될수있다. ( 칼럼의 탭 order 값이 0보다 크면 편집 가능하다) 편집할 수 없는 column에서는 사용할 수 없다.

[이벤트]

SetColumn은 다음 이벤트를 trigger 할 수 있다.

ItemChanged

ItemError

ItemFocusChanged

무한루프의 회피

ItemChanged, ItemError 또는 ItemFocusChanged 이벤트에서는 Setcolum 함수를 절대 호출하지 말아야한다. SetColumn 함수는 이들 이벤트들을 trigger할 수 있기 때문에 재귀적 호출을 하므로 stack 에러를 일으키는 원인이 될 수 있다.

[예제]

* 다음 문장은 dw_Employee안의 15번 칼럼을 현재 칼럼으로 만든다.

dw_Employee.SetColumn(15)

[참고]

GetColumn

GetRow

SetRow

SetColumn PowerScript 함수: syntax 2

[설명]

ListView control안의 column의 property를 설정한다.

[적용]

ListView controls

[문법]

listviewname.SetColumn ( index, label, alignment, width )

[Argument]

listviewname | column의 속성을 설정하기 원하는 ListView control의 이름
index | column의 속성을 설정하기 원하는 column의 번호
label | column의 속성을 설정하기 원하는 column의 label
alignment | column의 속성을 설정하기 원하는 column의 정렬방법
width | column의 속성을 설정하기 원하는 column의 폭

[Return값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

SetColumn은 report view에서만 사용된다.

[예제]

* 다음 예제는 ListView의 두번째 column을 설정한다.

lv_list.SetColumn(2 , "Order" , Center! , 800)

[참고]

SetItem

SetColumn


SetConnect PowerScript 함수

[설명]

server 상에 remote object의 instance를 생성한다.

[적용]

Remote objects

[문법]

proxyobject.SetConnect (connection)

[Argument]

proxyobject instance를 만들려는 remote object에 관한 proxy object 이름

[connection]

connection이 설치되어있는 connection object의 이름

[Return값]

없음

[용법]

SetConnect function을 호출하기 전에, client application이 proxy object 와 connection object의 instance를 모두 생성시킬 필요가 있다.

[예제]

* 다음 예제에서, client application은 po proxy object에 관련된 remote object의 instance를 생성한다.

connection myconnect

po_remobject po

long result

myconnect = create connection

myconnect.driver = "WinSock"

myconnect.application = "dpbserv"

myconnect.location = "server01"

myconnect.ConnectToServer( )

IF myconnection.errcode <> 0 THEN

MessageBox("Error","Connection failed")

END IF

po = create po_remobject

po.SetConnect(myconnect)

result = po.method1(parm)

[참고]

ConnectToServer


SetData PowerScript 함수

[설명]

Uniform Data Transfer를 사용하는 OLE control과 연관된 OLE 서버내에 데이터를 설정한다.

[적용]

OLE 2.0 controls, OLE custom controls

[문법]

olename.SetData ( clipboardformat, data )

[Argument]

olename

데이터를 이동시키기 원하는 OLE server와 연관된 OLE 2.0 또는 custom control의 이름

Clipboardformat

데이터의 형식. ClipboardFormat 열거형 데이터 타입의 값으로 표준 형식을 명시할 수 있다. 또한 문자열로 비 표준 형식을 명시하는 것도 가능하다.

ClipboardFormat의 값은 다음과 같다:

ClipFormatBitmap!

ClipFormatDIB!

ClipFormatDIF!

ClipFormatEnhMetafile!

ClipFormatHdrop!

ClipFormatLocale!

ClipFormatMetafilePict!

ClipFormatOEMText!

ClipFormatPalette!

ClipFormatPenData!

ClipFormatRIFF!

ClipFormatSYLK!

ClipFormatText!

ClipFormatTIFF!

ClipFormatUnicodeText!

ClipFormatWave!

clipboardformat이 빈 문자열 ("")이거나 null 값이면, SetData 함수는 ClipFormatText! 형식으로 데이터를 옮긴다

data

데이터를 이동시키려는 문자열 또는 blob의 값

[Return값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

OLE server가 지원하지 않는 clipboard format을 명시하면 SetData 함수는 에러를 발생한다. OLE server가 지원하는 형식을 찾으려면 OLE server에 관한 설명을 참고한다.

SetData는 Uniform Data Transfer를 거쳐 작용하고, 메카니즘은 container application을 가진 Microsoft for exchanging data에 의하여 정의된다. PowerBuilder는 global handle를 거쳐 data를 이동을 지원한다. OLE server는 global handle를 거쳐 data가 이동하는 것을 지원하여야 한다. 이를 지원하지 않으면, server로 또는 server로 부터 데이터를 이동시킬 수 없다.

두 OLE control 사이에 데이터를 이동하는 예제 (Microsoft Word table 과 Microsoft Graph)는 GetData 를 참고한다.

[참고]

GetData


SetDataDDE PowerScript 함수

[설명]

PowerBuilder가 DDE 서버로 작용중일 때 데이터를 DDE 클라이언트 응용프로그램으로 보낸다. 보통 클라이언트 응용프로그램으로 부터 데이터에 관한 DDE 요청에 의하여 트리거되는 RemoteRequest 이벤트 내에서 SetDataDDE 함수를 호출한다.

Platform 정보

DDE 함수들은 Macintosh에서는 효과가 없다.

UNIX platform의 경우, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder를 사용하여 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일된 경우에만 효과가 있다.

[문법]

SetDataDDE ( string {, applname, topic, item } )

[Argument]

string | DDE 클라이언트 응용프로그램에 보내려는 데이터
applname | (선택사항) 클라이언트 응용프로그램에 관한 DDE 이름
topic | (선택사항) DDE 클라이언트 응용프로그램을 참조할 기본 데이터 그룹 (문자열)
item | (선택사항) 문자열 (topic내의 데이터)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 다음 음수들을 리턴한다

-1 -- 잘못된 내용으로 함수를 호출하였다

-2 -- 데이터를 받아들일 수 없다

argument 값중에 NULL이 있으면, SetDataDDE 함수는 NULL을 리턴한다

[용법]

PowerBuilder 응용프로그램에서 DDE 서버 모드를 사용가능하게 하려면, StartServerDDE 함수를 호출한다. 그리고나면 DDE 클라이언트로 부터 DDE 메시지가 PowerBuilder 윈도우내의 이벤트를 트리거하게 될 것이다. 이것은 사용자가 그 이벤트내에 작성하는 스크립트에 따라 응용프로그램이 어떻게 응답하게 할것인가를 결정하게 한다. 응용프로그램이 DDE 서버의 데이터를 요청하면, RemoteRequest 이벤트를 트리거한다. 전형적으로 윈도우의 RemoteRequest 이벤트에 관한 스크립트에서 SetDataDDE 함수를 호출한다.

클라이언트 응용프로그램이 PowerBuilder 응용프로그램내에 location을 가진 hot link를 가지고있다면, 그 location과 연관된 object에 관한 이벤트내에서 SetDataDDE 함수를 호출할 수 있다. 서버 응용프로그램으로, 사용자의 응용프로그램에있는 control에 location 이름을 어떻게 일치시킬 것인지를 결정할 수 있다. 예를들어, 사용자의 응용프로그램에서 DDE 이름 loc1을 SingleLineEdit sle_name에 참조하도록 결정할 수 있고, 클라이언트 응용프로그램은 "loc1"으로 hot link를 설치할 수 있다. 다음에 sle_name의 Modified 이벤트에서, sle_name이 변할때마다 클라이언트 응용프로그램이 변경된 내용을 받을 수 있도록 SetDataDDE 함수를 호출할 수 있다. 이와유사하게, loc1이 DataWindow에 참조되었다면, 그 DataWindow의 ItemChanged 이벤트에서 SetDataDDE 함수를 호출할 수 있다.

applname argument는 사용자의 응용프로그램과 함께 설치된 channel 이나 hot link를가진 클라이언트 응용프로그램을 참조한다. topic 과 item은 사용자의 서버 응용프로그램에의하여 인식된

topic과 location을 참조한다. 이들 argument들은 메시지를 받은 클라이언트 응용프로그램이 누구이고 무엇을 보냈는지를 알고자할 때에만 필요하다.

[예제]

* 다음 문장은 다른 DDE 응용프로그램이 데이터를 요청할 때 RemoteRequest 이벤트에관한 스크립트내에서 SetDataDDE 함수가 어떻게 사용되는지 설명한다. 데이터는 SingleLineEdit sle_Address의 텍스트를 보냈다.

SetDataDDE(sle_Address.Text)

* 다음 문장은 argument들을 어떻게 명시하는지 설명한다.

SetDataDDE(sle_Address.Text, "MYDB", "Employee", "Address")

[참고]

GetDataDDE

StratServerDDE


SetDataPieExplode PowerScript 함수

[설명]

파이 그래프에서 파이 조각을 분리한다. 분리된 조각은 데이터에 주위를 집중하도록 파이의 중앙으로부터 이동된다. 파이의 여러 조각을 분리하는 것도 가능하다.

[적용]

윈도우와 사용자 object에 있는 그래프 control, DataWindow control과 DataStore에 있는 그래프

[문법]

controlname.SetDataPieExplode ( { graphcontrol, seriesnumber, datapoint, percentage } )

[Argument]

controlname | 파이 조각을 분리하려는 그래프의 이름, 또는 그래프를 포함하고있는 DataWindow나 DataStore의 이름.
graphcontrol | (DataWindow control과 DataStore만 해당) 파이 조각을 분리하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesnumber | series를 나타내는 번호
datapoint | 분리될 데이터 포인트 (즉, 파이조각)의 번호
percentage | 중앙으로부터 분리될 파이조각의 백분율을 나타내는 0 과 100 사이의 수.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetDataPieExplode 함수는 NULL을 리턴한다.

[용법]

파이 그래프가 아니면, 아무 효과가 없다.

[예제]

* 다음 예제는 그래프 내에 더블-클릭을 하였을 때 50% 포인터의 파이조각을 분리한다. 스크립트에서는 GraphType property를 체크하여 파이 그래프인지 확인한다. 다음에, ObjectAtPointer 함수에 의하여 series와 데이터 포인트 값을 체크하여 파이상에 클릭하였는지 여부를 확인한다.

integer series, datapoint

grObjectType clickedtype

integer percentage

percentage = 50

IF (This.GraphType <> PieGraph! AND &

This.GraphType <> Pie3D!) THEN RETURN

clickedtype = This.ObjectAtPointer(series, datapoint)

IF (series > 0 and datapoint > 0) THEN

This.SetDataPieExplode(series, datapoint, percentage)

END IF

[참고]

GetDataPieExplode


SetDataStyle PowerScript 함수: syntax 1

[설명]

graph안의 data point의 color를 명시한다.

[적용]

윈도우와 사용자 object에 있는 그래프 control, DataWindow control과 DataStore에 있는 그래프

[문법]

controlname.SetDataStyle ( {graphcontrol, seriesnumber, datapointnumber, colortype, color} )

[Argument]

Controlname | 데이터 포인트의 색상을 설정하려는 그래프이름, 또는 그래프를 포함하고 있는 DataWindow 나 DataStore 이름
Graphcontrol | (DataWindow control과 DataStore에서만 가능) 데이터 포인트의 색상을 설정하려는 DataWindow control 또는 DataStore안의 graph이름 (문자열)
seriesnumber | 데이터 포인트의 색상을 설정하려는 series의 번호
Datapointnumber | 데이터 포인트의 색상을 설정하려는 데이터 포인트의 번호
Colortype | 색상을 설정하기 원하는 데이터 포인트의 모습을 명시한 열거형 data type의 grColorType 값 ·Foreground! 텍스트 색상 ·Background! 배경 색상 ·LineColor! 라인 색상 ·Shade! 음영 (3-차원 또는 막대 object를 가진 그래프의 경우)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 어떤 argument 값이 NULL이라면 SetDataStyle 함수는 NULL을 리턴한다.

[용법]

series의 모양을 변경하려면 SetSeriesStyle 함수를 사용한다. series에 관하여 설정한 내용은 기본적으로 그 series 내의 모든 데이터 포인트에 관한 기본 설정값이 된다.

각각의 point 색상을 재설정하려면 ResetDataColors 함수를 호출한다.

DataWindow에있는 그래프의 경우는, PowerBuilder가 그래프를 그리기전에 그래프내의 데이터 포인트에관한 모양을 명시할 수 있다. 그렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트내에서 SetDataStyle 함수를 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 예제는 gr_emp_data graph 안에서 Salary라고 명명된 series의 data point에 관한 배경색을 check 한다. 체크한 값이 red라면 SetDataStyle은 색상을 black으로 설정한다.

long color_nbr

integer SeriesNbr

// series 번호를 구한다

SeriesNbr = gr_emp_data.FindSeries("Salary")

// 배경색을 구한다

gr_emp_data.GetDataStyle(SeriesNbr, 6, Background!, color_nbr)

// 적색이면, 흑색으로 바꾼다

IF color_nbr = 255 THEN gr_emp_data.SetDataStyle(SeriesNbr, 6, Background!, 0)

* 다음 문장들은 DataWindow control dw_employees의 graph gr_depts안의 Salary라고 명명된 데이터 포인트 6에 관한 텍스트 (전경) 색상을 black으로 설정한다.

integer SeriesNbr

// series 번호를 구한다

SeriesNbr = dw_employees.FindSeries("gr_depts", "Salary")

// 텍스트 색상을 설정한다

dw_employees.SetDataStyle("gr_depts", SeriesNbr, 6, Foreground!, 0)

[참고]

GetDataStyle

ResetDataColors

SeriesName

GetSeriesStyle

SetSeriesStyle

SetDataStyle: Syntax 2

SetDataStyle: Syntax 3

SetDataStyle PowerScript 함수: syntax 2

[설명]

graph의 데이터 포인트 줄의 두께와 style을 명시한다.

[적용]

윈도우와 사용자 object에 있는 그래프 control, DataWindow control과 DataStore에 있는 그래프

[문법]

controlname.SetDataStyle({ graphcontrol,seriesnumber,datapointnumber,linestyle,linewidth })

[Argument]

controlname | 데이터 포인트의 라인 스타일과 폭을 설정하려는 그래프의 이름, 또는 그 그래프를 포함하고있는 DataWindow나 DataStore 이름
graphcontrol | (DataWindow control과 DataStore에서만 가능) 데이터 포인트의 라인 스타일과 폭을 설정하려는 DataWindow control 또는 DataStore안의 graph이름 (문자열)
seriesnumber | 데이터 포인트의 라인 스타일과 폭을 설정하려는 series 번호
datapointnumber | 라인 스타일과 폭을 설정하려는 데이터 포인트의 번호
linestyle | LineStyle 열거형 데이터 타입의 값 Continuous! Dash! DashDot! DashDotDot! Dot! Transparent!
linewidth | pixel 단위의 라인 폭 (integer)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 어떤 argument의 값이 NULL이면 SetDataStyle 함수는 NULL을 리턴한다.

[용법]

series의 모양을 변경하려면 SetSeriesStyle 함수를 사용한다. series에 관한여 설정한 내용은 그 series내의 모든 데이터 포인트에관한 기본설정 값이된다.

DataWindow에있는 그래프의 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 데이터 포인트에관한 모양을 명시할 수 있다. 그렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트내에서 SetDataStyle 함수를 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 예제는 DataWindow control dw_equipment에있는 그래프 gr_computers의 Costs series 내에서 데이터 포인트 10에 관한 라인 스타일을 체크한다. 라인 스타일이 dash-dot이면, SetDataStyle 함수를 이용하여 실선으로 설정한다. 단, 라인의 폭은 동일하게 유지시킨다.

integer SeriesNbr, line_width

LineStyle line_style

// series 번호를 구한다

SeriesNbr = dw_equipment.FindSeries( "gr_computers", "Costs")

// 현재 라인 스타일를 구한다

dw_equipment.GetDataStyle("gr_computers", &

SeriesNbr, 10, line_style, line_width)

// 패턴이 dash-dot 이면, 실선으로 변경한다

IF line_style = DashDot! THEN &

dw_equipment.SetDataStyle("gr_computers", &

SeriesNbr, 10, Continuous!, line_width)

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetSeriesStyle

SetDataStyle: Syntax 1

SetDataStyle: Syntax 3

SetDataStyle PowerScript 함수: syntax 3

[설명]

그래프의 데이터 포인트에 관한 채움 패턴과 심볼을 명시한다.

[적용]

윈도우와 사용자 object에 있는 그래프 control, DataWindow control과 DataStore에 있는 그래프

[문법]

controlname.SetDataStyle ( { graphcontrol, seriesnumber, datapointnumber, enumvalue } )

[Argument]

controlname | 데이터 포인트의 모양을 설정하려는 그래프 이름, 또는 그 그래프를 포함하고있는 DataWindow나 DataStore 이름
graphcontrol | (DataWindow control과 DataStore만 해당) 모양을 설정하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesnumber | 데이터 포인트의 모양을 설정하려는 series 번호
datapointnumber | 모양을 설정하려는 데이터 포인트 이름
enumvalue | 데이터 포인트의 모양을 설정하기위한 열거형 데이터 타입의 값. FillPattern 또는 grSymbolType 값을 명시할 수 있다. 채움 패턴을 변경하려면, FillPattern 값을 변경한다: Bdiagonal! 좌측하단에서 우측상단으로 진행하는 줄 Diamond! Fdiagonal! 좌측상단에서 우측하단으로 진행하는 줄 Horizontal! Solid! Square! Vertical! 심볼 타입을 변경하려면, grSymbolType 값을 변경한다: NoSymbol! SymbolHollowBox! SymbolX! SymbolStar! SymbolHollowUpArrow! SymbolHollowCircle! SymbolHollowDiamond! SymbolSolidDownArrow! SymbolSolidUpArrow! SymbolSolidCircle! SymbolSolidDiamond! SymbolPlus! SymbolHollowDownArrow! SymbolSolidBox!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetDataStyle 함수는 NULL을 리턴한다.

[용법]

series의 모양을 변경하려면 SetSeriesStyle 함수를 사용한다. series에 관한여 설정한 내용은 그 series내의 모든 데이터 포인트에관한 기본설정 값이된다.

DataWindow에있는 그래프의 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 데이터 포인트에관한 모양을 명시할 수 있다. 그렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트내에서 SetDataStyle 함수를 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 예제는 그래프 gr_product_data에있는 Costs series의 데이터 포인트 0에 관한 채움 패턴을 체크한다. 채움 패턴이 다이아몬드이면, SetDataStyle 함수를 이용하여 solid로 변경한다.

integer SeriesNbr

FillPattern data_pattern

// series의 번호를 구한다

SeriesNbr = gr_product_data.FindSeries("Costs")

// 현재 채움패턴을 구한다

gr_product_data.GetDataStyle(SeriesNbr, 10, data_pattern)

// 채움 패턴이 diamond면, solid로 변경한다

IF data_pattern = Diamond! THEN &

gr_product_data.SetDataStyle(SeriesNbr, 10, Solid!)

[참고]

GetDataStyle

GetSeriesName

GetSeriesStyle

SetSeriesStyle

SetDataStyle: Syntax 1

SetDataStyle: Syntax 2


SetDetailHeight PowerScript 함수

[설명]

명시한 범위의 각 row 높이를 명시한 값으로 설정한다

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetDetailHeight ( startrow, endrow, height )

[Argument]

dwcontrol | detail 영역에있는 row들의 높이를 설정하려는 DataWindow control이나 DataStore의 이름
startrow | 높이를 설정하려는 row의 범위에서 첫 번째 row의 값 (long)
endrow | 높이를 설정하려는 row의 범위에서 마지막 row의 값 (long)
height | DataWindow object에 명시한 단위로 나타내는 특정 영역의 row 높이

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetDetailHeight 함수는 NULL을 리턴한다.

[용법]

DataWindow control이나 DataStore내의 row에 할당된 공간을 다양하게 바꾸려면 스크립트내에서 SetDetailHeight 함수를 호출한다. DataWindow painter내에서 DataWindow object를 정의하였을 때에는, 각 row의 높이가 데이터에 의하여 결정되도록 detail 밴드에 관한 Autosize Height property를 on 상태로 하였다 할지라도, 서로 다른 row의 높이들을 서로 다르게 명시할 수 없다.

row들이 보이지 않도록 하기 위하여, 그 높이를 0으로 설정할 수도 있다.

[예제]

* 다음 문장은 row 2 와 3의 높이를 500으로 설정한다.

dw_1.SetDetailHeight(2, 3, 500)

* 다음 문장은 row 2 와 3의 높이를 0으로 설정하여, DropDownDataWindow내의 row가 표시되지 않도록 한다

dw_child.SetDetailHeight(2, 3, 0)

* 다음 문장은 Company_Name과 연관된 DropDownDataWindow에 관한 row들을 retrieve하고, 2 와 3번 row를 숨긴다.

DataWindowChild dwc

integer rtncode

rtncode = dw_1.dwGetChild("company_name", dwc)

IF rtncode < 0 THEN HALT

dwc.SetTransObject(SQLCA)

dwc.Retrieve( )

dwc.SetDetailHeight(2, 3, 0)


SetDropHighlight PowerScript 함수

[설명]

drop target으로 명시한 아이템을 반전시킨다.

[적용]

TreeView controls

[문법]

treeviewname.SetDropHighlight ( itemhandle )

[Argument]

treeviewname | drag-and-drop 작용의 target으로 반전시키려는 TreeView control
itemhandle | drag-and-drop 작용의 target으로 반전시키려는 아이템의 핸들

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

drop target을 명시하기위한 드래그 작업에서 사용한다.

[예제]

* 다음 예제는 drop target으로 현재 TreeView 아이템을 설정하기 위하여 TreeView Clicked 이벤트를 사용하는 예이다.

handle = tv_list.FindItem(CurrentTreeItem!,0)

tv_list.SetDropHighlight(handle)

[참고]

SetItem

FindItem


SetDynamicParm PowerScript 함수

[설명]

SQL OPEN 또는 EXECUTE 문장에서 사용될 DynamicDescriptionArea내의 입력 파라미터에 관한 값을 명시한다.

dynamic SQL Format 4 만 해당

이 함수는 Format 4 dynamic SQL 문장에서만 사용 가능하다

[문법]

DynamicDescriptionArea.SetDynamicParm ( index, value )

[Argument]

DynamicDescriptionArea | DynamicDescriptionArea의 이름, 보통 SQLDA.
index | 데이터를 설정하기 원하는 입력 파라미터 번호 (integer) index는 반드시 DynamicDescriptionArea의 NumInputs 값보다 작거나 같아야 한다.
value | index에 의하여 확인된 입력 파라미터를 채우는데 사용할 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetDynamicParm 함수는 NULL을 리턴한다.

[용법]

SetDynamicParm은 DynamicDescriptionArea내의 입력 파라미터 배열에서 index에 의하여 지정된 파라미터에 관한 값을 명시한다.

OPEN 또는 EXECUTE 문장을 실행하기 전에 DynamicDescriptionArea내의 입력 파라미터 배열에 파라미터들을 채우려면 SetDynamicParm 함수를 사용한다.

[예제]

* 다음 문장은 SQLDA의 첫 번째 입력 파라미터를 MA로 채운다.

SQLDA.SetDynamicParm(1, "MA")

* 다음 문장은 SQLDA의 네 번째 입력 파라미터를 01742로 채운다.

SQLDA.SetDynamicParm(4, "01742")

* 다음 문장은 SQLDA의 세 번째 입력 파라미터를 날짜 12-31-1992로 채운다.

SQLDA.SetDynamicParm(3, "12-31-1992")

[참고]

GetDynamicDate

GetDynamicDateTime

GetDynamicNumber

GetDynamicString

GetDynamicTime


SetFilter PowerScript 함수

[설명]

DataWindow control 또는 DataStore에 관한 필터 조건을 명시한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetFilter ( format )

[Argument]

dwcontrol | 필터를 정의하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
format | 필터 조건으로 사용할 논리 표현식. 표현식에 칼럼 명이나 번호를 포함시킨다. 칼럼 번호를 사용할 때에는 반드시 파운드 기호 (#)을 앞세워야 한다. format이 NULL이면, PowerBuilder는 필터를 입력하도록 대화상자를 나타낸다.

[Return 값]

Integer

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 통상적으로 리턴값은 사용하지 않는다.

[용법]

DataWindow object는 정의의 한 부분으로 필터 조건을 가질 수 있다. 데이터가 retrieve된 후, 필터 조건에 맞지않는 row는 즉시 primary 버퍼에서 filter 버퍼로 이동된다.

SetFilter 함수는 DataWindow object에 관하여 정의되어있는 필터 조건을 대체하여, 새로운 조건으로 설정한다. DataWindow control 이나 DataStore에 필터 조건을 적용 시키려면, Filter 함수를 호출한다. Filter 함수를 호출하면 필터 조건에 맞지 않는 row들은 filter 버퍼로 이동된다.

필터 표현식은 칼럼, 연산자, 칼럼값과 비교되는 값등으로 구성된다. 논리 표현식은 논리 연산자 AND와 OR 등과 결합될 수 있으며, 부정 연산자 NOT도 사용할 수 있다. 평가 순서를 제어하려면 괄호를 사용하도록 한다.

이에관한 간단한 예는 다음과 같다:

item_id > 5

NOT item_id = 5

(NOT item_id = 5) AND customer > "Mabson"

item_id > 5 AND customer = "Smith"

#1 > 5 AND #2 = "Smith"

필터 표현은 문자열이고 변수를 포함하지 않는다. 그러나, 스크립트 내에서 변수 값을 사용하여 실행하는 동안에 문자열을 구축할 수 있다. 필터 문자열 내에서, 문자열 값은 반드시 따옴표로 둘러싸야 한다. (위의 예제 참조)

필터의 제거

필터를 제거하려면, 빈 문자열 ("")과 함께 SetFilter 함수를 호출한 다음 Filter 함수를 호출한다. filter 버퍼내의 row들은 primary 버퍼로 다시 이동할 것이다.

DataWindow control에 관하여 사용자가 필터 표현식을 명시하도록 하려면, SetFilter 함수에 null 값을 사용한다. PowerBuilder는 비어있는 필터 표현식으로 Filter 대화상자를 나타낼 것이다. DataWindow에 필터 표현식을 적용하려면 Filter 함수를 호출한다. DataStore object의 경우는 SetFilter 함수에 null 값을 사용할 수 없다.

[예제]

* 다음 문장은 dw_Employee에 관한 필터 표현으로 format1을 정의한다.

dw_Employee.SetFilter(format1)

* 다음 문장은 필터 표현식을 정의하고 dw_Employee의 필터로 설정한다. 이 필터로, cust_qty 칼럼이 100을 초과하고 cust_code가 30을 초과하는 row들만 나타나게 된다. 마지막 문장은 필터를 적용하기 위하여 Filter 함수를 호출 한다.

string DWfilter2

DWfilter2 = "cust_qty > 100 and cust_code >30"

dw_Employee.SetFilter(DWfilter2)

dw_Employee.Filter( )

* 다음 문장은 dw_Employee의 emp_state가 var1 (이 경우는 ME)와 같은 것만 나타내기 위한 필터를 정의한다. SetFilter에 통과되는 필터 표현식은 emp_state = ME이다.

string Var1

Var1 = "ME"

dw_Employee.SetFilter("emp_state = '"+ var1 +" '")

* 다음 문장은 칼럼 1이 min_qty와 같고 칼럼 2가 max_qty와 동일한 것만 필터에 통과시키기 위한 필터를 정의한다. 필터 표현식의 결과는 다음과 같다:

#1=100 and #2=1000

샘플 코드는 다음과 같다:

integer max_qty, min_qty

min_qty = 100

max_qty = 1000

dw_inv.SetFilter("#1="+ String( min_qty) + " and #2=" + String(max_qty))

* 다음 예제는 필터 표현식을 null로 설정하여, Specify Filter가 나타나도록 한다. 다음에, 사용자가 명시한 필터 표현식을 적용하기 위하여 Filter 함수를 호출한다.

string null_str

SetNull(null_str)

dw_main.SetFilter(null_str)

dw_main.Filter( )

[참고]

Filter


SetFirstVisible PowerScript 함수

[설명]

TreeView control에 첫 번째로 나타나는 아이템을 설정한다.

[적용]

TreeView controls

[문법]

treeviewname.SetFirstVisible ( itemhandle )

[Argument]

treeviewname | 첫 번째로 나타날 아이템을 나타내기위한 TreeView control
itemhandle | TreeView control에서 첫 번째로 나타나는 아이템을 나타내기위한 아이템의 handle

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

itemhandle에 의하여 명시한 TreeView 아이템에 focus를 주고 TreeView control의 상단으로 스크롤하기 위하여 (또는 TreeView control의 마지막 아이템을 상단으로 끌어올리기 위하여) 사용한다.

[예제]

* 다음 예제는 TreeView control에 첫 번째로 보이는 아이템을 현재 아이템으로 설정한다.

long ll_tvi

int li_tvret

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

li_tvret = tv_list.SetFirstVisible(ll_tvi)

if li_tvret = -1 then MessageBox("Warning!" , "Didn't Work")

end if

[참고]

SetItem : Syntax4

FindItem


SetFocus PowerScript 함수

[설명]

명시한 object나 control에 focus를 설정한다.

[적용]

모든 object

[문법]

objectname.SetFocus ( )

[Argument]

objectname

focus를 설정하려는 object나 control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. objectname이 NULL이면, SetFocus 함수는 NULL을 리턴한다.

[용법]

objectname이 ListBox면, SetFocus 함수는 첫 번째 아이템 주위에 focus 사각형을 나타낸다. objectname이 DropDownListBox면, 편집 박스를 반전시킨다. ListBox 나 DropDownListBox내의 아이템을 선택하려면, SelectItem 함수를 이용한다.

그리기용 object는 focus를 가질 수 없다. 따라서, Line, Oval, Rectangle, 또는 RoundRectangle 등에 focus를 설정하기 위하여 SetFocus 함수를 사용할 수 없다.

[예제]

* 윈도우의 Open 이벤트 스크립트 일부인 다음 문장은 focus를 lb_Actions의 첫 번째 아이템으로 옮긴다.

lb_Actions.SetFocus( )

[참고]

SelectItem

SetState

SetTop


SetFormat PowerScript 함수

[설명]

DataWindow control 이나 DataStore내에있는 칼럼에 관한 표시 형식을 명시한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetFormat ( column, format )

[Argument]

dwcontrol | 표시 형식을 명시하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
column | 표시형식을 명시하기위한 칼럼. column은 칼럼번호(integer)나 칼럼이름(string)일 수 있다
format | DataWindow 칼럼에 관한 표시 형식

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetFormat 함수는 NULL을 리턴한다. 통상적으로 리턴값은 사용하지 않는다.

[용법]

수치에 관한 표시 형식을 명시할 경우, format은 반드시 U.S. 표시규칙을 사용하여야 한다. 즉, 콤마(,)는 천 단위를 분리하하고 마침표(.)는 소수 자리수를 나타낸다. Editmask 편집 스타일을 가진 칼럼의 경우는 SetFormat 함수에 영향을 받지 않는다.

[예제]

* 다음 문장은 dw_employee의 15 칼럼에 관한 표시 형식을 format1으로 한다.

string format1

format1 = "$#,##0.00"

dw_employee.SetFormat(15, format1)

[참고]

GetFormat


SetItem PowerScript 함수: syntax 1

[설명]

DataWindow control 이나 DataStore 내에있는 row와 column의 값을 설정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetItem ( row, column, value )

[Argument]

dwcontrol | row와 column에 값을 설정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 데이터의 row 위치 (long)
column | 데이터의 column 위치. column은 칼럼번호(integer)나 칼럼이름(string)일 수 있다
value | row 와 column 위치에 설정하려는 데이터 값. value의 데이터 타입은 반드시 해당 칼럼의 데이터 타입과 동일하여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

SetItem 함수는 DataWindow 버퍼에 값을 설정한다. 이것은 사용자가 변경 시켰거나 변경 시킬 수 있는, 현재 row와 column상에있는 편집 control의 현재 값에는 영향을 주지 않는다. 편집 control내의 값은 평가되고 받아들여지기 전까지 (AcceptText 참조) DataWindow 아이템의 값이 되지 않는다. 스크립트 내에서, SetText 함수를 사용하면 편집 control내의 값을 변경할 수 있다.

스크립트에서 DataWindow control 이나 DataStore내의 아이템 값을 설정하려면 SetItem 함수를 사용한다.

또한, 사용자가 입력한 데이터가 타당하지 않을 때 아이템의 값을 설정하기 위하여 SetItem 함수를 사용할 수도 있다. 사용자가 입력한 데이터를 거부하고 focus 변경만 허락하고자 리턴코드를 사용할 때 (ItemChanged 이벤트의 리턴코드 2 또는 ItemError 이벤트의 리턴코드 3), row와 column 내에 알맞는 값을 넣기위하여 SetItem 함수를 사용할 수 있다.

입력을 정확하게하기위한 SetItem 함수의 사용

PowerBuilder가 사용자가 입력한 문자열을 변환할 수 없다면, 그 데이터를 변환하기 위하여 ItemChanged나 ItemError 이벤트에관한 스크립트내에 필요한 문장들을 포함시키고 변환된 데이터와함께 SetItem 함수를 사용하여야만 할 것이다. 예를들어, 콤마(,)와 달러 사인 을가진 수치를 입력하였다면 (예, $1,000), PowerBuilder는 이 문자열을 수치로 변경할 수 없으며 스크립트 내에서 변경하여야만 할 것이다.

사용자가 입력한 값과 다른값을 row와 column에 설정하기 위하여 SetItem 함수를 사용한다면, 사용자가 현재 값을 볼수있도록 편집 control에 새로운값을 할당해주는 SetText 힘수를 이용할 수 있다.

[예제]

* 다음 문장은 DataWindow control dw_order의 3번 row, hire_date 칼럼의 값을 1998-06-07로 설정한다.

dw_order.SetItem(3, "hire_date", 1993-06-07)

* 수치 칼럼을 편집하기 시작하고 다른 데이터를 입력하지 않은 상태로 벗어나면, PowerBuilder는 그 칼럼에 빈 문자열("")을 할당하려고 시도한다. 이것은 데이터 타입 타당성 테스트에 실패를 가져온다. 다음예는, ItemError 이벤트내의 코드에서 칼럼의 값을 NULL로 설정하고 focus의 변환을 허락하는 것이다. 이 예에서 칼럼 2의 데이터 타입이 수치(numeric)이라 가정한다. 데이터 타입이 date, time, 또는 datetime이라면, 첫 번째 라인 (integer null_num)을 적절한 타입으로 변경하여 테스트하면 된다.

integer null_num

SetNull(null_num)

IF dwo.ID = 2 THEN

// 아무것도 입력하지 않으면(""), null로 설정한다

IF data = "" THEN

This.SetItem(row, dwo.ID, null_num)

RETURN 2

END IF

END IF

* 다음 예제는 DataWindow의 ItemError 이벤트에 관한 스크립트이다. 수치 칼럼에 숫자가 아닌 다른 문자를 입력하였다면, 데이터는 데이터 타입 타당성 테스트에 실패하게 될 것이다. 콤마와 달러사인과 같은 문자를 포함시킬 수 있고 칼럼에 타당한 수치 값을 할당하기 위하여 SetItem 함수를 사용한다. 리턴코드 3은 편집 control내의 데이터를 거부하고 올바른 값을 칼럼에 할당한다

string snum, c

integer cnt

// 데이터로부터 수치를 추출한다

FOR cnt = 1 to Len(data)

c = Mid(data, cnt, 1) // 문자를 구한다

IF IsNumber(c) THEN snum = snum + c

NEXT

This.SetItem(row, dwo.ID, Long(snum))

RETURN 3

[참고]

GetItemDate

GetItemDateTime

GetItemNumber

GetItemString

GetItemTime

GetText

SetText

SetItem : Syntax 2

SetItem : Syntax 3

SetItem : Syntax 4

SetItem PowerScript 함수: syntax 2

[설명]

ListView 아이템의 값을 설정한다.

[적용]

ListView controls

[문법]

listviewname.SetItem ( index, item )

[Argument]

ilistviewname | 아이템의 정보를 설정하려는 ListView
index | 상태 정보를 설정하려는 아이템의 인덱스 번호
item | 정보를 설정하려는 ListView 아이템

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다

[예제]

* 다음 예제는 선택한 ListView 아이템에 관한 그림의 상태를 설정하기 위하여 SetItem을 사용하였다.

listviewitem lvi_1

lv_list.GetItem(lv_list.SelectedIndex () , lvi_1)

lvi_1.StatePictureIndex = 2

lv_list.SetItem(lv_list.SelectedIndex () , lvi_1)

[참고]

GetItem

SetItem : Syntax 1

SetItem : Syntax 3

SetItem : Syntax 4

SetItem PowerScript 함수: syntax 3

[설명]

특정 칼럼의 값을 설정한다.

[적용]

ListView control

[문법]

listviewname.SetItem ( index, column, label )

[Argument]

listviewname | 아이템의 칼럼 정보를 설정하려는 ListView control
index | 칼럼 정보를 설정하려는 아이템의 인덱스 번호
column | 명시한 ListView 아이템을 나타내려는 칼럼의 번호
label | 명시한 칼럼을 나타내기위한 아이템의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

ListView 아이템에관한 정보를 명시하려면, Syntax 2를 참조한다.

[예제]

* 다음 예제는 ListView에있는 아이템 3개를 report view에 나타낸다.

listviewitem l_lvi

integer li_count

lv_list.SetColumn(1 , "Composition", Left! , 860)

lv_list.SetColumn(2 , " Album", Left! , 610)

lv_list.SetColumn(3 , " Artist", Left! , 710)

lv_list.SetItem(1 , 1 , "St. Thomas")

lv_list.SetItem(1 , 2 , "The Bridge")

lv_list.SetItem(1 , 3 , "Sonny Rollins")

lv_list.SetItem(2 , 1 , "So What")

lv_list.SetItem(2 , 2 , "Kind of Blue")

lv_list.SetItem(2 , 3 , "Miles Davis")

lv_list.SetItem(3 , 1 , "Goodbye, Porkpie Hat")

lv_list.SetItem(3 , 2 , "Mingus-Ah-Um")

lv_list.SetItem(3 , 3 , "Charles Mingus")

[참고]

GetItem

SetItem : Syntax 1

SetItem : Syntax 2

SetItem : Syntax 4

SetItem PowerScript 함수: syntax 4

[설명]

명시한 아이템과 연관된 데이터를 설정한다.

[적용]

TreeView controls

[문법]

treeviewname.SetItem ( itemhandle, item )

[Argument]

treeviewname | 명시한 아이템에관한 데이터를 설정하려는 TreeView control의 이름
itemhandle | 변경을 원하는 아이템과 연관된 handle
item | 변경하려는 TreeView 아이템

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

전형적으로, GetItem 함수를 먼저 호출하여 데이터를 편집하고, 다음에 TreeView control에 변경시킨 내용을 반영하기 위하여 SetItem 함수를 호출한다.

[예제]

* 다음 예제는 TreeView 아이템의 현재 선택된 그림 인덱스를 변경하기 위하여 ItemExpanding 이벤트를 사용하는 것이다.

treeviewitem l_tvi

long ll_tvi

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

tv_list.GetItem(ll_tvi , l_tvi)

l_tvi.PictureIndex = 5

l_tvi.SelectedPictureIndex = 5

tv_list.SetItem ( ll_tvi, l_tvi )

[참고]

GetItem

SetItem : Syntax 1

SetItem : Syntax 2

SetItem : Syntax 3


SetItemStatus PowerScript 함수

[설명]

row 또는 column의 수정 상태를 변경한다. 수정 상태는 Update 함수가 row에 관하여 생성하게될 SQL 문장의 타입을 결정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetItemStatus ( row, column, dwbuffer, status )

[Argument]

dwcontrol | 명시한 row와 column의 아이템 상태를 설정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 상태를 설정하려는 row의 위치 (long)
column | 상태를 설정하려는 column의 위치. column은 칼럼 번호 (integer) 또는 칼럼 이름 (string)을 명시할 수 있다. row 의 상태를 설정하려는 column에 0을 입력한다.
Dwbuffer | row를 포함하고있는 DataWindow 버퍼를 나타내는 dwBuffer 열거형 데이터 타입: ·PRIMARY! -- primary 버퍼내의 데이터 (삭제되거나 필터에서 제외되지 않은 데이터) ·DELETE! -- delete 버퍼내의 데이터 (DataWindow object로부터 삭제된 데이터) ·FILTER! -- filter 버퍼내의 데이터 (필터에서 제외된 데이터)
status | 새로운 상태를 나타내는 dwItemStatus 열거형 데이터 타입의 값: ·NotModified! ·DataModified! ·New! ·NewModified! dwItemStatus 값의 정의는 GetItemStatus 함수를 참조한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetItemStatus 함수는 NULL을 리턴한다.

[용법]

row의 상태 flag는 Update 함수가 데이터베이스를 갱신하기 위하여 어떤 SQL 문장을 사용할 것인지를 결정한다. row의 상태 flag 변화는 칼럼의 상태 flag에 영향을 준다. 예를들어, row의 상태 flag를 NotModified! 또는 New!로 변경하면 그 row내의 칼럼들은 NotModified!가 될 것이다.

row의 경우, 상태 변경이 모두 올바른 것은 아니다. 예를들어, NewModified!를 New!로 변경할 수는 없다. 어떤 상태 변경은, 그것이 허락된 것이라도, 명시한 상태와는 다른 결과를 낳는다. 예를들어, DataModified!를 New!로 변경하면 NewModified! 상태가 된다.

다음 표는 row의 원래상태를 다른 상태로 변경할 때의 영향을 나타낸 것이다. Yes는 명시한대로 row에 영향을 주고, No는 영향을 주지 않는다.

원래 상태 | 새로 명시한 상태 |  |  |
 | New! | NewModified! | DataModified! | NotModified!
New! | - | Yes | Yes | No
NewModified! | No | - | Yes | New!
DataModified! | NewModified! | Yes | - | Yes
NotModified! | Yes | Yes | Yes | -

특정 상태로 변경이 허락되지 않을 때에는, 한 번 더 SetItemStatus 함수를 호출할 수 있다. 예를들어, row를 New! 상태에서 NotModified! 상태로 변경시키기 원한다면, 먼저 DataModified!로 설정하고 다음에 NotModified!로 설정한다.

row가 갱신되는 방법을 변경시키기 원할 때 SetItemStatus 함수를 사용한다. 예를들어, 한 DataWindow로부터 다른 DataWindow로 row를 복사하고 그 row를 수정한다면, row는 NewModified! 상태가 될 것이다. 그러나, 그 row가 이미 데이터베이스 내에 존재하고 있으면, Update 함수를 사용할 때 SQL의 INSERT 문장대신 UPDATE 문장이 사용되어야 할 것이다. 이 경우, row의 DataModified! 상태를 변경하기 위하여 SetItemStatus 함수를 사용한다.

그러나, delete 버퍼의 row 상태를 New! 또는 NewModified!로 변경하면 Update 함수를 사용할 때 SQL DELETE 문장이 사용되는 것을 막을 수 없기 때문에, 그 row는 데이터베이스에서 삭제된다. 이러한 row를 버퍼에서 제거하려면 Update 함수를 호출하기 전에 RowsDiscard 함수를 사용한다. (RowsDiscard 함수를 참조할 것)

전체 DataWindow object에 관한 상태 재설정

전체 DataWindow object에 관한 상태를 재설정하려면, ResetUpdate 함수를 사용한다. 이 함수는 모든 상태 flag를 NotModified!로 설정한다.

[예제]

* 다음 문장은 dw_history의 primary 버퍼에서 Salary 칼럼내에있는 5번 row의 상태를 NotModified!로 설정한다.

dw_history.SetItemStatus(5, "Salary", Primary!, NotModified!)

* 다음 문장은 dw_new_hire의 primary 버퍼에서 emp_status 칼럼내에있는 5번 row의 상태를 DataModified!로 설정한다.

dw_new_hire.SetItemStatus(5, "emp_status", Primary!, DataModified!)

* 다음 문장은 of dw_rpt의 primary 버퍼에서 5번 row의 상태가 NewModified!면 DataModified!로 설정한다.

dwItemStatus l_status

l_status = dw_rpt.GetItemStatus(5, 0, Primary!)

IF l_status = NewModified! THEN

dw_rpt.SetItemStatus(5, 0, Primary!, DataModified!)

END IF

[참고]

GetItemState

ResetUpdate


SetLevelPictures PowerScript 함수

[설명]

사용자가 명시한 레벨에 있는 모든 아이템에 관한 그림의 인덱스를 설정한다.

[적용]

TreeView controls

[문법]

treeviewname.SetLevelPictures (level, pictureindex, selectedpictureindex, statepictureindex, overlaypictureindex )

[Argument]

treeviewname | 주어진 TreeView 레벨에 관한 그림을 설정하려는 TreeView control 이름
level | 그림 인덱스를 설정하려는 TreeView 레벨
pictureindex | 그림 이미지와 연관된 그림에 관한 인덱스 번호
selectedpictureindex | SelectedPicture 이미지와 연관된 그림에 관한 인덱스 번호
statepictureindex | StatePicture 이미지와 연관된 그림에 관한 인덱스 번호
overlaypictureindex | OverlayPicture 이미지와 연관된 그림에 관한 인덱스 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

TreeView 레벨 전체에 관한 그림을 변경하고자 할 때 사용한다.

[예제]

* 다음 예제는 TreeView 레벨 3에 관한 그림을 설정하고 두 개의 새로운 TreeView 아이템들을 삽입한다.

long ll_tvi, ll_child, ll_child2

int li_pict, li_level

treeviewitem l_tvi

li_level = 6

tv_list.SetLevelPictures( 3, li_level, li_level, li_level, li_level)

ll_tvi = tv_list.FindItem(RootTreeItem! , 0)

ll_child = tv_list.InsertItemLast(ll_tvi, "Walton",2)

ll_child2 = tv_list.InsertItemLast(ll_child, "Spitfire Suite", li_level)

tv_list.ExpandItem(ll_child)

tv_list.SetFirstVisible(ll_child)

[참고]

AddPicture


SetLibraryList PowerScript 함수

[설명]

응용프로그램의 라이브러리 탐색경로내에 있는 파일들을 변경한다.

[적용]

Application object

[문법]

applicationname.SetLibraryList ( filelist )

[Argument]

applicationname | 라이브러리 탐색 경로를 변경하려는 application object의 이름
filelist | 콤마로 분리된 파일이름 리스트. 확장자를 가진 파일 이름을 명시한다. 경로를 명시하지 않으면, PowerBuilder는 시스템의 파일 경로를 사용한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- PowerBuilder에서 응용프로그램이 실행중이다.

-2 -- 현재 object가 새로운 리스트상에 있지않는 라이브러리 내에 있는 것이다.

argument 값 중에 NULL이 있으면, SetLibraryList는 NULL을 리턴한다.

[용법]

application이 object를 load할 필요가 있을 때, PowerBuilder는 먼저 실행 파일내에서 object를 찾고 다음에 그 응용프로그램에 관하여 명시된 동적 라이브러리내에서 찾는다. SetLibraryList 함수를 이용하면 라이브러리 탐색 순서를 변경할 수 있다. 새로운 순서로 라이브러리 리스트를 작성하거나 또다른 라이브러리 파일 리스트를 명시할 수 있다.

SetLibraryList를 호출하면 명시된 라이브러리 파일 리스트를 새로운 파일 리스트로 대치한다. PowerBuilder는 명시한 라이브러리가 그 응용프로그램에 적합한 것인지 여부는 체크할 수 없다. 따라서 응용프로그램이 필요로하는 object를 포함하고 있는 라이브러리인지를 확인하여야 한다.

PowerBuilder에서 SetLibraryList를 실행하고 있으면, 이 함수는 아무 영향을 주지 못한다.

[예제]

* 다음 문장은 라이브러리 탐색 경로에 3개의 파일들을 명시한다.

myapp.SetLibraryList("reports.pbd,dw.pbd,query.pbd")


SetMask PowerScript 함수

[설명]

EditMask control에관한 edit mask 와 edit mask 데이터 타입을 설정한다.

[적용]

EditMask controls

[문법]

editmaskname.SetMask ( maskdatatype, mask )

[Argument]

editmaskname | edit mask를 명시하려는 EditMask 이름
maskdatatype | mask 타입을 나타내는 MaskDataType 열거형 데이터 타입의 값: ·DateMask! ·DateTimeMask! ·DecimalMask! ·NumericMask! ·StringMask! ·TimeMask!
mask | edit mask를 나타내는 문자열

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetMask 함수는 NULL을 리턴한다.

[용법]

edit mask내에 나타낸 문자들의 세트는 사용자가 입력할 수 있늠 문자의 타입을 나타낸다. 추가로, 구두점은 입력된 값의 형식을 제어한다. 각각의 mask 데이터 타입은 자신만의 타당한 문자 세트를 가지고 있다.

예를들어, 다음 문자열은 전화 번호를위한 mask 타입을 나타낸다. EditMask control은 구두점을 나타낸다 (괄호와 대쉬). 파운드 기호는 사용자가 입력하게 될 숫자를 나타낸다. 따라서 숫자가 아닌 다른 문자들은 입력할 수 없다.

(###) ###-####

올바른 mask를 나타내는 보기는, Window painter에서 EditMask control에 관한 Edit Mask Style 대화상자를 참조한다. 대화상자 내의 리스트박스는 각 데이터 타입에관한 mask 문자의 미리 정의되어있는 의미를 나타낸다.

숫자에관한 mask를 명시한다면, 반드시 U.S. 표기형식을 사용하여야 한다. 즉, 콤마(,)는 천 단위를 구분하고 구두점은 소수자리 위치를 나타낸다. 실행하는 동안, 그 위치에 맞는 기호들이 나타나게 될 것이다.

표시 형식을 사용하여 edit mask에 관한 색상을 명시할 수는 없다.

[예제]

* 다음 문장은 EditMask password_mask에 관한 mask를 pword_code에 있는 mask로 설정한다.

string pword_code

pword_code = "#xxxx"

password_mask.SetMask(StringMask!, pword_code)

* 다음 문장은 EditMask password_mask에관한 mask를 5-자리 숫자로 설정한다.

password_mask.SetMask(NumericMask!, "#####")


SetMicroHelp PowerScript 함수

[설명]

MDI frame 윈도우내에 MicroHelp 박스에 표시될 텍스트를 명시한다.

[적용]

MDI frame 윈도우

[문법]

windowname.SetMicroHelp ( string )

[Argument]

windowname | MicroHelp 텍스트를 설정하려는 MicroHelp와 연관된 MDI frame 이름
string | 새로운 MicroHelp 텍스트

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetMicroHelp 함수는 NULL을 리턴한다.

[용법]

control의 Tag property는 MicroHelp 텍스트를 저장하는데 사용된다. control이 focus를 받았을 때, GetFocus 이벤트 스크립트에서 Tag property의 텍스트를 나타내기 위하여 SetMicroHelp 함수를 사용할 수 있다.

메뉴의 경우, 메뉴 아이템을 선택하면 PowerBuilder는 자동으로 Menu painter안에 명시한 MicroHelp 텍스트를 나타낸다. 미리 정의한 MicroHelp를 억제하고 MicroHelp 박스에 다른 텍스트를 위치시키기위하여 메뉴 아이템의 Selected 이벤트 스트립트에서 SetMicroHelp 함수를 사용할 수 있다. SetMicroHelp는 미리 정의된 MicroHelp 텍스트를 변경하지는 않는다.

[예제]

* 다음 문장은 W_New frame내에 표시된 MicroHelp를 "Delete selected text"로 변경한다.

W_New.SetMicroHelp("Delete selected text")

* 다음 예에서, W_New의 CommandButton cb_done과 연관된 tag 값은 'Close the Window'이다. 다음 스크립트는 cb_done의 GetFocus 이벤트 스크립트로써, focus를 받을 때 W_New의 MicroHelp로 'Close the Window'를 나타낸다.

W_New.SetMicroHelp(This.Tag)


SetNull PowerScript 함수

[설명]

메모리변수를 NULL로 설정한다. 변수는 모든 데이터 타입이 가능하다.

[문법]

SetNull ( anyvariable )

[Argument]

anyvariable

NULL로 설정하려는 메모리 변수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. anyvariable이 NULL이면, SetNull 함수는 NULL을 리턴한다.

[용법]

데이터베이스에 기록하기전에 변수에 NULL을 설정하려면 SetNull 함수를 사용한다. PowerBuilder는 변수를 NULL로 초기화하지 않고, 변수를 선언할 때 값을 명시하지 않는한 데이터 타입에 관한 기본설정 초기값으로 초기화 된다.

변수에 값을 할당하고 다음에 NULL로 설정하면, NULL 값의 데이터 타입은 변하지 않는다.

[예제]

* 다음 문장은 Salary 변수를 NULL로 설정한다.

SetNull(Salary)

[참고]

IsNull


SetOverlayPicture PowerScript 함수

[설명]

control의 이미지 리스트내에있는 이미지를 overlay 이미지 리스트에 넣는다.

[적용]

ListView 와 TreeView control

[문법]

controlname.SetOverlayPicture ( overlayindex, imageindex )

[Argument]

controlname | overlay 이미지를 추가하려는 ListView 또는 TreeView 이름
overlayindex | overlay 이미지 리스트내에 있는 overlay 그림의 인덱스 번호. overlay 이미지 리스트는 초기값이 1인 배열이다. overlayindex는 반드시 1 (첫번째 이미지), 이미 존재하는 인덱스 (이미지를 대치할 경우), 또는 현재 가장 큰 인덱스보다 1이 더큰 (다른 이미지를 추가하는 경우) 값이어야 한다. 배열과 차이가있는 인덱스를 명시하면 SetOverlayPicture는 처리에 실패한다.
imageindex | control의 메인 이미지 리스트에있는 이미지 번호. ListView의 경우, 큰 그림과 작은 그림 모두 overlay 이미지가 된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

overlay 그림은 반드시 중첩될 그림과 동일한 높이, 폭을 가지고 있어야 한다. SetPictureMask property에 명시한 색상은 그 그림이 중첩용으로 사용될 때 투명하게 된다.

[예제]

* 다음 예제는 ListView control내의 overlay 이미지를 나타낸 것이다. 동일한 그림은 큰 이미지와 작은 이미지로 사용되었다.

// 중첩(overlay) 이미지를 설정한다

integer index

index = lv_1.AddLargePicture("shortcut.ico")

index = lv_1.AddSmallPicture("shortcut.ico")

lv_1.SetOverlayPicture(1, index)

index = lv_1.AddLargePicture("not.ico")

index = lv_1.AddSmallPicture("not.ico")

lv_1.SetOverlayPicture (2, index)

// 두 번째 overlay 이미지를 첫 번째 아이템에 할당한다

listviewitem lvi

integer i

i = lv_1.GetItem(1, lvi)

lvi.OverlayPictureIndex = 2

i = lv_1.SetItem(1, lvi)

* 다음 예제는 TreeView의 메인 이미지 리스트에 있는 첫 번째 그림은 첫 번째 overlay 그림으로 한다. 그 그림은 TreeView의 property sheet에 있는 메인 이미지 리스트에 추가된다.

tv_list.SetOverlayPicture(1, 1)

TreeView의 Clicked 이벤트에있는 다음 코드는 overlay 이미지를 클릭한 아이템에 할당한다.

treeviewitem tvi

tv_list.GetItem(handle, tvi)

tvi.OverlayPictureIndex = 1

tv_list.SetItem(handle, tvi)


SetParagraphSetting PowerScript 함수

[설명]

RichTextEdit control에서 삽입 포인트를 포함하고있는 단락의 들여쓰기, 좌측여백, 또는 오른쪽 여백의 크기를 설정한다.

[적용]

RichTextEdit controls

[문법]

rtecontrol.SetParagraphSetting ( whichsetting, value )

[Argument]

rtecontrol | 단락의 정보를 원하는 control 이름
whichsetting | 변경하려는 내용을 명시한 ParagraphSetting 열거형 데이터 타입의 값: ·Indent! 단락의 들여쓰기를 리턴한다 ·LeftMargin! 단락의 좌측여백을 리턴한다 ·RightMargin! 단락의 우측여백을 리턴한다
value | 여백 또는 들여쓰기 폭을 나타내는 값 (1/1000 인치). 예를들어, 500은 1/2 인치 폭을 나타낸다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

각 단락은 들여쓰기, 좌측여백, 우측여백 등의 설정내용을 가지고 있다. 현재 단락의 이들 세가지를 모두 설정하려면, SetParagraphSetting 함수를 세 번 호출하도록 한다.

[예제]

* 다음 예는 현재 단락의 들여쓰기 설정을 1/4 인치로 한다.

ll_indent = rte_1.SetParagraphSetting(Indent!, 250)

* 다음 예제는 현재 단락의 좌측여백을 1 인치로 설정한다.

rte_1.SetParagraphSetting(LeftMargin!, 1000)

[참고]

GetParagraphSetting

SetAlignment

SetSpacing

SetTextColr

SetTextStyle


SetPicture PowerScript 함수

[설명]

blob에 저장된 bitmap을 Picture control내의 이미지에 할당한다.

[적용]

Picture controls

[문법]

picturecontrol.SetPicture ( bitmap )

[Argument]

picturecontrol | bitmap을 설정하려는 Picture control의 이름
bitmap | bitmap을 포함하고 있는 blob. bitmap은 반드시 bitmap (BMP), run-length encoded (RLE), Windows Metafile (WMF), 또는 Macintosh PICT여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetPicture 함수는 NULL을 리턴한다.

[용법]

파일로부터 bitmap 이미지를 얻기위하여 FileRead 함수를 사용한다면, 한 번에 최대 32765 문자만을 읽을수 있다는 것을 기억하여야 한다. 파일의 길이를 체크하려면, FileLength 함수를 호출한다. 파일이 32765 문자 이상이면, 한 번이상 FileRead 함수를 호출하고 리턴 값을 결합한다.

[예제]

* 다음 문장은 파일을 선택하고 그 파일을 오픈한 다음 Picture control p_1에 비트맵을 설정한다.

integer fh, ret

blob Emp_pic

string txtname, named

string defext = "BMP"

string Filter = "bitmap Files (*.bmp), *.bmp"

ret = GetFileOpenName("Open Bitmap", txtname, named, defext, filter)

IF ret = 1 THEN

fh = FileOpen(txtname, StreamMode!)

IF fh <> -1 THEN

FileRead(fh, Emp_pic)

FileClose(fh)

p_1.SetPicture(Emp_pic)

END IF

END IF


SetPointer PowerScript 함수

[설명]

마우스 포인터를 명시한 모양으로 설정한다.

[문법]

SetPointer ( type )

[Argument]

type

포인터 모양을 나타내는 Pointer 열거형 데이터 타입의 값:

Arrow!

Cross!

Beam!

HourGlass!

SizeNS!

SizeNESW!

SizeWE!

SizeNWSE!

UpArrow!

[Return 값]

Pointer.

열거형 타입의 포인터를 리턴하므로 필요에 따라서는, 이전 포인터로 재설정할 수 있다. type이 NULL이면, SetPointer는 NULL을 리턴한다.

[용법]

실행시간이 긴 스크립트를 시작할 때 모래시계가 나타나도록 하려면 SetPointer를 사용한다.

포인터는 스크립트내에서 사용자가 변경하거나 스크립트가 끝날때까지 그대로 남아있는다.

방향키 포인터의 재설정

스크립트의 실행이 종료되는 포인터는 자동으로 복귀된다. 방향키 포인터로 되돌리기 위하여 포인터를 변경할 필요는 없다

PowerBuilder painter에서, 포인터가 윈도우, control, 또는 DataWindow object의 특정부분 위로 움직일 때 표시될 포인터 모양을 명시할 수 있다. 위에 나열된 고정 포인터에 포함된 모양대신, 사용자가 가지고있는 커서 파일을 이용하여도 된다.

[예제]

* 다음 문장은 포인터를 모래시계 모양으로 설정한다.

SetPointer(HourGlass!)

* 다음 예제는 이전 포인터를 저장하고 어떤 처리가 완료된 후 재설정 한다.

pointer oldpointer // pointer 변수 선언

oldpointer = SetPointer(HourGlass!)

. . . // 처리루틴 수행

SetPointer(oldpointer)


SetProfileString PowerScript 함수

[설명]

PowerBuilder 응용프로그램에관한 profile 파일에 값을 기록한다.

[문법]

SetProfileString ( filename, section, key, value )

[Argument]

filename | profile 파일 이름. filename에 경로명를 포함하지 않으면, PowerBuilder는 DOS 경로로 찾는다.
section | profile 파일내의 값과 연관된 그룹 이름. 파일내에 section이 존재하지 않으면, PowerBuilder가 t를 추가한다.
key | 값을 명시하려는 section내의 키 값. section내에 key가 존재하지 않으면, PowerBuilder가 t를 추가한다.
value | key에관하여 명시하려는 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, filename이 없거나 접근이 불가능하여 처리에 실패하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetProfileString 함수는 NULL을 리턴한다.

[용법]

profile 파일은 대괄호로 둘러싸인 section 레이블과, 등호와 값을 가지고있는 키로 구성된다. 키에 할당된 값을 변경함으로써, 응용프로그램의 각 설치에관한 설정을 임의로 명시할 수 있다. 사용자 자신만의 profile 파일을 계획하고 있다면, section과 키 이름을 선택하고 그 값들이 어떻게 사용되었는지 결정한다.

예를들어, profile 파일이 사용자에 관한 정보를 포함하고 있다면, 아래 예에서 User Info는 section 이름이고 다름 값들은 키 부분이다. 등호 앞뒤에는 공란이 없다.

[User Info]

Name="James Smith"

JobTitle="Window Washer"

SecurityClearance=9

Password=

프로그램 작성자 또는 사용자가 제공한 환경 정보를 profile 파일에 저장하려면 SetProfileString 함수를 호출한다. PowerBuilder 응용프로그램이 실행되는 동안 사용자의 특정 정보를 사용하고자 한다면 ProfileInt와 ProfileString 함수를 호출하면 된다.

[예제]

* 다음 문장은 C:\PROFILE.INI 파일의 Position section에 Title 키워드를 MGR로 설정한다.

SetProfileString("C:\PROFILE.INI", "Position", "Title", "MGR")

Macintosh의 경우

SetProfileString("HD:System Folder:Preferences:" + &

"My App:PROFILE.INI", "Position", "Title", "MGR")

UNIX의 경우

SetProfileString("/export/home/myapp/profile.ini", &

"Position", "Title", "MGR")

[참고]

ProfileInt

ProfileString


SetRedraw PowerScript 함수

[설명]

각각의 property가 변경될 때 마다 object나 control을 자동으로 다시 그릴것인지 제어한다.

[적용]

Menu를 제외한 모든 object

[문법]

objectname.SetRedraw ( boolean )

[Argument]

objectname | 다시그리기 설정내용을 변경하려는 object 또는 control 이름. objectname은 child DataWindow는 가능하지만, 메뉴는 적용되지 않는다.
boolean | Object property가 변경된 후 PowerBuilder가 이를 자동으로 다시 그리게 할 것인지 여부를 제어하는 boolean: ·TRUE -- property가 변경될 때 마다 object나 control을 자동으로 다시 그린다 ·FALSE -- 다시 그리지 않는다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. boolean이 NULL이면, SetRedraw 함수는 NULL을 리턴한다.

[용법]

기본적으로, PowerBuilder는 property가 변경된 이후에 control을 다시 그린다. object나 control의 여러 가지 property를 변경할 때 깜박거림을 방지하거나 다시그리는 시간을 감소 시키기 위하여 임시로 이 기능을 중단시키고자 한다면 SetRedraw 함수를 사용한다.

윈도우가 보이지 않는 상태일 때, SetRedraw 함수는 처리에 실패하게 된다.

주의

다시 그리는 기능을 중단시켰으면, 반드시 다시 회복시켜야 한다. 그렇지 않을 경우 문제가 발생할 수 있다. 추가로, 윈도우에서 다시그리는 기능을 중단하고 object의 Visible 또는 Enabled property를 변경하면, 탭이동 순서에 영향을 줄 수도 있다.

[예제]

* 다음 문장은 lb_Location의 다시그리기 기능을 중단한다.

lb_Location.SetRedraw(FALSE)

* 다음 문장은 lb_Location의 다시그리기 기능을 회복한다.

lb_Location.SetRedraw(TRUE)

* lb_Location이 정렬되어 있다면 (lb_Location.Sorted = TRUE), 다음 문장은 새로운 아이템이 추가될때까지 lb_Location 리스트가 정렬되고 다시그려지는 것을 방지하기 위하여 SetRedraw 함수를 사용한다.

lb_Location.SetRedraw(FALSE)

lb_Location.AddItem("Atlanta")

lb_Location.AddItem("Boston")

lb_Location.AddItem("Washington")

lb_Location.SetRedraw(TRUE)


SetRemote PowerScript 함수 : Syntax 1

[설명]

오픈 channel 요구없이 데이터를 받아들이고 명시한 위치에 저장하기 위하여 DDE 서버 응용프로그램을 요청한다. 이 문법은 서버의 하나 또는 두 개 명령을 요청할때만 적당하다.

Platform 정보

DDE 함수는 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일 되었을 때에만 효과가 있다.

[문법]

SetRemote ( location, value, applname, topicname )

[Argument]

location | 데이터를 받게될 서버 응용프로그램내의 데이터 위치. location의 형식은 요청을 받을 응용프로그램에 따른다.
value | remote 응용프로그램으로 보내려는 값
applname | 서버 응용프로그램의 DDE 이름
topicname | 데이터 또는 데이터를 받게될 응용프로그램의 instance (예를들어, Microsoft Excel의 경우, topic 이름은 오픈된 spreadsheet의 이름일 수 있다)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- Link가 시작되지 않았다

-2 -- 요청이 거절되었다

argument 값 중에 NULL이 있으면 SetRemote 함수는 NULL을 리턴한다.

[용법]

DDE를 사용할 때, PowerBuilder 응용프로그램은 반드시 클라이언트 윈도우로 사용할 오픈된 윈도우를 가지고 있어야 한다. 이 문법의 경우, 활성화된 윈도우는 DDE 클라이언트 윈도우이다.

더 자세한 정보는 ExecRemote 함수를 참조한다.

[예제]

* 다음 문장은 SALES.XLS worksheet 의 row, column에 데이터 값 500을 저장하기 위하여 Microsoft Excel을 요청한다.

SetRemote("R5C7", "4500", "Excel", "SALES.XLS")

[참고]

ExecRemote

GetRemote

OpenChannel

SetRemote : syntax2

SetRemote PowerScript 함수 : Syntax 2

[설명]

서버에 오픈되어있는 channel에 의하여 warm link가 미리 설치되어있을 때 데이터를 받아들이고 저장하기 위하여 DDE 서버 응용프로그램을 요청한다. 오픈 channel을 가진 warm link는 다수의 DDE 요청을 할 때 더 효과 적이다.

Platform 정보

DDE 함수는 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일 되었을 때에만 효과가 있다.

[문법]

SetRemote ( location, value, handle {, windowhandle } )

[Argument]

location | 데이터를 받게 될 서버 응용프로그램내의 데이터 위치. location 형식은 요청을 받을 응용프로그램에 따른다.
value | remote 응용프로그램에 보내려는 값
handle | DDE 서버 응용프로그램 channel. handle은 오픈된 DDE channel을 호출하는 OpenChannel 함수에 의하여 리턴되는 값이다.
windowhandle | (선택사항) DDE 클라이언트를 활성화하고있는 윈도우의 handle

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 -- Link가 시작되지 않았다

-2 -- 요청이 거절되었다

-9 -- handle이 NULL이다

argument 값 중에 NULL이 있으면 SetRemote 함수는 NULL을 리턴한다.

[용법]

DDE를 사용할 때, PowerBuilder 응용프로그램은 반드시 클라이언트 윈도우로 사용할 오픈된 윈도우를 가지고 있어야 한다. 이 문법의 경우, windowhandle argument를 이용하여 다른 활성화된 윈도우를 클라이언트 윈도우로 명시할 수 있다.

이 문법의 SetRemote를 사용하기 전에, DDE channel을 설치하기 위하여 OpenChannel 함수를 사용하도록 한다.

더 자세한 정보는 ExecRemote 함수를 참조한다.

[예제]

* 다음 문장은 Microsoft Excel worksheet를 오픈하고 row, column 데이터 값으로 500을 저장하기 위하여 요청한다.

long handle

handle = OpenChannel("Excel", "REGION.XLS")

SetRemote("R5C7", "4500", handle)

[참고]

ExecRemote

GetRemote

OpenChannel

SetRemote : syntax 1


SetRow PowerScript 함수

[설명]

DataWindow control 또는 DataStore내의 현재 row를 설정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetRow ( row )

[Argument]

dwcontrol | 현재 row를 설정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
row | 현재 row로 만들고자하는 row 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. row가 1보다 작거나 row의 수보다 크면, 처리에 실패한다. argument 값중에 NULL이 있으면, SetRow 함수는 NULL을 리턴한다.

[용법]

SetRow 함수는 현재 row로 커서를 옮기지만 DataWindow control이나 DataStore를 스크롤하지는 않는다.

[이벤트]

SetRow 함수는 다음 이벤트들을 트리거 할 수 있다:

· ItemChanged

· ItemError

· ItemFocusChanged

· RowFocusChanged

무한 루프 방지

위에 나열한 이벤트내에서 SetRow 함수를 절대 호출하지 말아야 한다. SetRow는 이들 이벤트들을 트리거할 수 있기 때문에, 이러한 재귀적 호출은 stack 에러를 발생시키는 원인이 될 수 있다.

[예제]

* 다음 문장은 dw_employee의 현재 row를 5로 설정한다.

dw_employee.SetRow(15)

* 다음 예제는 모든 row의 반전을 해제한 다음, 현재 row를 5로 설정하고 반전시킨다. row 5가 보이지 않으면, SetRow 대신 ScrollToRow를 사용할 수 있다.

dw_employee.SelectRow(0, FALSE)

dw_employee.SetRow(15)

dw_employee.SelectRow(15, TRUE)

[참고]

GetColumn

GetRow

SetColumn

SetRowFocusIndicator


SetRowFocusIndicator PowerScript 함수

[설명]

DataWindow control의 현재 row를 나타내는 지시자(indicator)를 명시한다. Windows 표준인 점선 사각형, PowerBuilder의 pointing hand, 또는 Picture control에 저장된 이미지 등을 사용할 수 있다.

[적용]

DataWindow controls 와 child DataWindows

[문법]

dwcontrol.SetRowFocusIndicator ( focusindicator {, xlocation {, ylocation } } )

[Argument]

dwcontrol | row focus 지시자를 설정하려는 DataWindow control 또는 child DataWindow의 이름
focusindicator | 현재 row에 관한 지시자. RowFocusInd 열거형 데이터 타입 또는 Picture control의 이름: ·Off! -- 지시자 없음 ·FocusRect! -- row 주위에 점선 사각형을 두른다. FocusRect!는 Macintosh에는 효과가 없다 ·Hand! -- PowerBuilder pointing hand를 사용한다 ·Picture control 이름 명시한 Picture control을 사용한다
xlocation | (선택사항) row의 좌측상단을 기준으로 한 hand 또는 bitmap의 x 좌표 (PowerBuilder 단위)
ylocation | (선택사항) row의 좌측상단을 기준으로 한 hand 또는 bitmap의 y 좌표 (PowerBuilder 단위)

[Return 값]

Integer.

처리에 성공하면 1을 리턴한고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetRowFocusIndicator 함수는 NULL을 리턴한다.

[용법]

dwcontrol의 현재 row 지시자를 focusindicator로 설정한다. 지시자로 Hand 또는 Picture control을 선택하면, 좌표(xlocation, ylocation)를 명시하지 않는한 DataWindow 좌측면에 지시자를 나타낸다. 기본적인 위치는 0, 0 (DataWindow control의 좌측면).

row focus 지시자로 사용할 그림

row focus 지시자로 그림을 사용하려면, Window painter에서 Picture control을 설정하여야 한다. DataWindow control을 포함하고있는 윈도우에 Picture control을 위치시킨 다음 SetRowFocusIndicator 함수에서 참조한다. 그림을 숨기거나 DataWindow control 아래에 위치 시켜 control 자체를 보이지 않게 할 수 있다.

[예제]

* 다음 문장은 dw_employee의 row focus 지시자를 pointing hand로 설정한다.

dw_employee.SetRowFocusIndicator(Hand!)

* p_arrow가 윈도우내의 Picture control이라면, 다음 문장은 dw_employee의 row focus 지시자를 p_arrow로 설정한다.

dw_employee.SetRowFocusIndicator(p_arrow)

[참고]

GetRow

SetRow

SetSeriesStyle


SetSeriesStyle PowerScript 함수 : Syntax 1

[설명]

그래프내의 series 색상을 명시한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SetSeriesStyle ( { graphcontrol, seriesname, colortype, color } )

[Argument]

controlname | series의 색상을 설정하려는 그래프 이름, 또는 그래프를 포함하고 있는 DataWindow control이나 DataStore 이름
graphcontrol | (DataWindow control 또는 DataStore만 해당) series의 색상을 설정하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesname | 색상을 설정하려는 series 이름
colortype | 색상을 설정하기 원하는 아이템을 명시한 grColorType 열거형 데이터 타입의 값: ·Foreground! -- 텍스트 색상 ·Background! -- 배경 색상 ·LineColor! -- 라인 색상 ·Shade! -- 그림자 색상 (3-차원 또는 막대 object를 가진 그래프)
color | colortype에 관한 새로운 색상 (long)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetSeriesStyle 함수는 NULL을 리턴한다.

[용법]

series내의 데이터 포인트는 자신들만의 style 설정을 가지고 있다. SetDataStyle로 만들어진 설정은 각각의 데이터 포인트에 대한 style을 설정하고 기존의 series 설정내용을 무시한다.

그래프는 현재 그래프 타입에 적용하지 않는 property에 관한 style 정보를 저장한다. 예를들어, 2-차원 선 그래프에 채움 패턴이나 막대 그래프내의 라인 스타일을 설정할 수 있지만, 그 채움 패턴이나 라인 스타일은 보이지 않게 될 것이다.

DataWindow내의 그래프 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 series에 관한 표현방식을 명시할 수 있다. 이렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트에서 SetSeriesStyle을 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 문장은 gr_emp_data 그래프에서 Salary series의 텍스트(전경) 색을 흑색으로 설정한다.

gr_emp_data.SetSeriesStyle("Salary", Foreground!, 0)

* 다음 문장은 DataWindow control dw_employees내에있는 gr_depts 그래프의 Salary series 배경색을 흑색으로 설정한다.

dw_employees.SetSeriesStyle("gr_depts", "Salary", Background!, 0)

* graph control gr_product_data의 Clicked 이벤트에있는 다음 문장은 라인 색상과 gr_sales_data 그래프 좌표를 설정한다. 스크립트 내용을 보면, gr_product_data 그래프의 마우스 포인터 아래에있는 series의 라인 색상을 메모리변수 line_color에 저장한다. 다음에 gr_sales_data 그래프의 northeast series에 관한 라인 색상을 그 색상으로 설정한다.

string SeriesName

integer SeriesNbr, Series_Point

long line_color

grObjectType MouseHit

MouseHit = ObjectAtPointer(SeriesNbr,Series_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = gr_product_data.SeriesName(SeriesNbr)

gr_product_data.GetSeriesStyle(SeriesName, LineColor!, line_color)

gr_sales_data.SetSeriesStyle("Northeast", LineColor!, line_color)

END IF

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetDataStyle

SetSeriesStyle : Syntax 2

SetSeriesStyle : Syntax 3

SetSeriesStyle : Syntax 4

SetSeriesStyle PowerScript 함수 : Syntax 2

[설명]

그래프내의 series 라인에대한 style과 폭을 명시한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SetSeriesStyle ( { graphcontrol, seriesname, linestyle, linewidth } )

[Argument]

controlname | series의 라인 스타일과 폭을 설정하려는 그래프 이름, 또는 그래프를 포함하고 있는 DataWindow control이나 DataStore 이름
graphcontrol | (DataWindow control 또는 DataStore만 해당) 라인 스타일과 폭을 설정하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesname | 라인 스타일과 폭을 설정하려는 series 이름
linestyle | LineStyle 열거형 데이터 타입의 값: ·Continuous! ·Dash! ·DashDot! ·DashDotDot! ·Dot! ·Transparent!
linewidth | 라인 폭을 픽셀(pixel)로 명시한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetSeriesStyle은 NULL을 리턴한다.

[용법]

series내의 데이터 포인트는 자신들만의 style 설정을 가지고 있다. SetDataStyle로 만들어진 설정은 각각의 데이터 포인트에 대한 style을 설정하고 기존의 series 설정내용을 무시한다.

그래프는 현재 그래프 타입에 적용하지 않는 property에 관한 style 정보를 저장한다. 예를들어, 2-차원 선 그래프에 채움 패턴이나 막대 그래프내의 라인 스타일을 설정할 수 있지만, 그 채움 패턴이나 라인 스타일은 보이지 않게 될 것이다.

DataWindow내의 그래프 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 series에 관한 표현방식을 명시할 수 있다. 이렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트에서 SetSeriesStyle을 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 문장은 gr_product_data에있는 Costs series에 관한 라인 스타일과 폭을 설정한다.

gr_product_data.SetSeriesStyle("Costs", Dot!, 5)

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetDataStyle

SetSeriesStyle : Syntax 1

SetSeriesStyle : Syntax 3

SetSeriesStyle : Syntax 4

SetSeriesStyle PowerScript 함수 : Syntax 3

[설명]

series내의 데이터 marker에 관한 채움 패턴과 심볼을 명시한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SetSeriesStyle ( { graphcontrol, seriesname, enumvalue } )

[Argument]

controlname | Series의 모양을 설정하려는 그래프 이름, 또는 그래프를 포함하고 있는 DataWindow control이나 DataStore 이름
graphcontrol | (DataWindow control 또는 DataStore만 해당) 모양을 설정하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesname | 모양을 설정하려는 series 이름
enumvalue | series 설정내용을 명시하는 열거형 데이터 타입의 값.FillPattern 또는 grSymbolType 열거형 데이터 타입의 값은 다음과 같다: 채움 패턴을 변경하려면 FillPattern 값을 사용한다: ·Bdiagonal! (좌측하단에서 우측상단으로 진행하는 라인) ·Diamond! ·Fdiagonal! (좌측상단에서 우측하단으로 진행하는 라인) ·Horizontal! ·Solid! ·Square! ·Vertical! 심볼 타입을 변경하려면, grSymbolType 값을 사용한다: ·NoSymbol! ·SymbolHollowBox! ·SymbolX! ·SymbolStar! ·SymbolHollowUpArrow! ·SymbolHollowCircle! ·SymbolHollowDiamond! ·SymbolSolidDownArrow! ·SymbolSolidUpArrow! ·SymbolSolidCircle! ·SymbolSolidDiamond! ·SymbolPlus! ·SymbolHollowDownArrow! ·SymbolSolidBox!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetSeriesStyle 함수는 NULL을 리턴한다.

[용법]

series내의 데이터 포인트는 자신들만의 style 설정을 가지고 있다. SetDataStyle로 만들어진 설정은 각각의 데이터 포인트에 대한 style을 설정하고 기존의 series 설정내용을 무시한다.

그래프는 현재 그래프 타입에 적용하지 않는 property에 관한 style 정보를 저장한다. 예를들어, 2-차원 선 그래프에 채움 패턴이나 막대 그래프내의 라인 스타일을 설정할 수 있지만, 그 채움 패턴이나 라인 스타일은 보이지 않게 될 것이다.

DataWindow내의 그래프 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 series에 관한 표현방식을 명시할 수 있다. 이렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트에서 SetSeriesStyle을 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 문장은 gr_product_data 그래프의 Costs series에 관하여 사용할 심볼을 SymbolPlus!로 설정한다.

gr_product_data.SetSeriesStyle("Costs", SymbolPlus!)

* 다음 문장은 DataWindow control dw_equipment안에 있는 gr_computers 그래프의 Costs series에 관하여 사용할 심볼을 X로 설정한다.

dw_equipment.SetSeriesStyle("gr_computers", "Costs", SymbolX!)

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetDataStyle

SetSeriesStyle : Syntax 1

SetSeriesStyle : Syntax 2

SetSeriesStyle : Syntax 4

SetSeriesStyle PowerScript 함수 : Syntax 4

[설명]

series를 중첩시킬 것인지 명시한다.

[적용]

윈도우와 사용자 object내의 graph control, DataWindow control과 DataStore내의 그래프

[문법]

controlname.SetSeriesStyle ( { graphcontrol, seriesname, overlaystyle } )

[Argument]

controlname | series의 중첩상태를 설정하려는 그래프 이름, 또는 그래프를 포함하고 있는 DataWindow control이나 DataStore 이름
graphcontrol | (DataWindow control 또는 DataStore만 해당) 중첩상태를 설정하려는 설정하려는 DataWindow control 또는 DataStore내의 그래프 이름
seriesname | 중첩상태를 설정하려는 series 이름
overlaystyle | 중첩시키기 원하는 series를 나타내는 boolean 값. ·TRUE 명시한 series를 충첩으로 설정한다 ·FALSE 중첩 설정을 제거한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetSeriesStyle은 NULL을 리턴한다.

[용법]

DataWindow내의 그래프 경우, PowerBuilder가 그래프를 그리기전에 그래프내의 series에 관한 표현방식을 명시할 수 있다. 이렇게 하려면, pbm_dwngraphcreate에 관한 사용자 이벤트를 정의하고 이 이벤트 스크립트에서 SetSeriesStyle을 호출한다. pbm_dwngraphcreate 이벤트는 DataWindow object내에 그래프가 생성되기 직전에 트리거된다.

[예제]

* 다음 문장은 gr_product_data 그래프의 Costs series 스타일을 중첩으로 설정한다.

gr_product_data.SetSeriesStyle("Costs", TRUE)

* DataWindow control dw_employees의 Clicked 이벤트에있는 다음 문장은 gr_depts 그래프의 포인터 아래 있는 series 스타일을 메모리변수 style_type에 저장한다. series 스타일이 중첩(TRUE)면, 스크립트에서 보통(FALSE) 스타일로 변경한다.

string SeriesName

integer SeriesNbr, Data_Point

boolean overlay_style

grObjectType MouseHit

MouseHit = dw_employees.ObjectAtPointer( "gr_depts", SeriesNbr, Data_Point)

IF MouseHit = TypeSeries! THEN

SeriesName = dw_employees.SeriesName("gr_depts",SeriesNbr)

dw_employees.GetSeriesStyle("gr_depts", SeriesName, overlay_style)

IF overlay_style then &

dw_employees.SetSeriesStyle("gr_depts", &

SeriesName, FALSE)

END IF

[참고]

GetDataStyle

SeriesName

GetSeriesStyle

SetDataStyle

SetSeriesStyle : Syntax 1

SetSeriesStyle : Syntax 2

SetSeriesStyle : Syntax 3


SetSort PowerScript 함수

[설명]

DataWindow control 이나 DataStore에 관한 정렬 기준을 명시한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetSort ( format )

[Argument]

dwcontrol | 정렬 기준을 정의하려는 DataWindow control, DataStore, 또는 child DataWindow 이름
format | DataWindow에 관한 정렬 기준 (용법 참조). 표현식은 칼럼이름과 번호를 포함한다. 칼럼 번호는 반드시 파운드기호(#)를 앞세워야 한다. format이 NULL이면, PowerBuilder는 정렬 기준을 입력하도록 대화상자를 나타낸다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

DataWindow object는 그 정의의 일부분으로 정렬 기준을 명시할 수 있다. SetSort 함수는 이러한 정의를 무시하고, DataWindow에 관한 새로운 정렬 기준을 제공한다. 그러나, 이것은 row를 실제로 정렬하지는 않는다. 실제 정렬을 수행하려면 Sort 함수를 호출한다.

칼럼에관한 정렬 기준은 칼럼이름 또는 번호 중 어느것을 명시하는가에 따라 하나의 형식을 갖는다. 정렬방법은 올림차순 A 또는 내림차순 D 중에서 선택한다. 칼럼을 추가하여 기준을 명시하여 두 번째 정렬을 지정할 수도 있다. 각 칼럼은 콤마(,)로 분리한다.

정렬방법 예제

칼럼이름 순 "emp_lname A" "emp_lname A, dept_id D"

#칼럼번호 순 "#3 A"

DataWindow control에관한 정렬 기준을 사용자가 명시하게 하려면, SetSort 함수에 null 값을 통과시킨다. PowerBuilder는 Specify Sort Columns 대화상자를 나타낸다. 다음에 사용자가 명시한 기준을 적용시키기 위하여 Sort 함수를 호출한다. DataStore object에 관한 SetSort 함수에는 null 값을 통과시킬 수 없다.

[예제]

* 다음 문장은 emp_status은 올림차순 emp_salary는 내림차순으로 정렬하기위한 기준을 설정한다.

dw_employee.SetSort("emp_status A, emp_salary D")

* dw_employee에서 emp_status은 칼럼 1이고 emp_salary는 칼럼 5라면, 다음 문장은 위의 예와 동일한 정렬 기준이된다.

dw_employee.SetSort("#1 A, #5 D")

* 다음 문장은 status 칼럼은 올림차순 salary 칼럼은 내림차순으로 정렬 기준을 정한 후, DataWindow control dw_emp의 정렬 기준으로 할당하고 정렬한다.

string newsort

newsort = "emp_status A, emp_salary D"

dw_emp.SetSort(newsort)

dw_emp.Sort( )

* 다음 예는 dw_main에 관한 정렬 기준을 null로 설정하여, Specify Sort Columns 대화상자가 나타나도록 하고 사용자가 그곳에 정렬 기준을 직접 명시하도록 한다. Sort 함수는 사용자가 명시한 기준을 적용한다.

string null_str

SetNull(null_str)

dw_main.SetSort(null_str)

dw_main.Sort( )

[참고]

Sort


SetSpacing PowerScript 함수

[설명]

RichTextEdit control에서 선택한 단락 또는 삽입포인트를 포함하고있는 단락에관한 줄 간격을 설정한다.

[적용]

RichTextEdit controls

[문법]

rtename.SetSpacing ( spacing )

[Argument]

rtename | 줄 간격을 설정하려는 RichTextEdit control의 이름
spacing | 줄 간격을 명시하는 Spacing 열거형 데이터 타입의 값: ·Spacing1! -- 한 줄 간격 ·Spacing15! -- 1.5줄 간격 ·Spacing2! -- 두줄 간격

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

각 줄에 대한 간격이 아니라 단락을 기준으로 간격을 설정하기 때문에, 줄이 wrapped 되어있으면, 선택한 모든 단락내의 모든 줄간격이 변경된다.

[예제]

* 다음 예제는 RichTextEdit rte_1에 선택되어있는 단락에 대한 간격을 2줄 간격으로 한다.

rte_1.SetSpacing(Spacing2!)

* 다음 예제는 1.5줄 간격으로 한다.

rte_1.SetSpacing(Spacing15!)

[참고]

SetTextColor

SetTextStyle


SetSQLPreview PowerScript 함수

[설명]

PowerBuilder가 데이터베이스에 보낼 DataWindow control (또는 DataStore)에 관한 SQL 문장을 명시한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetSQLPreview ( sqlsyntax )

[Argument]

dwcontrol | 데이터베이스 서버에 보낼 SQL 문장을 설정하기 원하는 DataWindow control, DataStore, 또는 child DataWindow의 이름
sqlsyntax | 데이터베이스 서버에 보낼 SQL 문장에관한 SQL 문법

[용법]

DataWindow object내에서 변경한 내용으로 데이터베이스에 갱신하기 전에 문법을 수정하려면 SetSQLPreview 함수를 사용한다.

현재 SQL 문장을 구하려면, 이 함수를 호출하기전에 GetSQLPreview 함수를 호출한다.

SetSQLPreview의 호출

이 함수는 SQLPreview 이벤트 스크립트에서만 호출하도록 한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 0을 리턴한다. argument 값중에 NULL이 있으면, SetSQLPreview는 NULL을 리턴한다.

[예제]

* 다음 문장은 DataWindow dw_1에 관한 현재 SQL 문자열을 설정한다.

dw_1.SetSQLPreview("INSERT INTO billings VALUES(100, "+String(Current_balance)+ ")")

[참고]

GetSQLPreview

GetUpdateState


SetSQLSelect PowerScript 함수

[설명]

DataWindow control 또는 DataStore에 관한 SQL SELECT 문장을 명시한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetSQLSelect ( statement )

[Argument]

dwcontrol | SELECT 문장을 변경하려는 DataWindow control, DataStore, 또는 child DataWindow 이름
statement | DataWindow object에관한 SELECT 문장. 이 문장은 반드시 현재 SELECT 문장과 구조적으로 일치하여야 한다 (즉, 동일한 칼럼수, 동일한 데이터 타입, 동일한 칼럼 순서를 가져야 한다).

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 SELECT 문장을 변경할 수 없으면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetSQLSelect 함수는 NULL을 리턴한다.

[용법]

스크립트내에서 DataWindow object에관한 SQL SELECT 문장을 동적으로 변경하려면 SetSQLSelect 함수를 사용한다.

DataWindow가 갱신가능하다면, PowerBuilder는 SetSQLSelect 함수를 호출할 때 SELECT 문장과 DataWindow 칼럼을 평가한다. SQL SELECT내의 각 칼럼은 반드시 DataWindow object내의 칼럼 타입과 일치하여야 한다. SELECT 문장은 DataWindow object가 갱신가능할때만 적용된다.

SetSQLSelect 함수를 실행하기 전에 transaction object를 설정하기 위하여 반드시 SetTrans 또는 SetTransObject 함수를 사용하여야 한다.

새로운 SELECT 문장이 FROM 절과 다른 테이블 이름을 가지고있고 DataWIndow object가 갱신 가능하다면, PowerBuilder에서 반드시 DataWindow object에 관한 갱신 정보를 변경하여야 한다. PowerBuilder는 키 칼럼이 원래 정의되었던것과 동일한 위치에 있다고 가정한다. 다음 조건은 DataWindow를 갱신할 수 없도록 만든다.

·FROM절에 하나이상의 테이블이 존재한다.

·DataWindow 갱신 칼럼이 SELECT 문장에있는 계산된 칼럼이다.

SELECT 문장의 변경이 DataWindow object를 갱신할 수 없도록 만든다면, DataWindow control은 DataWindow object에 관한 Update 함수를 실행할 수 없다.

SetSQLSelect 사용시 제한점

DataWindow object에관한 데이터 소스가 retrieval argument를 가지지 않은 SQL SELECT 문장이고 PowerBuilder에서 DataWindow object에 관한 갱신 정보를 수정하기 원할 때만 SetSQLSelect 함수를 사용한다.

SELECT 문장을 변경하기 위하여 Modify 함수를 사용할 수도 있다. 예를들어:

dw_1.Modify("DataWindow.Table.Select='select...'")

Modify는 SELECT 문장 또는 갱신 정보를 검사하지 않으므로 더 빠르게 수행되지만 사용자에게 더 많은 에러를 맞게 한다. argument를 포함하였을 때 Modify를 사용할 수 있지만, 체크 기능이 빈약하기 때문에 추천할만하지 못하다.

[예제]

* dw_emp에 대한 현재 SELECT 문장이 아무 row도 retrieve하지 않았다면, 다음 문장은 NewSyn으로 문법을 대치한다.

string OldSyn, NewSyn

OldSyn = &

'SELECT employee.EMP_Name FROM employee' &

+ 'WHERE salary < 70000'

NewSyn = 'SELECT employee.EMP_Name FROM employee' &

+ 'WHERE salary < 100000'

IF dw_emp.Retrieve( ) = 0 THEN

dw_emp.SetSQLSelect(NewSyn)

dw_emp.Retrieve()

END IF

[참고]

Modify

Retrieve

SetTrans

SetTransObject

Update


SetState PowerScript 함수

[설명]

리스트박스에있는 아이템의 반전 상태를 설정한다. SetState 함수는 MultiSelect property가 TRUE로 설정되어있는 listbox control에만 적용된다.

[적용]

ListBox와 PictureListBox controls

[문법]

listboxname.SetState ( index, state )

[Argument]

listboxname | 아이템에 관한 상태(반전 또는 반전해제)를 설정하려는 ListBox 또는 PictureListBox의 이름. control에 관한 MultiSelect property는 반드시 TRUE로 설정되어 있어야 한다.
Index | 상태를 설정하려는 아이템의 번호. 0을 명시하면 ListBox내의 모든 아이템에 관한 상태를 설정한다.
State | 아이템의 상태를 결정하는 boolean 값: ·TRUE -- 선택 ·FALSE -- 선택 해제

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetState 함수는 NULL을 리턴한다.

[용법]

MultiSelect property가 FALSE일 경우, 한 번에 한 아이템을 선택하려면, SetState대신 SelectItem을 사용한다.

[예제]

* 다음 문장은 lb_Actions의 아이템 6을 반전 시킨다.

lb_Actions.SetState(6, TRUE)

* 다음 문장은 lb_Actions의 모든 아이템 반전을 해제한다.

lb_Actions.SetState(0, FALSE)

* 다음 문장은 lb_Actions의 아이템 6에관한 상태를 반대로 만든다.

IF lb_Actions.State(6) = 1 THEN

lb_Actions.SetState(6, FALSE)

ELSE

lb_Actions.SetState(6, TRUE)

END IF

[참고]

SelectItem

SetTop

State


SetTabOrder PowerScript 함수

[설명]

DataWindow control내의 칼럼에 탭 순서 값을 명시한다.

[적용]

DataWindow controls와 child DataWindows

[문법]

dwcontrol.SetTabOrder ( column, tabnumber )

[Argument]

dwcontrol | 탭 순서를 정의하기위한 DataWindow control 또는 child DataWindow 이름
column | 탭 값을 할당하려는 칼럼. 은 칼럼 번호(integer) 또는 칼럼 명(string)일 수 있다.
tabnumber | DataWindow 칼럼에 할당하려는 탭 순서 번호 (0 - 9999). 0은 칼럼에 대한 탭 순서 값을 제거하여, 읽기-전용으로 만든다.

[Return 값]

Integer.

처리에 성공하면 칼럼의 이전 탭 값을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetTabOrder 함수는 NULL을 리턴한다.

[용법]

칼럼의 탭 번호를 0으로 변경하여 DataWindow object의 칼럼을 읽기-전용 상태로 변경하려면 SetTabOrder를 사용한다.

[예제]

* 다음 문장은 dw_Employee의 칼럼 4를 읽기-전용으로 변경한다.

dw_Employee.SetTabOrder(4, 0)

* 다음 문장은 dw_employee의 칼럼 4를 읽기-전용으로 변경하고 이후에 칼럼의 원래 탭 값을 read/write 상태로 복원한다.

integer OldTabNum

// OldTabNum에 이전 탭값을 저장한다

OldTabNum = dw_employee.SetTabOrder(4, 0)

... // 처리루틴 수행

// 이전 탭 값으로 복원한다

dw_employee.SetTabOrder(4, OldTabNum)


SetText PowerScript 함수

[설명]

DataWindow control 또는 DataStore의 현재 row와 column 상에있는 편집 control의 텍스트를 대치한다.

[적용]

DataWindow controls와 DataStore objects

[문법]

dwcontrol.SetText ( text )

[Argument]

dwcontrol | 현재 row와 column 상에있는 편집 control의 텍스트를 명시하려는 DataWindow control 또는 DataStore 이름
text | 현재 row와 column에 넣을 텍스트. 이 값은 반드시 칼럼의 데이터 타입과 일치하여야 한다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetText는 NULL을 리턴한다.

[용법]

SetText 함수는 단지 편집 control의 값만 설정한다. 다른 row와 칼럼으로 focus를 변경하면, PowerBuilder는 row와 칼럼의 아이템으로 그 텍스트를 받아들인다.

ItemChanged 또는 ItemError 이벤트에서, PowerBuilder 또는 스크립트를 이용하여 편집 control의 값이 타당한지 체크할 수 있다. row와 column에 관한 새로운 아이템을 명시하려면 SetItem 함수를 사용한다. SetItem을 호출한 이후에, 편집 control에 그 값을 넣으려면 SetText를 호출한다. 스크립트에서, 편집 control의 값을 거부하고 처리를 계속하기 위한 focus 변경을 허락하려면 리턴 코드를 사용한다. (ItemChanged의 리턴코드 2와 ItemError의 리턴코드 3)

[예제]

* 다음 문장은 dw_employee의 현재 row와 column 값을 Tex로 대치한 후 텍스트를 받아들이기 위하여 AcceptText를 호출하고 현재 칼럼으로 Tex를 옮긴다. (AcceptText를 호출하기 때문에 이 코드는 ItemChanged 또는 ItemError 이벤트에서 사용하지 말아야 한다)

dw_employee.SetText("Tex")

dw_employee.AcceptText()

* 다음 예제는 credit 칼럼에 입력한 값을 음수로 바꾸고 아이템과 편집 control의 텍스트를 모두 음수로 설정한다. 다음 코드는 ItemChanged 이벤트에관한 스크립트이다. 데이터 argument는 새로 입력된 값을 가지고 있다.

integer negative

IF dwo.Name = "credit" THEN

IF Integer(data) > 0 THEN

// 양수이면 음수로 바꾼다

negative = Integer(data) * -1

END IF

// primary 버퍼 값을 변경한다

This.SetItem(data, "credit", negative)

// 편집 control의 값을 변경한다

This.SetText(String(negative))

RETURN 2

END IF

[참고]

AcceptText

GetText


SetTextColor PowerScript 함수

[설명]

RichTextEdit control에 선택된 텍스트 색상을 설정한다.

[설명]

RichTextEdit controls

[문법]

rtename.SetTextColor ( colornumber )

[Argument]

Rtename | 선택한 텍스트의 색상을 설정하려는 RichTextEdit control의 이름
Colornumber | 선택한 텍스트의 색상을 명시하는 long 값

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

색상 값을 계산하는 자세한 정보는 RGB 함수를 참조한다.

[예제]

* 다음 문장은 RichTextEdit rte_1에 선택된 텍스트를 dark red로 설정한다.

rte_1.SetTextColor(RGB(100, 0, 0))

[참고]

GetTextColor

RGB

SetTextStyle


SetTextStyle PowerScript 함수

[설명]

RichTextEdit control에서 선택한 텍스트에관한 텍스트 형식을 명시한다. 텍스트는 bold, underlined, italic, struck out 등으로 만들 수 있다. 또한 아래첨자 또는 위첨자 등으로 만들수도 있다.

[적용]

RichTextEdit controls

[문법]

rtename.SetTextStyle ( bold, underline, subscript, superscript, italic, strikeout )

[Argument]

Rtename | 선택한 텍스트 형식을 명시하려는 RichTextEdit control이름
Bold | 선택한 텍스트를 강조체로 만들 것인지 명시하는 boolean
Underline | 선택한 텍스트를 밑줄로 만들 것인지 명시하는 boolean
Subscript | 선택한 텍스트를 아래 첨자로 만들 것인지 명시하는 boolean
Superscript | 선택한 텍스트를 위 첨자로 만들 것인지 명시하는 boolean. subscript와 superscript를 모두 true로 하면, subscript가 먼저 선택된다.
Italic | 선택한 텍스트를 이탤릭으로 만들 것인지 명시하는 boolean
Strikeout | 선택한 텍스트를 중앙에 줄이 있는 글씨체로 만들 것인지 명시하는 boolean

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[예제]

* 다음 예제는 RichTextEdit rte_1안에 선택된 텍스트를 bold 와 italic으로 만든다.

rte_1.SetTextStyle(TRUE, FALSE, FALSE, FALSE, TRUE, FALSE)

* 다음 예제는 선택된 텍스트를 아래 첨자로 만든다. 다른 텍스트 형식들은 그대로 유지시킨다.

rte_1.SetTextStyle(rte_1.GetTextStyle(Bold!), rte_1.GetTextStyle(Underlined!), &

TRUE, FALSE, &

rte_1.GetTextStyle(Italic!), &

rte_1.GetTextStyle(Strikeout!))

[참고]

GetTextStyle

SetSpacing

SetTextColor


SetToolbar PowerScript 함수

[설명]

명시한 툴바에관한 정렬, 눈에보임, 타이틀 등을 명시한다.

[적용]

MDI frame 과 sheet 윈도우

[문법]

window.SetToolbar ( toolbarindex, visible {, alignment {, floatingtitle } } )

[Argument]

window | 툴바가 속해있는 MDI frame 이나 sheet
toolbarindex | 변경하려는 툴바의 인덱스 값 (integer)
visible | 툴바를 보이게할것이지 여부를 명시한 boolean 값 ·TRUE -- 툴바를 보이게한다 ·FALSE -- 툴바를 보이지 않게 한다
alignment | (선택사항) 툴바의 정렬방법을 명시하기위한 ToolbarAlignment 열거형 데이터 타입의 값 ·AlignAtTop! -- frame의 상단에 위치시킨다 ·AlignAtLeft! -- frame의 좌측면에 위치시킨다 ·AlignAtRight! -- frame의 우측면에 위치시킨다 ·AlignAtBottom! -- frame의 하단에 위치시킨다 ·Floating! -- 독립된 툴바. 독립된 툴바는 자신만의 frame과 축소된 타이틀 바를 가지고있다
floatingtitle | (선택사항) alignment가 Floating!일 때 그 툴바에 관한 타이틀

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 명시한 index에관한 툴바가 존재하지 않거나 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

현재 위치에서 툴바의 정렬을 Floating!으로 변경하기 위하여 SetToolbar를 사용할 때, 위치를 지정하기 위하여 SetToolbarPos를 호출하지 않는 한 PowerBuilder는 알고있는 마지막 위치를 사용한다.

[예제]

* 다음 예제는 ListBox lb_position에서 사용자가 정렬을 선택하도록 한다. 선택된 문장은 ToolbarAlignment 열거형 값으로 변환되어 툴바 인덱스의 정렬을 변경하는데 사용된다.

toolbaralignment tba_align

CHOOSE CASE lb_position.SelectedItem()

CASE "Top"

tba_align = AlignAtTop!

CASE "Left"

tba_align = AlignAtLeft!

CASE "Right"

tba_align = AlignAtRight!

CASE "Bottom"

tba_align = AlignAtBottom!

CASE "Floating"

tba_align = Floating!

END CHOOSE

w_frame.SetToolbar(1, TRUE, tba_align)

* 다음 예제에서는 정렬을 선택하기 위하여 라디오 버튼을 클릭한다. 라디오 버튼의 Clicked 이벤트는 ToolbarAlignment 타입의 instance 변수를 설정한다. 여기의 라디오 버튼들은 custom visual user object로 포장되어있다. i_toolbaralign은 사용자 object의 인스턴스 변수이다. 다음은 Top 라디오 버튼에 관한 스크립트이다.

Parent.i_toolbaralign = AlignAtTop!

다음 스크립트는 툴바 정렬을 변경한다.

w_frame.SetToolbar(1, TRUE, uo_toolbarpos.i_toolbaralign )

[참고]

GetToolbar

GetToolbarPos

SetToolbarPos


SetToolbarPos PowerScript 함수: syntax 1

[설명]

고정된(docked) toolbar의 위치를 설정한다.

[적용]

MDI frame과 sheet 윈도우

[문법]

window.SetToolbarPos ( toolbarindex, dockrow, offset, insert )

[Argument]

window | toolbar가 속한 MDI frame이나 sheet
toolbarindex | 설정을 변경하기 원하는 toolbar의 index 값으로 integer다.
dockrow | toolbar의 docking row의 번호 값으로 integer다. Docking row들은 좌측에서 우측 또는 위쪽에서 아래쪽으로 번호를 매긴다.
offset | docking row의 시작부터 toolbar까지의 거리를 명시한 값으로 integer이다. 상단 또는 하단에 위치한 툴바의 경우, offset은 좌측면으로부터 측정된다. 좌측 또는 우측에 위치한 툴바의 경우, offset은 상단으로부터 측정된다. replace가 TRUE로 설정되어있는 경우, 명시한 offset은 row내의 다른 툴바에 중첩되지 않도록 조정된다. dockrow에 있는 다른 툴바의 앞쪽에 위치시키려면 0을 명시한다.
insert | 명시한 툴바를 dockrow에 있는 다른 툴바 이전에 삽입시켜 위 또는 아래로 이동시킬 것인지, 또는 dockrow에 toolbarindex를 추가하기 원하는지를 나타내는 boolean.
 | ▶ TRUE | dockrow에 이미 있던 툴바들을 이동하거나 row내의 툴바들을 움직이기 위하여 row들을 높이거나 낮춘다
 | ▶ FALSE | dockrow를 움직여 툴바를 추가한다. row에 있는 다른 툴바들과 상대적인 위치는 offset에 의하여 결정된다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 명시한 인덱스에 관한 툴바가 존재하지 않거나 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, NULL을 리턴한다.

[용법]

현재 툴바가 윈도우의 어느 위치 (상단, 하단, 좌측면, 또는 우측면)에 있는지 알아내려면, GetToolbar를 호출한다.

툴바의 정렬이 고정(docked)대신 유동(floating)이면, SetToolbarPos의 Syntax 1으로 명시한 값은 SetToolbar를 이용하여 고정(docked) 위치로 정렬을 변경할 때 영향을 준다.

insert가 FALSE 일 때, dockrow에 있는 다른 툴바 이전에 툴바를 삽입하려면, 이미 존재하는 툴바들의 offset보다 작은 값을 명시한다. offset 1에 툴바가 이미 존재하고 있으면, offset을 0으로 설정하여 row의 시작위치로 툴바를 이동시킬 수 있다. offset이 존재하는 툴바의 offset보다 크거나 같지만, 끝보다는 작으면, 새로 위치한 툴바는 존재하는 툴바 바로 다음부터 시작된다. 그 반대의 경우, 툴바는 offset에 위치한다.

사용자가 툴바를 고정(docked) 위치로 드래그하면, 새로운 row와 offset이 SetToolbarPos로 설정한 값을 대신한다.

[예제]

* 다음 예제는 좌측에 고정되어있는 툴바 1에 고정 row를 1 추가한다.

w_frame.SetToolbar(1, TRUE, AlignAtLeft!)

w_frame.SetToolbarPos(1, 1, 1, FALSE)

* 다음 에제는 좌측에 고정되어있는 툴바 2에 고정 row를 추가한다. 이미 고정된 툴바들이 offset 250을 초과하면, 이들을 조정하기 위하여 툴바 2의 offset이 증가된다

w_frame.SetToolbar(2, TRUE, AlignAtLeft!)

w_frame.SetToolbarPos(2, 1, 250, FALSE)

* 다음 예제는 고정 row의 좌측에 툴바 2를 고정시킨다. row 2의 좌측에 고정되어 있거나 더 높은 툴바는 한 row 위로 이동한다.

w_frame.SetToolbar(1, TRUE, AlignAtLeft!)

w_frame.SetToolbarPos(1, 2, 1, TRUE)

[참고]

GetToolbar

GetToolbarPos

SetToolbar

SetToolbarPos : syntax 2

SetToolbarPos PowerScript 함수: syntax 2

[설명]

이동 toolbar의 위치와 크기를 설정한다.

[적용]

MDI frame과 sheet 윈도우

[문법]

window.SetToolbarPos ( toolbarindex, x, y, width, height )

[Argument]

window | toolbar가 속한 MDI frame 또는 sheet
toolbarindex | 설정을 변경하기 원하는 toolbar의 인덱스 값으로 integer형이다.
x | 이동 toolbar의 x좌표 값으로 integer형이다.
y | 이동 toolbar의 y좌표 값으로 integer형이다.
width | 이동 toolbar의 폭 값으로 integer형이다.
height | 이동 toolbar의 높이 값으로 integer형이다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴한다. 사용자가 toolbar의 index를 명시하지 않거나 에러가 발생하면 SetToolbarPos는 -1을 리턴한다. argument의 값이 NULL이면, NULL을 리턴한다.

[용법]

툴바의 정렬이 , 이동(floating) 대신, 고정된 위치이면 SetToolbarPos의 Syntax 2로 명시한 값은 SetToolbar 함수로 정렬을 이동(floating)으로 변경할 때 영향을 준다.

사용자가 툴바를 이동(floating) 위치로 드래그하면, 새로운 위치가 SetToolbarPos로 설정한 값을 대신한다.

이동(floating) 툴바는 결코 너무 크거나 너무 작은 버튼은 사용할 수 없다. 버튼들을 조정하기 위하여 너무 작은 값으로 폭과 높이를 명시하면, 그 폭과 높이는 버튼들에 관한 공간에 맞도록 조정된다. 폭과 높이가 모두 필요이상으로 크면, 높이가 감소한다.

frame 밖으로 x와 y좌표를 명시하면, 그 툴바는 사용자가 접근할 수 없다.

[예제]

* 다음 예제는 frame의 좌측상단 근처에 툴바 1을 나타낸다. 임의의 폭과 높이는 PowerBuilder가 필요한 만큼 툴바크기를 조정하게 한다.

w_frame.SetToolbarPos(1, 10, 10, 400, 1)

w_frame.SetToolbar(1, TRUE, Floating!)

* 다음 예제는 frame의 우측하단 모서리에 툴바 2를 나타낸다. 툴바가 동일한 크기를 유지하도록 GetToolbarPos를 이용하여 툴바의 현재 폭과 높이를 구한다.

integer ix, iy, iw, ih

w_frame.GetToolbarPos(2, ix, iy, iw, ih)

w_frame.SetToolbarPos(2, w_frame.WorkspaceWidth()-400, &

w_frame.WorkspaceHeight()-400, iw, ih)

w_frame.SetToolbar(2, TRUE, Floating!)

* 다음 예제는 MDI frame의 우측하단 모서리에 부동(floating) 툴바 2를 위치시킨다. GetToolbarPos는 툴바의 현재 폭과 높이를 구한다. 이들 값과 MicroHelp의 높이는 부동(floating) 툴바의 x와 y 좌표를 계산하는데 사용된다.

integer ix, iy, iw, ih

// 툴바의 크기를 구한다

w_frame.GetToolbarPos(2, ix, iy, iw, ih)

// 위치를 설정한다

w_frame.SetToolbarPos(2, w_frame.WorkspaceWidth( ) - iw, &

w_frame.WorkspaceHeight( ) &

- ih - w_frame.MDI_1.MicroHelpHeight, &

iw, ih)

// 정렬을 부동(floating)으로 한다

w_frame.SetToolbar(2, TRUE, Floating!)

[참고]

GetToolbar

GetToolbarPos

SetToolbar

SetToolbarPos : syntax 1


SetTop PowerScript 함수

[설명]

명시한 아이템이 첫 번째로 보이는 아이템이 되도록 listbox control을 스크롤 한다.

[적용]

ListBox와 PictureListBox controls

[문법]

listboxname.SetTop ( index )

[Argument]

listboxname | 스크롤하기 원하는 ListBox 또는 PictureListBox의 이름
index | 첫 번째로 보여지기 원하는 아이템 번호

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetTop 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 lb_Actions의 아이템 6이 첫 번째로 보이는 아이템이 되도록 ListBox의 제일 위쪽으로 스크롤한다.

lb_Actions.SetTop(6)

* 다음 문장은 lb_Actions에 현재 선택된 아이템을 아이템 리스트의 상단으로 스크롤 한다.

lb_Actions.SetTop(lb_Actions.SelectedIndex())

[참고]

SetFocus

SetState


SetTrans PowerScript 함수

[설명]

DataWindow control 또는 DataStore에 관한 내부 transaction object 값을 명시한 transaction object 값으로 설정한다. transaction object는 데이터베이스 이름과 같은 connection 설정내용을 제공한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetTrans ( transaction )

[Argument]

dwcontrol | 내부 transaction object의 값을 설정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
transaction | dwcontrol의 transaction object 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetTrans 함수는 NULL을 리턴한다.

[용법]

대부분의 경우, transaction object를 명시하기 위하여 SetTransObject 함수를 사용한다. 이것이 더 효과적이고 변경된 내용이 데이터베이스에 반영되는 것을 사용자가 제어하게 해준다.

SetTrans는 값들을 명시한 transaction object로 부터 DataWindow control 또는 DataStore로 복사한다. 스크립트에서 SetTrans를 사용할 때, DataWindow는 내부 transaction object를 사용하고 필요에따라 자동으로 접속과 해제(connects and disconnects)를 한다; 에러가 발생하면 자동으로 rollback 한다. SetTrans 함수를 사용하면, CONNECT, COMMIT, DISCONNECT 등과 같은 SQL 문장을 명시할 수 없다. 각각의 Retrieve 또는 Update 함수 이후에 DataWindow control은 접속과 해제를 한다.

사용가능한 접속 수를 제한받고 있거나 원격지(통신회선을 사용하는 지역)에있는 응용프로그램을 사용하게 되어 PowerBuilder가 자동으로 데이터베이스 접속을 관리하기 원할때 SetTrans를 사용한다. SetTrans는 자료를 받기만하고 수정을하기 위한 레코드상의 데이터베이스 잠금을 필요로 하지 않을때에는 사용하기 적절하다. 그러나, 더 좋은 수행을 위하여, SetTransObject를 사용하도록 한다.

DBMS 접속 설정

DataWindow의 내부 transaction object를 설정하고 데이터베이스에 접속하기 위하여 transaction object를 사용하기 전에 반드시 transaction object내에 DBMS에 접속하는데 요구되는 파라미터를 설정하여야 한다.

하나이상의 테이블 갱신

transaction object를 명시하기 위하여 SetTrans를 사용할 때에는, 여러 개의 DataWindow object를 갱신하거나 하나의 object내에서 여러 테이블을 갱신할 수 없다.

[예제]

* 다음 문장은 dw_employee에 관한 내부 transaction object 값을 기본설정된 transaction object인 SQLCA 값으로 한다.

dw_employee.SetTrans(SQLCA)

* 다음 문장은 dw_employee의 데이터베이스 타입과 패스워드를 변경한다. 처음 두 문장은 transaction object emp_TransObj를 생성한다. 다음 문장은 dw_employee의 내부 transaction object 값을 저장하기 위하여 GetTrans 함수를 사용한다. 다음 두 문장은 데이터베이스 타입과 패스워드를 변경한다. SetTrans 함수는 dw_employee에 수정된 값을 할당한다.

// transaction object 이름을 부여한다

transaction emp_TransObj

// transaction object를 생성한다

emp_TransObj = CREATE transaction

// 원래값으로 새로운 object를 채운다

dw_employee.GetTrans(emp_TransObj)

// 데이터베이스 타입을 변경한다

emp_TransObj.DBMS ="Sybase"

// 패스워드를 변경한다

emp_TransObj.LogPass = "cam2"

// 수정된값을 DataWindow transaction object에 넣는다

dw_employee.SetTrans(emp_TransObj)

[참고]

GetTrans

SetTransObject


SetTransObject PowerScript 함수

[설명]

프로그래머가 명시한 object를 사용하여 DataWindow control 또는 DataStore를 설정한다. transaction object는 데이터베이스와 통신하는데 필요한 정보를 제공한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetTransObject ( transaction )

[Argument]

dwcontrol | DataWindow control의 내부 transaction object가 아닌 프로그래머가 명시한 transaction object를 사용하기 원하는 DataWindow control, DataStore, 또는 child DataWindow의 이름
transaction | dwcontrol에 사용하기 원하는 transaction object의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetTransObject는 NULL을 리턴한다.

[용법]

프로그래머가 명시한 transaction object는 더 많은 데이터베이스 transaction를 제공하고 더 효과적인 응용프로그램 수행을 제공한다. 사용자는 CONNECT, COMMIT, ROLLBACK 등과 같은 SQL 문장을 사용하여 데이터베이스 접속을 제어한다.

DataWindow control은 모든 RETRIEVE와 UPDATE에 관하여 데이터베이스에 접속할 필요가 없기 때문에 더 빠르게 수행된다. 사용자는 다음과 같은 코드를 사용하여 Update 함수를 호출한 이후에 commit과 roll back transaction에 관하여 응답할 수 있다:

IF dw_Employee.Update() > 0 THEN

COMMIT USING emp_transobject;

ELSE

ROLLBACK USING emp_transobject;

END IF

데이터베이스에 접속하기 위하여 transaction object를 사용하기 전에 반드시 transaction object내에 DBMS에 접속하는데 요구되는 파라미터를 설정하여야 한다. PowerBuilder는 하나의 데이터베이스에 접속하는데 필요한 모든 것을 가지고있는 SQLCA transaction object (프로그램 전역에서 사용할 수 있다)를 제공한다. 또한 아래 예와 같이 추가로 transaction object를 생성할 수도 있다.

SetTransObject를 사용하려면, 다음과 같은 코드들을 기록한다:

1 | 값을 할당시켜 transaction object를 설정한다 (보통 application의 Open 이벤트 내에서)
2 | SQL CONNECT 문장과 transaction object를 사용하여 데이터베이스에 접속한다 (보통 application 또는 윈도우의 Open 이벤트 내에서)
3 | DataWindow control 이나 DataStore에 transaction object를 결합시키기 위하여 SetTransObject 함수를 호출한다 (보통 윈도우의 Open 이벤트 내에서)
4 | Update 함수로부터 리턴값을 체크하고 적절하게, SQL COMMIT 또는 ROLLBACK 문장을 사용한다.

DataWindow control (또는 DataStore)와 연관된 DataWindow object를 변경하거나 데이터베이스에 접속을 해제하고 재접속 한다면, DataWindow control (또는 DataStore) 과 transaction object 사이의 접속은 분리된다. 접속을 다시 설치하려면 반드시 SetTransObject를 다시 호출하여야 한다.

SetTransObject와 SetTrans의 비교

대부분의 경우, 더 효과적이고 transaction이 발생하였을 때 사용자가 제어할 수 있도록 해주기 때문에 transaction object를 명시하기위하여 SetTransObject 함수를 사용한다.

SetTrans 함수는 데이터베이스 접속을 관리하는 또 다른 방법을 제공한다. DataWindow control 또는 DataStore에 관한 내부 transaction object에 transaction 정보를 설정하는 SetTrans는, 자동으로 접속을 관리한다. 사용자가 정확하게 데이터베이스에 접속할 필요가 없다; DataWindow가 각각의 데이터베이스 transaction에 관한 접속과 해제를 한다.

[예제]

* 다음 문장은 dw_employee에관하여 기본설정 transaction object인 SQLCA를 사용한다.

dw_employee.SetTransObject(SQLCA)

* 다음 문장은 dw_employee에관하여 프로그래머-정의 transaction object emp_TransObj를 사용한다. emp_TransObj는 instance 변수이다.

emp_TransObj = CREATE transaction

. . . // transaction object에 값을 할당한다

dw_employee.SetTransObject(emp_TransObj)

* 다음 예는 두 부분을 가지고 있다. application의 Open 이벤트에 관한 첫 번째 스크립트는, MYAPP.INI라는 초기 파일로부터 데이터베이스 파라미터를 읽고 기본설정 transaction object (SQLCA)에 그 값을 저장한다. 아래 파라미터는 SQL Server 또는 ORACLE 데이터베이스에 관한 것이다. 윈도우의 Open 이벤트에 관한 두 번째 스크립트에서, 접속을 설치하고 데이터베이스로부터 데이터를 가져온다.

application의 Open 이벤트 스크립트 : SQLCA를 사용한다

SQLCA.DBMS = ProfileString("myapp.ini", "database", "DBMS", " ")

SQLCA.Database = ProfileString("myapp.ini", "database", "Database", " ")

SQLCA.LogId = ProfileString("myapp.ini", "database", "LogId", " ")

SQLCA.LogPass = ProfileString("myapp.ini", "database", "LogPassword", " ")

SQLCA.ServerName = ProfileString("myapp.ini", "database", "ServerName", " ")

SQLCA.UserId = ProfileString("myapp.ini", "database", "UserId", " ")

SQLCA.DBPass = ProfileString("myapp.ini", "database", "DatabasePassword", " ")

SQLCA.lock = ProfileString("myapp.ini", "database", "lock", " ")

DataWindow control을 포함하고있는 윈도우의 Open 이벤트 스크립트는 데이터베이스에 연결하고, transaction object를 DataWindow에 할당하고, 데이터를 가져온다.

long RowsRetrieved

string LastName

// 데이터베이스에 접속한다

CONNECT USING SQLCA;

// 접 속의 성공여부를 체크한다

IF SQLCA.SQLCode <> 0 THEN

MessageBox("Connect Failed", "Cannot connect to database " &

+ SQLCA.SQLErrText)

RETURN

END IF

// transaction object를 SQLCA에 설정한다

dw_employee.SetTransObject(SQLCA)

// row를 가져온다

LastName = . . .

RowsRetrieved = dw_employee.Retrieve(LastName)

// retrieve의 성공여부를 체크한다

IF RowsRetrieved < 0 THEN MessageBox("Retrieve Failed", &

"Cannot retrieve data from the database.")

END IF

[참고]

GetTrans

SetTrans


SetTransPool PowerScript 함수

[설명]

응용프로그램에 관한 데이터베이스 transaction의 공간(pool)을 설정한다. SetTransPool은 데이터베이스 접속과 연관된 부담을 최소화하고 데이터베이스 접속을 허락하는 총 수를 제한하도록 해준다.

[적용]

Application object

[문법]

applicationname.SetTransPool ( minimum, maximum, timeout )

[Argument]

applicationname | transaction pool을 설치하려는 application object
minimum | pool내에 오픈 해 놓을 수 있는 transaction의 최소 수
maximum | pool에 오픈 할 수 있는 transaction의 최대 수
timeout | transaction pool에 접속하기 위하여 허락된 대기시간을 초로 나타내는 수

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

transaction pool은 한 번에 오픈 할 수 있는 데이터베이스 접속 수를 제어하여 데이터베이스 처리능력을 최대화한다. 데이터베이스에 접속하기 전에 transaction pool을 설치함으로써, application은 동일한 데이터 소스에 만들어놓은 접속을 재사용 할 수 있다.

응용프로그램이 transaction pool을 사용하지않고 데이터베이스에 접속할 때, PowerBuilder는 DISCONNECT 문장을 이끌어내어 물리적으로(physically) 각 데이터베이스 transaction을 종료한다. transaction pool이 영향력을 발휘하고 있을 경우, PowerBuilder는 데이터베이스 접속을 논리적으로(logically) 종료하고 데이터베이스 변경내용을 받아들이지만, 실제로(physically) 그 접속을 제거하지 않는다. 대신, 데이터베이스 접속들은 다른 데이터베이스 작업에서 다시 사용할 수 있도록 transaction pool에 오픈된 상태를 유지하고있다.

transaction pool에 있는 접속을 재사용하기 전에, PowerBuilder는 새로운 접속에 명시한 데이터베이스 파라미터가 pool내에 있는 접속에서 명시한 것과 동일한 요청을 하는지 체크 한다. transaction object가 동일한 DBMS, ServerName, LogID, LogPass, Database, DBParm 값을 명시하면 동일한 것으로 간주한다.

SetTransPool 함수에 명시한 minimum값은 반드시 maximum값보다 작거나 같아야 한다. minimum값이 maximum값보다 작고 pool에 있는 transaction의 수가 minimum값보다 크면, PowerBuilder는 minimum수에 도달할 때 까지 DISCONNECT 문장을 이끌어내어 물리적으로(physically) 접속을 종료한다.

maximum값은 응용프로그램에 의하여 만들어지는 transaction pool의 데이터베이스 최대 접속 수를 제한하기 위하여 명시한다. transaction pool이 가득차면, 각 접속 시도는 timeout 간격을 초과한 후 실패하게 된다.

응용프로그램에 관한 transaction pool을 설정하려면, 데이터베이스에 접속하기 전에, SetTransPool 함수를 이끌어내어야 한다.

[예제]

* 동일한 데이터소스에 관한 database transaction을 줄이기 위하여 배포될 PowerBuilder 서버 응용프로그램의 Open 이벤트에 다음과 같은 문장을 사용할 수 있다.

server_app.SetTransPool(12,16,10)

이 문장은 서버에서 16개까지의 데이터베이스 접속을 지원하고, 12개 접속을 오픈 된 상태로 유지할 것이다. 접속의 최대수에 도달하면, 각 접속 요구는 pool내에 접속이 가능하게 되기를 10초 동안 기다리게 된다. 10초가 경과하면, 서버는 클라이언트에 에러를 리턴한다.

* 다음 문장은 서버에서 8개까지의 데이터베이스 접속을 허락하고, 모두 8개까지의 접속을 오픈 한 상태로 유지시킨다. transaction pool이 가득차면, 각 접속은 즉시 에러의 결과를 초래하게 된다.

server_app.SetTransPool(8,8,0)

[참고]

SetTrans

SetTransObject


SetValidate PowerScript 함수

[설명]

DataWindow control 또는 DataStore내의 칼럼에 관한 입력 검증 규칙을 설정한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetValidate ( column, rule )

[Argument]

dwcontrol | 입력 검증 규칙을 설정하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름
column | 입력 검증 규칙을 설정하려는 칼럼. column은 칼럼번호 (integer) 또는 칼럼이름 (string)일 수 있다.
rule | 평가할 데이터에 관한 검증 규칙 (string)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면 SetValidate 함수는 NULL을 리턴한다.

[용법]

검증 규칙은 대부분 칼럼의 편집 control에 있는 값과 다른 값을 비교하는 논리(boolean) 표현식이다. 사용자가 입력한 데이터가 검증 규칙의 조건과 일치하지 않으면, ItemError 이벤트 가 발생한다.

Database painter 또는 DataWindow painter에 검증 규칙을 명시하고, 스크립트에서 SetValidate를 사용하여 이 규칙을 변경할 수 있다. 검증 규칙에는 모든 DataWindow painter 함수를 포함 시킬 수 있다.

칼럼의 검증 규칙을 임시로 변경하려면, GetValidate 함수를 이용하여 현재 규칙을 구하고 저장해 놓으면 된다.

평가 규칙에 사용자가 입력한 값을 포함 시키려면, GetText 함수를 사용한다. 이 함수에 의하여 리턴되는 값과 검증 조건을 비교할 수 있다.

검증 규칙이 수치를 포함하고 있으면, DataWindow는 U.S. 형식의 수치로 가정한다. String 함수는 현재 시스템 설정상태를 이용하여 수치를 형식화한다. 규칙을 만들기 위하여 이 함수를 사용한다면, U.S. 표기법으로 표시 형식을 나타내도록 한다.

[예제]

* 다음은 검증 규칙을 현재 칼럼 dw_employee에 할당한다. 이 규칙은 0보다 큰값만 입력하도록 한다.

dw_employee.SetValidate(dw_employee.GetColumn(), "Number(GetText( )) > 0")

* 다음 문장은 검증 규칙을 현재 칼럼 dw_employee에 할당한다. 이 규칙은 입력한 값이 Full_Price 칼럼의 값보다 작은지 체크 한다.

dw_employee.SetValidate(dw_employee.GetColumn(), "Number(GetText( )) < Full_Price")

* 다음 예제는 DataWindow control dw_employee의 emp_state 칼럼에 관한 새로운 검증 규칙을 정의한다. 새로운 규칙은 [A-Z]+이며, 이 규칙의 의미는 emp_state의 데이터가 반드시 모두 대문자 여야 한다는 것이다. 문자 패턴은 반드시 따옴표로 된 검증 규칙 내에 따옴표로 둘러싸야 한다. 추가되는 따옴표는 ~"로 명시한다. 스크립트에서는 이전 규칙을 저장하고 새로운 규칙을 할당한 후, 적당한 처리를 마친 다음 원래 규칙으로 되돌린다.

string OldRule, NewRule

NewRule = "Match(GetText ( ), ~"[A-Z]+~")"

OldRule = dw_employee.GetValidate("emp_state")

dw_employee.SetValidate("emp_state", NewRule)

. . . //새로운 규칙을 사용한 처리루틴

// 이전 규칙으로 되돌린다

dw_employee.SetValidate("emp_state", OldRule)

[참고]

GetValidate


SetValue PowerScript 함수

[설명]

DataWindow control or DataStore내의 칼럼에 관한 value list 나 code table의 아이템 값을 설정한다. (value list는 display와 data value를 모두 가지고 있을 때 code table이라 불려진다.) SetValue는 칼럼에 저장되어있는 데이터에는 영향을 주지 않는다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.SetValue ( column, index, value )

[Argument]

dwcontrol | DataWindow control, DataStore, 또는 child DataWindow
column | value list 나 code table을 포함하고있는 칼럼. column은 칼럼번호 (integer) 또는 칼럼이름 (string)일 수 있다. 칼럼의 편집 스타일은 DropDownListBox, Edit, RadioButton 등이 가능하다. SetValue 함수는 EditMask 또는 dddw 편집 스타일을 가진 칼럼에는 효과가 없다.
index | 값을 설정하기 위한 value list 또는 code table의 아이템 번호
value | 아이템에 관한 새로운 값. code table의 경우, display value와 data value를 분리하기 위하여 탭(~t)을 사용한다. data value는 반드시 해당 칼럼의 데이터 타입으로 변환할 수 있는 문자열이어야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SetValue 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 dw_employee의 emp_state 칼럼에 관한 value list 아이템 3을 Texas로 설정한다.

dw_employee.SetValue("emp_state", 3, "Texas")

* 다음 문장은 dw_employee의 emp_state 칼럼에 관한 code table 아이템 3의 display value를 Texas로 data value를 X로 설정한다.

dw_employee.SetValue("emp_state", 3, "Texas~tTX")

* 다음 문장은 SQL 커서와 FETCH 문장을 이용하여 code table을 가진 DataWindow object의 DropDownListBox 스타일인 product_col 칼럼의 ListBox부분을 나타낸다.

integer prod_code, i = 1

string prod_name

DECLARE prodcur CURSOR FOR

SELECT product.name, product.code

FROM product USING SQLCA;

CONNECT USING SQLCA;

IF SQLCA.SQLCode <> 0 THEN

MessageBox("Status","Connect Failed " &

+ SQLCA.SQLErrText)

RETURN

END IF

OPEN prodcur;

IF SQLCA.SQLCode <> 0 THEN

MessageBox("Status","Cursor Open Failed " &

+ SQLCA.SQLErrText)

RETURN

END IF

FETCH prodcur INTO :prod_name, :prod_code;

DO WHILE SQLCA.SQLCode = 0

dw_products.SetValue("product_col", i, prod_name + "~t" + String(prod_code))

i = i + 1

FETCH prodcur INTO :prod_name, :prod_code;

LOOP

CLOSE prodcur;

DISCONNECT USING SQLCA;

[참고]

GetValue


ShareData PowerScript 함수

[설명]

하나의 DataWindow control (또는 DataStore)에 의하여 retrieve된 데이터를 공유한다. 이것은 primary DataWindow로 참조되고 다른 DataWindow control (또는 DataStore)는 secondary DataWindow로 참조된다. 형식은 공유하지 않으며; primary 버퍼, delete 버퍼, filter 버퍼에 포함된 데이터와 정렬순서만 공유한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwprimary.ShareData ( dwsecondary )

[Argument]

dwprimary | primary DataWindow의 이름. primary DataWindow는 데이터의 소유자이다. 이 DataWindow를 제거하면, 데이터는 나타나지 않는다. dwprimary는 child DataWindow도 가능하다.
dwsecondary | secondary DataWindow의 이름이며, dwprimary가 공유하게 될 데이터를 제어한다. secondary DataWindow는 Crosstab DataWindow일 수 없지만, child DataWindow는 가능하다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argumenr 값중에 NULL이 있으면, ShareData 함수는 NULL을 리턴한다.

[용법]

primary와 secondary DataWindow control에 있는 DataWindow object에 관한 칼럼은 동일해야 하지만, SELECT 문장은 다를 수도 있다. 예를들어, 다음 SELECT 문장들을 가진 DataWindow object들은 데이터 공유가 가능하다.

SELECT dept_id from dept

SELECT dept_id from dept where dept_id = 200

SELECT dept_id from employee

데이터 소스 스크립트를 가진 DataWindow object와 dept_id와 같이 정의되어있는 칼럼도 데이터를 공유할 수 있다.

primary DataWindow와 하나 이상의 secondary DataWindow control사이에 데이터를 공유하려면, 각각의 secondary DataWindow control에 관하여 ShareData를 호출한다.

primary 또는 secondary DataWindow의 공유를 끊으려면, ShareDataOff 함수를 호출한다. primary DataWindow에관한 공유가 끊어지면, secondary DataWindow들은 접속이 해제되고 데이터는 나타나지 않는다. 그러나, secondary DataWindow에 관한 공유를 끊으면, primary DataWindow나 다른 secondary DataWindow내의 데이터에는 영향을 주지 않는다.

데이터를 변경하기 위하여 primary 또는 secondary DataWindow에서 함수를 호출할 때, PowerBuilder는 그것을 primary DataWindow control과 영향을 받은 모든 secondary DataWindow control에 적용한다. 따라서, 그 함수와 연관된 모든 메시지는 정상적으로 primary DataWindow control로 간다. 이러한 함수들은 다음과 같다:

DeleteRow

Filter

GetSQLSelect

ImportFile

ImportString

ImportClipboard

InsertRow

ReselectRow

Reset

Retrieve

SetFilter

SetSort

SetSQLSelect

Sort

Update

Query 모드와 secondary DataWindow

데이터를 공유하고 있을 때, secondary DataWindow에 관한 query 모드를 사용할 수 없다. QueryMode 또는 QuerySort property를 설정하려 하면 에러가 발생한다.

DataStore 또는 DataWindow와 RichTextEdit control 사이에 데이터를 공유하려면, DataSource 함수를 사용한다.

Crosstab DataWindow

ShareData 함수는 Crosstab DataWindow와 함께 사용할 수 없다

배포용 응용프로그램

클라이언트 응용프로그램내의 DataWindow control과 서버 응용프로그램내의 DataStore 사이에는 데이터를 공유할 수 없다.

[예제]

* 다음 예제에서, 프로그래머는 사용자에게 데이터베이스로부터 retrieve된 동일한 데이터를 두 곳에서 보여주도록 하기 원하여, 윈도우의 Open 이벤트 스크립트에서 ShareData를 사용한다. DataWindow object에 관한 SELECT문장은 동일하지만, dw_dept내의 DataWindow object는 2개 칼럼만 나타낸다.

CONNECT USING SQLCA;

dw_employee.SetTransObject(SQLCA)

dw_employee.Retrieve()

dw_employee.ShareData(dw_dept)

* 다음 문장은 MDI frame 윈도우내의 서로 다른 sheet에 있는 두 개의 DataWindow control사이에 데이터를 공유한다.

CONNECT USING SQLCA;

mdi_sheet_1.dw_dept.SetTransObject(SQLCA)

mdi_sheet_1.dw_dept.Retrieve()

mdi_sheet_1.dw_dept.ShareData(mdi_sheet_2.dw_dept)

[참고]

ShareDataOff


ShareDataOff PowerScript 함수

[설명]

DataWindow control 또는 DataStore에 관한 데이터 버퍼의 공유를 해제한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.ShareDataOff ( )

[Argument]

dwcontrol

데이터 공유를 해제하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argumenr 값 중에 NULL이 있으면, ShareDataOff 함수는 NULL을 리턴한다.

[용법]

두 개 이상의 DataWindow control (또는 DataStore)가 데이터를 공유할 수 있다.

secondary DataWindow에서 ShareDataOff를 호출하면, 그 control은 더 이상 데이터를 포함하지 않지만, primary DataWindow와 다른 secondary control들은 영향을 받지 않는다. primary DataWindow에 관하여 ShareDataOff를 호출하면, 모든 secondary DataWindow의 접속이 해제되고 더 이상 데이터를 포함하지 않게 된다.

[예제]

* 다음 문장은 세 개의 DataWindow control 사이에 데이터를 공유한 다음 secondary DataWindow control 중 하나에 공유를 해제한다.

CONNECT USING SQLCA;

dw_corp.SetTransObject(SQLCA)

dw_corp.Retrieve()

dw_corp.ShareData(dw_emp)

dw_corp.ShareData(dw_dept)

... // 다른 처리 루틴

dw_emp.ShareDataOff( )

[참고]

ShareData


Show PowerScript 함수

[설명]

object 또는 control을 보이게 한다. object가 이미 보이는 상태라면, Show 함수는 그 object를 제일위로 가져온다.

[적용]

모든 object

[문법]

objectname.Show ( )

[Argument]

objectname

보이게 만들려는 object 또는 control의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. objectname이 NULL이면, Show 함수는 NULL을 리턴한다.

[용법]

명시한 object가 오픈 되어있지 않은 윈도우면, 실행 에러가 발생한다.

dropdown 또는 cascading 메뉴, 또는 parent 윈도우로 MDI frame 윈도우를 갖는 모든 메뉴는 보이게 하기 위하여 Show 함수를 사용할 수 없다.

동일한 문법

Show 함수 대신 그 object의 Visible property를 설정할 수도 있다.

objectname.Visible = TRUE

다음 두 문장은 동일하다:

m_status.m_options.Visible = TRUE

m_status.m_options.Show( )

[예제]

* 다음 문장은 m_status상의 m_options 메뉴 옵션을 보이도록 만든다.

m_status.m_options.Show( )

* 다음 문장은 child 윈도우 w_child를 보이도록 만든다.

w_child.Show( )

[참고]

Hide


ShowHeadFoot PowerScript 함수

[설명]

RichTextEdit control에 편집중인 header와 footer에 관한 panel을 나타내거나 panel을 숨기고 편집중인 메인 텍스트를 리턴한다.

[적용]

RichTextEdit control과 RichTextEdit 표현 스타일을 가진 DataWindow control

[문법]

rtename.ShowHeadFoot ( editheadfoot )

[Argument]

rtename | header와 footer 정보를 편집하려는 RichTextEdit 또는 DataWindow control의 이름
editheadfoot | 편집중인 panel의 표시여부를 나타내는 논리값 (blloean):
 | ▶ TRUE | 편집중인 panel의 header와 footer를 나타낸다
 | ▶ FALSE | 문서 전체에서 편집중인 panel을 자세히 나타낸다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

ShowHeadFoot 함수는 control이 미리보기 모드이거나 메인 텍스트에 관한 편집 모드일 때 효과가 있다. control이 미리보기 모드일 경우, ShowHeadFoot를 호출하면 편집 모드로 된다. editheadfoot의 값은 메인 텍스트를 나타낼 것인지 또는 header와 footer panel을 나타낼 것인지 여부를 결정한다.

header와 footer는 페이지 번호와 날짜등에 관한 입력 필드를 포함할 수 있다. PrintHeader 와 PrintFooter 이벤트에 관한 스크립트는 이들 필드의 값을 제공할 수 있다.

DataWindow control의 경우, DataWindow object가 RichTextEdit 표현 스타일을 가지고있지 않으면 ShowHeadFoot 함수는 효과가 없다.

[예제]

* 다음 예제는 header와 footer의 편집중인 panel을 나타내고, 사용자가 그 내용을 명시하도록 해준다.

rte_1.ShowHeadFoot(TRUE)

[참고]

Preview


Sign PowerScript 함수

[설명]

수의 부호를 결정한다. Sign 함수는 수치가 음수, 0, 또는 양수인지를 나타낸다.

[문법]

Sign ( n )

[Argument]

n

부호를 결정하려는 수

[Return 값]

Integer.

n의 부호를 나타내는 수(-1, 0, 1)을 리턴한다. n이 NULL이면, Sign 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 1을 리턴한다 (양수).

Sign(5)

* 다음 문장은 0을 리턴한다 (0)

Sign(0)

* 다음 문장은 -1을 리턴한다 (음수)

Sign(-5)

[참고]

Sign (DataWindow painter 함수)


SignalError PowerScript function

설명

응용프로그램 수준의 SystemError 이벤트를 발생시킨다.

문법

SignalError ( { number }, { text } )

Argument

number (선택사항) message object에서 사용될 (Error object의 number property에 저장된) integer

text (선택사항) message object에서 사용될 (Error object의 text property에 저장된) string

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 리턴값은 보통 사용하지 않는다.

용법

개발하는 동안 에러 처리 스크립트를 테스트하기 위하여 SignalError 함수를 사용할 수 있다.

Error object를 발생시키기 위하여 PopulateError 함수를 호출하고 argument 없이 SignalError 함수를 호출할 수 있다. 강제로 에러를 발생시켜 SystemError 이벤트 스크립트에서 어떻게 처리하는지 시험할 수 있다. 선택사항으로 number와 text argument를 SignalError에 통과시키면, Error objectso의 모든 필드를 생성하고 SystemError 이벤트를 트리거한다.

응용프로그램 내에서, SignalError 함수는 유용하게 사용할 수 있다. 예를들어, 사용자 에러가 응용프로그램을 계속시키기 원치 않을정도로 심각한 것이라면, 특정 에러 번호를 포함하여 Error object내의 값을 설정한 다음, SignalError를 호출한다.

SystemError 이벤트 스크립트가 없으면, SignalError 함수는 아무것도 하지 않는다.

예제

다음 문장은 Error object내의 값을 설정하고 에러 처리를 테스트 할 수 있도록 SystemError 이벤트를 트리거 한다:

int error_number

string error_text

Error.Number = 1010

Error.Text = "Salary must be a positive number."

Error.Windowmenu = "w_emp"

error_number = Error.Number

error_text = Error.Text

SignalError(error_number, error_text)

참고

PopulateError


Sin PowerScript 함수

[설명]

각도의 sine을 계산한다.

[문법]

Sin ( n )

[Argument]

n

sine을 구하려는 각 (radian)

[Return 값]

Double.

n의 sine 값을 리턴한다. n이 NULL이면, Sin 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 .8414709848078965를 리턴한다.

Sin(1)

* 다음 문장은 0을 리턴한다.

Sin(0)

* 다음 문장은 0을 리턴한다.

Sin(Pi(1))

[참고]

Cos

Pie

Tan

Sin(DataWindow painter 함수)


Sort PowerScript 함수: Syntax 1

[설명]

DataWindow의 현재 기준을 사용하여 DataWindow control 또는 DataStore를 정렬한다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Sort ( )

[Argument]

dwcontrol

row를 정렬하려는 DataWindow control, DataStore, 또는 child DataWindow의 이름

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. dwcontrol이 NULL이면, Sort 함수는 NULL을 리턴한다.

[용법]

Sort 함수는 DataWindow에 관한 현재 정렬 기준을 사용한다. 정렬 기준을 변경하려면, SetSort 함수를 사용한다. SetSort 함수는 DataWindow painter의 Rows 메뉴에서 Sort를 사용하는 것과 동일하다. Sort 함수를 호출하기 전에 정렬 기준을 설정하기 위하여 SetSort 함수를 호출하지 않는다면, Sort 함수는 DataWindow object 정의에 명시한 정렬 기준을 사용한다.

Retrieve 함수가 DataWindow에 관한 데이터를 retrieve할 때, PowerBuilder는 DataWindow object에 관하여 정의되어있는 정렬 기준을 사용한다. 따라서 Sort 함수는 SetSort로 정렬 기준을 변경한 이후 또는 어떤 처리나 사용자 입력에의하여 데이터가 변경되었을 경우에만 호출할 필요가 있다.

Retrieve As Needed 옵션이 설정되어있으면, Sort 함수의 효과가 취소된다. Sort 함수는 정확한 정렬을 위하여 모든 row가 retrieve 되어야 하기 때문이다.

Sort 함수는 composite report의 DataWindow에서는 효과가 없다.

정렬과 그룹

그룹을 가진 DataWindow object를 정렬하려면, Sort 함수를 호출한 이후에 GroupCalc 함수를 호출하도록 한다.

[예제]

* 다음 예제는 dw_employee의 칼럼 1을 올림차순으로 칼럼 2를 내림차순으로 정렬하도록 설정한 후, row들을 정렬한다.

dw_employee.SetSort("#1 A, #2 D")

dw_Employee.Sort( )

* 다음 예제에서 DataWindow dw_depts내의 row들은 부서를 기준으로 그룹되어있고 고용원 이름을 기준으로 정렬되어있다. 사용자가 여러 고용원의 부서를 변경하였다면, 다음 문장은 row의 정렬을 다시 하고 그룹을 다시 만든다.

dw_depts.Sort( )

dw_depts.GroupCalc( )

[참고]

GroupCalc

SetSort

Sort : Syntax 2

Sort : Syntax 3

Sort PowerScript 함수: Syntax 2

[설명]

TreeView control에 있는 아이템의 children을 정렬한다.

[적용]

TreeView controls

[문법]

treeviewname.Sort ( itemhandle , sorttype )

[Argument]

treeviewname | 아이템을 정렬하려는 TreeView control 이름
itemhandle | children을 정렬하려는 아이템
sorttype | 정렬 방식: Ascending! Descending!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 실패하면 -1을 리턴한다.

[용법]

Sort 함수는 명시한 아이템 바로 아래 레벨만 정렬한다. 여러 레벨을 정렬하려면 SortAll 함수를 사용한다.

[예제]

* 다음 예제는 현재 TreeView item의 children을 정렬한다:

long ll_tvi

ll_tvi = tv_foo.FindItem(CurrentTreeItem! , 0)

tv_foo.Sort(ll_tvi , Ascending!)

[참고]

SortAll

Sort : Syntax 1

Sort : Syntax 3

Sort PowerScript 함수: Syntax 3

[설명]

ListView control의 아이템을 정렬한다.

[적용]

ListView controls

[문법]

listviewname.Sort ( sorttype, { column } )

[Argument]

listviewname | 아이템을 정렬하려는 ListView
sorttype | ListView 아이템을 정렬할 때 사용하려는 방법. Ascending! Descending! Unsorted! UserDefinedSort!
column | (선택사항) ListView item을 정렬하려는 칼럼의 번호

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 실패하면 -1을 리턴한다.

[용법]

기본적인 정렬은 alphanumeric 이다.

정렬할 칼럼을 명시하지 않으면, 첫 번째 칼럼이 정렬된다.

[예제]

* 다음 예제는 ListView의 세 번째 칼럼에있는 아이템을 정렬한다.

lv_list.Sort(Ascending! , 3)

[참고]

SortAll

Sort : Syntax 1

Sort : Syntax 2


SortAll PowerScript 함수

[설명]

TreeView control 아이템의 하위 레벨을 모두 정렬한다.

[적용]

TreeView controls

[문법]

treeviewname.SortAll ( itemhandle, sorttype )

[Argument]

treeviewname | 하위 레벨들을 정렬하려는 TreeView control
itemhandle | 하위 레벨들을 정렬하기 원하는 아이템
sorttype | 하위레벨들을 정렬하는 방법: Ascending! Descending! Unsorted! UserDefinedSort!

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

명시한 아이템의 모든 하위 레벨들을 정렬한다. 트리 전체를 정렬하고자 할 때에는, itemhandle에 TreeView의 루트 아이템을 명시한다.

sorttype으로 UserDefinedSort!를 명시하면, TreeView control의 Sort 이벤트에 정렬 기준을 정의한다.

[예제]

* 다음 예제는 현재 TreeView 아이템의 하위레벨 들을 모두 정렬한다.

long ll_tvi

// 현재 트리 아이템을 찾는다

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

// 모든 children을 정렬한다

tv_list.SortAll(ll_tvi , Ascending!)

* 다음 예제는 TreeView control 전체를 정렬한다.

long ll_tvi

// 루트 아이템을 찾는다

ll_tvi = tv_list.FindItem(RootTreeItem! , 0)

// 모든 children을 정렬한다

tv_list.SortAll(ll_tvi , Ascending!)

[참고]

Sort


Space PowerScript 함수

[설명]

명시한 길이 만큼의 공란을 만든다.

[문법]

Space ( n )

[Argument]

n

공란으로 채울 문자열의 길이 (long). 최대값은 문자열의 최대값인 60000이다.

[Return 값]

String.

처리에 성공하면 n 공란을 가진 문자열을 리턴하고 에러가 발생하면 빈 문자열("")을 리턴한다. n이 NULL이면, Space 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 Name에 4개 공란을 가진 문자열을 넣는다.

string Name

Name = Space(4)

* 다음 문장은 Name에 공란 40을 할당한다.

string Name

Name = Space(40)

[참고]

Fill

Space(DataWindow painter 함수)


Sqrt PowerScript 함수

[설명]

명시한 수의 자승 근을 구한다.

[문법]

Sqrt ( n )

[Argument]

n

자승 근을 구하려는 수

[Return 값]

Double.

n의 자승 근을 구한다. n이 NULL이면, Sqrt 함수는 NULL을 리턴한다.

[용법]

음수 값의 자승 근을 취하면 실행 에러가 발생한다.

[예제]

* 다음 문장은 1.414213562373095를 리턴한다.

Sqrt(2)

* 다음 문장은 실행 에러가 발생한다.

Sqrt(-2)

[참고]

Sqrt(DataWindow painter 함수)


StartHotLink PowerScript 함수

[설명]

PowerBuilder가 명시한 데이터의 변경을 즉시 감지할 수 있도록 DDE server application으로 hot link를 설치한다. server application내의 데이터가 변경되면, 현재 application에 있는 HotLinkAlarm 이벤트가 트리거 된다.

Platform 정보

DDE 함수들은 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일 되었을 때만 영향이 있다.

[문법]

StartHotLink ( location, applname, topic )

[Argument]

location | 값이 변경되었을 때 HotLinkAlarm 이벤트를 트리거할 데이터의 위치. location 형식은 데이터를 포함하고있는 응용프로그램에 따른다.
applname | server application의 DDE 이름
topic | 데이터를 나타내는 문자열 또는 HotLinkAlarm 이벤트를 트리거할 응용프로그램의 instance (예를들어, Microsoft Excel의 경우, topic 이름은 오픈된 spreadsheet의 이름이 될 수 있다)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 다음 음수 값을 리턴한다:

-1 | 서버가 아니다 (No server)
-2 | 요청이 거부되었다 (Request denied)

argument 값 중에 NULL이 있으면, StartHotLink는 NULL을 리턴한다.

[용법]

hot link를 설치한 후, HotLinkAlarm 이벤트에 다음 함수들을 포함 시킬 수 있다:

▶GetDataDDEOrigin | 변경된 데이터를 보낸 응용프로그램이 무엇인지 결정한다
▶GetDataDDE | 새로운 데이터를 구한다
▶RespondRemote | 데이터를 받았음을 인지한다

[예제]

* 다음 예제에서, 다른 PowerBuilder application이 StartServerDDE 함수를 호출하였고 그 자신은 MyPBApp이다. 다음 문장은 MyPBApp에 hot link을 설치한다. location과 topic에 관하여 명시한 값은 MyPBApp에 설치된 규칙에 따른다.

StartHotLink("Any", "MyPBApp", "Any")

* 다음 문장은 Microsoft Excel로 hot link를 설치한다. REGION.XLS의 row 1 column 2에 위치한 데이터가 변경되면 PowerBuilder 윈도우에 알리게된다.

StartHotLink("R1C2", "Excel", "Region.XLS")

[참고]

StopHotLink


StartServerDDE PowerScript 함수

[설명]

DDE server로 application을 설치한다. 지원하게될 DDE 이름, topic, item 등을 명시한다.

Platform 정보

DDE 함수들은 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일되었을 때만 영향이 있다.

[문법]

StartServerDDE ( { windowname, } applname, topic {, item } )

[Argument]

windowname | (선택사항) 서버 윈도우 이름. 기본설정값은 현재 윈도우이다.
applname | 응용프로그램에 관한 DDE 이름
topic | DDE 클라이언트 응용프로그램을 참고할 기본 데이터 그룹
item | (선택사항) DDE server application이 지원하게될(예를들어, "Table1","Table2") 콤마로 분리된 문자열 (topic내의 데이터)

[Return 값]

Integer.

처리에 성공하면 1을 리턴한다. 에러가 발생하면 -1을 리턴하며, 이것은 응용프로그램이 이미 서버로 시작되었다는 것을 의미한다. argument 값 중에 NULL이 있으면, StartServerDDE 함수는 NULL을 리턴한다.

[용법]

DDE 클라이언트 응용프로그램이 DDE 요청을 보내올 때, 이 요청은 지원하기 위하여 선언한 아이템 중 하나를 포함한다. 사용자는 응용프로그램이 각 아이템에 관하여 어떻게 반응할 것인가를 결정한다.

DDE 대화를 다루기 위하여 윈도우는 반드시 오픈되어 있어야 한다. application object의 이벤트에서는 StartServerDDE 및 다른 DDE 함수들을 호출할 수 없다.

응용프로그램 자신이 DDE server로써 설치되어있을 때, 다른 응용프로그램은 사용자 응용프로그램에 있는 이벤트를 트리거하는 DDE request를 보낼 수 있다.

이벤트 명 | 트리거될 때 | 호출할 수 있는 함수 | 용도
RemoteHotLinkStart | 클라이언트가 hot link에 관한 request를 보낼때 |  |
RomoteExec | 클라이언트에서 명령을 보낼때 | GetCommandDDEOrigin | 어떤 클라이언트 응용 프로그램이 명령을 보냈는지 찾는다
 |  | GetCommandDDE | 보낸 명령을 얻는다
RemoteSend | 클라이언트가 데이터를 보낼때 | GetDataDDEOrigin | 어떤 클라이언트 응용 프로그램이 데이터를 보냈는지 찾는다
 |  | GetDataDDE | 보낸 데이터를 얻는다
RemoteRequest | 클라이언트 응용프로그램이 서버 응용프로그램의 데이터를 요청할때 | SetDataDDE | 요청된 데이터를 보낸다
 |  | RespondRemote | 요청을 인식시킨다
RemoteHotLinkStop | 클라이언트가 Hot link를 종료하기 원할 때 |  |

[예제]

* 다음 문장은 PowerBuilder application을 서버로 작용시킨다. 다른 DDE 응용프로그램은 토픽이 System인 MyPBApp이며, 아이템 Table1과 Table2를 지원한다.

StartServerDDE(w_emp, "MyPBApp","System", "Table1", "Table2")

[참고]

StopServerDDE


State PowerScript 함수

[설명]

listbox control내의 아이템이 반전되어있는지 여부를 결정한다.

[적용]

ListBox 와 PictureListBox controls

[문법]

listboxname.State ( index )

[Argument]

listboxname | 아이템의 상태(반전 또는 반전해제)를 구하려는 ListBox 또는 PictureListBox 이름
index | 상태를 구하려는 아이템 번호

[Return 값]

Integer.

index에 의하여 명시된 listboxname내의 아이템이 반전되어있으면 1을 리턴하고 그렇지 않으면 0을 리턴한다. index가 아이템 번호로 타당하지 않으면 -1을 리턴한다. argument 값 중에 NULL이 있으면, State 함수는 NULL을 리턴한다.

[용법]

State와 SetState 함수는 다중 선택이 허용된 (MultiSelect property가 TRUE) listbox에서만 의미가 있다. 선택된 아이템의 리스트를 모두 찾으려면, 리스트를 통과하면서, 각 아이템의 상태를 체크 하여야 한다.

SelectedItem과 SelectItem은 단일-선택 listbox에서 의미가 있다. SelectedItem은 직접 선택된 아이템을 찾는다. 다중-선택 listbox에서, SelectedItem은 첫 번째로 선택된 아이템만 찾는다.

아이템의 인덱스를 알 때 에는, 그 아이템의 텍스트를 구하기 위하여 Text 함수를 사용할 수 있다.

[예제]

* lb_Contact의 아이템 3이 선택되어 (반전되어) 있다면, li_Item를 1로 설정한다.

integer li_Item

li_Item = lb_Contact.State(3)

* 다음 문장은 다중 선택이 가능한 ListBox에서 선택된 모든 아이템의 텍스트를 구한다. MessageBox 함수는 발견한 아이템을 각각 나타나낸다.

integer li_ItemTotal, li_ItemCount

// ListBox의 아이템 수를 구한다

li_ItemTotal = lb_contact.TotalItems( )

// 모든 아이템에 대한 Loop

FOR li_ItemCount = 1 to li_ItemTotal

// 선택되어있으면, 텍스트를 나타낸다

IF lb_Contact.State(li_ItemCount) = 1 THEN &

MessageBox("Selected Item", lb_Contact.text(li_ItemCount))

NEXT

* 다음 문장은 ListBox lb_Contact의 아이템 3이 반전되어있으면 어떤 문장을 실행한다.

IF lb_Contact.State(3) = 1 THEN ...

[참고]

SelectedItem

SetState


StopHotLink PowerScript 함수

[설명]

DDE server application의 hot link를 종료한다.

Platform 정보

DDE 함수들은 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일 되었을 때만 영향이 있다.

[문법]

StopHotLink ( location, applname, topic )

[Argument]

location | hot link 종료를 원하는 link를 StartHotLink에서 명시한 설치 장소
applname | StartHotLink 함수에서 명시한 server application의 DDE 이름.
topic | 데이터를 나타내는 문자열 또는 hot link를 정지시킬 응용프로그램의 instance (StartHotLink 함수에서 명시함).

주의

모든 argument는 반드시 이전에 StartHotLink를 호출할 때 사용한 argument와 일치하여야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면, 다음 음수 값을 리턴한다:

-1 link가 시작되어있지 않다 (Link was not started)

-2 요정이 거절되었다 (Request denied)

-3 서버를 종료할 수 없다 (Could not terminate server)

argument 값 중에 NULL이 있으면, StopHotLink는 NULL을 리턴한다.

[예제]

* 다른 PowerBuilder application이 자기자신을 MyPBApp라는 이름의 서버로 사용하기 위하여 StartServerDDE를 호출하였다면, 사용자 application은 DDE 클라이언트로 활동할 수 있고 MyPBApp hot link를 설치하기 위하여 StartHotLink를 호출할 수 있다.

명시한 location과 topic은 MyPBApp에 의하여 설치된 규칙에 따른다.

StopHotLink("Any", "MyPBApp", "Any")

* 다음 문장은 spreadsheet REGION.XLS의 row 1 column 2에 관하여 Microsoft Excel로 설치된 hot link를 중지한다.

StopHotLink("R1C2", "Excel", "Region.XLS")

[참고]

StartHotLink


StopListening PowerScript 함수

[설명]

클라이언트 접속에 관한 listening을 중지시키기 위하여 server application에 알린다.

[적용]

Transport objects

[문법]

transportobject.StopListening ( )

[Argument]

transportobject

접속에 관한 클라이언트 요청을 처리하기 위하여 사용된 transport object 이름

[Return 값]

Long.

처리에 성공하면 0을 리턴하고 에러가 발생하면 다음 값 중 하나를 리턴한다:

50 | 분산 서비스 에러 (Distributed service error)
52 | 분산 통신 에러 (Distributed communications error)
55 | 비정상적인 요청 종료 (Request terminated abnormally)
56 | 불완전한 요청 응답 (Response to request incomplete)

[용법]

StopListening 함수를 호출한 이후에, server application은 transport object를 제거할 필요가 있다.

[예제]

* 다음 예에서, server application은 mytransport transport object를 통한 클라이언트 요청에 관한 listening을 중단한다.

mytransport.StopListening( )

destroy mytransport

[참고]

Listen


StopServerDDE PowerScript 함수

[설명]

DDE server application으로 활동중인 응용프로그램을 중단한다. 이후로 DDE 클라이언트 application으로부터의 요청은 실패하게 된다.

Platform 정보

DDE 함수들은 Macintosh에는 영향이 없다.

UNIX platform에서, DDE 함수들은 서버와 클라이언트 응용프로그램들이 PowerBuilder로 개발되었거나 Bristol Technology의 Wind/U를 사용하여 컴파일 되었을 때만 영향이 있다.

[문법]

StopServerDDE ( { windowname, } applname, topic )

[Argument]

windowname | (선택사항) 서버 윈도우 이름. 기본설정 값은 현재 윈도우다. 서버 윈도우가 여러 개 있을 때에는, windowname이 필요하다.
applname | PowerBuilder application에 관한 DDE 이름
topic | StartServerDDE를 호출하였을 때 선언한 topic

[Return 값]

Integer.

처리에 성공하면 1을 리턴한다. 에러가 발생하면 -1을 리턴하는데 DDE 서버가 시작되어있지 않다는 것을 의미한다. argument 값 중에 NULL이 있으면, StopServerDDE는 NULL을 리턴한다.

주의

applname과 topic argument는 반드시 앞서 호출한 StartServerDDE의 argument와 일치하여야 한다.

[예제]

* 다음 문장은 PowerBuilder application MyPBApp에 대하여 서버로서의 활동을 중지시킨다.

StopServerDDE(w_emp, "MyPBApp", "System")

[참고]

StartServerDDE


String PowerScript 함수 : Syntax 1

[설명]

format mask에 따라 시간 또는 날짜 값 등을 형식화 한다. date, DateTime, numeric, time 등의 데이터를 변환하거나 형식화할 수 있다. 또한 문자열을 형식화하는 것도 가능하다.

[문법]

String ( data, { format } )

[Argument]

data | 문자열을 명시한 형식으로 리턴하려는 데이터. data는 date, DateTime, numeric, time, string 등의 데이터 타입을 가질 수 있다.
format | (선택사항) 데이터를 형식화하는데 사용할 mask (string). mask는 data의 데이터 타입을 명시하기위한 형식화 정보로 구성된다. 데이터 타입이 문자열이면, format이 필요하다. format은 데이터 타입에 따라 여러 개의 mask로 구성될 수 있으며, 각 mask는 세미콜론(;)으로 분리된다. ([용법] 참조)

[Return 값]

String.

처리에 성공하면 명시한 형식으로 데이터를 리턴하고, 데이터 타입이 mask로 명시한 타입과 일치하지 않거나, mask가 올바르지 않거나, data가 올바르지 않은 데이터 타입일 경우는 빈 문자열("")을 리턴한다.

[용법]

date, DateTime, numeric, time 데이터일 경우, 형식을 명시하지 않으면 PowerBuilder는 시스템의 기본설정 형식을 사용하여 문자열을 리턴한다. numeric 데이터의 경우, 기본설정 형식은 [General] format이다.

string 데이터의 경우는, 표시 형식 mask가 필요하다.

형식은 여러 개의 mask로 구성될 수 있다.

▶date, DateTime, string, time 데이터에 관한 형식은 여러 개의 mask를 가질 수 있다. 첫 번째 mask는 그 데이터에 관한 형식이고; 두 번째 mask는 null 값에 관한 형식이다.

▶numeric 데이터는 mask를 4개까지 가질 수 있다. mask가 하나인 경우는 음수와 양수 데이터를 모두 취급한다. mask가 그 이상일 경우, 첫 번째 mask는 양수, 나머지는 음수, 영(0), NULL 값을 취급한다.

형식에 색상을 명시할 수 있지만, 이 색상을 스크립트내의 String에서 사용하면 무시된다. 색상은 DataWindow painter내에 명시한 것만 나타난다.

DataWindow control의 time 과 date

String 함수의 argument로 GetItemTime 이나 GetItemString을 호출하고 표시 형식을 명시하지 않으면, DateTime으로 형식화 된다. 예를 들어 아래 문장은 다음과 같은 문자열을 리턴할 것이다 : "2/26/98 00:00:00"

String(dw_1.GetItemTime(1, "start_date"))

단순히 시간이나 날짜를 얻으려면, String 함수에 표시 형식을 명시하거나 String 함수를 호출하기 전에 time 또는 date 변수에 값을 할당한다. (GetItemDate 함수 참조)

Message object

TriggerEvent 또는 PostEvent을 호출한 이후에 Message object에서 문자열을 추출하기 위하여 String 함수를 사용할 수 있다. ( TriggerEvent 또는 PostEvent 함수 참조)

[예제]

* 다음 문장의 날짜 값에 대한 표시형식은 Jan 1, 1998을 리턴한다

String(1998-01-31, "mmm dd, yyyy")

* 다음 문장은 order_date의 값을 형식화하고 date1을 6-11-98로 설정한다.

Date order_date = 1998-06-11

string date1

date1 = String(order_date,"m-d-yy")

* 다음 문장은 order_date가 NULL일 때 none으로 나타내기 위하여 NULL date 값에 관한 형식을 포함 시킨다.

Date order_date = 1998-06-11

string date1

SetNull(order_date)

date1 = String(order_date, "m-d-yy;'none'")

* 다음 문장은 DateTime을 형식화하고 Jan 31, 1998 6 hrs and 8 min을 리턴한다.

String(DateTime(1998-01-31, 06:08:00), 'mmm dd, yyyy h "hrs and" m "min"')

* 다음 예제는 Today 와 Now 함수를 사용하여 system 날짜와 시간으로부터 DateTime 값을 만들고, sle_date의 텍스트에 형식화된 값을 설정한다.

DateTime sys_datetime

string datetime1

sys_datetime = DateTime(Today(), Now())

sle_date.text = String(sys_datetime, "m-d-yy h:mm am/pm;'none'")

* 다음 문장의 수치에 관한 형식은 $5.00을 리턴한다.

String(5,"$#,##0.00")

* 다음 문장은 string1을 0123으로 설정한다.

integer nbr = 123

string string1

string1 = String(nbr,"0000;(000);****;empty")

* 다음 문장은 string1을 (123)으로 설정한다.

integer nbr = -123

string string1

string1 = String(nbr,"000;(000);****;empty")

* 다음 문장은 string1을 ****으로 설정한다.

integer nbr = 0

string string1

string1 = String(nbr,"0000;(000);****;empty")

* 다음 문장은 string1을 "empty"로 설정한다.

integer nbr

string string1

SetNull(nbr)

string1 = String(nbr,"0000;(000);****;empty")

* 다음 문장은 string 데이터를 형식화하고 A-B-C를 리턴한다. 표시 형식은 각 문자를 @에 할당하고 형식내의 다른 문자는 적절한 위치에 삽입된다.

String("ABC", "@-@-@")

* 다음 문장은 A*B를 리턴한다.

String("ABC", "@*@")

* 다음 문장은 ABC를 리턴한다.

String("ABC", "@@@")

* 다음 문장은 공란을 리턴한다.

String("ABC", " ")

* 다음 문장은 time 데이터에 형식을 적용하고 6 hrs and 8 min을 리턴한다.

String(06:08:02,'h "hrs and" m "min"')

* 다음 문장은 08:06:04 pm을 리턴한다.

String(20:06:04,"hh:mm:ss am/pm")

* 다음 문장은 8:06:04 am을 리턴한다.

String(08:06:04,"h:mm:ss am/pm")

[참고]

String : Syntax 2

String(DataWindow painter 함수)

String PowerScript 함수 : Syntax 2

[설명]

blob내의 데이터를 문자열로 변환한다. blob의 값이 텍스트가 아니면, 문자로 인식하려고 시도한다.

[문법]

String ( blob )

[Argument]

blob

문자열로 리턴할 blob. blob은 blob을 포함하고있는 어떤 변수도 가능하다.

[Return 값]

String.

처리에 성공하면 blob의 값을 문자열로 리턴하고 실패하면 빈 문자열("")을 리턴한다. blob이 string 데이터를 포함하지 않으면, String 함수는 그 데이터를, 가능하면, 문자로 가져와서 문자열을 리턴한다. blob이 NULL이면, String 함수는 NULL을 리턴한다.

[용법]

TriggerEvent 또는 PostEvent을 호출한 이후에 Message object에서 문자열을 추출하기 위하여 String 함수를 사용할 수 있다. ( TriggerEvent 또는 PostEvent 함수 참조)

[예제]

* 다음 예제는 문자열을 포함하고있는 blob instance 변수 ib_sblob을 문자열로 변환하여 sstr에 그 결과를 저장한다.

string sstr

sstr = String(ib_sblob)

* 다음 예제는 blob bb에 오늘 날짜와 테스트 상태 정보를 저장한다. pos1과 pos2에는 blob에 있는 상태 텍스트의 시작과 끝을 저장한다. 마지막으로, BlobMid를 사용하여 문자열로 변환할 "sub-blob"을 추출한다. sle_status는 상태 텍스트를 리턴하여 나타낸다.

blob{100} bb

long pos1, pos2

string test_status

date test_date

test_date = Today()

IF DayName(test_date) = "Wednesday" THEN test_status = "Coolant Test"

IF DayName(test_date) = "Thursday" THEN test_status = "Emissions Test"

// blob에 데이터를 저장한다

pos1 = BlobEdit( bb, 1, test_date)

pos2 = BlobEdit( bb, pos1, test_status )

. . . // 다른 처리루틴

// bb에 저장된 상태 텍스트를 추출하고 나타낸다

sle_status.text = String(BlobMid(bb, pos1, pos2 - pos1))

[참고]

String : Syntax 1

String(DataWindow painter 함수)


SyntaxFromSQL PowerScript 함수

[설명]

SQL SELECT 문장에 기초하여 DataWindow source 코드를 생성한다.

[적용]

Transaction objects

[문법]

transaction.SyntaxFromSQL ( sqlselect, presentation, err )

[Argument]

transaction | 연결된 transaction object 이름
sqlselect | SQL SELECT 문장
presentation | DataWindow에 관한 기본 표시 스타일. 간단한 형식은 다음과 같다: Style(Type=presentationstyle) presentation에 맞는 스타일로 DataWindow painter에 New DataWindow가 나타난다: (기본설정값) Tabular Grid Form (freeform) Graph Group Label Nup presentation에 사용할 수 있는 키워드는 [용법] 에 나열되어 있다.
Err | 에러가 발생하였을 때 할당할 에러 메시지

[Return 값]

String.

에러가 발생하면 빈 문자열("")을 리턴한다. SyntaxFromSQL 처리에 실패하면, err에 에러 메시지가 포함된다. argument 값중에 NULL이 있으면, SyntaxFromSQL 함수는 NULL을 리턴한다.

[용법]

DataWindow object를 생성하기 위하여, SyntaxFromSQL에 의하여 생성되는 소스 코드를 직접 Create함수에 통과시킬 수 있다.

SQL Server에 관한 주의사항

DBMS가 SQL Server이고 transaction이 처리중일 때 SyntaxFromSQL을 호출하면, PowerBuilder는 인덱스가 갱신가능한지 판단할 수 없어서 인덱스가 없는 것으로 간주한다. 따라서, SyntaxFromSQL을 호출하기 전에 반드시 AutoCommit을 TRUE로 설정하여야 한다.

표현 문자열은 다음 object 키워드를 사용할 수 있다. 사용자는 한 개의 칼럼, DataWindow 전체, DataWindow의 일부 영역, DataWindow내의 텍스트의 표현 스타일을 명시할 수 있다. object 키워드는 다음과 같다:

Column

DataWindow

Group

Style

Text

Title

표현 문자열은 다음과 같은 형식을 갖는다:

"Style(Type=value property=value ...)

DataWindow(property=value ...)

Column(property=value ...)

Group(groupby_colnum1 Fby_colnum2 ... property ...)

Text(property=value ...)

Title('titlestring')"

DataWindow Object Properties에서 사용할 수 있는 property 리스트를 보기 위하여 object keyword를 선택한다.

데이터베이스 칼럼이 font 정보와 함께 확장된 속성을 가지고 있으면, SyntaxFromSQL 표현 문자열에 사용자가 명시한 font 정보는 무시된다.

[예제]

* 다음 문장은 SyntaxFromSQL 함수에 의하여 생성된 tabular DataWindow object에 관한 DataWindow source를 MultiLineEdit에 나타낸다. 에러가 발생하면, 생성된 에러 메시지가 ERRORS에 저장된다.

string ERRORS, sql_syntax

sql_syntax = "SELECT emp_data.emp_id," &

+ "emp_data.emp_name FROM emp_data " &

+ "WHERE emp_data.emp_salary >45000"

mle_sql.text = SQLCA.SyntaxFromSQL(sql_syntax, "", ERRORS)

* 다음 문장은 SyntaxFromSQL 함수에 의하여 생성된 DataWindow source로 부터 grid DataWindow dw_1을 생성한다. 에러가 발생하면, 에러 메시지를 담고있는 ERRORS의 내용이 message box에 나타난다. Retrieve 함수를 호출하기 전에 SQLCA와 함께 SetTransObject를 호출하여야 한다.

string ERRORS, sql_syntax

string presentation_str, dwsyntax_str

sql_syntax = "SELECT emp_data.emp_id,"&

+ "emp_data.emp_name FROM emp_data "&

+ "WHERE emp_data.emp_salary > 45000"

presentation_str = "style(type=grid)"

dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, &

presentation_str, ERRORS)

IF Len(ERRORS) > 0 THEN

MessageBox("Caution", &

"SyntaxFromSQL caused these errors: " + ERRORS)

RETURN

END IF

dw_1.Create( dwsyntax_str, ERRORS)

IF Len(ERRORS) > 0 THEN

MessageBox("Caution", &

"Create cause these errors: " + ERRORS)

RETURN

END IF

[참고]

Create

DataWindow object properties


TabPostEvent PowerScript 함수

[설명]

Tab control내의 각 탭 페이지에 대하여 명시한 이벤트를 추가하고, 탭 페이지 사용자 object에 관한 이벤트 큐(queue)의 마지막에 추가한다.

[적용]

Tab controls

[문법]

tabcontrolname.TabPostEvent ( event {, word, long } )

[Argument]

tabcontrolname | 탭 페이지 사용자 object에 관한 이벤트를 추가하려는 Tab control 이름
event | PowerBuilder이벤트 (예를들어, Clicked!, Modified!, DoubleClicked! 등)를 나타내는 TrigEvent 열거형 데이터 타입의 값 또는 이벤트 이름을 갖고있는 문자열. 이벤트는 반드시 tabcontrolname내의 탭 페이지 사용자 object에 적합한 이벤트여야 하고 tabcontrolname내에 그 이벤트에 관한 스크립트가 존재하고 있어야 한다.
word | (선택사항) 시스템 Message object의 WordParm property내에 저장될 long 타입의 값. word 값은 필요치 않고 long 값만 명시하고자 할 때에는, 0을 입력한다. (cross-platform 호환을 위하여, WordParm 과 LongParm 모두 long 타입의 값을 갖는다)
long | (선택사항) 시스템 Message object의 LongParm property내에 저장할 long 타입의 값 또는 문자열. 문자열을 명시할 때, String 함수로 처리할 수 있도록 문자열의 포인터가 LongParm property에 저장된다. (PostEvent 함수의 용법을 참조할 것)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하거나, 이벤트가 탭 페이지 사용자 object로 타당하지 않거나 그 이벤트에 관한 스크립트가 존재하지 않으면 -1을 리턴한다.

[예제]

* tab_address가 uo_list로부터 상속 받은 여러 개의 탭 페이지를 가지고 있고 uo_list가 ue_display라는 사용자 이벤트를 가지고 있다고 가정하면, 다음 문장은 tab_address내의 각 탭 페이지에 ue_display 이벤트를 추가한다.

tab_address.TabPostEvent("ue_display")

[참고]

TabTriggerEvent


TabTriggerEvent PowerScript 함수

[설명]

Tab control내의 각 탭 페이지에 대하여 명시한 이벤트를 트리거하여, 탭 페이지 순서대로 스크립트를 즉시 실행한다.

[적용]

Tab controls

[문법]

tabcontrolname.TabTriggerEvent ( event {, word, long } )

[Argument]

tabcontrolname | 탭 페이지 사용자 object에 이벤트를 트리거하려는 Tab control의 이름
event | PowerBuilder이벤트 (예를들어, Clicked!, Modified!, DoubleClicked! 등)를 나타내는 TrigEvent 열거형 데이터 타입의 값 또는 이벤트 이름을 갖고있는 문자열. 이벤트는 반드시 tabcontrolname내의 탭 페이지 사용자 object에 적합한 이벤트여야 하고 tabcontrolname내에 그 이벤트에 관한 스크립트가 존재하고 있어야 한다.
word | (선택사항) 시스템 Message object의 WordParm property내에 저장될 long 타입의 값. word 값은 필요치 않고 long 값만 명시하고자 할 때에는, 0을 입력한다. (cross-platform 호환을 위하여, WordParm 과 LongParm 모두 long 타입의 값을 갖는다)
long | (선택사항) 시스템 Message object의 LongParm property내에 저장할 long 타입의 값 또는 문자열. 문자열을 명시할 때, String 함수로 처리할 수 있도록 문자열의 포인터가 LongParm property에 저장된다. (TriggerEvent 함수의 용법을 참조할 것)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하거나, 이벤트가 탭 페이지 사용자 object로 타당하지 않거나 그 이벤트에 관한 스크립트가 존재하지 않으면 -1을 리턴한다.

[예제]

* tab_address가 uo_list로부터 상속받은 여러개의 탭 페이지를 가지고 있고 uo_list가 ue_display라는 사용자 이벤트를 가지고 있다고 가정하면, 다음 문장은 tab_address내의 각 탭 페이지에 대하여 ue_display 이벤트 스크립트를 즉시 실행한다.

tab_address.TabTriggerEvent("ue_display")

[참고]

TabPostEvent


Tan PowerScript 함수

[설명]

주어진 각도의 탄젠트(tangent)를 계산한다.

[문법]

Tan ( n )

[Argument]

n

탄젠트를 구하려는 라디안(radian) 각.

[Return 값]

Double.

n의 탄젠트를 리턴한다. n이 타당하지 않으면 실행 에러가 발생한다. n이 NULL이면, Tan 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 모두 0을 리턴한다.

Tan(0)

Tan(Pi(1))

* 다음 문장은 1.55741을 리턴한다.

Tan(1)

[참고]

Cos

Pi

Sin

Tan (DataWindow painter 함수)


Text PowerScript 함수

[설명]

listbox내의 아이템 텍스트를 구한다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.Text ( index )

[Argument]

listboxname | 아이템의 텍스트를 구하려는 listbox control의 이름
index | 텍스트를 구하려는 아이템의 번호

[Return 값]

String.

index에 의하여 명시된 listboxname내의 아이템 텍스트를 리턴한다. index가 아이템 번호로 타당하지 않으면, Text 함수는 빈 문자열 ("")을 리턴한다. argument 값 중에 NULL이 있으면, Text 함수는 NULL을 리턴한다.

[예제]

* ListBox lb_Cities이 다음 아이템을 포함하고 있다고 가정한다:

Atlanta

Boston

Chicago

Denver

다음 문장은 current_city에 아이템 3 (Chicago)를 저장한다.

string current_city

current_city = lb_Cities.Text(3)

[참고]

FindItem

SelectedItem

SelectedText


TextLine PowerScript 함수

[설명]

삽입 포인트를 포함하고있는 라인의 텍스트를 구한다. TextLine 함수는 여러 라인을 포함할 수 있는 control을 위한 것이다.

[적용]

DataWindow, EditMask, MultiLineEdit, RichTextEdit controls

[문법]

editname.TextLine ( )

[Argument]

editname

삽입 포인트를 포함하고있는 라인의 텍스트를 구하고자 하는 DataWindow control, EditMask, MultiLineEdit, 또는 RichTextEdit의 이름

[Return 값]

String.

editname내에서 삽입 포인트를 포함하고있는 라인의 텍스트를 리턴한다. 에러가 발생하면 빈 문자열("")을 리턴하고, editname이 NULL이면, NULL을 리턴한다.

[용법]

editname이 DataWindow control이면, TextLine 함수는 현재 row 와 column 상에 있는 편집 control 내용을 리턴한다.

[예제]

* MultiLineEdit mle_state에서, 삽입 포인트가 line 3에 있고 그 라인의 텍스트가 North Carolina 라면, 다음 예제는 linetext에 North Carolina를 할당한다.

string linetext

linetext = mle_state.TextLine( )

* MultiLineEdit mle_contact에서 텍스트가 Y인 라인에 삽입 포인트가 있다면, 어떤 문장을 처리하도록 하는 스크립트이다.

IF mle_contact.TextLine( ) = "Y" THEN ...

[참고]

SelectedItem

SelectedTextLine


Time PowerScript 함수: syntax 1

[설명]

DateTime 값이나 blob으로부터 시간 값을 추출한다.

[문법]

Time ( datetime )

[Argument]

datetime

DateTime 값이나 첫 번째 값이 시간 또는 DateTime 값인 blob. blob의 나머지 내용은 무시된다. datetime은 DateTime 값 또는 blob을 포함하고있는 모든 변수도 가능하다.

[Return 값]

Time.

datetime내의 시간을 리턴한다. datetime이 올바르지 않은 값을 포함하고 있거나 데이터 타입이 일치하지 않을 경우, Time 함수는 00:00:00.000000을 리턴한다. datetime이 NULL이면, Time 함수는 NULL을 리턴한다.

[예제]

* StartDateTime이 데이터베이스로부터 retrieve된 이후에, 다음 예제는 StartTime에 StartDateTime내의 시간을 할당한다.

DateTime StartDateTime

time StartTime

. . .

StartTime = Time(StartDateTime)

* blob 변수 ib_blob의 처음 32비트가 DateTime을 포함하고 있다고 가정하면, 다음 문장은 그 값으로부터 시간을 추출한다.

time lt_time

lt_time = Time(BlobMid(ib_blob, 32))

[참고]

Time: Syntax 2

Time: Syntax 3

Time (DataWindow painter 함수)

Time PowerScript 함수: syntax 2

[설명]

올바른 시간을 포함하고있는 문자열을 시간 값으로 변환한다.

[문법]

Time ( string )

[Argument]

string

시간을 알고자 하는 올바른 시간 값 (8AM 또는 10:25 등)을 갖고있는 문자열. AM 또는 PM의 경우는 분, 초, 1/1000000초등의 값 포함하면 안되고 반드시 시간 값만 가지고 있어야 한다. 분과 초에 관한 기본값은 00이고, 마이크로 초의 기본값은 000000이다. PowerBuilder는 24시간에 기초하여 AM 또는 PM을 결정한다. string은 값을 포함하고 있는 문자열이나 blob도 가능하다.

[Return 값]

Time.

string내의 시간을 리턴한다. string이 올바르지 않은 시간을 포함하고있거나 데이터 타입이 일치하지 않을 경우, Time 함수는 00:00:00.000000을 리턴한다. string이 NULL일 경우, Time 함수는 NULL을 리턴한다.

[용법]

시간 (00 to 23), 분 (00 to 59), 초 (00 to 59), 마이크로 초 (0 to 999999)의 조합도 올바른 시간 값이다.

[예제]

* 다음 문장은 What_Time을 NULL로 설정한다.

Time What_Time

string null_string

SetNull(null_string)

What_Time = Time(null_string)

* 다음 문장은 자정 45초 전으로 명시한 문자열 (23:59:15)을 시간 값으로 리턴한다.

Time("23:59:15")

* 다음 문장은 SingleLineEdit sle_Time_Received의 텍스트를 시간 값으로 변환한다.

Time(sle_Time_Received.Text)

[참고]

Time: Syntax 1

Time: Syntax 3

Time (DataWindow painter 함수)

Time PowerScript 함수: syntax 3

[설명]

시간, 분, 초, 마이크로 초의 결합으로 표현한 정수를 시간 값으로 변환한다.

[문법]

Time ( hour, minute, second {,microsecond} )

[Argument]

hour | 시간을 나타낸 정수 (00 에서 23)
minute | 분을 나타낸 정수 (0 to 59)
second | 초를 나타낸 정수 (0 to 59)
microsecond | (선택사항) 마이크로 초를 나타낸 정수 (0 to 999999)

[Return 값]

Time.

time 데이터 타입으로 시간을 리턴하고, argument가 올바르지 않을 경우 (값의 범위를 벗어난 경우) 00:00:00을 리턴한다. argument 값 중에 NULL이 있으면, Time 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 What_Time을 10:15:45:234로 설정하고 그 결과를 st_1에 문자열로 나타낸다. 기본 설정된 표시형식은 마이크로 초를 포함하지 않으므로, String 함수에 마이크로 초 형식을 명시한다.

Time What_Time

What_Time = Time(10, 15, 45, 234)

st_1.Text = String(What_Time, "hh:mm:ss:ffffff")

* 다음 문장은 What_Time에 10:15:45를 설정한다.

Time What_Time

What_Time = Time(10, 15, 45)

[참고]

Time: Syntax 1

Time: Syntax 2

Time (DataWindow painter 함수)


Timer PowerScript 함수

[설명]

명시한 간격으로 반복하여 윈도우내의 Timer 이벤트를 발생시킨다. Timer를 호출하였을 때, 타이머가 시작된다. 지정한 간격이 초과하면, PowerBuilder는 Timer 이벤트를 트리거하고 타이머를 초기화 한다.

[문법]

Timer ( interval {,windowname} )

[Argument]

interval | Timer 이벤트 간격을 원하는 초 (0 - 65). interval을 0으로 명시하면, Timer는 꺼지고 Timer 이벤트는 더 이상 트리거되지 않는다.
windowname | (선택사항) Timer 이벤트를 트리거하기 원하는 윈도우 이름. 이 윈도우는 반드시 오픈된 윈도우여야 한다. 윈도우를 명시하지 않으면, 현재 윈도우 내에서 Timer 이벤트가 발생한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Timer 함수는 NULL을 리턴한다.

[용법]

Timer 이벤트 내에서는 Timer 함수를 호출하지 말아야 한다. 타이머는 자동으로 재설정되고 Timer 이벤트가 다시 트리거되기 때문이다. 타이머를 정지하거나 그 간격을 변경하려면 다른 이벤트 스크립트에서 Timer 함수를 호출하도록 한다.

Microsoft Windows에서의 타이머

0 과 .055 (1/18 초) 사이의 수를 선택할 때, 타이머 이벤트는 .055 초에 근접하여 트리거된다, Windows 시스템이 허용하는 최상의 간격이 된다.

Microsoft Windows 3.x은 시스템 내에 16개 까지 타이머를 동시발생 시킬 수 있다.

[예제]

* 다음 문장은 활성화된 윈도우 내에 2초 간격으로 Timer 이벤트를 발생시킨다.

Timer(2)

* 다음 문장은 활성화된 윈도우내의 Timer 이벤트 발생을 중단시킨다.

Timer(0)

* 다음 문장은 윈도우 w_Train 내에서 0.5 초 간격으로 Timer 이벤트를 발생시킨다.

Open(w_Train)

Timer(0.5, w_Train)

* 다음 예제는 현재 시간을 StaticText control내에 나타낸다. 윈도우의 Open 이벤트 스크립트에서 Timer 함수를 호출하여 타이머를 시작한다. Timer 이벤트의 스크립트는 시간을 다시 표시한다.

윈도우의 Open 이벤트 스크립트는 다음과 같다:

st_time.Text = String(Now(), "hh:mm")

Timer(60)

윈도우의 Timer 이벤트는 1분 간격으로 트리거되어 현재시간을 StaticText st_time에 나타낸다.

st_time.Text = String(Now(), "hh:mm")

[참고]

Idle


Today PowerScript 함수

[설명]

시스템 날짜, 경우에 따라서는, 시스템 시간을 구한다.

[문법]

Today ( )

[Return 값]

Date.

현재 시스템 날짜를 리턴한다.

[용법]

Today 함수의 데이터 타입이 date라도, 현재 시간을 리턴할 수 있다. 이는 Today가 다른 함수의 argument로 사용되고 그 argument가 서로 다른 데이터 타입들을 허락할 때 발생한다.

예를들어, String 함수의 argument로 Today 함수를 호출한다면, String 함수에서 날짜+시간 형식을 명시하여 날짜와 시간을 모두 나타낼 수 있다. 두 번째 예로, SetItem 함수의 argument로 Today 함수를 호출하고 대상 칼럼의 데이터 타입이 DateTime이라면, 날짜와 시간을 모두 DataWindow에 할당할 수 있다.

[예제]

* 다음 문장은 현재 시스템 날짜를 리턴한다.

Today( )

* 다음 문장은 현재 시스템이 April 15, 1998일 경우 어떤 문장을 실행한다.

IF Today( ) < 1998-04-15 THEN ...

* 다음 문장은 윈도우 모서리에 위치한 StaticText st_date에 현재 날짜를 표시한다.

st_date.Text = String(Today( ), "m/d/yy")

* 다음 문장은 StaticText st_date에 현재 날짜와 시간을 나타낸다.

st_date.Text = String(Today( ), "m/d/yy hh:mm")

[참고]

Now

Today (DataWindow painter 함수)


Top PowerScript 함수

[설명]

listbox에 첫 번째로 보이는 아이템의 인덱스 번호를 구한다. Top 함수는 사용자가 스크롤을 어떻게 할 것인가 결정할 수 있도록 해준다.

[적용]

ListBox 와 PictureListBox controls

[문법]

listboxname.Top ( )

[Argument]

listboxname

리스트에서 첫 번째로 보이는 아이템 번호를 원하는 ListBox 또는PictureListBox의 이름

[Return 값]

Integer.

listboxname내에 첫 번째로 보이는 아이템의 인덱스를 리턴한다. 에러가 발생하면 Top 함수는 -1을 리턴한다. listboxname이 NULL이면, Top 함수는 NULL을 리턴한다.

[용법]

리스트 아이템의 인덱스는 현재 아이템 내에 얼마나 보이는지에 관계없이 전체 아이템내에서의 위치이다.

[예제]

* lb_Contacts내에서 15번째 아이템이 리스트의 첫 번째로 스크롤 되었다면, 다음 예제는 Num을 15로 설정한다.

integer Num

Num = lb_Contacts.Top( )

* lb_Contacts의 리스트를 스크롤하지 않안T다면, Num은 1로 설정된다.

integer Num

Num = lb_Contacts.Top( )

* lb_Contacts에서 리스트내의 첫 번째 아이템이 현재 선택된 아이템이 아니라면, 다음 문장은 현재 선택된 아이템을 제일 위로 스크롤한다.

integer Num

Num = lb_Contacts.SelectedIndex( )

IF lb_Contacts.Top( ) <> Num THEN lb_contacts.SetTop(Num)

[참고]

SelectedIndex

SetTop


TotalColumns PowerScript 함수

[설명]

ListView control내의 칼럼 수를 구한다.

[적용]

ListView controls

[문법]

listviewname.TotalColumns ( )

[Argument]

listviewname

칼럼 수를 구하려는 ListView control의 이름

[Return 값]

Integer.

처리에 성공하면 칼럼 수를 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

ListView control을 report view에 설정할 때 사용한다.

[예제]

* 다음 예제는 SingleLineEdit내에 List View report view안의 칼럼 수를 나타낸다.

int li_cols

li_cols = lv_list.TotalColumns()

sle_info.text = "Total columns = " + string(li_cols)

[참고]

TotalItems

TotalSelected


TotalItems PowerScript 함수

[설명]

list control내의 전체 아이템 수를 구한다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox, ListView controls

[문법]

listcontrolname.TotalItems ( )

[Argument]

listcontrolname

아이템의 전체 수를 구하려는 ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox, 또는 ListView의 이름

[Return 값]

Integer.

listcontrolname내의 전체 아이템 수를 리턴한다. listcontrolname이 아이템을 포함하고 있지 않으면, TotalItems 함수는 0을 리턴한다. 에러가 발생하면 -1을 리턴하고, listcontrolname이NULL이면 NULL을 리턴한다.

[예제]

* lb_Actions가 5개의 아이템을 가지고있다면, 다음 예제는 Total에 5를 설정한다.

integer Total

Total = lbx_Actions.TotalItems( )

* 다음 FOR 루프는 lb_Actions내의 각 아이템에 관하여 실행된다.

integer Total, n

Total = lb_Actions.TotalItems( )

FOR n = 1 to Total

... // 처리루틴

NEXT

[참고]

TotalSelected


TotalSelected PowerScript 함수

[설명]

list control 내에 선택된 아이템의 수를 구한다.

[적용]

ListBox, PictureListBox, ListView controls

[문법]

listcontrolname.TotalSelected ( )

[Argument]

listcontrolname

선택된 아이템의 수를 구하려는 ListBox, PictureListBox, 또는 ListView의 이름

[Return 값]

Integer.

listcontrolname내에 선택되어있는 아이템의 수를 리턴한다. listcontrolname내에 아이템이 선택되어있지 않을 경우, TotalSelected 함수는 0을 리턴하고, 에러가 발생하면 -1을 리턴한다. listcontrolname이 NULL이면, TotalSelected 함수는 NULL을 리턴한다.

[용법]

TotalSelected 함수는 listcontrolname의 MultiSelect property가 TRUE로 설정되어있을 경우에만 작업된다.

[예제]

* lb_Actions내에 3개의 아이템이 선택되어있다면, SelectedTotal을 3으로 설정한다.

integer SelectedTotal

SelectedTotal = lb_Actions.TotalSelected( )

* 다음 문장은 lb_Actions내의 SelectionChanged 이벤트 스크립트로, 3개 이상의 아이템을 선택하려 하면 MessageBox를 나타낸다.

IF lb_Actions.TotalSelected( ) > 3 THEN

MessageBox("Warning", "You can only select 3 items!")

ELSE

... // 다른 처리루틴

END IF

[참고]

TotalItems


TriggerEvent PowerScript 함수

[설명]

명시한 object와 연관된 이벤트를 트리거하여 그 이벤트에 관한 스크립트를 즉시 실행한다.

[적용]

모든 object

[문법]

objectname.TriggerEvent ( event {,word, long} )

[Argument]

objectname | PowerBuilder object의 이름 또는 그와 연관된 이벤트를 가지고있는 control의 이름
event | PowerBuilder이벤트 (예를들어, Clicked!, Modified!, DoubleClicked! 등)를 나타내는 TrigEvent 열거형 데이터 타입의 값 또는 이벤트 이름을 갖고있는 문자열. 이벤트는 반드시 objectname에 적합한 이벤트여야 하고 objectname내에 그 이벤트에 관한 스크립트가 존재하고 있어야 한다.
word | (선택사항) 시스템 Message object의 WordParm property내에 저장될 long 타입의 값. word 값은 필요치 않고 long 값만 명시하고자 할 때에는, 0을 입력한다. (cross-platform 호환을 위하여, WordParm 과 LongParm 모두 long 타입의 값을 갖는다)
long | (선택사항) 시스템 Message object의 LongParm property내에 저장할 long 타입의 값 또는 문자열. 문자열을 명시할 때, String 함수로 처리할 수 있도록 문자열의 포인터가 LongParm property에 저장된다. (용법 참조)

[Return 값]

Integer.

처리에 성공하면 1을 리턴하면서 이벤트 스크립트를 실행하고, objectname에 관한 이벤트가 올바르지 않거나 objectname내에 이벤트에 관한 스크립트가 존재하지 않으면 -1을 리턴한다. argument 값중에 NULL이 있으면, TriggerEvent 함수는 NULL을 리턴한다.

[용법]

TrigEvent 열거형 데이터 타입 값 대신 이벤트 이름을 명시하면, 따옴표로 둘러싸야 한다.

Tip

TriggerEvent 함수의 성공여부를 확인하기 위하여 리턴 코드를 체크하고, 그 결과에 따라, 적절한 처리를 하는 것이 바람직하다.

word 와 long argument를 이용하여 이벤트 스크립트에 정보를 통과시킬 수 있다. 이 정보는 Message object에 저장된다. 그 정보에 접근하기 위하여 스크립트내에서 Message object의 WordParm 과 LongParm을 참조할 수 있다.

long으로 문자열을 명시하면, 형식 파라미터로 "address" 키워드를 가진 String 함수를 이용하여 트리거된 이벤트내에서 그 정보에 접근할 수 있다. 예를들면, 다음과 같은 방법으로 이벤트 스크립트를 시작할 수 있을 것이다.

string PassedString

PassedString = String(Message.LongParm, "address")

PowerBuilder에 정의되어있지않은 시스템 이벤트를 트리거하려면, PostEvent 와 TriggerEvent 대신 Post 또는 Send를 사용한다. 아래와 같이, Send가 PowerBuilder 이벤트를 트리거하는 메시지를 보낼 수 있을지라도, 사용자는 반드시 특정 메시지에 관한 코드를 알고 있어야 한다. 따라서, 원하는 이벤트를 트리거하는 PowerBuilder 함수를 사용하는 것이 더 손쉬운 방법이다.

동일한 문법

다음 두 문장은 모두 CheckBox cb_OK를 클릭하는 문장이다.

Send 함수를 이용하는 경우:

Send(Handle(Parent), 273, 0, Long(Handle(cb_OK), 0))

TriggerEvent 함수를 이용하는 경우

cb_OK.TriggerEvent(Clicked!)

[예제]

* 다음 문장은 CommandButton cb_OK내의 Clicked 이벤트 스크립트를 즉시 실행한다.

cb_OK.TriggerEvent(Clicked!)

* 다음 문장은 parent 윈도우내에서 사용자가 정의한 cb_exit_request 이벤트 스크립트를 실행한다.

Parent.TriggerEvent("cb_exit_request")

* 다음 문장은 메뉴 m_Appl상의 m_File내의 Clicked 이벤트에 관한 스크립트를 실행한다.

m_Appl.m_File.TriggerEvent(Clicked!)

[참고]

Post

PostEvent

Send


Trim PowerScript 함수

[설명]

문자열 전/후의 공란을 제거한다.

[문법]

Trim ( string )

[Argument]

string

전/후의 공란을 제거하려는 문자열

[Return 값]

String.

처리에 성공하면 전/후 공란을 제거한 문자열을 리턴하고 에러가 발생하면 빈 문자열 ("")을 리턴한다. string이 NULL이면, Trim 함수는 NULL을 리턴한다.

[용법]

Trim 함수는 데이터를 새로 입력하기 전(또는 후)에 문자열 공란을 제거하는데 유용하다.

[예제]

* 다음 문장은 BABE RUTH를 리턴한다.

Trim(" BABE RUTH ")

* 다음 예제는 SingleLineEdit sle_emp_fname에 입력한 값의 전,후 공란을 제거하고 emp_fname에 그 값을 저장한다.

string emp_fname

emp_fname = Trim(sle_emp_fname.Text)

[참고]

LeftTrim

RightTrim

Trim(DataWindow painter 함수)


Truncate PowerScript 함수

[설명]

명시한 소수 자리 수 이후를 잘라낸다.

[문법]

Truncate ( x, n )

[Argument]

x | 잘라내려는 수
n | 잘라내려는 수의 소수 자리수 ( 0 부터 18)

[Return 값]

Decimal.

처리에 성공하면 잘라낸 결과를 리턴하고 실패하거나 argument 값 중에 NULL이 있으면 NULL을 리턴한다.

[예제]

* 다음 문장은 9.2를 리턴한다.

Truncate(9.22, 1)

Truncate(9.28, 1)

* 다음 문장은 9를 리턴한다.

Truncate(9.9, 0)

* 다음 문장은 -9.2를 리턴한다.

Truncate(-9.29, 1)

[참고]

Ceiling

Int

Round

Truncate (DataWindow painter 함수)


TypeOf PowerScript 함수

[설명]

object 또는 control의 타입을 Object 열거형 데이터 타입의 값으로 나타낸다.

[적용]

모든 object

[문법]

objectname.TypeOf ( )

[Argument]

objectname

타입을 알고자 하는 object나 control의 이름

[Return 값]

Object 열거형 데이터 타입.

objectname의 타입을 리턴한다. objectname이 NULL이면, TypeOf 함수는 NULL을 리턴한다.

[용법]

선택하였거나 드래그한 control의 타입을 알고자할 때 TypeOf 함수를 사용한다.

[예제]

* dw_Customer가 DataWindow control이라면, 다음 문장은 DataWindow!를 리턴한다.

dw_Customer.Typeof( )

* 다음 문장은 w_dept 윈도우 Control array property에서 처음부터 5개 control을 찾는다. control이 CheckBox일 경우 처리 루틴을 수행한다.

integer n

FOR n = 1 to 5

IF w_dept.Control[n].TypeOf( ) = CheckBox! THEN

... // 처리루틴

END IF

NEXT

* 다음 루프는 윈도우의 Control array property내의 각 object 타입을 winobject 배열에 저장한다.

object winobjecttype[]

long ll_count

FOR ll_count = 1 to UpperBound(Control[])

winobjecttype[ll_count] = TypeOf(Control[ll_count])

NEXT

* Message object내의 PowerObjectParm을 경유하여 통과된 control의 타입을 알지 못한다면, 다음 예제는 통과된 object를 메모리변수 graphicobject에 할당하고, 모든 control 타입의 조상, 타입을 object 타입의 메모리 변수에 할당한다. CHOOSE CASE 문장은 사용자가 다루려는 각 control의 타입에 따른 처리 루틴을 명시할 수 있다. 다음 코드는 OpenWithParm으로 오픈된 윈도우에 관한 Open 이벤트 스크립트의 일부이다.

graphicobject stp_obj

object type_obj

stp_obj = Message.PowerObjectParm

type_obj = stp_obj.TypeOf( )

CHOOSE CASE type_obj

CASE DataWindow!

MessageBox("The object"," Is a datawindow")

CASE SingleLineEdit!

MessageBox("The object"," Is a sle")

. . . // 원하는 object 타입을 추가로 명시한다

CASE ELSE

MessageBox("The object"," Is irrelevant!")

END CHOOSE

[참고]

ClassName


Uncheck PowerScript 함수

[설명]

dropdown 이나 cascading 메뉴 아이템의 checkmark를 제거하고 다음 아이템으로 진행한 다음 그 아이템의 Checked property를 FALSE로 설정한다.

[적용]

Menu objects

[문법]

menuname.Uncheck ( )

[Argument]

menuname

checkmark를 제거하려는 메뉴 아이템의 이름. 메뉴는 반드시 dropdown 이나 cascading 메뉴여야 하고, 아이템은 메뉴 바 상에 위치하지 않아야 한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. menuname이 NULL이면, Uncheck 함수는 NULL을 리턴한다.

[용법]

checkmark는 메뉴 옵션이 current라는 것을 나타내고 선택을 통하여 그 옵션을 on 과 off 할 수 있다. 예를들어, Window painter의 Design 메뉴에서, checkmark는 grid가 on 일 때 다음 Grid를 나타낸다.

사용자는 아이템의 Clicked 스크립트에서 Check 함수를 이용하여 옵션을 on 시킬 수 있고, Uncheck 함수를 이용하여 check를 제거할 수 있다.

동일한 문법

Uncheck 함수를 사용하는 대시 Checked property를 이용하여 설정할 수 있다.

menuname.Checked = FALSE

다음 문장은 모두 동일한 결과를 낳는다:

m_appl.m_view.m_grid.Checked = FALSE

m_appl.m_view.m_grid.Uncheck( )

[예제]

* 다음 문장은 메뉴바 m_appl 상에있는 dropdown 메뉴 m_view의 m_grid 옵션에 있는 checkmark를 제거한다

m_appl.m_view.m_grid.Uncheck( )

* 다음 예제는 메뉴바 m_appl 상에있는 dropdown 메뉴 m_view의 m_grid 옵션의 체크 여부를 알아내고, 현재 체크되어 있다면 체크를 제거하고, 체크되어있지 않으면 체크표시를 한다.

IF m_appl.m_view.m_grid.Checked = TRUE THEN

m_appl.m_view.m_grid.Uncheck( )

ELSE

m_appl.m_view.m_grid.Check( )

END IF

[참고]

Check


Undo PowerScript 함수

[설명]

편집 control에서의 마지막 편집을 취소하고, 마지막 변경 직전의 내용으로 다시 나타낸다.

[적용]

DataWindow, EditMask, MultiLineEdit, RichTextEdit, SingleLineEdit controls

[문법]

editname.Undo ( )

[Argument]

editname

마지막 편집을 취소 (복구)하려는 DataWindow control, EditMask, MultiLineEdit, RichTextEdit, 또는 SingleLineEdit의 이름. DataWindow control의 경우는 현재의 row 와 column상에 있는 편집 control내의 마지막 편집을 복구한다.

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. editname이 NULL이면, Undo 함수는 NULL을 리턴한다.

[용법]

마지막 행동이 취소되었는지 여부를 알려면, CanUndo 함수를 호출한다.

[예제]

* 다음 문장은 MultiLineEdit mle_Contact에서의 마지막 편집을 복구한다.

mle_Contact.Undo( )

* 다음 문장은 MultiLineEdit mle_Contact내의 마지막 편집을 복구할 수 있는지 체크하고, 복구가 가능하다면 복구 시킨다.

IF mle_Contact.CanUndo( ) THEN mle_Contact.Undo( )

[참고]

CanUndo


UnitsToPixels PowerScript 함수

[설명]

PowerBuilder 단위를 pixel로 변환한다. pixel은 면적이 아니므로, 수평 또는 수직 중 어는 방향으로 변환할 것인지를 명시하여야 한다.

[문법]

UnitsToPixels ( units, type )

[Argument]

units | pixel로 변환하려는 PowerBuilder 단위의 수 (integer)
type | 어떻게 변환할 것인지를 나타내는 ConvertType 열거형 데이터 타입의 값
 | * XUnitsToPixels! | 수평 방향으로 변환한다
 | * YUnitsToPixels! | 수직 방향으로 변환한다

[Return 값]

Integer.

처리에 성공하면 변환된 값을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, UnitsToPixels 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 350 수직방향 PowerBuilder 단위를 pixel로 변환하고 변환된 값을 설정한다.

integer Value

Value = UnitsToPixels(350, YUnitsToPixels!)

[참고]

PixelsToUnit


Update PowerScript 함수

[설명]

DataWindow control 또는 DataStore로 변경한 데이터베이스를 갱신한다. Update 함수는 데이터베이스를 갱신하기 전에 현재 row 와 column에 관하여 AcceptText 함수를 호출할 수도 있다.

[적용]

DataWindow controls, DataStore objects, child DataWindows

[문법]

dwcontrol.Update ( {accept {,resetflag} } )

[Argument]

dwcontrol | 데이터베이스를 갱신하는데 사용할 정보를 가지고있는 DataWindow control, DataStore, 또는 child DataWindow의 이름
accept | (선택사항) 갱신을 수행하기에 앞서 DataWindow control 또는 DataStore가 자동으로 AcceptText를 수행할 것인지 여부를 명시하는 boolean 값:
 | * TRUE | (기본설정값) AcceptText를 수행한다. 데이터 평가에 실패하면 갱신이 취소된다
 | * FALSE | AcceptText를 수행하지 않는다
resetflag | (선택사항) dwcontrol이 자동으로 flag를 재설정할 것인지 여부를 명시한 boolean 값:
 | * TRUE | (기본설정값) flag를 재설정한다
 | * FALSE | flag를 재설정하지 않는다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, Update 함수는 NULL을 리턴한다.

[용법]

Update 함수를 실행하기 전에 데이터베이스와의 접속을 명시하기 위하여 반드시 SetTrans 또는 SetTransObject 함수를 사용하여야 한다. SetTransObject 함수를 사용할 때에는, 갱신을 종료하기 위하여 SQL COMMIT 또는 ROLLBACK 문장을 포함하도록 한다.

Tip

Update 함수를 호출한 이후에 성공/실패를 체크하는 것이 바람직하다. 추가로 Update 함수의 리턴 값을 체크 하려면, 적어도 1개 이상의 row가 변경되었는지를 확실히 하기 위하여 transaction object의 SQLNRows property를 체크 하도록 한다.

기본적으로, Update 함수는 갱신을 성공적으로 완료한 이후에 update falg를 재설정한다. 그러나, 다른 평가를 수행하고 변경사항을 받아들일 때까지 flag의 재설정(reset)을 방지할 수 있다. 갱신이 안전하게 완료되었을 때, 아이템이 더 이상 수정 표시를 가지고있지 않도록 flag를 지우기 위하여 ResetUpdate 함수를 호출할 수 있다.

resetflag가 FALSE일 때에는 SetTransObject를 사용하라

전형적으로 resetflag argument가 FALSE이면서 갱신을 시도할 때에는 DataWindow control 이나 DataStore에 관한 transaction object를 명시하기 위하여 SetTrans대신 SetTransObject 함수를 사용한다. SetTransObject만이 변경을 받아들일지 여부를 제어하도록 해준다.

DataWindow control 이나 DataStore에서 여러 개의 테이블을 갱신하려 한다면, 각 테이블내의 column에 관한 Update property를 변경하기 위하여 Modify 함수를 사용할 수 있다. row와 column의 상태 flag를 유지시키려면, resetflag argument를 FALSE로 설정한다. 갱신이 동일한 DataWindow control 또는 DataStore에서 모두 발생하기 때문에, 모든 테이블이 갱신될 때까지는 flag가 지워지는 것을 허락할 수 없다. 모든 갱신이 성공적으로 수행되고 commit되면, ResetUpdate를 호출하여 DataWindow내에서 변경된 flag를 지울 수 있다. 이러한 기법의 예는, Modify 함수를 참조한다 .

한 transaction의 일부로써 여러 개의 DataWindow controls 이나 DataStores를 갱신한다면, resetflag argument를 FALSE로 설정한다. 이것은 어떤 갱신에 실패하였을 경우 갱신된 row를 유실하는 것으로부터 방지할 수 있도록 해준다. 원래 상태로 되돌리기 위하여 rollback을 한 후, 갱신을 다시 시도할 수 있다. 모든 DataWindows가 성공적으로 갱신되면, transaction을 끝내기 위하여 COMMIT을 사용하고 DataWindow의 상태 flag를 재설정 하기 위하여 ResetUpdate 함수를 사용한다.

resetflag argument를 FALSE로 설정하고 Update 함수를 호출한 다음 ResetUpdate를 호출하지 않으면, 다음 번에 사용자가 Update를 호출할 때 동일한 SQL 문장을 다시 시도하게 될 것이다.

주의

ItemChanged 이벤트에서 Update 함수를 호출한다면, 무한 루프와 stack 오류를 방지하기 위하여 accept argument를 반드시 FALSE로 설정하여야 한다. AcceptText 함수는 ItemChanged 이벤트를 트리거하기 때문에, 이 이벤트내에서 AcceptText 함수를 호출하면 않된다 (AcceptText 함수 참조).

ItemChanged 이벤트에서 Update 함수를 호출하면, 아이템의 새로 입력한 값이 갱신되지 않고, 이전 값이 데이터베이스 내에 갱신된다. 편집 control에 새로 입력한 값은 아직 control에 평가중인 상태로 남아있고 ItemChanged 이벤트가 성공적으로 수행될 때까지 그 아이템의 값이 되지 않는다. ItemChanged내에서 새로 입력한 값을 갱신하고자 할 때에는, SetItem 함수를 먼저 사용하도록 한다.

[Events]

Update 함수는 다음 이벤트들을 트리거한다:

DBError

SQLPreview

UpdateEnd

UpdateStart

AcceptText를 수행하고나면, 다음 이벤트들을 트리거한다:

ItemChanged

ItemError

[예제]

* 다음 예제는 데이터베이스에 접속하기 위하여 DataWindow control에 관한 transaction object를 SetTransObject로 명시하고, dw_employee내에 변경된 내용을 데이터베이스에 갱신한다. 기본적으로, AcceptText는 현재 row와 column 상에 있는 편집 control 내의 데이터에 관하여 수행되고 상태 flag를 재설정한다.

CONNECT USING SQLCA;

dw_employee.SetTransObject(SQLCA)

. . . // 처리 루틴

dw_employee.Update( )

* 다음 예제는 데이터베이스에 접속하기 위하여 DataWindow control에 관한 transaction object를 SetTransObject로 명시하고, dw_employee내에 변경된 내용을 데이터베이스에 갱신한다. 갱신이 이루어지면 상태 flag를 재설정하지만 데이터베이스가 갱신되기 전에 AcceptText를 수행하지 않는다.

CONNECT USING SQLCA;

dw_employee.SetTransObject(SQLCA)

. . . // 처리 루틴

dw_Employee.Update(FALSE, TRUE)

* 다음 예제는 데이터베이스에 접속하기 위하여 DataWindow control에 관한 transaction object를 SetTransObject로 명시하고, dw_employee내에 변경된 내용을 데이터베이스에 갱신한다. Update 함수가 실행된 후, 리턴 코드를 체크하여 갱신의 성공 여부에 따라 COMMIT 또는 ROLLBACK 문장을 실행한다.

integer rtn

CONNECT USING SQLCA;

dw_employee.SetTransObject(SQLCA)

rtn = dw_employee.Update( )

IF rtn = 1 AND SQLCA.SQLNRows > 0 THEN

COMMIT USING SQLCA;

ELSE

ROLLBACK USING SQLCA;

END IF

[참고]

AcceptText

Modify

ResetUpdate

Print

SaveAs

SetTrans

SetTransObject


UpdateLinksDialog PowerScript 함수

[설명]

OLE container에 링크된 파일을 찾는다. 링크된 파일을 찾지 못하면, 대화상자가 나타나서 링크된 파일을 찾기 위한 두 번째 대화상자를 이끌어내거나 링크를 변경할 수 있도록 해준다.

[적용]

OLE 2.0 controls 와 OLE DWObjects (DataWindow object내의 object는 DataWindow control 내에 있는 것이다)

[문법]

objectref.UpdateLinksDialog ( )

[Argument]

objectref

링크를 설치하기 원하는 object를 포함한 OLE 2.0 control 또는 DataWindow control내의 OLE DWObject의 이름. DWObject의 이름은 다음과 같은 문법을 갖는다:

==> dwcontrol.Object.dwobjectname

[Return 값]

Integer.

처리에 성공하면 0을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

container의 LinkUpdateOptions property가 automatic update로 설정되어 있으면, PowerBuilder는 OLE container가 생성되고 object가 load 되었을 때 (예를들어, 윈도우가 오픈 되었을 때) 갱신을 시도한다. 링크된 파일을 발견하지 못하면, 메시지를 사용자에게 나타내고 그 링크를 편집(예를들어, 링크해제 또는 연결된 파일의 검색)을 할 수 있도록 해준다.

UpdateLinksDialog 와 LinkTo 모두 링크된 파일이 제거되었을 경우 와 LinkUpdateOptions property가 manual update로 설정되어 있을 때 유용하게 사용된다.

UpdateLinksDialog 이 함수를 호출하면 automatic update에 관한 것을 발생시키는 것과 동일한 처리를 트리거한다. PowerBuilder는 파일을 발견하려고 시도하고 발견에 실패하면 사용자에게 편집 및 링크할 수 있는 기회를 제공한다.

LinkTo 사용자를 포함하지 않고 링크를 설치하려면, LinkTo 함수를 호출한다. 이 함수의 argument는 파일과 링크하려는 항목을 명시한다. 링크된 파일을 선택하기 위하여 자신만의 대화상자를 나타내기 원한다면, 사용자가 명시한 정보를 택하고 LinkTo 함수를 호출할 수 있다.

OLE container가 embedded object를 가지고 있다면, UpdateLinksDialog를 호출하여도 아무런 효과가 없다. 링크가 해제되었기 때문에 0을 리턴한다.

링크 갱신에 관한 자세한 정보는, Application Techniques를 참조한다.

[예제]

* 다음 예제는 OLE 2.0 control ole_report에 관하여 링크된 파일을 찾는다. 파일을 찾지 못하면, 사용자에게 Links 대화상자를 나타내어 편집과 링크를 수행할 수 있도록 한다.

ole_report.UpdateLinksDialog( )

* 다음 예제는 DataWindow control dw_customer_data에 있는 OLE DWObject ole_word에 관하여 링크된 파일을 찾는다. 파일을 찾지 못하면, Links 대화상자를 이용하여 편집과 링크를 수행하도록 한다.

dw_customer_data.Object.ole_word.UpdateLinksDialog()

[참고]

InsertObject

LinkTo


Upper PowerScript 함수

[설명]

문자열내의 모든 문자를 대문자로 변환한다.

[문법]

Upper ( string )

[Argument]

string

대문자로 변환하려는 문자열

[Return 값]

String.

처리에 성공하면 대문자로 변환된 문자열을 리턴하고 에러가 발생하면 빈 문자열 ("")을 리턴한다. string이 NULL이면, Upper 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 BABE RUTH를 리턴한다.

Upper("Babe Ruth")

[참고]

Lower

Upper (DataWindow painter 함수)


UpperBound PowerScript 함수

[설명]

배열 차원의 상한 값을 구한다.

[문법]

UpperBound ( array {,n} )

[Argument]

array | 차원의 상한 값을 구하려는 배열 이름
n | (선택사항) 상한 값을 구하려는 차원의 수. 기본설정 값은 1이다

[Return 값]

Long.

array의 n차원의 상한 값을 리턴한다. n이 배열 차원의 수보다 크면, UpperBound 함수는 -1을 리턴한다. argument 값 중에 NULL이 있으면, UpperBound 함수는 NULL을 리턴한다.

[용법]

가변-크기 배열의 경우, 배열에 값을 할당할 때 그 배열에 관한 메모리를 할당한다. UpperBound 함수는 현재 스크립트내에서 배열에 관하여 정의된 가장 큰 값을 리턴한다. 값을 할당하기 전에, 하한 값은 0이고 상한 값은 0이다. 고정-크기 배열의 경우, 배열이 선언될 때 그 크기가 결정된다. UpperBound는 항상 선언된 크기를 리턴한다.

[예제]

* 다음 문장은 고정-크기 배열과 가변-크기 배열에 관하여 메모리에 할당되기 전,후에 UpperBound 값을 구하는 방법을 나타낸 것이다.

integer a[5]

UpperBound(a) // Returns 5

UpperBound(a,1) // Returns 5

UpperBound(a,2) // Returns -1; a는 2차원 배열이 아니다

integer b[10,20]

UpperBound(b,1) // Returns 10

UpperBound(b,2) // Returns 20

integer c[ ]

UpperBound(c) // Returns 0; 메모리에 할당되지 않았다

c[50] = 900

UpperBound(c) // Returns 50

c[60] = 800

UpperBound(c) // Returns 60

c[60] = 800

c[50] = 700

UpperBound(c) // Returns 60

integer d[10 to 50]

UpperBound(d) // Returns 50

* 다음 예제는 File 메뉴 바 아이템의 위치를 결정하고, Update 아이템을 가진 cascading 메뉴일 경우 Update 아이템을 사용할 수 없는 상태로 한다. 다음 스크립트는 윈도우의 control에 관한 스크립트 일수 있다.

다음 코드는 다음과 같은 구조를 가지고 있다: Parent.Menuid.Item.

* Parent | 스크립트를 실행하는 contlrol의 parent 윈도우
* Menuid | 윈도우와 연관된 메뉴를 나타내는 값을 가진 윈도우의 property
* Item | 아이템의 배열인 메뉴의 property. 아이템이 dropdown이나 cascading 메뉴라면, 즉 자신이 아이템 배열이라면, 4번째 파트가 될 수 있다.

스크립트는 다음과 같다

long i, k, tot1, tot2

// 메뉴바의 아이템 수를 경정한다

tot1 = UpperBound(Parent.Menuid.Item)

FOR i = 1 to tot1

// File 아이템의 위치를 찾는다

IF Parent.Menuid.Item[i].text = "File" THEN

MessageBox("Position", "File is in Position "+ string(i))

tot2 = UpperBound(Parent.Menuid.Item[i].Item)

FOR k = 1 to tot2

// File 내에있는 Update 아이템을 찾는다

IF Parent.Menuid.Item[i].Item[k].Text = &

"Update" THEN

// Update 메뉴 옵션을 사용불가능 상태로 한다

Parent.Menuid.Item[i].Item[k].Disable( )

EXIT

END IF

NEXT

EXIT

END IF

NEXT

[참고]

LowerBound


WorkSpaceHeight PowerScript 함수

[설명]

명시한 윈도우의 경계 내에서 작업공간의 높이를 구한다.

[적용]

Window objects

[문법]

windowname.WorkSpaceHeight ( )

[Argument]

windowname

작업 영역의 높이를 구하려는 윈도우 이름

[Return 값]

Integer.

windowname내에서 작업영역의 높이를 PowerBuilder 단위로 리턴한다. 에러가 발생하면 WorkSpaceHeight는 -1을 리턴하고, WorkSpaceHeight가 NULL이면 NULL을 리턴한다.

[용법]

작업공간의 높이에는 프레임의 두께, 타이틀 바, 메뉴 바, 수평 스크롤 바 및 아래, 위에 있는 모든 툴 바가 포함되지 않는다. 단, MicroHelp 상태 바는 포함된다.

작업공간의 폭은 프레임의 두께, 수직 스크롤바 및 좌,우에 있는 모든 툴 바를 포함하지 않는다.

[예제]

* 다음 예제는 w_employee 윈도우의 작업공간 영역의 높이를 리턴한다.

Integer Height

Height = W_employee.WorkSpaceHeight( )

* 다음 예제는 MDI frame 윈도우 (control 상에 위치시킨 frame 윈도우)의 클라이언트 영역의 크기를 재 조절한다. P_logo는 윈도우 상에 놓여진 control이다. 다음은 프레임의 Resize 이벤트 스크립트에 속한 것이다.

integer lw, lh

// 현재 작업공간을 측정한다

lw = This.WorkSpaceWidth( )

lh = This.WorkSpaceHeight( )

// 높이에서 logo와 MicroHelp를 뺀다

lh = lh - (p_logo.Y + p_logo.Height)

lh = lh - MDI_1.MicroHelpHeight

// frame의 상단 (메뉴 바 또는 툴 바 아래 영역)과

// 작업공간 상단 사이의 거리를 더한다

lh = lh + This.WorkspaceY( )

// 클라이언트 영역을 picture control 아래로 이동한다

MDI_1.Move(This.WorkspaceX( ), p_logo.Y + p_logo.Height)

// 계산된 값으로 클라이언트 영역의 크기를 재 조절한다

mdi_1.Resize(lw, lh)

[참고]

PoinerX

PointerY

WorkSpaceWidth

WorkSpaceX

WorkSpaceY


WorkSpaceWidth PowerScript 함수

[설명]

명시한 윈도우의 경계 내에서 작업공간의 폭을 구한다.

[적용]

Window objects

[문법]

windowname.WorkSpaceWidth ( )

[Argument]

windowname

작업 영역의 폭을 구하려는 윈도우 이름

[Return 값]

Integer.

windowname내에서 작업영역의 폭을 PowerBuilder 단위로 리턴한다. 에러가 발생하면 WorkSpaceWidth는 -1을 리턴하고, WorkSpaceWidth가 NULL이면 NULL을 리턴한다.

[용법]

작업공간의 높이에는 프레임의 두께, 타이틀 바, 메뉴 바, 수평 스크롤바 및 아래, 위에 있는 모든 툴바가 포함되지 않는다. 단, MicroHelp 상태 바는 포함된다.

작업공간의 폭은 프레임의 두께, 수직 스크롤바 및 좌,우에 있는 모든 툴바를 포함하지 않는다.

[예제]

* 다음 예제는 w_employee 윈도우의 작업공간 폭을 리턴한다.

integer Width

Width = w_employee.WorkSpaceWidth( )

[참고]

PoinerX

PointerY

WorkSpaceHeight

WorkSpaceX

WorkSpaceY


WorkSpaceX PowerScript 함수

[설명]

윈도우 작업공간의 좌측면에서 스크린 좌측면과의 거리를 구한다.

MDI frame의 경우, WorkSpaceX는 frame 윈도우의 좌측면과 작업공간의 좌측면과의 거리를 구한다.

[적용]

Window objects

[문법]

windowname.WorkSpaceX ( )

[Argument]

windowname

윈도우 작업공간의 좌측면에서 스크린 좌측면과의 거리를 구하려는 윈도우 이름

[Return 값]

Integer.

windowname작업공간의 좌측면에서 스크린 좌측면과의 거리를 PowerBuilder 단위로 리턴한다. 에러가 발생하면 WorkSpaceX 함수는 -1을 리턴하고, windowname가 NULL이면 NULL을 리턴한다.

[용법]

작업공간 영역은 윈도우의 양 측면 (frame의 두께 또는 수직 스크롤 바의 두께 등은 제외) 과 윈도우의 상단 과 하단 (frame의 두께 또는 타이틀 바, 메뉴 바, 수평 스크롤바 등은 제외) 사이의 거리이다.

[예제]

* 다음 예제는 스크린의 좌측면으로부터 w_employee 윈도우 작업영역 좌측면까지의 거리를 리턴한다.

integer workx

workx = w_employee.WorkSpaceX( )

[참고]

PoinerX

PointerY

WorkSpaceHeight

WorkSpaceWidth

WorkSpaceY


WorkSpaceY PowerScript 함수

[설명]

윈도우 작업공간의 상단과 스크린 상단사이의 거리를 구한다.

MDI frame의 경우, WorkSpaceY는 frame 윈도우의 상단과 작업공간 영역 상단 사이의 거리를 구한다. frame 윈도우의 "top"은 메뉴 바 또는 툴 바의 하단에 해당한다.

[적용]

Window objects

[문법]

windowname.WorkSpaceY ( )

[Argument]

windowname

윈도우 작업공간의 상단에서 스크린 상단과의 거리를 구하려는 윈도우 이름

[Return 값]

Integer.

스크린 상단에서 windowname의 작업공간 상단까지의 거리를 PowerBuilder 단위로 리턴한다. 에러가 발생하면, WorkSpaceY 함수는 -1을 리턴하고, windowname이 NULL 이면 NULL을 리턴한다.

[용법]

작업공간 영역은 윈도우의 양 측면 (frame의 두께 또는 수직 스크롤 바의 두께 등은 제외) 과 윈도우의 상단 과 하단 (frame의 두께 또는 타이틀 바, 메뉴 바, 수평 스크롤 바 등은 제외) 사이의 거리이다.

[예제]

* 다음 예제는 스크린 상단으로부터 w_employee 윈도우내의 작업공간 영역 상단까지의 거리를 리턴한다.

integer worky

worky = w_employee.WorkSpaceY( )

[참고]

PoinerX

PointerY

WorkSpaceHeight

WorkSpaceWidth

WorkSpaceX


Write PowerScript 함수

[설명]

오픈된 OLE stream object에 데이터를 기록한다.

Platform 정보

OLE 함수는 Macintosh와 UNIX에는 영향이 없다

[적용]

OLEStream objects

[문법]

olestream.Write ( dataforstream )

[Argument]

olestream | 오픈되어 있는 OLE stream 변수 명
dataforstream | olestream에 기록하고자 하는 문자열, blob, 또는 문자 배열

[Return 값]

Integer.

처리에 성공하면 기록된 문자 수 또는 바이트 수를 리턴하고 에러가 발생하면 다음 값을 리턴한다:

-1 | stream이 오픈되어 있지 않다
-2 | 읽기 에러
-9 | 그 밖의 에러

argument값중에 NULL이있으면, Write 함수는 NULL을 리턴한다.

[예제]

* 다음 예제는 MYSTUFF.OLE 파일에 OLE object를 오픈하고 OLEStorage object olest_stuff에 할당한다. 다음, olest_stuff에서 info를 호출하여 stream을 오픈하고 stream object olestr_info에 할당한다. instance blob 변수 lb_info의 내용을 stream olestr_info 기록한다. 마지막으로, olest_stuff storage를 저장한다.

boolean lb_memexists

OLEStorage olest_stuff

OLEStream olestr_info

integer result

olest_stuff = CREATE OLEStorage

result = olest_stuff.Open("c:\ole2\mystuff.ole")

IF result <> 0 THEN RETURN

result = olestr_info.Open(olest_stuff, "info", &

stgReadWrite!, stgExclusive!)

IF result <> 0 THEN RETURN

result = olestr_info.Write(lb_info)

IF result = 0 THEN olest_stuff.Save()

[참고]

Length

Open

Read

Seek


Year PowerScript 함수

[설명]

날짜 값의 연도를 구한다.

[문법]

Year ( date )

[Argument]

date

연도를 구하려는 날짜

[Return 값]

Integer.

처리에 성공하면 날짜의 연도 부분에서 4-자리 연도를 리턴하고 에러가 발생하면 1900을 리턴한다. date가 NULL이면, Year 함수는 NULL을 리턴한다.

2-자리 연도를 가진 문자열을 날짜로 변환할 때, PowerBuilder는 세기를 선택한다. 연도가 00에서 49 사이이면 20세기로 가정하고, 50에서 99 사이이면 19세기로 간주한다.

[용법]

PowerBuilder는 1000년 부터 3000년까지의 연도를 취급한다.

데이터가, 생일등과 같이, 1950년 이전의 날짜를 포함하고 있다면 Year나 다른 PowerBuilder 함수 (예를들어, Sort 등과 같은 함수)에서 바라는 대로 날짜를 해석하도록 항상 4-자리 연도로 명시하도록 한다.

[예제]

* 다음 문장은 1995를 리턴한다.

Year(1995-01-31)

[참고]

Day

Month

Year (DataWindow painter 함수)


Yield PowerScript 함수

[설명]

Yield 함수는 PowerBuilder object가 아닌 다른 object를 포함하고있는 그래픽 object들을 제어한다. Yield 함수는 메시지 큐(queue)를 체크하고 큐 안에 메시지가 있으면, 메시지를 큐에서 가지고 온다.

[문법]

Yield ( )

[Return 값]

Boolean.

메시지 큐에서 메시지를 가지고 오면 TRUE를 리턴하고 큐에 메시지가 없으면 FALSE를 리턴한다.

[용법]

다른 처리가 일어날 수 있도록 하기 위하여 루프 내에 Yield 함수를 포함시킨다. 예를들어, 루프 내에서 사용자가 인터럽트를 발생시켜 그 루프를 종료할 수 있도록 Yield 함수를 사용한다. 양보적 제어에 의하여, 다른 윈도우 내에서 취소 버튼상에 클릭할 수 있도록 허락한다. 다음에 루프내의 코드는 global 변수의 상태가 변하였는지 체크할 수 있다. 또한, 루프 내에서 어떤 처리 (사용자 자신이나 다른 응용프로그램 내에서 처리)가 끝날 때 까지 기다리기 위하여 Yield 함수를 사용할 수 있다.

자료를 retrieve 하는 동안 다른 응용프로그램 사용하기

데이터를 retrieve하는 동안 PowerBuilder 응용프로그램 내에서 다른 것을 활성화 할 수 없을지라도, 다른 응용프로그램을 사용하게 할 수 있다. RetrieveRow 이벤트 내에 Yield 함수를 넣으면 이러한 것이 가능하다.

물론, Yield 함수는 다른 응용프로그램과 처리시간을 공유하기 때문에 PowerBuilder 응용프로그램의 실행을 더 느리게 할 것이다.

[예제]

* 다음 예제에서, 어떤 코드는 긴 시간동안 처리되는 것이다. 두 번째 윈도우는 공유된 boolean 변수 sb_interrupt를 설정함으로써 그 루프를 중단시킬 수 있는 버튼을 포함하고 있다. 이 버튼의 Clicked 이벤트 스크립트는 sb_interrupt 변수를 다음과 같이 설정한다.

sb_interrupt = TRUE

처리를 수행하고있는 스크립트는 공유된 변수 sb_interrupt를 체크하고 만일 TRUE로 설정되어 있으면 처리를 중단한다. Yield 함수는 사용자가 버튼을 클릭할 수 있는 기회를 제공함으로써 처리를 중단시키도록 허락한다.

integer n

// sb_interrupt는 공유된 변수이다

sb_interrupt = FALSE

FOR n = 1 to 3000

Yield( )

IF sb_interrupt THEN // 다른 스크립트에서 설정된다

MessageBox("Debug","Interrupted!")

sb_interrupt = FALSE

EXIT

ELSE

. . . // 다른 처리

END IF

NEXT

* 다음 스크립트는 사용자가 두 번째 윈도우 내에서 control과 상호작용 하는 동안 다른 윈도우에서 어떤 처리를 수행하도록 하는 것이다. Yield 함수 없이, 두 번째 윈도우 내에 클릭할 수 있지만 이러한 경우, 루프가 끝날 때 까지 focus가 변하는 것이나 처리되는 것을 볼 수 없을 것이다.

integer n

FOR n = 1 to 3000

Yield( )

. . . // 어떤 처리

NEXT

* 다음 예에서, 스크립트는 메모리변수 mailprogram내에 저장된 실행 가능한 이름을 가진 Lotus Notes DDE channel을 오픈 하기 원한다. 프로그램이 실행 중이지 않으면, 스크립트는 루프를 시작하고, 프로그램이 시작될 때 까지 기다리다가, 프로그램이 시작되면 루프를 종료하고 DDE channel을 설치할 수 있게 된다. 이 루프에는 실제로 다른 프로그램이 실행될 때까지 시간을 보내기 위하여 Yield 함수를 포함하고 있다.

time starttime

long hndl

SetPointer(HourGlass!)

// handle의 설치를 시도한다 ; SendMail은 topic이다

hndl = OpenChannel("Notes","SendMail")

// 프로그램이 시작되지 않았으면 시작한다

IF hndl < 1 then

Run(mailprogram, Minimized!)

starttime = Now()

// Notes를 load하고 연결하기 위하여 2분간 기다린다

DO

// Yield 제어를 발생시킨다

Yield( )

// Notes의 활성화 여부를 체크한다

hndl = OpenChannel("Notes","SendMail")

// Notes 가 활성화되었으면

IF hndl > 0 THEN EXIT

LOOP Until SecondsAfter(StartTime,Now()) > 120

// channel의 오픈없이 2분이 경과하면

IF hndl < 1 THEN

MessageBox("Error", &

"Can't start Notes.", StopSign!)

SetPointer(Arrow!)

RETURN

END IF

END IF


BeginDrag event : syntax1

[설명]

ListView control에서 왼쪽 마우스 버튼을 누르고 드래그를 시작할 때 발생한다.

Event ID | Objects
pbm_lvnbegindrag | ListView

[Argument]

index | Integer
 | 드래그중인 ListView 아이템의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택 가능한 리턴코드
0 | 처리를 계속한다.

[용법]

BeginDrag와 BeginRightDrag 이벤트는 드래그의 사용가능 여부에 관계없이 마우스 버튼을 누르고 드래그할 때 발생한다. 드래깅을 가능하게 하려면:

※DragAuto 속성을 TRUE로 설정한다. ListView의 DragAuto 속성이 TRUE일 때에는, 클릭을 하였을 때 자동적으로 드래그 작용이 시작된다.

※Drag 함수를 호출한다. DragAuto가 FALSE라면, 드래그 기능을 사용하기 위하여 BeginDrag이벤트 스크립트에서 Drag 함수를 호출할 수 있다.

표준 드래그 이벤트(DragDrop, DragEnter, DragLeave, , DragWithin)를 발생시키려면 ListView 아이템을 다른 control로 드래깅하면된다. 표준 드래그 이벤트는 ListView의 경계선 안으로 다른 control이 드래그 되었을 때 발생한다.

[예제]

이 예는 ListView 아이템을 다른 ListView로 이동하는 것이다. Ilvi_dragged_object는 ListViewItem 타입의 윈도우 인스턴스 변수이다.

// 소스 ListView의 BeginDrag 이벤트 스크립트

// TreeView의 DragAuto 속성이 FALSE 일때

This.Drag(Begin!)

This.GetItem(This.SelectedIndex( ), ilvi_dragged_object)

This.DeleteItem(This.SelectedIndex( )) // 대상 ListView로 복사할때에는

This.Arrange( ) // 이들 라인을 사용하지 않아야 한다

// 대상 ListView의 DragDrop 이벤트 스크립트

This.AddItem(ilvi_dragged_object) // 아이템을 추가하고

This.Arrange( ) // 아이템 인덱스를 다시 정렬한다.

[참고]

BeginRightDrag

DragDrop

DragEnter

DragLeave

DragWithin

BeginDrag event : syntax2

[설명]

TreeView control에서 왼쪽 마우스 버튼을 누르고 드래그를 시작할 때 발생한다.

Event ID | Objects
pbm_tvnbegindrag | TreeView

[Argument]

handle

Long

TreeView 아이템이 드래그 될 때의 핸들

[Return 코드]

Long.

RETURN 문장에서 선택가능한 리턴코드

0 처리를 계속한다.

[용법]

BeginDrag와 BeginRightDrag 이벤트는 드래그의 사용가능 여부에 관계없이 마우스 버튼을 누르고 드래그할 때 발생한다. 드래깅을 가능하게 하려면:

※DragAuto 속성을 TRUE로 설정한다. TreeView의 DragAuto 속성이 TRUE일 때에는, 클릭을 하였을 때 자동적으로 드래그 작용이 시작된다.

※ Drag 함수를 호출한다. DragAuto가 FALSE라면, 드래그 기능을 사용하기 위하여 BeginDrag 이벤트 스크립트에서 Drag 함수를 호출할 수 있다.

표준 드래그 이벤트(DragDrop, DragEnter, DragLeave, , DragWithin)를 발생시키려면 ListView 아이템을 다른 control로 드래깅하면된다. 표준 드래그 이벤트는 ListView의 경계선 안으로 다른 control이 드래그 되었을 때 발생한다.

반전된 아이템은 드래그 할 수 없다.

표준 드래그 이벤트(DragDrop, DragEnter, DragLeave, , DragWithin)를 발생시키려면 TreeView 아이템을 다른 control로 드래깅하면된다. 표준 드래그 이벤트는 TreeView의 경계선 안으로 다른 control이 드래그 되었을 때 발생한다.

[예제]

이 예제는 첫 번째 TreeView 아이템을 드래그하여 다른 TreeView로 이동시키는 내용이다. Itvi_dragged_object는 TreeViewItem 타입의 윈도우 인스턴스 변수이다. 아이템을 복사하고자 할 때에는 소스 TreeView 스크립트에서 삭제관련 코드를 사용하지 않으면 된다.

//소스 TreeView의 BeginDrag 이벤트 스크립트

long itemnum

// TreeView의 DragAuto 속성이 FALSE일 때는

// Drag() 함수를 호출한다.

This.Drag(Begin!)

itemnum = 1

This.GetItem(itemnum, itvi_dragged_object) //첫번째 아이템을 얻는다.

// 소스 TreeView에서 선택한 아이템을 삭제한다.

// 아이템을 복사할 경우에는 이 코드를 사용하지 않도록 한다.

This.DeleteItem(itemnum) // 선택한 아이템을 삭제하고

This.SetRedraw(TRUE) // TreeView를 다시 그린다.

// 대상 TreeView의 DragDrop 이벤트 스크립트

This.InsertItemLast(0, ilvi_dragged_object) // 가지고온 아이템을 추가하고

This.SetRedraw(TRUE) // TreeView를 다시 그린다.

소스 TreeView의 아이템을 바로 삭제하는 대신, DragDrop 이벤트내에서 아이템의 삽입이 성공적으로 이루어진 후 삭제하는 것이 바람직하다.

[참고]

BeginRightDrag

DragDrop

DragEnter

DragLeave

DragWithin


BeginLabelEdit event : syntax1

[설명]

아이템을 선택한 후, 그 아이템의 label에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_lvnbeginlabeledit | ListView

[Argument]

index

Integer

선택한 ListView 아이템의 인덱스 번호

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | label의 편집을 허락한다
1 | label의 편집을 허락하지 않는다

[용법]

편집이 허락되면, 반전된 텍스트 주의에 박스모양이 나타나서 편집가능한 상태가 된다.

[예제]

이 예제는 편집중인 ListView 아이템의 이름을 나타내기 위하여 BeginLabelEdit 이벤트를 사용하는 문장이다.

ListViewItem lvi //ListViewItem의 인스턴트를 생성한다.

This.GetItem(index lvi) //아이템 인덱스를 알아낸다

sle_info.text = "Editing " + string(lvi.label)

[참고]

EndLabelEdit 이벤트

BeginLabelEdit event : syntax2

[설명]

아이템을 선택한 후, 그 아이템의 label에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_tvnbeginlabeledit | TreeView

[Argument]

handle

Long

선택한 TreeView 아이템의 handle

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | label의 편집을 허락한다
1 | label의 편집을 허락하지 않는다

[용법]

편집이 허락되면, 반전된 텍스트 주의에 박스모양이 나타나서 편집가능한 상태가 된다.

[예제]

이 예제는 SingleLineEdit에서 편집중인 TreeView 아이템의 이름을 나타내기 위하여 BeginLabelEdit 이벤트를 사용하는 문장이다.

TreeViewItem tvi | //TreeViewItem의 인스턴트를 생성한다
This.GetItem(index, tvi) | //아이템 인덱스를 알아낸다
sle_info.text = "Editing " + string(tvi.label)

[참고]

EndLabelEdit 이벤트


BeginRightDrag event : syntax1

[설명]

ListView control에서 오른쪽 마우스 버튼을 누르고 드래그를 시작할 때 발생한다.

Event ID | Objects
pbm_lvnbeginrightdrag | ListView

[Argument]

index Integer

드래그중인 ListView 아이템의 인덱스

[Return hem]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

BeginDrag와 BeginRightDrag 이벤트는 드래그의 사용가능 여부에 관계없이 마우스 버튼을 누르고 드래그할 때 발생한다. 드래깅을 가능하게 하려면:

※DragAuto 속성을 TRUE로 설정한다. ListView의 DragAuto 속성이 TRUE일 때에는, 클릭을 하였을 때 자동적

으로 드래그 작용이 시작된다.

※Drag 함수를 호출한다. DragAuto가 FALSE라면, 드래그 기능을 사용하기 위하여 BeginDrag 이벤트스크립트

에서 Drag 함수를 호출할 수 있다.

표준 드래그 이벤트(DragDrop, DragEnter, DragLeave, , DragWithin)를 발생시키려면 ListView 아이템을 다른 control로 드래깅하면된다. 표준 드래그 이벤트는 ListView의 경계선 안으로 다른 control이 드래그 되었을 때 발생한다.

[예제]

BeginDrag 이벤트를 참고한다.

[참고]

BeginDrag

DragDrop

DragEnter

DragLeave

DragWithin

BeginRightDrag event : syntax2

[설명]

TreeView control에서 오른쪽 마우스 버튼을 누르고 드래그를 시작할 때 발생한다.

Event ID | Objects
pbm_tvnbeginrightdrag | TreeView

[Argument]

handle

Long

드래그가 시작된 TreeView 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

BeginDrag와 BeginRightDrag 이벤트는 드래그의 사용가능 여부에 관계없이 마우스 버튼을 누르고 드래그할 때 발생한다. 드래깅을 가능하게 하려면:

※DragAuto 속성을 TRUE로 설정한다. TreeView의 DragAuto 속성이 TRUE일 때에는, 클릭을 하였을 때 자동적

으로 드래그 작용이 시작된다.

※Drag 함수를 호출한다. DragAuto가 FALSE라면, 드래그 기능을 사용하기 위하여 BeginDrag 이벤트 스크립트

에서 Drag 함수를 호출할 수 있다.

반전된 아이템은 드래그 할 수 없다.

표준 드래그 이벤트(DragDrop, DragEnter, DragLeave, , DragWithin)를 발생시키려면 TreeView 아이템을 다른 control로 드래깅하면된다. 표준 드래그 이벤트는 TreeView의 경계선 안으로 다른 control이 드래그 되었을 때 발생한다.

[예제]

이 예제는 첫 번째 TreeView 아이템을 드래그하여 다른 TreeView로 이동시키는 내용이다. Itvi_dragged_object는 TreeViewItem 타입의 윈도우 인스턴스 변수이다. 아이템을 복사하고자 할 때에는 소스 TreeView 스크립트에서 삭제관련 코드를 사용하지 않으면 된다.

//소스 TreeView의 BeginDrag 이벤트 스크립트

long itemnum

// TreeView의 DragAuto 속성이 FALSE일때는

// Drag() 함수를 호출한다.

This.Drag(Begin!)

itemnum = 1

This.GetItem(itemnum, itvi_dragged_object) //첫번째 아이템을 얻는다.

// 소스 TreeView에서 선택한 아이템을 삭제한다.

// 아이템을 복사할 경우에는 이 코드를 사용하지 않도록 한다.

This.DeleteItem(itemnum) // 선택한 아이템을 삭제하고

This.SetRedraw(TRUE) // TreeView를 다시 그린다.

// 대상 TreeView의 DragDrop 이벤트 스크립트

This.InsertItemLast(0, ilvi_dragged_object) // 가지고온 아이템을 추가하고

This.SetRedraw(TRUE) // TreeView를 다시 그린다.

소스 TreeView의 아이템을 바로 삭제하는 대신, DragDrop 이벤트내에서 아이테의 삽입이 성공적으로 이루어진후 삭제하는 것이 바람직하다.

[참고]

BeginDrag

DragDrop

DragEnter

DragLeave

DragWithin


Clicked event : syntax1 (메뉴에 관하여)

[설명]

메뉴 아이템을 선택하였을 때 발생한다.

Event ID | Objects
없음 | Menu

[Arguments]

없음

[Return 값]

없음

[용법]

메뉴 아이템으로 커서가 이동하여 반전되면, Selected 이벤트가 발생한다.

하위 메뉴를 가지고있는 메뉴 아이템을 선택하면, Clicked 이벤트가 발생하고 부 메뉴들이 표시된다.

[예제]

다음은 프레임 윈도우에 관한 New 메뉴 아이템의 Clicked 이벤트의 스크립트 이다. 여기에서 wf_newsheet 함수는 윈도우 함수이고, w_genapp_frame 윈도우는 새 응용 프로그램을 생성할 때 만들 수 있는 임시 응용 프로그램의 한 부분이다.

/* 새로운 sheet를 생성한다 */

w_genapp_frame.wf_newsheet( )

[참고]

Selected

Clicked event : syntax2 (DataWindow에 관하여)

[설명]

DataWindow control내의 임의의 장소에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_dwnlbuttonclk | DataWindow

[Argument]

xpos | Integer DataWindow 왼쪽 측면으로 부터의 pointer 거리.
ypos | Integer DataWindow 상단으로 부터의 pointer 거리.
row | Long 클릭한 row 번호. row에서 클릭하지 않은 경우에 row의 값은 0이다. 예를들어, 데이터 영역 밖이나, 텍스트 또는 row사이의 공간, 헤더, footer 영역등에서 클릭하면 row는 0이다.
dwo | DWObject pointer 밑에서 클릭하였을 때에는 DataWindow내의 object를 참조한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.
1 | 변경된 focus를 허락하지 않는다.

[용법]

DataWindow Clicked 이벤트는 마우스 버튼이 아래로 눌려졌을 때 발생한다.

xpos와 ypos argument는 DataWindow control을 호출하였을 때 리턴되는 PointerX 와 PointerY 함수 값고 동일한 것이다.

이들 두 argument는 사용자가 클릭한 object에 쉽게 접근할 수 있는 기능을 제공하기 때문에, 클릭한 object를 알아내기 위하여 DataWindow 내에서 object의 좌표를 알 필요가 없다.

예를들면, 칼럼의 편집을 방지하고 클릭한 column과 row에관한 데이터 또는 속성을 설정하기 위하여 Clicked 스크립트를 사용할 수 있다.

그래프의 경우, ObjectAtPointer 함수는 그래프 object 내에서 object에 관한 유사한 정보를 제공한다.

클릭은 또한 RowFocusChanged 와 ItemFocusChanged 이벤트를 발생 시킬 수 있다.

더블-클릭은 Clicked 이벤트를 발생시키고, 뒤이어 DoubleClicked 이벤트를 발생시킨다.

[예제]

다음 코드는 클릭한 row를 반전 시킨다.

This.SelectRow(row, TRUE)

column 머리말에서 클릭을 하면, 다음 코드는 그 머리말의 색상을 변경시키고 관련된 column들을 정렬한다. 단, column 이름은 접미사 "_t"를 가지고 있지않은 머리말 텍스트 object의 이름과 동일하다고 가정한다.

string ls_name

IF dwo.Type = "text" THEN // 클릭한 object 타입이 텍스트 이면

dwo.Color = RGB(255,0,0) // 색상을 붉은색으로 한다.

ls_name = dwo.Name

ls_name = Left(ls_name, Len(ls_name) - 2) // object의 접미사 2바이트를 제외하고

This.SetSort(ls_name + ", A") // 올림차순 정렬방식을 설정한 후

This.Sort() // 정렬한다.

END IF

[참고]

DoubleClicked

ItemFocusChanged

RButtonDown

RowFocusChanged

Clicked event : syntax3 (ListView controls에 관하여)

[설명]

ListView내에서 아이템이나 아이템 주위의 공간에 클릭 하였을 때 발생한다.

Event ID | Objects
pbm_lvnclicked | ListView

[Argument]

index

Integer

클릭한 ListView 아이템의 인덱스 번호. ListView control 내에서 아이템이 아닌 다른곳에 클릭하면 -1을 되돌린다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Clicked 이벤트는 버튼이 눌려졌을 때 발생한다.

Clicked 이벤트는 더블-클릭을 하였을 경우, 추가로 DoubleClicked 이벤트를 발생 시킬 수 있다.

아직 focus를 가지고 있지 않은 아이템에 클릭하였을 때에는, Clicked 이벤트에 ItemChanging 과 ItemChanged 이벤트가 추가로 일어난다. BeginLabelEdit는 focus를 가지고 있는 아이템 라벨위에 클릭하였을 때 발생할 수 있다.

[예제]

다음 코드는 아이템의 라벨을 대문자로 변환 시키는 것이다.

IF index = -1 THEN RETURN 0 // 아이템에 클릭하지 않았으면 되돌아간다.

This.GetItem(index, llvi_current) // ListView 인스턴트의 아이템을 알아낸다.

llvi_current.Label = Upper(llvi_current.Label) // 레이블을 대문자로 변환한다.

This.SetItem(index, llvi_current) // 아이템을 새로운 값으로 설정한다.

RETURN 0 // 돌아가서 처리를 계속한다.

[참고]

ColumnClick

DoubleClicked

ItemChanging

ItemChanged

RightClicked

RightDoubleClicked

Clicked event : syntax4 (Tab controls에 관하여)

[설명]

Tab control의 tab 위치상에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_tcnclicked | Tab

[Argument]

index

Integer

클릭한 tab 페이지의 인덱스 번호

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Clicked 이벤트는 마우스 버튼을 눌렀다 놓을 때 발생한다.

tab control의 표시 영역내에서 클릭하면, Tab control대신 그 tab 페이지의 object가 Clicked 이벤트를 받는다.

Clicked 이벤트는 더블-클릭을 하였을 경우, 추가로 DoubleClicked 이벤트를 발생 시킬 수 있다.

tab 페이지 라벨위에 클릭하게되면 Clicked 이벤트에 SelectionChanging 과 SelectionChanged 이벤트가 추가로 발생한다. tab 페이지를 변경하기 위하여 방향키를 누르면, SelectionChanging 과 SelectionChanged 이벤트가 발생하기 전에 Clicked 이벤트대신 Key 이벤트가 발생한다.

[용법]

다음 코드는 4번째 tab 페이지의 tab 라벨을 고딕체로 만든다.

IF index = 4 THEN |  |  |  | //4번째 tab 페이지면
 | This.BoldSelectedText = TRUE |  |  |  | //고딕체로 설정한다
ELSE |  |  | .
 |  | This.BoldSelectedText = FALSE

END IF

[참고]

DoubleClicked

RightClicked

RightDoubleClicked

SelectionChanging

SelectionChanged

Clicked event : syntax5 (TreeView controls에 관하여)

[설명]

TreeView control의 아이템에 클릭할 때 발생한다.

Event ID | Objects
pbm_tvnclicked | TreeView

[Argument]

handle

Long

클릭된 TreeView 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Clicked 이벤트는 마우스 버튼을 눌렀을 때 발생한다.

Clicked 이벤트는 더블-클릭을 하였을 경우, 추가로 DoubleClicked 이벤트를 발생 시킬 수 있다.

focus를 가지고있지 않은 아이템을 클릭하면, Clicked 이벤트에 추가로 GetFocus 이벤트가 발생한다.

[예제]

다음 코드는 Clicked 이벤트내에서 사용자가 클릭한 아이템 라벨을 대문자로 변환한다.

TreeViewItem ltvi_current // TreeViewItem의 인스턴트를 생성한다.

This.GetItem(handle, ltvi_current) // 현재 아이템을 알아낸다.

ltvi_current.Label = Upper(ltvi_current.Label) // 라벨을 대문자로 변환한다.

This.SetItem(handle, ltvi_current) // 아이템을 다시 설정한다.

[참고]

DoubleClicked

RightClicked

RightDoubleClicked

SelectionChanging

SelectionChanged

Clicked event : syntax6 (Windows에 관하여)

[설명]

윈도우의 사용되지않은 영역에서 클릭하였을 때 발생한다.

Event ID | Objects
pbm_lbuttonclk | Window

[Argument]

flags | UnsignedLong 키와 마우스 버튼 등을 눌렀을 때 다음과 같은 값을 갖는다:
 |  | 1. 왼쪽 마우스 버튼 2. 오른쪽 마우스 버튼 4. SHIFT 키 8. CONTROL 키 16. 가운데 마우스 버튼(3버튼 마우스의 경우)
 | Clicked 이벤트에서, 왼쪽 마우스 버튼을 놓으면 flag에 1이 더해지지 않는다. flag에 관한 자세한 설명은 MouseMove 이벤트의 Syntax 2를 참고한다
xpos | Integer 윈도우 좌측면으로 부터의 포인터 거리(PowerBuilder 단위기준).
ypos | Integer 윈도우 상단으로 부터의 포인터 거리(PowerBuilder 단위기준).

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Clicked 이벤트는 마우스 버튼을 놓았을 때 발생한다.

만일 control이나 메뉴에서 클릭하였다면, 윈도우가 아니라 그 object가 Clicked 이벤트를 얻게된다. 또한, 윈도우의 타이틀 바에서 클릭하면 Clicked 이벤트는 발생하지 않는다.

윈도우상에서 클릭을 하면, 윈도우의 MouseDown 과 MouseUp 이벤트 또한 발생한다.

보이면서 사용할 수 없는 상태의 control이나 안보이면서 사용가능한 상태의 control에서 클릭하면 해당 윈도우가 Clicked 이벤트를 받게된다.

[예제]

윈도우의 좌측상단 모서리에서 클릭하면, focus를 cb_clear로 설정한다.

IF (xpos < = 600 AND ypos <= 600) THEN

cb_clear.SetFocus( )

END IF

[참고]

DoubleClicked

MouseDown

MouseMove

MouseUp

RButtonDown

Clicked event : syntax7 (그 밖의 control에 관하여)

[설명]

control에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_bnclicked | CheckBox, CommandButton, Graph, OLE 2.0, Picture, PictureButton, RadioButton, StaticText

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Clicked 이벤트는 마우스 버튼을 놓을 때 발생한다.

만일 다른 control이 focus를 가지고 있었다면, 클릭한 control에 대한 GetFocus 이벤트와 Clicked 이벤트가 발생한다.

[예제]

다음은 control내의 object를 활성화하는 OLE 2.0 control의 Clicked 이벤트 스크립트 이다.

integer li_success

li_success = This.Activate(InPlace!)

[참고]

GetFocus

RButtonDown


Close event : syntax1 (응용 프로그램)

[설명]

응용 프로그램을 닫았을 때 발생한다.

Event ID | Objects
없음 | Application

[Arguments]

없음

[Return 코드]

없음

[용법]

마지막 윈도우 또는, MDI 응용 프로그램에 관한 MDI 프레임이 닫혔을 때 발생한다.

[참고]

Open

SystemError

Close event : syntax2 (OLE 2.0 control)

[설명]

OLE 2.0내의 object control이 offsite (OLE 서버가 서버 윈도우내에 object를 나타내는 방식)으로 활성화 되었는 상태에서 서버가 닫혔을 때 발생한다.

Event ID | Objects
pbm_omnclose | OLE 2.0

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

사용자가 OLE 서버를 닫았을 때에는, control내의 OLE object가 갱신되기 때문에 Save 또는 DataChange 이벤트가 발생한다.

[참고]

DataChange 이벤트

Save 이벤트

Close event : syntax3 (Window)

[설명]

표시된 윈도우가 제거되기 직전에 발생한다.

Event ID | Objects
pbm_close | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

윈도우에관한 Close() 함수를 호출하면, Close 이벤트가 발생하기전에 CloseQuery 이벤트가 발생한다. CloseQuery 이벤트에서, Close 이벤트가 발생하는 것을 방지하고 윈도우를 닫기 위해 return 코드를 지정할 수 있다.

윈도우를 닫기 원한다면 Close 이벤트를 작동(trigger)시키지 말아야 한다. trigger한 이벤트는 단순히 스크립트만 실행하고 윈도우는 닫지 않는다. Close() 함수는 정확한 메시지를 그 윈도우에 보낸다.

[참고]

CloseQuery 이벤트

Open 이벤트


CloseQuery event

[설명]

윈도우가 닫혔을 때 Close 이벤트가 일어나기 전에 발생한다.

Event ID | Objects
pbm_closequery | Window

[Arguments]

없음

[Return 코드]

Long.

RETURN | 문장에서 선택가능한 리턴코드
0 | 윈도우가 닫히는 것을 허락한다.
1 | 윈도우가 닫히는 것을 방지한다.

[용법]

CloseQuery 이벤트가 1을 되돌리면, 원도우의 닫힘이 거부되고 통상적으로 CloseQuery 이벤트 다음에 일어나는 Close 이벤트가 발생하지 않는다.

CloseQuery 이벤트가 발생한 상태에서, 윈도우의 데이터 상태를 평가할 수 있는 스크립트를 가진 버튼을 사용하지 않고 Close box를 이용하여 윈도우를 닫게되면, 변경된 내용을 저장할것인지 물어오는 프롬프트의 사용이나 입력된 데이터가 타당한 것인지 체크하는 것을 허락한다.

*** 알아두기 ***

더 이상 Message object의 ReturnValue 속성을 설정할 필요없이, RETURN 문장을 이용하여 처리하도록 한다.

[예제]

윈도우의 CloseQuery 이벤트에서 윈도우를 닫을 것인지 다시한번 물어보고, no를 대답하면 윈도우가 닫히는 것을 방지한다.

IF MessageBox("윈도우 닫기", "확실합니까?", &

 |  | Question!, YesNo!) = 2 THEN
 | RETURN 1
ELSE
 | RETURN 0

END IF

DataWindow dw_1의 변경된 내용을 저장할 것인지 결정하지 않은 경우, 이를 결정할 수 있도록 처리하는 CloseQuery 이벤트의 스크립트. 데이터를 갱신하고 윈도우를 닫거나, 갱신하지 않고 윈도우를 닫거나, 갱신하지 않고 윈도우가 오픈된 상태로 남겨두는 등의 결정을 한다.

integer li_rc

// 데이터윈도우에 마지막으로 입력된 데이터를 받는다.

dw_1.AcceptText()

// 데이터가 변경되었는지 체크한다.

IF dw_1.DeletedCount() + dw_1.ModifiedCount() > 0 THEN

 |  | li_rc = MessageBox("Closing", &
 |  | "Update your changes?", Question!, &
 |  | YesNoCancel!, 3)
 | // 데이터를 갱신하고 윈도우를 닫는다.
 | IF li_rc = 1 THEN // Yes 선택
 |  | Window lw_window
 |  | lw_window = w_genapp_frame.GetActiveSheet()
 |  | lw_window.TriggerEvent("ue_update")
 |  | RETURN 0
 | // 데이터를 갱신하지 않고 윈도우를 닫는다.
 | ELSEIF li_rc = 2 THEN // No 선택
 |  | RETURN 0
 |  | // 데이터를 갱신하지 않고 윈도우도 닫지 않는다.
 |  | ELSE // Calcel 선택
 |  | RETURN 1
 |  | END IF
ELSE |
 | // 변경된 내용이 없으므로 윈도우만 닫는다.
 | RETURN 0

END IF

[참고]

Close 이벤트


ColumnClick event

[설명]

칼럼 헤더에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_lvncolumnclick | ListView

[Argument]

column

클릭된 칼럼의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

ColumnClicked 이벤트는 레포트 뷰에 ListView가 표시되어있고 ButtonHeader 속성이 TRUE로 설정되어 있을때에만 유용하다.

[예제]

다음은, 칼럼 argument에관한 인스턴스 변수를 설정하고, 칼럼의 정렬 정보를 받아서 사용자에게 나타내기 위하여 ColumnClicked 이벤트를 사용하는 예이다.

string ls_label, ls_align integer li_width alignment la_align // 인스턴스 변수를 선언한다. ii_col = column // click된 칼럼의 인덱스를 저장한다. // 해당칼럼의 칼럼명, 정렬방법, 폭 등을 변수에 할당한다. This.GetColumn(column, ls_label, la_align, li_width) CHOOSE CASE la_align
 | CASE Right! // 우측정렬이면
 |  | rb_right.Checked = TRUE ls_align = "Right!"
 | CASE Left! // 좌측정렬이면
 |  | rb_left.Checked = TRUE ls_align = "Left!"
 | CASE Center! // 중앙정렬 이면
 |  | rb_center.Checked = TRUE ls_align = "Center!"
 | CASE Justify!
 |  | rb_just.Checked = TRUE ls_align = "Justify!"
END CHOOSE // single line 에디터에 칼럼명, 정렬방식, 칼럼폭 등을 나타낸다. sle_info.Text = String(column) + " " + ls_label &
 |  |  | + " " + ls_align & + " " + String(li_width)

[참고]

Clicked 이벤트


ConnectionBegin event

[설명]

분산된 컴퓨터 환경에서, ConnectToServer 함수를 호출함으로써 서버에 설치된 클라이언트가 접속 되었을 때 서버 상에서 발생한다.

Event ID | Objects
없음 | Application

[Argument]

userid | 서버에 접속될 사용자의 이름이나 ID
password | 서버에 접속하는데 사용될 패스워드 connectstring 접속시에 서버에 통과될 텍스트. 텍스트는 데이터베이스연결 파라미터와 같은 응용프로그램-명시(application-specific) 정보를 포함할 수도 있다.

[Return 코드]

ConnectPrivilege | 열거된 데이터 타입
 | ConnectPrivilege!
 | ConnectWithAdminPrivilege!
 | NoConnectPrivilege!

[용법]

클라이언트에서 서버 응용프로그램에 접속하기위한 요청이 있을때마다, 서버는 그 요청을 검증할 수 있다. 클라이언트가 접속을 설치하기위한 권한을 가지고 있다면, 서버는 요청을 허락하고 적당한 접속 권한을 부여할 수 있다. 클라이언트가 접속 권한을 가지고 있지 않다면, 서버는 그 요청을 거부할 수 있다.

접속에관한 클라이언트의 요청을 취급하기 위하여, 서버 응용 프로그램 object의 ConnectionBegin 이벤트에 관한 스크립트를 작성할 수 있다. 서버 응용 프로그램이 데이터베이스에 접근한다면, ConnectionBegin 이벤트내에 데이터베이스에 접속하기위한 원하는 로직을 포함시킬 수 있다.

[예제]

이벤트에 통과된 argument인 사용자id와 패스워드를 체크하여 각 클라이언트 접속을 평가하는 ConnectionBegin 이벤트 스크립트.

ConnectPrivilege access_rights

access_rights = ConnectPrivilege!

IF userid = "dba" and password = "dba" THEN
 | access_rights = ConnectWithAdminPrivilege!
ELSEIF userid = "" or password = "" THEN
 | access_rights = NoConnectPrivilege!

END IF

RETURN access_rights

[참고]

ConnectionEnd 이벤트


ConnectionEnd event

[설명]

분산된 컴퓨터 환경에서, DisconnectServer 함수를 호출함으로써 서버에 설치된 클라이언트가 접속해제 되었을 때 서버 상에서 발생한다.

Event ID | Objects
없음 | 응용 프로그램

[Arguments]

없음

[Return 코드]

없음

[용도]

서버 응용 프로그램이 데이터베이스에 접근한다면, ConnectionEnd 이벤트내에 데이터베이스로부터 접속해제하기위한 원하는 로직을 포함시킬 수 있다.

[예제]

데이터베이스로부터 접속해제하기위한 ConnectionEnd 이벤트의 스크립트.

DISCONNECT USING SQLCA;

[참고]

ConnectionBegin 이벤트


Constructor event

[설명]

control이나 object가 생성되었을 때, 그 control을 포함하고있는 윈도우에관한 Open 이벤트가 발생하기 직전에 발생한다.

Event ID | Objects
pbm_constructor | 모든 object

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

control을 포함한 윈도우가 나타나기전에 그 control의 속성에 어떠한 영향을 끼치고자 한다면 Constructor 이벤트 스크립트에 기록할 수 있다.

윈도우나 사용자 object가 오픈될 때, 윈도우나 사용자 onject내의 각 control에 관하여 Constructor 이벤트가 발생한다. Control 속성 윈도우에있는 control들의 순서는 Constructor 이벤트가 트리거되는 순서를 결정하게 된다. 윈도우에있는 control중 하나가 사용자 object일때에는 윈도우내의 다음 control에관한 Contsructor 이벤트가 발생하기전에 사용자 object내의 모든 control에 관한 Constructor 이벤트가 발생한다.

사용자 object를 동적으로 윈도우에 추가하기 위하여 OpenUserObject를 호출할때에는, 그 object의 Constructor 이벤트와 그 object의 모든 control에 관한 Constructor 이벤트가 발생한다.

사용자 object class 인스턴스를 만들기위하여 CREATE 문장을 사용하면, 그 인스턴스의 Constructor 이벤트가 발생한다.

사용자 object class 변수가 Autoinstantiate 설정을 TRUE로 갖고있다면, 그 변수가 나타날 때 Constructor 이벤트가 발생한다.

When you call OpenUserObject to add a user object to a window dynamically, its Constructor event and the Constructor events for all of its controls occur.

When you use the CREATE statement to instantiate a class (nonvisual) user object, its Constructor event occurs. 따라서 Constructor 이벤트는 다음의 경우에 발생한다:

* 시스템이 시작될때의 global 변수

* shared 변수와 함께 object가 load되었을때의 shared 변수

* instance 변수와 함께 object가 생성되었을때의 instance 변수

* 선언된 함수가 실행되기 시작할때의 local 변수

[예제]

윈도우가 나타나기 전에 DataWindow dw_1에 관한 데이터를 얻는다.

dw_1.SetTransObject(SQLCA)

dw_1.Retrieve( )

[참고]

Destructor 이벤트

Open 이벤트


DataChange event

[설명]

서버 응용 프로그램이 변경된 데이터를 가지고있는 control을 통보할 때 발생한다.

Event ID | Objects
pbm_omndatachange | OLE 2.0

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[참고]

PropertyRequestEdit 이벤트

PropertyChanged 이벤트

Rename 이벤트

ViewChange 이벤트


DBError event

[설명]

DataWindow나 DataStore에서 데이터베이스 에러가 발생하였을 때 발생한다.

Event ID | Objects
pbm_dwndberror | DataWindow 또는 DataStore

[Argument]

sqldbcode |  | Long 타입의 값 데이터베이스 관련 에러코드. 에러코드의 의미를 알려면 DBMS 설명서를 참고한다. DBMS로 부터의 에러 코드가 없을 경우에, sqldbcode는 다음 중 하나의 값을 갖는다.
 | -1 | transaction object내에 잘못된 값이 있어서 데이터베이스에 접속할 수 없다.
 | -2 | 데이터베이스에 접속할 수 없다.
 | -3 | Update나 Retrieve내의 지정된 키가 현존하는 row와 일치하지 않는다. (이것은 사용자가 그 row를 retrieve한 이후에, 다른 사용자에 의하여 그 row가 변경되었을 때 발생할 수 있다.)
 | -4 | 데이터베이스에 blob을 기록하는데 실패하였다.
sqlerrtext |  | String 타입의 값. 데이터베이스 관련 에러 메시지.
sqlsyntax |  | String 타입의 값. 에러가 발생하였을 때 DBMS에 보내진 SQL 문장 전체.
buffer |  | DWBuffer 값 버퍼에는 에러의 원인이된 데이터베이스의 row를 포함하고 있으며, 이들 값들은 다음과 같다:
 | Delete! | 삭제 버퍼 (DataWindow에서 삭제된 데이터를 갖고 있다).
 | Filter! | 필터 버퍼 (필터된 데이터를 갖고 있다).
 | Primary! | 주 버퍼 (삭제되지 않았거나 필터되지 않은 데이터를 갖고있다).
row |  | Long 타입의 값. 에러의 원인이된 데이터베이스의 row 수, 이 row들은 갱신(updated), 선택(selected), 삽입(inserted), 또는 삭제(deleted)된 것들이다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 에러 메시지를 나타낸다.
1 | 에러 메시지를 나타내지 않는다.

[용법]

DBError 이벤트 내에서 자신만의 메시지를 나타내고 return 코드를 이용하여 시스템 메시지를 나타나지 않게 할 수 있다.

*** 이전버전의 함수 ***

이전 버전에서는 DBErrorCode 와 DBErrorMessage 함수에 의하여 제공되었던 정보는 argument sqldbcode 와 sqlerrtext를 이용하여 얻을 수 있다.

[예제]

특정한 데이터베이스 에러 코드에 대해서는 사용자가 정의한 에러 메시지로 나타내는 방법

CHOOSE CASE sqldbcode // argument sqldbcode 값을 체크한다.

CASE -195 // 요청한 값이 NULL 이면

MessageBox("데이터베이스 에러", &

"삽입 에러 row " + string(row) &

+ ". 해당 키값을 명시하여야 합니다.")

CASE ...

// 에러코드를 이용한 다른 에러들의 처리

END CHOOSE

RETURN 1 // 시스템 에러 메시지를 나타내지 않는다.

[참고]

Error 이벤트


Deactivate event

[설명]

윈도우가 활성화되지 않게될 때 발생한다.

Event ID | Objects
pbm_deactivate | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용도]

윈도우가 닫혔을 때, Decativate 이벤트가 발생한다.

[참고]

Activate 이벤트

Show 이벤트


DeleteAllItems event

[설명]

ListView에있는 모든 아이템이 삭제되었을 때 발생한다.

Event ID | Objects
pbm_lvndeleteallitems | ListView

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* ListView control에 기본설정 아이템을 추가하기 위하여 DeleteAllItems 이벤트를 사용한다. 즉, DeleteAllItems 이벤트가 발생하면 기본설정 아이템을 추가한다.

This.AddItem("Default item", 1)

[참고]

DeleteItem

InsertItem


DeleteItem event for ListView controls

[설명]

한 아이템이 삭제 되었을 때 발생한다.

Event ID | Objects
pbm_lvndeleteitem | ListView

[Argument]

index 삭제된 아이템 번호를 나타내는 정수(Integer)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* 삭제된 아이템의 번호를 나타내는 DeleteItem 이벤트

MessageBox("Message", "Item " + String(index) &

+ " deleted.")

[참고]

DeleteAllItems

InsertItem

DeleteItem event for TreeView controls

[설명]

아이템이 삭제되었을 때 발생한다.

Event ID | Objects
pbm_tvndeleteitem | TreeView

[Argument]

handle | Long 타입의 값
 | 삭제된 아이템의 handle

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | Continue processing

[예제]

* 메시지에 삭제된 아이템의 이름을 나타낸다.

TreeViewItem ll_tvi

This.GetItem(handle, ll_tvi)

MessageBox("Message", String(ll_tvi.Label) &

+ " 삭제되었습니다.")


Destructor event

[설명]

윈도우의 Close 이벤트가 발생한 직후, 사용자 object나 control이 제거되었을 때 발생한다.

Event ID | Objects
pbm_destructor | 모든 objects

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | Continue processing

[용법]

윈도우가 닫히면, 각 control의 Destructor 이벤트는 control을 삭제하고 메모리에서 제거한다. control이 제거된 이후에는 다른 스크립트내에서 더 이상 그 control들을 참조할 수 없다. 다른 스크립트에서 제거된 control을 참조하려 하면, runtime 에러가 발생하게 된다.

[참고]

Constructor

Close


DragDrop event : syntax 1

[설명]

control상에 object를 drag한 후 drop하였을 때 발생한다.

Event ID | Objects
pbm_dwndragdrop | DataWindow

[Argument]

source | DragObject 값 드래그된 control에 참조된다.
row | Long 값 사용자가 object를 drop한 포인터의 row 번호. drop한 포인터가 row상에 있지 않을 경우, row argument는 0 값을 갖는다. 예를들어, drop한 포인터가 데이터영역을 벗어나거나, row 사이의 문장 또는 공란내에 있거나, header, summary, 또는 footer 영역에 있을 경우 row 값은 0이다.
dwo | DWObject 값 사용자가 object를 drop하였을 때 DataWindow내의 포인터에있는 object 참조값.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

[용법]

*** 쓸모없게된 함수안내 ***

drag 이벤트내에서 DraggedObject 함수를 호출할 필요없이, source argument를 사용하면 된다.

[예제]

* source object가 DataWindow control인지 여부를 체크하는 DataWindow에관한 DragDrop 이벤 트. object가 현재 row에서 발견되면 target으로 이동시킨다.

DataWindow ldw_Source
IF source.TypeOf() = DataWindow! THEN
 | ldw_Source = source
 | IF row > 0 THEN
 |  | ldw_Source.RowsMove(row, row, Primary!, &
 |  |  | This, 1, Primary!)
 | END IF

END IF

[참고]

DragEnter

DragLeave

DragWithin

DragDrop event : syntax 2

[설명]

control상에 object룰 drag한 후 drop하였을 때 발생한다.

Event ID | Objects
pbm_lbndragdrop | ListBox, PictureListBox
pbm_lvndragdrop | ListView
pbm_tcndragdrop | Tab

[Argument]

source | DragObject 값. 드래그되어있는 control에 참조된다.
index | Integer 값 대상(target) ListView 아이템의 색인번호

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | Continue processing

[용법]

ListView control에 관한 것은, BeginDrag 이벤트의 예제를 참고한다.

*** 쓸모없게된 함수안내 ***

drag 이벤트내에서 DraggedObject 함수를 호출할 필요없이, source argument를 사용하면 된다.

[예제]

* 드래그된 ListView 아이템을 삽입한다.

This.AddItem(ilvi_dragged_object)

This.Arrange( )

[참고]

BeginDrag

BeginRightDrag

DragDrop

DragEnter

DragLeave

DragWithin

DragDrop event : syntax 3

[설명]

control상에 object룰 drag한 후 drop하였을 때 발생한다.

Event ID | Objects
pbm_tvndragdrop | TreeView

[Argument]

source | DragObject 값. 드래그되어있는 control에 참조된다.
handle | Long 값 대상(target) TreeView 아이템의 handle

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | Continue processing

[용법]

*** 쓸모없게된 함수안내 ***

drag 이벤트내에서 DraggedObject 함수를 호출할 필요없이, source argument를 사용하면 된다.

[예제]

* TreeView에 드래그된 object를 child 아이템으로 삽입한다.

TreeViewItem ltv_1

This.GetItem(handle, ltv_1)

This.SetDropHighlight(handle)

This.InsertItemFirst(handle, itvi_drag_object)

This.ExpandItem(handle)

This.SetRedraw(TRUE)

[참고]

DragEnter

DragLeave

DragWithin

DragDrop event : syntax 4

[설명]

control상에 object룰 drag한 후 drop하였을 때 발생한다.

Event ID | Objects
pbm_bndragdrop | CheckBox, CommandButton, Graph, Picture, PictureButton, RadioButton
pbm_cbndragdrop | DropDownListBox, DropDownPictureListBox
pbm_endragdrop | SingleLineEdit, EditMask, MultiLineEdit, StaticText
pbm_omndragdrop | OLE 2.0
pbm_rendragdrop | RichTextEdit
pbm_sbndragdrop | HScrollBar, VScrollBar
pbm_uondragdrop | UserObject
pbm_dragdrop | Window

[Argument]

source

DragObject 값.

드래그되어있는 control에 참조된다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

control의 DragAuto property가 TRUE면, 사용자가 마우스 버튼을 눌렀을 때 드래그가 시작된다.

*** 쓸모없게된 함수안내 ***

drag 이벤트내에서 DraggedObject 함수를 호출할 필요없이, source argument를 사용하면 된다.

[예제]

1) ABNC 샘플 응용프로그램의 w_orderentry 윈도우에 있는 것으로, DataWindow dw_orddetail 를 드래그하기위한 DoubleClicked 이벤트 코드이다.

IF dw_orddetail.GetRow() > 0 THEN

dw_orddetail.Drag(Begin!)

This.DragIcon = "dragitem.ico"

END IF

trashcan(휴지통) Picture control에 관한 DragDrop 이벤트내에서, 다음 코드는 사용자가 클릭 한 후 DataWindow control로부터 드래그한 row를 삭제한다.

long ll_currow

dwitemstatus ldwis_delrow

ll_currow = dw_orddetail.GetRow( )

// 나중에 사용하기 위하여 row의 상태 flag를 저장한다. use

ldwis_delrow = dw_orddetail.GetItemStatus(ll_currow, 0, Primary!)

// dw_orddetail로부터 현재 row를 삭제한다.

dw_orddetail.DeleteRow(0)

2) trashcan(휴지통) Picture control의 DragDrop 이벤트에서 드래그 작용의 소스가 DataWindow 인지 여부를 체크하기위한 것이다. 또한, source DataWindow내의 현재 row에관한 삭제 여부 를 사용자에게 묻는다.

DataWindow ldw_Source Long ll_RowToDelete Integer li_Choice IF source.TypeOf() = DataWindow! THEN
 | ldw_Source = source ll_RowToDelete = ldw_Source.GetRow() IF ll_RowToDelete > 0 THEN
 |  | li_Choice=MessageBox("Delete",& "이row를삭제하시겠습니까?", Question!, YesNo!, 2)
 |  | IF li_Choice = 1 THEN
 |  |  | ldw_Source.DeleteRow(ll_RowToDelete)
 |  | END IF
 | ELSE
 |  | Beep(1)
 | END IF
ELSE
 | Beep(1)
END IF

[참고]

DragEnter

DragLeave

DragWithin


DragEnter event

[설명]

object를 드래깅하여 control에 넣었을 때 발생한다.

Event ID | Objects
pbm_bndragenter | CheckBox,CommandButton,Graph, Picture, PictureButton, RadioButton
pbm_cbndragenter | DropDownListBox, DropDownPictureListBox
pbm_dwndragenter | DataWindow
pbm_endragenter | SingleLineEdit, EditMask, MultiLineEdit, StaticText
pbm_lbndragenter | ListBox, PictureListBox
pbm_lvndragenter | ListView
pbm_omndragenter | OLE 2.0
pbm_rendragenter | RichTextEdit
pbm_sbndragenter | HScrollBar, VScrollBar
pbm_tcndragenter | Tab
pbm_tvndragenter | TreeView
pbm_uondragenter | UserObject
pbm_dragenter | Window

[Argument]

source

DragObject 값

드래그된 control에 참조된다.

[Return 값]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

[용법]

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[예제]

* Picture control의 DragDrop event내에서 다른 Picture control source가 영역 안으로 드래그 되 었었을 때, 경계선을 추가한다.

IF source.TypeOf( ) = Picture! THEN

This.Border = TRUE

END IF

[참고]

DragDrop

DragLeave

DragWithin


DragLeave event

[설명]

object를 드래깅하여 control을 벗어났을 때, 발생한다.

Event ID | Objects
pbm_bndragleave | CheckBox, CommandButton, Graph, Picture, PictureButton, RadioButton
pbm_cbndragleave | DropDownListBox, DropDownPictureListBox
pbm_dwndragleave | DataWindow
pbm_endragleave | SingleLineEdit, EditMask, MultiLineEdit, StaticText
pbm_lbndragleave | ListBox, PictureListBox
pbm_lvndragleave | ListView
pbm_omndragleave | OLE 2.0
pbm_rendragleave | RichTextEdit
pbm_sbndragleave | HScrollBar, VScrollBar
pbm_tcndragleave | Tab
pbm_tvndragleave | TreeView
pbm_uondragleave | UserObject
pbm_dragleave | Window

[Argument]

source

DragObject 값

드래그된 control에 참조된다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

[용법]

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[예제]

* 드래그된 control의 이름을 체크하여, 그 control이 cb_1일경우에는 드래그 작업을 취소시킨다.

IF ClassName(source) = "cb_1" THEN

cb_1.Drag(Cancel!)

END If

* Picture control의 DragDrop event내에서 다른 Picture control source가 영역 밖으로 벗어났을 때, 경계선을 제거한다.

IF source.TypeOf( ) = Picture! THEN

This.Border = FALSE

END IF

[참고]

DragDrop

DragEnter

DragWithin


DragWithin event : Syntax1 DataWindow control

[설명]

control 내에서 object를 드래깅할 때 발생한다.

Event ID | Objects
pbm_dwndragwithin | DataWindow

[Argument]

source | DragObject 값 드래그된 control을 참조한다.
row | Long 값 포인터가 위치한 row 번호. 만일 포인터가 row위에 있지 않으면 row argumet 값은 0 이다. 예를들어, 포인터가 데이터영역 밖에 있거나, 텍스트나 row사이에 있거나, header, summary, 또는 footer 영역에 있을 경우 row값은 0 이 된다.
dwo | DWObject 값. DataWindow내의 포인터 아래에 위치한 object를 참고한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

[용법]

DragWithin event는 control내에서 마우스를 움직임으로써 반복하여 발생한다.

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[참고]

DragDrop

DragEnter

DragLeave

DragWithin event : Syntax2 ListBox, PictureListBox,

ListView, Tab control

[설명]

control내에서 object를 드래깅할 때 발생한다.

Event ID | Objects
pbm_lbndragwithin | ListBox, PictureListBox
pbm_lvndragwithin | ListView
pbm_tcndragwithin | Tab

[Argument]

source | DragObject 값. 드래그된 control을 참조한다.
index | Integer 값 ListView contol내의 포인터 아래에 위치한 ListView 아이템을 참조한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[예제]

* DragObject가 경계선에 들어왔을 때 ListView의 배경색을 변경한다.

This.BackColor = RGB(128, 0, 128)

[참고]

DragDrop

DragEnter

DragLeave

DragWithin event : Syntax3 TreeView control

[설명]

control내에서 object를 드래깅할 때 발생한다.

Event ID | Objects
pbm_tvndragwithin | TreeView

[Argument]

source | DragObject 값. 드래그된 control을 참조한다.
handle | Long TreeView control내의 포인터 아래에 위치한 TreeView 아이템을 참조한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[예제]

* DragObject가 경계선에 들어왔을 때 TreeView의 배경색을 변경한다.

This.BackColor = RGB(128, 0, 128)

[참고]

DragDrop

DragEnter

DragLeave

DragWithin event : Syntax4 Window 및 기타 control

[설명]

control내에서 object를 드래깅할 때 발생한다.

Event ID | Objects
pbm_bndragwithin | CheckBox, CommandButton, Graph, Picture, PictureButton, RadioButton
pbm_cbndragwithin | DropDownListBox, DropDownPictureListBox
pbm_endragwithin | SingleLineEdit, EditMask, MultiLineEdit, StaticText
pbm_omndragwithin | OLE 2.0
pbm_rendragwithin | RichTextEdit
pbm_sbndragwithin | HScrollBar, VScrollBar
pbm_uondragwithin | UserObject
pbm_dragwithin | Window

[Argument]

source

DragObject 값.

드래그된 control을 참조한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리계속

*** 필요없게된 함수 DraggedObject ***

드래그 event내에서 DraggedObject 함수를 호출할 필요없이 source 인수를 사용하면된다.

[참고]

DragDrop

DragEnter

DragLeave


EditChanged event

[설명]

DataWindow의 edit control에서 사용자가 타이핑하는 keystroke 마다 발생한다.

Event ID | Objects
pbm_dwnchanging | DataWindow

[Arguments]

row | Long 타입의 값. 수정되기 시작한 아이템을 포함하고있는 row의 번호.
dwo | DWObject 값. 수정되기 시작한 아이템을 포함하고있는 칼럼을 참조한다. dwo는 칼럼 object를 참조하는 것이므로, 그 칼럼의 이름은 아니다.
data | String 타입의 값. DataWindow edit control의 현재 값.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* StaticText control에 편집중인 row 와 column을 나타낸다.

st_1.Text = "Row " + String(row) + " in column " + dwo.Name

[참고]

ItemChanged


EndLabelEdit event: syntax 1

[설명]

아이템 레이블 편집을 마쳤을 때 발생한다.

Event ID | Objects
pbm_lvnendlabeledit | ListView

[Argument]

index | Integer | 레이블을 편집한 ListView 아이템의 색인.
newlabel | ListView | 아이템의 새로운 레이블을 다시 나타낼 문자열.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 아이템 레이블의 새로운 텍스트를 허락한다
1 | 아이템 레이블의 새로운 텍스트를 허락하지 않는다

[용법]

텍스트를 편집한 후 ENTER나 TAB 키를 눌렀을 때 사용자가 이 이벤트를 발생시킨다.

[예제]

* SingleLineEdit에 이전 레이블과 새 레이블을 나타낸다.

ListViewItem lvi

sle_info.text = "Finished editing "+ string(lvi.label)&

+". Item changed to "+ string(newtext)

[참고]

BeginLabelEdit


Error event

[설명]

external object 나 DataWindow object에관한 데이터 또는 property 표현내에 에러가 발견되었을 때 발생한다. 또한, 분산된 응용프로그램에서 communications error가 발견되었을때에도 발생한다.

Event ID | Objects
없음 | Connection, DataWindow, DataStore, OLE 2.0, OLEObject

[Argument]

errornumber | 부호없는 integer 값 PowerBuilder의 에러 번호
errortext | 문자열, 읽기-전용 PowerBuilder의 에러 메시지
errorwindowmenu | 문자열, 읽기-전용 에러를 일으킨 스크립트를 가진 object의 부모 윈도우나 메뉴의 이름
errorobject | 문자열, 읽기-전용 에러를 발생시킨 스크립트를 포함하고있는 object 이름
errorscript | 문자열, 일기-전용 에러가 발생한 스크립트 전체 텍스트
errorline | 부호없는 integer 값 에러가 발생한 스크립트 라인
action | 참조에의한 ExceptionAction 에러의 결과로써 응용프로그램의 행동을 제어하기위한 값을 명시하며, 그 값들은 다음과 같다:
 | ExceptionFail! | 스크립트가 존재하지 않는 것처럼 실패시킨다. 에러 조건은 SystemError event를 발생시킨다.
 | ExceptionIgnore! | 에러를 무시하고 에러가 발생하지 않은것처럼 리턴한다. (이 옵션은 다른 에러를 유발시킬 수 있으므로 주의해서 사용하여야 한다.)
 | ExceptionRetry! | OLE 서버가 준비되지 않은 경우 함수 또는 표현식을 다시 실행시킨다. 이 옵션은 DataWindow의 경우는 타당치 않다
 | ExceptionSubstituteReturnValue! |  | OLE server나 DataWindow에 의한 값대신 returnvalue argument에 명시한 값을 사용하고 에러조건을 취소시킨다.
returnvalue | 참조에의한 값 OLE server나 DataWindow가 가지게될 리턴값과 데이터 타입이 일치하는 값. 이 값은 action 값이 ExceptionSubstituteReturnValue!일 때 사용된다.

[Return 코드]

없음 (RETURN 문장을 사용하지 않는다)

[용법]

DataWindow 와 OLE objects는 동적이다. object의 데이터와 property를 참조하는 dot notation을 사용하는 표현식은 실행시에만 타당성이 검증된다. Error 이벤트는 에러복구 로직을 가지고 이러한 동적 상황에 대처할 수 있도록 해준다.

Error 이벤트는 또한 분산된 응용프로그램의 클라이언트 부분내에서 통신에러에 대처할 수 있도록 해준다. 특정한 connection object에 관한 Error 이벤트내에서, 사용자는 client 와 server사이에 통신하는 동안 에러가 발생하였을 때 어떠한 action을 취할것인지 PowerBuilder에 알릴 수 있다.

Error 이벤트는 응용프로그램에 치명적이지 않은 에러가 발생 하였을때 기본값을 대체할 기회을 준다. argument 또한 디버깅 과정에서 유용한 정보를 제공한다. 예를들어, argument는 컴파일러에 의하여 체크되지않고 실행시에만 체크되는 DataWindow 데이터 표현식의 디버그를 도울 수 있다.

** return 값을 대시 사용할 때 *

ExceptionSubstituteReturnValue! action은 표현식의 마지막 요소에의하여 에러가 발생하였을 때

returnvalue를 대신사용할 수 있도록 해준다. 표현식의 중간에있는 요소에의하여 에러가

발생하였을 때에는 ExceptionSubstituteReturnValue!를 사용하지 말아야한다. 대치된 return value는

문제가발생한 object의 데이터 타입과 일치하지 않을수 있고 이것은 시스템 에러를 유발시키기 때문이다. *

DataWindow의 경우, 데이터 또는 property 표현식을 평가하는 동안 에러가 발생하였을 때, 다음과같은 에러처리가 일어난다:

Error 이벤트가 발생한다.

Error 이벤트가 스크립트를 가지고있지 않거나 argument가 ExceptionFail!로 설정되어있으면, SystemError 이벤트가 발생한다

SystemError 이벤트가 스크립트를 가지고있지 않으면, 응용프로그램 에러가 발생하고 그 응용프로그램은 종료된다.

분산된 응용프로그램의 client 부분에서의 에러처리과정은 DataWindows에서와 동일하다.

※ OLE control 내에서의 에러 처리에관한 정보는, ExternalException event를 참고한다.

※ Powersoft Online Book내의 정보는 다음 topic을 클릭한다.

Data expressions for DataWindow objects

Property expressions for DataWindow objects

Communications errors in a distributed application

[예제]

* 발생한 에러에관한 정보를 나타내고 계속진행한다.

MessageBox("Error Number " + string(errornumber) &
 | + " Occurred", "Errortext: " + String(errortext))
 | action = ExceptionIgnore!

[참고]

DBError

ExternalException

SystemError


FileExists event

[설명]

RichTextEdit control내에서 파일이 저장되고 그 파일이 이미 존재할 때 발생한다.

Event ID | Objects
pbm_renfileexists | RichTextEdit

[Argument]

filename 파일의 이름

[Return codes]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다
1 | 문서의 저장을 취소한다.

[용법]

SaveDocument 함수는 FileExists event 트리거할 수 있다.

[예제]

* 기존의 오픈된 파일에 겹쳐쓰거나 Save As를 이용하여 파일의 이름을 변경하기 위하여 플래그를 체크한다. Save As의 경우, 그 파일을 겹쳐 쓸 것인지 사용자에게 확인시킨다.

integer li_answer
// 동일한 파일에 저장할 것인지 물었다면,
// 겹쳐쓰기 메시지를 나타내지 않는다
IF ib_saveas = FALSE THEN RETURN 0
li_answer = MessageBox("FileExists", &
 | filename + " already exists. Overwrite?", &
 | Exclamation!, YesNo!)
 | MessageBox("Filename arg", filename)
// 저장을 취소한다
IF li_answer = 2 THEN RETURN 1


GetFocus event

[설명]

control이 focus를 받기 직전(선택되고 활성화되기 직전)에 발생한다.

[적용]

모든 controls

Event ID | Objects
pbm_bnsetfocus | CheckBox, CommandButton, Graph, OLE 2.0, Picture, PictureButton, RadioButton
pbm_cbnsetfocus | DropDownListBox, DropDownPictureListBox
pbm_dwnsetfocus | DataWindow
pbm_ensetfocus | SingleLineEdit, EditMask, MultiLineEdit, StaticText
pbm_lbnsetfocus | ListBox, PictureListBox
pbm_lvnsetfocus | ListView
pbm_rensetfocus | RichTextEdit
pbm_sbnsetfocus | HScrollBar, VScrollBar
pbm_tcnsetfocus | Tab
pbm_tvnsetfocus | TreeView

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

Macintosh의 경우는, 편집가능한 텍스트를 가진 control만 focus를 가질 수 있다. GetFocus event는 edit box를 가지지않은 control에서는 결고 발생하지 않는다. 따라서, 다른 PowerBuilder 플랫폼에서처럼 Macintosh에서도 잘 실행할 수 있는 응용프로그램을 개발중이라면, GetFocus 와 LoseFocus event 스크립트에는 결코 중요한 코드를 넣지 말아야한다.

예를들어, Macintosh의 경우, SingleLineEdit내에 사용자가 편집한 텍스트가있고 CommandButton을 클릭한다면, SingleLineEdit는 focus를 계속 유지하게 된다. CommandButton에관한 Clicked event는 발생하지만, LoseFocus 나 GetFocus event는 발생하지 않는다.

[예제]

* tab을 사용하였을 때 control내의 텍스트를 선택하는 SingleLineEdit control의 GetFocus event.

This.SelectText(1, Len(This.Text))

* 위의예에서, tab을 사용하지 않고 SingleLineEdit를 클릭하였을 때, control은 focus를 받고 텍스트는 반전되지 않는다. 선택한 텍스트에관한 사용자 이벤트를 정의하고 GetFocus내에서 post 이벤트를 사용하면, tab이나 마우스 클릭을 하였을 때 모두 텍스트를 반전시킬 수 있다.

--> GetFocus event
 | This. EVENT POST ue_select( )
--> ue_select 사용자 event
 | This.SelectText(1, Len(This.Text))

[참고]

Clicked

LoseFocus


Hide event

[설명]

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

Event ID | Objects
pbm_hidewindow | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

MDI frame안에있는 sheet가 닫혔을 때 Hide event가 발생할 수 있다. main, response, popup window등이 닫힐때에는 발생하지 않는다.

[참고]

Close

Show


HotLinkAlarm event

[설명]

Dynamic Data Exchange (DDE) 서버 응용프로그램이 새로운(변경된) 데이터를 보내고 client DDE 응용프로그램이 그 데이터를 받았을 때 발생한다.

Event ID | Objects
pbm_ddedata | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

StartHotLink 함수를 가진 DDE server 응용프로그램에 hot link를 설치한 후, 서버상에서의 action은 HotLinkAlarm event를 발생시킬 수 있다.

[예제]

* DDE server 응용프로그램과 새로운 데이터에관한 정보를 얻는다.

string ls_data, ls_appl, ls_topic, ls_item

GetDataDDEOrigin(ls_appl, ls_topic, ls_item)

GetDataDDE(ls_data)


Idle event

[설명]

응용프로그램 object 스크립트에서 Idle 함수가 호출되고 마우스나 키보드의 작용이 명시한 초를 경과하였을 때 발생한다.

Event ID | Objects
None | Application

[Arguments]

없음

[Return 코드]

없음 (RETURN 문장을 사용하지 않는다)

[예제]

* 아무런 작용없이 300초가 경과하면 Idle 이벤트를 트리거시킨다.

--> 응용프로그램내의 스크립트

Idle(300)

--> Idle 이벤트

// 응용프로그램을 닫는다.

HALT CLOSE


InputFieldSelected event

[설명]

RichTextEdit control에서, 입력필드의 데이터를 편집하기 위하여 더블-클릭을 하거나 Enter키를 눌렀을 때 발생한다.

Event ID | Objects
pbm_reninputfieldselected | RichTextEdit

[Argument]

fieldname 선택한 입력 필드의 이름을 갖는 문자열

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* 입력 필드내에서 사용자가 편집하기위한 데이터를 얻는 RichTextEdit control의 InputFieldSelected event

string ls_fieldvalue

ls_fieldvalue = This.InputFieldGetData(fieldname)

[참고]

PictureSelected


InsertItem event

[설명]

ListView에 아이템이 삽입되었을 때 발생한다.

Event ID | Objects
pbm_lvninsertitem | ListView

[Argument]

index TreeView에 삽입된 아이템의 인덱스 번호 (integer)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* 삽입된 아이템의 라벨과 인덱스를 나타낸다.

ListViewItem lvi
This.GetItem(index, lvi)
sle_info.Text = "Inserted "+ String(lvi.Label) &
 | + " into position " &
 | + String(index)

[참고]

DeleteItem


ItemChanged event: syntax 1

[설명]

DataWindow control내의 필드가 수정된 후 focus를 잃어버릴 때 (예를들어, Enter나 TAB키, 방향키등을 누르거나, DataWindow내의 다른 필드에 마우스를 클릭하였을 때) 발생한다. ItemChanged는 또한 DataWindow control 이나 DataStore object에관한 AcceptText 나 Update 함수가 호출되었을 때에도 발생한다.

Event ID | Objects
pbm_dwnitemchange | DataWindow control or DataStore

[Argument]

row | 값에의한 Long. 변경된 값을가진 아이템을 포함하고있는 row 번호.
dwo | 값에의한 DWObject. 변경된 값을가진 아이템을 포함하고있는 칼럼을 참조한다. dwo는 칼럼의 이름을 참조하는 것
data | 값에의한 String. 사용자가 명시한 아이템에관한 새로운 데이터.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.
1 | 데이터값을 거부하고 focus의 변경을 허락하지 않는다
2 | 데이터값은 거부하지만 focus의 변경은 허락한다

[용법]

ItemChanged event는 DataWindow control 자신의 focus를 잃어버릴때에는 발생하지 않는다. 사용자가 `저장' 이나 `종료' 버튼 등을 클릭할때에는, 그 버튼의 action이 발생하기전에 변경된 값을 받아들이기 위하여 AcceptText를 호출할 필요가 있다.

* 사용하지않는 기법 *

GetText 함수에 의한 유사한 정보는 data argument로 사용가능하다.

SetActionCode를 호출하는 대신, 리턴 코드와함께 RETURN 문장을 사용하도록 한다.

[예제]

* 데이터의 타당성을 강화하기 위하여 ItemChanged event를 강화한다. 칼럼이 emp_name이면, 칼럼내에 알파벳 문자만 입력되었는지 체크한다.

IF dwo.Name = "emp_name" THEN

IF NOT Match(data, ^[A-Za-z]$) THEN

RETURN 2

END IF

END IF

[참고]

ItemError

ItemChanged event: syntax 2

[설명]

ListView item이 변경되었을 때 발생한다.

Event ID | Objects
pbm_lvnitemchanged | ListView

[Argument]

index | 변경된 아이템의 인덱스
focuschanged | Boolean 변경된 아이템에관한 focus가 바뀌었을 때 명시한다.
hasfocus | Boolean 아이템이 focus를 가지고있는지 여부를 명시한다.
selectionchange | Boolean 아이템에관한 선택(반전되어 나타나는 부분)이 변경되었는지 여부를 명시한다.
selected | Boolean 아이템이 선택(반전)되었는지 여부를 명시한다.
otherchange | Boolean

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* focus가 변경된 아이템을 갖게됨으로써 이벤트가 발생한것인지 여부를 체크한다.

ListViewItem l_lvi

lv_list.GetItem(index, l_lvi)

IF focuschange and hasfocus THEN

sle1.Text = String(lvi.label) +" has gotten focus."

[참고]

ItemChanging


ItemChanging event

[설명]

ListView가 변경되기 직전에 발생한다.

Event ID | Objects
pbm_lvnitemchanging | ListView

[Argument]

index | 변경된 아이템의 인덱스
focuschange | Boolean 아이템에관한 focus가 변경중일 경우 명시한다.
hasfocus | Boolean 변경된아이템이 focus를 가지고있는지 여부를 명시한다.
selectionchange | Boolean 아이템의 선택(반전부분)이 변경중인지 여부를 명시한다.
selected | Boolean 아이템을 선택(반전) 하였는지 여부를 명시한다.
otherchange | Boolean

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[참고]

ItemChanged


ItemCollapsed event

[설명]

TreeView 아이템이 삭제되었을 때 발생한다.

Event ID | Objects
pbm_tvnitemcollapsed | TreeView

[Argument]

handle | 참조에의한 Long
 | 삭제된 TreeView 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* 삭제된 아이템의 그림을 변경한다.

TreeViewItem l_tvi
integer li_level
This.GetItem(handle, l_tvi)
CHOOSE CASE l_tvi.Level
 | CASE 1
 |  | l_tvi.PictureIndex = 1
 |  | l_tvi.SelectedPictureIndex = 1
 | CASE 2
 |  | l_tvi.PictureIndex = 2
 |  | l_tvi.SelectedPictureIndex = 2
 | CASE 3
 |  | l_tvi.PictureIndex = 3
 |  | l_tvi.SelectedPictureIndex = 3
 | CASE 4
 |  | l_tvi.PictureIndex = 4
 |  | l_tvi.SelectedPictureIndex = 4
END CHOOSE
This.SetItem(handle, l_tvi)

[참고]

ItemCollapsing


ItemCollapsing event

[설명]

TreeView 아이템이 삭제될 때 발생한다.

Event ID | Objects
pbm_tvnitemcollapsing | TreeView

[Argument]

handle | 참조에의한 Long
 | 삭제중인 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

ItemCollapsing 이벤트는 ItemCollapsed 이벤트 이전에 발생한다.

[예제]

* 삭제중인 아이템의 그림을 변경한다.

TreeViewItem l_tvi
integer li_level
This.GetItem(handle, l_tvi)
CHOOSE CASE l_tvi.level
 | CASE 1
 |  | l_tvi.PictureIndex = 1
 |  | l_tvi.SelectedPictureIndex = 1
 | CASE 2
 |  | l_tvi.PictureIndex = 2
 |  | l_tvi.SelectedPictureIndex = 2
 | CASE 3
 |  | l_tvi.PictureIndex = 3
 |  | l_tvi.SelectedPictureIndex = 3
 | CASE 4
 |  | l_tvi.PictureIndex = 4
 |  | l_tvi.SelectedPictureIndex = 4
END CHOOSE
This.SetItem(handle, l_tvi )

[참고]

ItemCollapsed


ItemError event

[설명]

필드가 수정되고, 그 필드가 focus를 잃을 때 (예를들어, Enter, Tab 또는 방향키를 누르거나 DataWindow내의 다른 필드를 클릭할 때), 그 필드내의 데이터가 칼럼의 평가규칙 (validation rule)을 통과하지 못하면 발생한다. 또한, DataWindow control 이나 DataStore에 들어오는 값이 평가규칙을 통과하지 못할때에도 발생할 수 있다.

Event ID | Objects
pbm_dwnitemvalidationerror | DataWindow control 또는 DataStore

[Argument]

row | 값에의한 Long 변경된 후 평가에 실패한 값을가진 아이템을 포함하고있는 row의 번호
dwo | 값에의한 DWObject 평가에 실패한 값을 지닌 아이템을 포함하고있는 칼럼을 참조한다. dwo는 칼럼이름을 참조하지 않고, 칼럼 object를 참조한다.
data | 값에의한 String 사용자가 수정한 새로운 데이터.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | (기본설정값) 처리를 계속한다.
1 | 메시시박스 없이 데이터값을 거부한다.
2 | 데이터값을 받아들인다.
3 | 데이터값은 거부하지만 focus의 변경은 허락한다.

[용법]

Return 코드가 0 이나 1일 경우, 데이터를 받아들이지 않고, 그 필드는 focus를 다시 받는다.

새로운 데이터가 평가 규칙에 어긋날 경우 ItemChanged 이벤트대신 ItemError 이벤트가 발생한다. ItemChanged 이벤트내에서 데이터 값을 거부함으로써 ItemError 이벤트를 강제로 발생 시킬 수 있다.

* 사용하지 않게된 기법 *

GetText 와 GetRow 함수에의하여 제공되는 정보는 data 와 row argument에서는 사용할 수 없다.

GetColumnName을 호출하는 대신, dwo argument를 이용하여 Name property를 참조하도록 한다.

SetActionCode를 호출하는 대신, 위에 나열한 리턴 코드를 RETURN 문장과 함께 사용하도록 한다.

[예제]

* 공란을 받아들이고 다음 칼럼으로 이동하는 것을 허락한다. 문자열이 아닌 다른 타입의 데이터를 가진 칼럼의 경우, 빈 값 (빈 문자열은 데이터 타입이 맞지 않는다)을 입력하고 이동할 수 없다. 빈 값을 넣으려 할 경우는, 칼럼 값을 NULL 값으로 설정한다.

string ls_colname, ls_datatype
ls_colname = dwo.Name
ls_datatype = dwo.ColType
// 공란이 아니면 받아들이지 않는다
IF Trim(data) <> "" THEN
 | RETURN 0
END IF
// 공란이면 null값을 설정한다
CHOOSE CASE ls_datatype
 | CASE "long"
 |  | integer null_num
 |  | SetNull(null_num)
 |  | This.SetItem(row, ls_colname, null_num)
 |  | RETURN 3
 | CASE "date"
 |  | date null_date
 |  | SetNull(null_date)
 |  | This.SetItem(row, ls_colname, null_date)
 |  | RETURN 3
 | // 데이터 타입에따라 필요한 CASE 문장을 추가한다
END CHOOSE

[참고]

ItemChanged


ItemExpanded event

[설명]

TreeView 아이템이 확장되었을 때 발생한다.

Event ID | Objects
pbm_tvnitemexpanded | TreeView

[Argument]

handle

참조에의한 Long

확장된 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

ItemExpanded 이벤트는 ItemExpanding 이벤트 이후에 발생한다.

[예제]

* 확장된 아이템에관한 그림을 설정하고 그 그림을 선택한다.

TreeViewItem l_tvi
integer li_level
This.GetItem(handle, l_tvi)
CHOOSE CASE l_tvi.Level
 | CASE 1
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 1
 | CASE 2
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 2
 | CASE 3
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 3
 | CASE 4
 |  | l_tvi.PictureIndex = 4 l_tvi.SelectedPictureIndex = 5
END CHOOSE
This.SetItem(handle, l_tvi )

[참고]

ItemExpanding


ItemExpanding event

[설명]

TreeView 아이템이 확장될 때 발생한다.

Event ID | Objects
pbm_tvnitemexpanding | TreeView

[Argument]

handle

참조에의한 Long

확장중인 TreeView 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

ItemExpanding 이벤트는 ItemExpanded 이벤트 이전에 발생한다.

[예제]

* 확장중인 아이템에관한 그림을 설정하고 그 그림을 선택한다.

TreeViewItem l_tvi
integer li_level
This.GetItem(handle, l_tvi)
CHOOSE CASE l_tvi.Level
 | CASE 1
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 1
 | CASE 2
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 2
 | CASE 3
 |  | l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 3
 | CASE 4
 |  | l_tvi.PictureIndex = 4 l_tvi.SelectedPictureIndex = 5
END CHOOSE
This.SetItem(handle, l_tvi)

[참고]

ItemExpanded


ItemFocusChanged event

[설명]

control에있는 현재 아이템이 변경되었을 때 발생한다.

Event ID | Objects
pbm_dwnitemchangefocus | DataWindow control

[Argument]

row | 값에의한 Long focus를 막 갖게된 아이템을 포함하고있는 row의 번호
dwo | 값에의한 DWObject focus를 막 갖게된 아이템을 포함하고있는 칼럼을 참조한다.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[용법]

ItemFocusChanged 이벤트는 DataWindow가 처음으로 나타날때를 포함하여, DataWindow내의 다른 칼럼으로 focus가 설정될 때 발생한다.

ItemFocusChanged 이벤트 내에서, dwo는 항상 칼럼 object 이다. 따라서, 사용자는 dwo.id 와 dwo.Name 등과 같이 적절한 property들을 참조 시킴으로써 더 많은 정보를 얻을 수 있다.

DataWindow내에서 row와 칼럼을 함께 사용하면 고유한 한 아이템을 지정할 수 있다.

[예제]

* focus를 잃어버린 row와 칼럼 및 focus를 막 얻은 row와 칼럼을 나타낸다. 제일 처음에는 focus를 잃어버린 아이템은 존재하지 않는다. 스크립트에서 다음번에 이벤트가 발생하였을 때 이전의 row와 칼럼을 알아내기 위하여 instance 변수 ii_row 와 is_colname에 row 번호와 칼럼 이름을 저장한다.

IF ii_row > 0 THEN
 |  | sle_olditem.Text = "Old row: " + String(ii_row) &
 |  |  | + " Old column: " + is_colname
END IF
sle_newitem.Text = "New row: " + String(row) &
 | + " New column: " + dwo.Name
// 다음에 focus가 변경될때를 위하여 instance 변수의 값을 대치한다
ii_row = row
is_colname = dwo.Name

[참고]

RowFocusChanged


ItemPopulate event

[설명]

TreeView 아이템이 children과 함께 표시될 때 발생한다.

Event ID | Objects
pbm_tvnitempopulate | TreeView

[Argument]

handle

참조에의한 Long

표시된 TreeView 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다.

[예제]

* SingleLineEdit에 나타낸 TreeView 아이템의 이름을 표시한다.

TreeViewItem tvi

This.GetItem(handle, tvi)

sle_get.Text = "Populating TreeView item " &

+ String(tvi.Label) + " with children"

[참고]

ItemExpanding


Key event

[설명]

어떤 키를 누를 때 발생한다.

Event ID | Objects
pbm_lvnkeydown | ListView
pbm_renkey | RichTextEdit
pbm_tcnkeydown | Tab
pbm_tvnkeydown | TreeView
pbm_keydown | Window

[Argument]

key | 값에의한 KeyCode
 | KeyA! 또는 KeyF1! 등과같이 누른 키를 나타내는 KeyCode의 값
keyflags | 값에의한 UnsignedLong
 | 키와 함께 눌려진 보조키.
 | 1 | SHIFT
 | 2 | CONTROL
 | 3 | SHIFT 와 CONTROL

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다
1 | 키처리를 하지 않는다 (RichTextEdit control만 해당)

[용법]

몇몇 PowerBuilder control들은 Key 이벤트를 받아들이는 것으로부터 윈도우를 보호하기 위하여 keystroke를 capture한다. ListView, TreeView, Tab, RichTextEdit, DataWindow 편집 control 등이 이러한 종류에 해당한다. 이들 control이 focus를 가지고있을 때 그 control에 관한 이벤트를 스크립트 함으로써 keystroke에 적절히 대응할 수 있다. keystroke에관한 이벤트를 미리 정의하지 않았을 경우, 사용자 이벤트를 정의하고 pbm 코드를 연결시킬 수 있다.

RichTextEdit control의 경우는, 키를 누름으로써 문서 형식을 지정할 수 있다. 예를들어, CTRL+B는 선택한 문장을 고딕체로 만든다. 리턴값을 1로 명시하면, 해당 키와 관련된 문서 형식 지정은 수행되지 않는다.

보조키 (CONTROL 과 SHIFT)를 누른상태로 다른 키를 누르면, Key 이벤트는 두 번 발생한다: 한 번은 보조키를 눌렀을 때 발생하고 다시 두 번째 키를 눌렀을 때 발생한다. 두 번째 키를 누르기전에 보조키를 놓게되면, keyflag는 두 번째 누른 키 값으로 변경된다.

키를 놓으면, Key 이벤트는 발생하지 않는다. 따라서, 보조키를 놓게되면, 다른 키를 누를때까지 보조키의 현재 상태를 알수 없다.

[예제]

* SHIFT 와 CONTROL 키를 누르지 않고 F1 이나 F2를 누르면 발신음을 낸다.

IF keyflags = 0 THEN
 | IF key = KeyF1! THEN
 |  | Beep(1)
 | ELSEIF key = KeyF2! THEN
 |  | Beep(20)
 | END IF
END IF

* 키를눌렀을 때 keyflag의 값을 나타낸다.

st_1.Text = String(keyflags)

[참고]

SystemKey


LineDown event

[설명]

수직 스크롤바 (vertical scrollbar)의 아래 방향키를 클릭할 때 발생한다.

Event ID | Objects
pbm_sbnlinedown | VScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수직 스크롤바(vertical scrollbar) 안에서 클릭하면, 스크롤바의 Position property를 변경하는 스크립트를 작성하지 않는한 아무일도 일어나지 않는다. 스크롤바 방향키의 경우는, LineUp 과 LineDown 이벤트를 사용한다; 스크롤바의 위치버튼(thumb) 위 아래에있는 영역에 클릭하였을 경우에는, PageUp 과 PageDown 이벤트를 사용한다; 위치버튼(thumb) 자체를 드래깅 할 경우에는 Moved 이벤트를 사용한다.

[예제]

* 수직 스크롤바의 아래 방향키를 클릭할 때 위치버튼(thumb)을 아래로 움직이도록 한다.

IF This.Position > This.MaxPosition - 1 THEN
 | This.Position = MaxPosition
ELSE
 | This.Position = This.Position + 1
END IF
st_1.Text = "LineDown " + String(This.Position)

[참고]

LineLeft

LineRight

LineUp

PageDown


LineLeft event

[설명]

수평 스크롤바 (horizontal scrollbar)의 왼쪽 방향키를 클릭할 때 발생한다.

Event ID | Objects
pbm_sbnlineup | HScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수평 스크롤바(horizontal scrollbar) 안에서 클릭하면, 스크롤바의 Position property를 변경하는 스크립트를 작성하지 않는한 아무일도 일어나지 않는다. 스크롤바 방향키의 경우는, LinLeft 와 LineRight 이벤트를 사용한다; 스크롤바의 위치버튼(thumb) 좌 우에있는 영역에 클릭하였을 경우에는, PagLeft 과 PageRight 이벤트를 사용한다; 위치버튼(thumb) 자체를 드래깅 할 경우에는 Moved 이벤트를 사용한다.

[예제]

* 수평 스크롤바(horizontal scrollbar)의 왼쪽 방향키를 클릭하였을 때 위치버튼(thumb)을 이동시키는 LineLeft 이벤트 코드. 이동된 위치는 StaticText control st_1에 표시한다.

IF This.Position < This.MinPosition + 1 THEN
 | This.Position = MinPosition
ELSE
 | This.Position = This.Position - 1
END IF
st_1.Text = "LineLeft " + String(This.Position)

[참고]

LineDown

LineRight

LineUp

PageLeft


LineRight event

[설명]

수평 스크롤바의 오른쪽 방향키를 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnlinedown | HScrollBar

[Argument]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수평 스크롤바(horizontal scrollbar) 안에서 클릭하면, 스크롤바의 Position property를 변경하는 스크립트를 작성하지 않는한 아무일도 일어나지 않는다. 스크롤바 방향키의 경우는, LinLeft 와 LineRight 이벤트를 사용한다; 스크롤바의 위치버튼(thumb) 좌 우에있는 영역에 클릭하였을 경우에는, PagLeft 과 PageRight 이벤트를 사용한다; 위치버튼(thumb) 자체를 드래깅 할 경우에는 Moved 이벤트를 사용한다.

[예제]

* 수평 스크롤바(horizontal scrollbar)의 오른쪽 방향키를 클릭하였을 때 위치버튼(thumb)을 이동시키는 LineRight 이벤트 코드. 이동된 위치는 StaticText control st_1에 표시한다.

IF This.Position > This.MaxPosition - 1 THEN
 | This.Position = MaxPosition
ELSE
 | This.Position = This.Position + 1
END IF
st_1.Text = "LineRight " + String(This.Position)

[참고]

LineDown

LineUp

LineLeft

PageRight


LineUp event

[설명]

수직 스크롤바의 위 방향키를 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnlineup | VScrollBar

[Argument]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수직 스크롤바(vertical scrollbar) 안에서 클릭하면, 스크롤바의 Position property를 변경하는 스크립트를 작성하지 않는한 아무일도 일어나지 않는다. 스크롤바 방향키의 경우는, LineUp 과 LineDown 이벤트를 사용한다; 스크롤바의 위치버튼(thumb) 위 아래에있는 영역에 클릭하였을 경우에는, PageUp 과 PageDown 이벤트를 사용한다; 위치버튼(thumb) 자체를 드래깅 할 경우에는 Moved 이벤트를 사용한다.

[예제]

* 수직 스크롤바의 위 방향키를 클릭할 때 위치버튼(thumb)을 위로 움직이도록하는 LineUp 이벤트의 스크립트. 변경된 위치는 StaticText control st_1에 나타낸다.

IF This.Position < This.MinPosition + 1 THEN
 | This.Position = MinPosition
ELSE
 | This.Position = This.Position - 1
END IF
st_1.Text = "LineUp " + String(This.Position)

[참고]

LineDown

LineLeft

LineRight

PageUp


Modified event

[설명]

control의 내용이 변경되었을 때 발생한다.

Event ID | Objects
pbm_cbnmodified | DropDownListBox, DropDownPictureListBox
pbm_enmodified | SingleLineEdit, EditMask, MultiLineEdit
pbm_renmodified | RichTextEdit

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

일반적인 텍스트 control의 경우, Modified 이벤트는 ENTER나 탭 키를 눌러 수정이 종료되었음을 알릴 때 발생한다.

RichText Edit control의 경우는, Modified property의 값에따라 Modified 이벤트가 제어된다. 그 property가 FALSE일 경우, 이벤트는 control의 내용이 처음으로 변경될 때 발생한다. 또한 그러한 변경으로 인하여 property의 값은 TRUE로 설정되고, Modified 이벤트는 발생하지 않는다. 사용자는 property를 FALSE로 설정하면 다시 변경된 내용을 체크할 수 있게된다.

Modified property를 다시 설정하는 것은 control내에 문서를 삽입할 때 유용하다. (변경된 control의 내용을 나타낼수 있다.) 문서의 변경된 내용을 찾으려면, 그 문서를 오픈하는 스크립트내에서 Modified property를 FALSE로 설정한다. 사용자가 편집을 시작할 때, 그 property는 TRUE로 재설정되고 이벤트가 다시 발생한다.

Modified 이벤트는 LoseFocus 이벤트 다음에 발생할 수도 있다.

[예제]

* SingleLineEdit control인 sle_color에 입력된 텍스트의 검증을 수행하는 Modified 이벤트으 스크립트이다. RED, WHITE, 또는 BLUE를 입력하지 않으면 메시지 박스에 잘못된 입력임을 나타낸다. 또한 타당하지 않은 자료일 경우, 텍스트의 색상이 변경된다.

string ls_color This.BackColor = RGB(150,150,150) ls_color = Upper(This.Text) CHOOSE CASE ls_color
 | CASE "RED"
 |  | This.TextColor = RGB(255,0,0)
 | CASE "BLUE"
 |  | This.TextColor = RGB(0,0,255)
 | CASE "WHITE"
 |  | This.TextColor = RGB(255,255,255)
 | CASE ELSE
 |  | This.Text = ""MessageBox("Invalid input", &
 |  |  | "Enter RED, WHITE, or BLUE.")
END CHOOSE

[참고]

LoseFocus


MouseDown event: syntax 1

[설명]

RichTextEdit control상에서 왼쪽 마우스 버튼을 누를 때 발생한다.

Event ID | Objects
pbm_renlbuttondown | RichTextEdit

[Argument]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 왼쪽 마우스 버튼을 눌렀을 때 SingleLineEdit sle_1에 텍스트를 할당하는 RichTextEdit control의 MouseDown 이벤트.

sle_1.text = "Mouse Down"

[참고]

Clicked

MouseMove

MouseUp

MouseDown event: syntax 2

[설명]

윈도우의 점유되지않은 영역에서 왼쪽 마우스 버튼을 클릭할 때 발생한다.

Event ID | Objects
pbm_lbuttondown | Window

[Argument]

Flags
 | UnsignedLong by value modifier key(SHIFT, CONTROL 등)와 눌려진 마우스 버튼
 | 1 | 왼쪽 마우스 버튼
 | 2 | 오른쪽 마우스 버튼
 | 4 | SHIFT 키
 | 8 | CONTROL 키
 | 16 | 가운데 마우스 버튼
 | MouseDown even에서는, 왼쪽 마우스 버튼이 항상 눌려있기 때문에, flags의 값은 항상1이다.
xpos | Integer by value 윈도우 좌측면으로부터의 거리 (PowerBuilder 단위).
ypos | Integer by value 윈도우 상단으로부터의 거리 (PowerBuilder 단위).

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* xpos 와 ypos argument를 이용하여 마우스 포인터의 위치를 나타내는 MouseDown 이벤트.

sle_2.Text = "Position of Pointer is: " + String(xpos)+ "," + String(ypos)

* flags argument의 값을 체크하여 SingleLineEdit sle_modkey에 눌려진 modifier key(SHIFT, CONTROL 등)를 나타내는 MouseDown 이벤트.

CHOOSE CASE flags
 | CASE 1
 |  | sle_mkey.Text = "No modifier keys pressed"
 | CASE 5
 |  | sle_mkey.Text = "SHIFT key pressed"
 | CASE 9
 |  | sle_mkey.Text = "CONTROL key pressed"
 | CASE 13
 |  | sle_mkey.Text = "SHIFT and CONTROL keys pressed"
END CHOOSE |  |

[참고]

Clicked

MouseMove

MouseUp


MouseMove event: syntax 1

[설명]

RichTextEdit control내에서 마우스가 움직였을 때 발생한다.

Event ID | Objects
pbm_renmousemove | RichTextEdit

[Argument]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

Clicked

MouseDown

MouseUp

MouseMove event: syntax 2

[설명]

윈도우내에서 마우스가 움직였을 때 발생한다.

Event ID | Objects
pbm_mousemove | Window

[Argument]

flags | UnsignedLong by value
 | modifier key(SHIFT, CONTROL 등)와 눌려진 마우스 버튼.
 | 1 | 왼쪽 마우스 버튼
 | 2 | 오른쪽 마우스 버튼
 | 4 | SHIFT 키
 | 8 | CONTROL 키
 | 16 | 가운데 마우스 버튼
 | flags는 눌려진 모든 버튼과 키들의 값을 합한 것이다.
xpos | Integer by value 윈도우 좌측면으로부터의 거리 (PowerBuilder 단위).
ypos | Integer by value 윈도우 상단으로부터의 거리 (PowerBuilder 단위).

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

윈도우내의 대부분 control들은 MouseMove 이벤트를 잡지않으므로, control위로 마우스를 이동하였을 때 윈도우의 MouseMove 이벤트는 아직 트리거된 상태를 유지한다.

flags는 버튼과 키 번호의 합이기 때문에, 가능한 큰값부터 체크해 나가면 어떤 키가 눌러졌는지 알 수 있다. 예를들어:

Flags가 5이면, SHIFT 키(4) 와 왼쪽 마우스 버튼(1)을 누른 것이다.

Flags가 14이면, CONTROL 키(8), SHIFT 키(4), 오른쪽 마우스 버튼(2)를 누른 것이다.

* 다음의 예는 모든 버튼과 키들을 다룰수 있는 것이다. 여기에서 boolean 변수들은 기본적으로 FALSE로 설정된다.

boolean lb_left_button, lb_right_button boolean lb_middle_button, lb_shift_key, lb_control_key integer li_flags li_flags = flags IF li_flags > 15 THEN
 | // 가운데 마우스 버튼을 눌렀다 lb_middle_button = TRUE li_flags = li_flags - 16
END IF IF li_flags > 7 THEN
 | // Control 키를 눌렀다 lb_control_key = TRUE li_flags = li_flags - 8
END IF IF li_flags > 3 THEN
 | // Shift 키를 눌렀다 lb_shift_key = TRUE
li_flags = li_flags - 4 END IF IF li_flags > 1 THEN
 | // 오른쪽 마우스 버튼을 눌렀다
lb_lb_right_button = TRUE
 | li_flags = li_flags - 2
END IF IF li_flags = 1 THEN lb_left_button = TRUE

[참고]

Clicked

MouseDown

MouseUp


MouseUp event: syntax 1

[설명]

RichTextEdit control에서 왼쪽 마우스 버튼을 놓을 때 발생한다.

Event ID | Objects
pbm_renlbuttonup | RichTextEdit

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

마우스 버튼을 놓았을떼 Clicked 이벤트도 발생한다.

[예제]

* 왼쪽 마우스 버튼을 놓았을 때 SingleLineEdit sle_1에 텍스트를 할당하는 RichTextEdit control의 MouseUp event 스크립트

sle_1.Text = "Mouse Up"

[참고]

Clicked

MouseDown

MouseMove

MouseUp event: syntax 2

[설명]

윈도우의 점유되지 않은영역 (visible, enabled object를 가지지않은 어떠한 영역도 가능)에서 왼쪽 마우스 버튼을 놓았을 때 발생한다.

Event ID | Objects
pbm_lbuttonup | Window

[Argument]

flags | UnsignedLong by value modifier key(SHIFT, CONTROL 등)와 눌려진 마우스 버튼.
 | 1 | 왼쪽 마우스 버튼
 | 2 | 오른쪽 마우스 버튼
 | 4 | SHIFT 키
 | 8 | CONTROL 키
 | 16 | 가운데 마우스 버튼
 |  | MouseUp에서는, 왼쪽 마우스 버튼이 눌려지지 않은 상태이므로, flags의 값에서 1은 더해지지 않는다. flags에관한 설명은 MouseMove 이벤트의 Syntax 2를 참조한다.
xpos | Integer by value 윈도우 좌측면으로부터의 거리 (PowerBuilder 단위).
ypos | Integer by value 윈도우 상단으로부터의 거리 (PowerBuilder 단위).

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법] 마우스 버튼을 놓을 때 Clicked 이벤트도 발생한다.

[예제]

* 마우스 버튼을 놓을 때 xpos 와 ypos를 이용하여 그 포인터의 윈도우 위치값을 SingleLineEdit sle_2에 나타내는 MouseUp event 스크립트

sle_2.Text = "Position of Pointer is: " + &

String(xpos)+ "," + String(ypos)

* flags argument의 값을 체크하고 눌려진 modifier키를 SingleLineEdit sle_modkey에 나타내는 MouseUp 이벤트

CHOOSE CASE flags
 | CASE 0
 |  | sle_mkey.Text = "No modifier keys pressed"
 | CASE 4
 |  | sle_mkey.Text = "SHIFT key pressed"
 | CASE 8
 |  | sle_mkey.Text = "CONTROL key pressed"
 | CASE 12
 |  | sle_mkey.Text = "SHIFT and CONTROL keys pressed"
END CHOOSE |  |

[참고]

Clicked

MouseDown

MuseMove


Open event: syntax 1

[설명]

응용프로그램을 시작할 때 오픈한다.

Event ID | Objects
None | Application

[Argument]

commandline

String by value

실행가능한 프로그램의 이름 뒤에 포함한 추가적인 argument

[Return 코드]

없음 (RETURN 문장을 사용하지 않는다)

[용법]

이 이벤트는 데이터베이스 접속 파라미터를 설치하고 응용프로그램의 메인 윈도우를 오픈할 수 있다.

Windows 95 하에서, 시작 메뉴로부터 Run 명령을 상용할때나 응용프로그램에 관한 shortcut를 정의할 때 target을 명시하는 한 부분으로써 명령어 라인 argument를 명시할 수 있다.

개발환경에서 응용프로그램을 테스트할 때에는 명령어 라인값을 명시할 수는 없다.

다른 이벤트와 함수에서는, 명령어 라인 argument를 얻기위하여 CommandParm 함수를 호출할 수 있다.

[예제]

* MDI template를 자동으로 생성한다.

/* 현재 설정된 PB.INI로 부터의 SQLCA */

SQLCA.DBMS = ProfileString("pb.ini", "database", &
 |  | "dbms", "")
SQLCA.Database = ProfileString("pb.ini", "database",&
 |  | "database", "")
SQLCA.Userid = ProfileString("pb.ini", "database", &
 |  | "userid", "")
SQLCA.DBPass = ProfileString("pb.ini", "database", &
 |  | "dbpass", "")
SQLCA.Logid = ProfileString("pb.ini", "database", &
 |  | "logid", "")
SQLCA.Logpass = ProfileString("pb.ini", "database", &
 |  | "LogPassWord", "")
SQLCA.Servername = ProfileString("pb.ini", &
 |  | "database", "servername", "")
SQLCA.DBParm = ProfileString("pb.ini", "database", &
 |  | "dbparm", "")
CONNECT; IF SQLCA.Sqlcode <> 0 THEN
 | MessageBox("Cannot Connect to Database", &
 |  |  | SQLCA.SQLErrText)
 | RETURN
END IF

/* MDI 형식의 윈도우를 오픈한다 */

Open(w_genapp_frame)

[참고]

Close

Open event: syntax 2

[설명]

Open 함수에의하여 윈도우가 오픈되었을 때 발생한다. 이 이벤트는 윈도우가 오픈된 후, 화면에 표시되기 전에 발생한다.

Event ID | Objects
pbm_open | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

다음 함수들은 Open 이벤트를 유발 시킨다;

Open

OpenWithParm

OpenSheet

OpenSheetWithParm

Open 이벤트가 일어날 때, 윈도우상의 control들은 미리 존재한다 (control의 Constructor 이벤트가 발생한 경우). Open 이벤트 스크립트에서, 윈도우내 object를 참조할 수 있고 이들의 나타나는 형식이나 내용에 영향을 줄 수 있다. 예를들어, 버튼을 사용할 수 없도록 하거나 DataWindow에 관한 데이터를 retrieve 할 수 있다.

존재하고있는 모든 control에 관하여 Open 이벤트에서의 어떤 행동들은 올바르게 작동하지 않는다. 예를들어, 어떤 control에 관하여 SetRedraw 함수를 호출하는것은 윈도우가 아직 보이지 않는 상태이기 때문에 실패하게된다.

윈도우가 오픈되었을 때, 윈도우의 각 control에 관한 Constructor, 윈도우에 관한 Activate와 Show, 윈도우의 첫 번째 tab 순서를 가진 control에 관한 GetFocus등과 같은 다른 이벤트들이 발생한다.

MDI 형식에서 sheet가 오픈되었을 때에는, sheet에 관한 Show 와 Activate, frame에 관한 Activate 등의 이벤트가 발생한다.

[예제]

* 윈도우가 DataWindow control을 포함하고 있을 경우, Open 이벤트에서 데이터를 retrieve 할 수 있다. 예를들어, transaction object SQLCA에 관한 값들이 이미 설정되어 있다면

dw_1.SetTransObject(SQLCA)

dw_1.Retrieve( )

[참고]

Activate

Constructor

Show


PageDown event

[설명]

스크롤박스 아래쪽의 비어있는 공간에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnpagedown | VScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수직 스크롤바내에서 클릭 하였을 때, 스크롤바의 Position property를 변경하는 스크립트를 가지고있지 않는한 아무일도 일어나지 않는다. 스크롤바의 방향키에 관해서는, LineUp 과 LineDown 이벤트를 사용한다; 스크롤바의 현위치버튼(thumb) 위쪽과 아래쪽에있는 공란에 클릭하였을 때에는 PageUp 과 PageDown 이벤트를 사용하고, thumb 그 자체를 드래깅하는 것에 관해서는 Moved 이벤트를 사용한다.

[예제]

* 스크롤박스의 위치를 변경하기 위하여 인스턴스 변수 ii_pagesize에 저장된 페이지값을 사용하는 VScrollBar의 PageDown 이벤트이다.

IF This.Position > This.MaxPosition - ii_pagesize THEN
 | This.Position = MaxPosition
ELSE
 | This.Position = This.Position + ii_pagesize
END IF RETURN 0

* 인스턴스 변수 ii_pagesize에 저장된 페이지 크기에 의하여 스크롤 박스의 위치를 변경한다. 각 페이지 마다 10 row씩 스크롤 시킨다.

long ll_currow, ll_nextrow

This.Position = This.Position + ii_pagesize

ll_currow = dw_1.GetRow()

ll_nextrow = ll_currow + 10

dw_1.ScrollToRow(ll_nextrow)

dw_1.SetRow(ll_nextrow)

[참고]

LineDown

PageLeft

PageRight

PageDown


PageLeft event

[설명]

스크롤 박스의 좌측에있는 공간에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnpageup | HScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수평 스크롤바내에서 클릭 하였을 때, 스크롤바의 Position property를 변경하는 스크립트를 가지고있지 않는한 아무일도 일어나지 않는다. 스크롤바의 방향키에 관해서는, LineLeft 와 LineRight 이벤트를 사용한다; 스크롤바의 현위치버튼(thumb) 왼쪽과 오른쪽에있는 공란에 클릭하였을 때에는 PageLeft 와 PageRight 이벤트를 사용하고, thumb 그 자체를 드래깅하는 것에 관해서는 Moved 이벤트를 사용한다.

[예제]

* 수평 스크롤바의 좌측 공란에 클릭하였을 때 thumb를 왼쪽으로 이동시키는 PageLeft 이벤트이다. 페이지 크기는 인스턴스 변수 ii_pagesize에 저장되어있다.

IF This.Position < This.MinPosition + ii_pagesize THEN
 | This.Position = MinPosition
ELSE
 | This.Position = This.Position - ii_pagesize
END IF

[참고]

LineLeft

PageDown

PageRight

PageUp


PageRight event

[설명]

스크롤 박스의 오른쪽 공란에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnpagedown | HScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수평 스크롤바내에서 클릭 하였을 때, 스크롤바의 Position property를 변경하는 스크립트를 가지고있지 않는한 아무일도 일어나지 않는다. 스크롤바의 방향키에 관해서는, LineLeft 와 LineRight 이벤트를 사용한다; 스크롤바의 현위치버튼(thumb) 왼쪽과 오른쪽에있는 공란에 클릭하였을 때에는 PageLeft 와 PageRight 이벤트를 사용하고, thumb 그 자체를 드래깅하는 것에 관해서는 Moved 이벤트를 사용한다.

[예제]

* 수평 스크롤바의 우측 공란에 클릭하였을 때 thumb를 오른쪽으로 이동시키는 PageRight 이벤트이다. 페이지 크기는 인스턴스 변수 ii_pagesize에 저장되어있다.

IF This.Position > This.MaxPosition - ii_pagesize THEN
 | This.Position = MaxPosition
ELSE
 | This.Position = This.Position + ii_pagesize
END IF |

[참고]

LineRight

PageDown

PageLeft

PageUp


PageUp event

[설명]

스크롤박스의 위쪽 공란에 클릭하였을 때 발생한다.

Event ID | Objects
pbm_sbnpageup | VScrollBar

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

수직 스크롤바내에서 클릭 하였을 때, 스크롤바의 Position property를 변경하는 스크립트를 가지고있지 않는한 아무일도 일어나지 않는다. 스크롤바의 방향키에 관해서는, LineUp 과 LineDown 이벤트를 사용한다; 스크롤바의 현위치버튼(thumb) 위쪽과 아래쪽에있는 공란에 클릭하였을 때에는 PageUp 과 PageDown 이벤트를 사용하고, thumb 그 자체를 드래깅하는 것에 관해서는 Moved 이벤트를 사용한다.

[예제]

* 스크롤박스의 위치를 변경하기 위하여 인스턴스 변수 ii_pagesize에 저장된 페이지값을 사용하는 VScrollBar의 PageUp 이벤트이다.

IF This.Position < This.MinPosition + ii_pagesize THEN
 | This.Position = MinPosition
ELSE
 | This.Position = This.Position - ii_pagesize
END IF

* 인스턴스 변수 ii_pagesize에 저장된 페이지 크기에 의하여 스크롤 박스의 위치를 변경한다. 각 페이지 마다 10 row씩 스크롤 시킨다.

long ll_currow, ll_prevrow

This.Position = This.Position - ii_pagesize

ll_currow = dw_1.GetRow( )

ll_prevrow = ll_currow - 10

dw_1.ScrollToRow(ll_prevrow)

dw_1.SetRow(ll_prevrow)

[참고]

LineUp

PageLeft

PageRight

PageUp


PictureSelected event

[설명]

RichTextEdit control의 bitmap에 더블-클릭 하거나 클릭한후 ENTER를 누름으로써 그 bitmap을 선택할때 발생한다.

Event ID | Objects
pbm_renpictureselected | RichTextEdit

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* RichTextEdit control rte_1에서 그림에 더블-클릭 할 때, 그 그림은 선택된다. 다음의 PictureSelected 이벤트 코드는 재설정한 내용을 선택하고, RTF 형식의 문자열로 그 내용을 복사한다음, 두 번째 RichTextEdit rte_2에 복사한 텍스트를 넣는 것이다.

string ls_transfer_rtf

This.SelectTextAll()

ls_transfer_rtf = This.CopyRTF()

rte_2.PasteRTF(ls_transfer_rtf)

[참고]

InputFieldSelected


PipeEnd event

[설명]

pipeline 처리가 완료되었을 때 발생한다.

Event ID | Objects
pbm_pipeend | Pipeline

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

pipeline의 처리 상태를 체크하려면 PipeEnd 이벤트를 사용할 수 있다.

Start 와 Repair 함수등은 pipeline 처리를 초기화 한다.

[예제]

* StaticText control에 pipeline 상태를 나타내는 PipeLine 사용자 object의 PipeEnd 이벤트 코드이다.

ist_status.Text = "Finished Pipeline Execution ..."

[참고]

PipeMeter

PipeStart


PipeMeter event

[설명]

각 block의 row를 읽고 기록한 후 pipeline 처리가 되는동안 발생한다. Pipeline painter내의 Pipeline에 관하여 명시한 Commit 요소(factor)는 각 block의 크기를 결정한다.

Event ID | Objects
pbm_pipemeter | Pipeline

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

Start 와 Repair 함수등은 pipeline 처리를 초기화 한다.

PipeLine painter에서, 데이터베이스에 commit되기전에 transfer될 row의 수를 지정하는 Commit factor를 명시할 수 있다. PipeMeter 이벤트는 Commit factor에 의하여 명시된 row들의 각 block에 관하여 발생한다.

[예제]

* 대상 데이터베이스에 pipe된 row의 수를 나타내는 Pipeline 사용자 object의 PipeMeter 이벤트 코드

ist_status.Text = String(This.RowsWritten) &

+ " rows written to the destination database."

[참고]

PipeEnd

PipeStart


PipeStart event

[설명]

pipeline 처리가 시작될 때 발생한다.

Event ID | Objects
pbm_pipestart | Pipeline

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

pipeline 처리상태를 체크하려면 PipeStart 이벤트를 사용할 수 있다.

Start 와 Repair 함수등은 pipeline 처리를 초기화 한다.

[예제]

* StaticText control에 pipeline 상태를 나타내는 PipeLine 사용자object의 PipeStart 이벤트 코드

ist_status.Text = "Beginning Pipeline Execution ..."

[참고]

PipeEnd

PipeMeter


PrintEnd event

[설명]

DataWindow or DataStore의 인쇄가 끝날 때 발생한다.

Event ID | Objects
pbm_dwnprintend | DataWindow 또는 DataStore

[Argument]

pagesprinted | Long by value
 | 인쇄된 페이지의 총수

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* DataWindow control의 내용을 인쇄하기 위하여 호출된 Print 함수가 처리된 후 인쇄된 페이지의 수를 나타낸다.

st_1.Text = String(pagesprinted) &

+ " page(s) have been printed."

[참고]

PrintPage

PrintStat


PrintPage event

[설명]

인쇄하기위하여 DataWindow나 DataStore에서 형식화된 각 페이지를 인쇄하기 전에 발생한다.

Event ID | Objects
pbm_dwnprintpage | DataWindow 또는 DataStore

[Argument]

pagenumber | Long by value 인쇄될 페이지의 번호
copy | Long by value 인쇄물의 복사매수

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 페이지를 스킵하지 않는다
1 | 페이지를 스킵한다

[예제]

* DataWindow control의 내용을 인쇄한 후, 50 페이지 이후의 각 페이지인쇄를 억제한다.

*--- DataWindow control의 내용을 인쇄하는 CommandButton의 Clicked 이벤트

dw_1.Print( )

*--- 50 페이지 이후의 인쇄를 취소하는 dw_1 PrintPage 이벤트

IF pagenumber > 50 THEN This.PrintCancel( )

* DataWindow의 각 5번째 페이지에 원하는 요약 정보를 포함하고 있다면, 다른 페이지의 인쇄를 억제할 수 있다.

IF Mod(pagenumber / 5) = 0 THEN
 | RETURN 0
ELSE
 | RETURN 1
END IF

[참고]

PrintEnd

PrintStart


PrintStart event

[설명]

DataWindow나 DataStore가 인쇄되기 시작할 때 발생한다.

Event ID | Objects
pbm_dwnprintstart | DataWindow 또는 DataStore

[Argument]

pagesmax

Long by value

인쇄할 페이지의 총수 (페이지를 스킵하지 않을 경우)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

DataWindow나 DataStore의 어떤 페이지 인쇄를 스킵하려면, PrintPage 이벤트에 스크립트를 작성하여야 한다.

[참고]

PrintEnd

PrintPage


PropertyChanged event

[설명]

OLE 서버가 OLE object의 property를 변경한 후에 발생한다.

Event ID | Objects
None | OLE 2.0

[Argument]

propertyname | 변경된 prpoperty의 이름.
 | propertyname이 빈 문자열("")일 경우, 하나 이상의 property 변경이 발생한 것이다

[Return 코드]

없음(RETURN 문장을 사용하지 않는다)

[용법]

property 변경에관한 통지는 모든 OLE 서버에서 지원되지 않는다. PropertyRequestEdit와 PropertyChanged 이벤트는 이러한 통지기능을 지원하는 서버일때에만 발생한다.

property 통지는 object가 생성되거나 load될 때에는 일어나지 않는다. 반면에, property가 어떻게 변경되었는지에 관계없이 모든 관련된 property에 관하여 통지된다.

PropertyChanged 이벤트는 property값이 변경되었을 때 발생한다. 사용자는 automation interface를 통하여 새로운 값을 얻을 수 있다. 변경한 내용은 취소할 수 없다. 변경된 내용을 취소하고자 할 때에는, PropertyRequestEdit 이벤트에관한 스크립트를 작성하여야 한다.

[참고]

DataChange

PropertyRequestEdit

Rename

ViewChange


PropertyRequestEdit event

[설명]

OLE 서버가 OLE 2.0 control의 object property 값을 변경하려고 할 때 발생한다.

Event ID | Objects
None | OLE 2.0

[Argument]

Propertyname | String by value 값이 변경된 property의 이름. propertyname이 빈 문자열("")일 경우, 하나 이상의 property 변경이 발생한 것이다.
Cancelchange | Boolean by reference 변경을 취소할 것인지 여부를 결정한다. FALSE (기본설정값) 변경을 허락한다. TRUE 변경을 취소한다.

[Return 코드]

없음(RETURN 문장을 사용하지 않는다)

[용법]

property 변경에관한 통지는 모든 OLE 서버에서 지원되지 않는다. PropertyRequestEdit와 PropertyChanged 이벤트는 이러한 통지기능을 지원하는 서버일때에만 발생한다.

property 통지는 object가 생성되거나 load될 때에는 일어나지 않는다. 반면에, property가 어떻게 변경되었는지에 관계없이 모든 관련된 property에 관하여 통지된다.

PropertyRequestEdit 이벤트는 automation interface를 통하여 property의 이전값에 접근하고 그것을 저장할 수 있는 기회를 준다. 변경을 취소하려면, cancelchange argument를 TRUE로 설정한다.

[참고]

DataChange

PropertyChanged

Rename

ViewChange


RButtonDown event: syntax 1

[설명]

윈도우의 경우, 점유되지 않은 영역내에 오른쪽 마우스 버튼을 눌렀을 때 발생한다. 커서가 보이지않거나(invisible) 사용할 수 없는(disabled) control상에 있을 경우에는 윈도우 이벤트가 발생한다.

control의 경우, control 상에서 오른쪽 마우스 버튼을 눌렀을 때 발생한다.

Event ID | Objects
pbm_rbuttondown | RichTextEdit를 제외한 윈도우상에 위치한 다른 윈도우와 control

[Argument]

flags | UnsignedLong by value modifier 키(SHIFT와 CONTROL 등) 눌려진 마우스 버튼의 값.
 | 1 | 왼쪽 마우스 버튼
 | 2 | 오른쪽 마우스 버튼
 | 4 | SHIFT 키
 | 8 | CONTROL
 | 16 | 가운데 마우스 버튼
 | RButtonDown 이벤트는 항상 눌려져 있으므로, 2는 항상 합산된다. 자세한 설명은 MouseMove 이벤트의 Syntax 2를 참조한다.
xpos | Integer by value 윈도우 좌측면으로부터 포인터 까지의 거리 (PowerBuilder 단위)
ypos | Integer by value 윈도우 상단으로부터 포인터 까지의 거리 (PowerBuilder 단위)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 커서 위치에서 팝업메뉴를 나타내는 RButtonDown 이벤트의 스크립트. menu4는 Menu painter에서 생성되었고 m_language라는 메뉴를 포함하고 있다. NewMenu는 Menu4(데이터 타입 Menu4)의 인스턴스 이다.

Menu4 NewMenu

NewMenu = CREATE Menu4

NewMenu.m_language.PopMenu(xpos, ypos)

* MDI 응용프로그램의 경우, PopMenu에관한 argument는 MDI 크기에 상대적인 코드값을 명시할 필요가 있다.

NewMenu.m_language.PopMenu(&

W_frame.PointerX(), w_frame.PointerY())

[참고]

Clicked

RButtonDown event: syntax 2

[설명]

RichTextEdit control상에서 오른쪽 마우스 버튼을 누르고 그 control의 PopMenu property가 FALSE로 설정되어 있을 때 발생한다.

Event ID | Objects
pbm_renrbuttondown | RichTextEdit

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

control의 PopMenu property가 TRUE면, RButtonDown 이벤트가 발생하지 않고, 대신 RichTextEdit 팝업 메뉴가 표시된다.

사용자의 팝업 메뉴를 사용하기위하여 RButtonDown 이벤트를 이용할 수 있다.

[참고]

Clicked

RButtonUp


RButtonUp event

[설명]

오른쪽 마우스 버튼을 놓았을 때 발생한다.

Event ID | Objects
pbm_renrbuttonup | RichTextEdit

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

RButtonDown


RemoteHotLinkStart event

[설명]

DDE 클라이언트 응용프로그램에서 hot link를 시작할 때 발생한다.

Event ID | Objects
pbm_ddeadvise | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

HotLinkAlarm

RemoteHotLinkStop

StartServerDDE

StopServerDDE

SetDataDDE


RemoteHotLinkStop event

[설명]

DDE 클라이언트 응용프로그램이 hot link를 끝마치려할 때 발생한다.

Event ID | Objects
pbm_ddeunadvise | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* DDE 클라이언트와 서버 모두 PowerBuilder 응용프로그램일 때, 클라이언트 응용프로그램의 스크립트인 이 예제는 서버 응용프로그램 윈도우의 RemoteHotLinkStop 이벤트를 발생시킨다.

StopHotLink("mysle","pb_dde_server","mytest")

* 서버 응용프로그램의 RemoteHotLinkStart 이벤트에서, hot link가 더 이상 존재하지 않는다는 것을 나타내는 논리 인스턴스 변수를 설정한다.

ib_hotlink = FALSE

[참고]

HotLinkAlarm

RemoteHotLinkStart

StartServerDDE

StopServerDDE

SetDataDDE


RemoteRequest event

[설명]

DDE 클라이언트 응용프로그램이 데이터를 요청할 때 발생한다.

Event ID | Objects
pbm_dderequest | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

RemoteExec

RemoteSend


RemoteSend event

[설명]

DDE 응용프로그램이 보낸 데이터를 가지고있을 때 발생한다.

Event ID | Objects
pbm_ddepoke | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

RemoteExec

RemoteSend


Rename event

[설명]

서버 응용프로그램이 이름이 변경된 object를 가진 control을 통보할 때 발생한다.

Event ID | Objects
pbm_omnrename | OLE 2.0

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

DataChange

PropertyRequestEdit

PropertyChanged

ViewChange


Resize event

[설명]

사용자 또는 스크립트가 윈도우 또는 DataWindow control을 오픈하거나 크기를 조절할 때 발생한다.

Event ID | Objects
pbm_dwnresize pbm_size | DataWindow Window

[Argument]

sizetype | UnsignedLong by value
 | 0 | (SIZE_RESTORED) 윈도우나 DataWindow의 크기가 변경되었지만 최소화 또는 최대화 되지 않았다. 사용자가 경계선을 드래그 하였거나 스크립트에서 Resize 함수를 호출하였을 경우이다.
 | 1 | (SIZE_MINIMIZED) 윈도우나 DataWindow가 최소화 되었다.
 | 2 | (SIZE_MAXIMIZED) 윈도우나 DataWindow가 최대화 되었다.
 | 3 | (SIZE_MAXSHOW) 이 윈도우는 그 크기가 규격화 되어있는 응용프로그램내의 팝업 윈도우나 어떤 다른 윈도우이다. (DataWindow control에는 적용되지 않는다)
 | 4 | (SIZE_MAXHIDE) 이 윈도우는 그 크기가 최대화 되어있는 응용프로그램내의 팝업 윈도우나 어떤 다른 윈도우이다. (DataWindow control에는 적용되지 않는다)
newwidth | Integer by value 윈도우나 DataWindow의 폭 (PowerBuilder 단위)
newheight | Integer by value 윈도우나 DataWindow의 높이 (PowerBuilder 단위)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다


RetrieveEnd event

[설명]

DataWindow나 DataStore의 retrieve가 완료되었을 때 발생한다.

Event ID | Objects
pbm_dwnretrieveend | DataWindow or DataStore

[Argument]

rowcount

Long by value

retrieve된 row의 수

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* retrieve된 row의 수를 나타내는 RetrieveEnd 이벤트의 스크립트

MessageBox("Total rows retrieved", rowcount)

[참고]

RetrieveRow

RetrieveStart

SQLPreview

UpdateStart


RetrieveRow event

[설명]

row가 retrieve된 이후에 발생한다.

Event ID | Objects
pbm_dwnretrieverow | DataWindow 또는 DataStore

[Argument]

row

Long by value

막 retrieve된 row의 번호

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다
1 | retrieve를 중단한다

[용법]

규모가 커질 수 있는 질의를 방지하려면, RetrieveRow 이벤트에서 row argument를 체크하고 최대값에 도착하였는지 여부를 결정할 수 있다. row가 제한수를 초과하였을 경우, 1을 리턴하여 retrieve를 중단시킬 수 있다.

리턴코드 1을 명시하여 retrieve를 중단할 경우, 그 retrieve 작업은 복원할 수 없다.

RetrieveRow 이벤트내의 스크립트는 질의를 완전히 수행하는데 걸리는 시간을 매우 오래걸리게 할 수 있다.

** 사용하지 않게된 함수 **

SetActionCode 함수를 호출하는 대신, 리턴코드와 함께 RETURN 문장을 사용하도록 한다.

[예제]

* 250개의 row를 retrieve한 이후에 중단시키는 RetrieveRow 이벤트의 코드

IF row > 250 THEN
 | MessageBox("Retrieval Halted", &
 |  | "You have retrieved 250 rows, the allowed maximum.")
 | RETURN 1
ELSE
 | RETURN 0
END IF

[참고]

RetrieveEnd

RetrieveStart

SQLPreview

UpdateStart


RetrieveStart event

[설명]

DataWindow나 DataStore에 관한 retrieve가 시작될 때 발생한다.

Event ID | Objects
pbm_dwnretrievestart | DataWindow 또는 DataStore

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다
1 | retrieve를 수행하지 않는다
2 | 데이터베이스로부터 데이터를 retrieve하기전에 row와 버퍼를 reset하지 않는다.

[용법]

리턴코드 2는 이미 retrieve된 데이터가 지워지는 것을 방지하고, 이전 데이터에 새로운 row가 추가되도록 하기위하여 현재의 retrieve 처리를 계속하도록 한다.

** 사용하지 않게된 함수 **

SetActionCode 함수를 호출하는 대신, 리턴코드와 함께 RETURN 문장을 사용하도록 한다.

[예제]

* reset되는 것을 방지하는 RetrieveStart 이벤트. row는 이전에 retrieve된 row의 끝에 추가될 것이다.

RETURN 2

* retrieve를 중단하는 RetrieveStart 이벤트.

RETURN 1

* 사용자 ID가 101과 200사이의 row만 retrieve되는 것을 허락한다. ID는 응용프로그램이 시작될 때 인스턴스 변수 il_id_number에 저장되어있다.

CHOOSE CASE il_id_number
 | CASE IS < 100
 |  | RETURN 1
 | CASE 101 to 200
 |  | RETURN 0
 | CASE IS > 200
 |  | RETURN 1
END CHOOSE

[참고]

RetrieveEnd

RetrieveRow

SQLPreview

UpdateStart


RightClicked event: syntax 1

[설명]

ListView control이나 Tab control의 탭 위치에 오른쪽 마우스 버튼을 클릭하였을 때 발생한다.

Event ID | Objects
pbm_lvnrclicked | ListView
pbm_tcnrclicked | Tab

[Argument]

index

Integer by value

클릭한 아이템 또는 탭의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

tab control의 표시 영역에 클릭하면, Tab control에관한 RightClicked 이벤트가 발생하지 않고 RButtonDown 이벤트가 발생한다.

[예제]

* ListView control의 RightClicked는 오른쪽 마우스버튼을 클릭하였을 때 팝업 메뉴를 나타낸다.

// m_main 타입의 메뉴 변수를 선언한다

m_main m_lv_popmenu

// 메뉴변수의 인스턴스를 생성한다

m_lv_popmenu = CREATE m_main

// 포인터 위치에 메뉴를 나타낸다.

m_lv_popmenu.m_entry.PopMenu(Parent.PointerX(), Parent.PointerY())

RightClicked event: syntax 2

[설명]

TreeView control에서 오른쪽 마우스 버튼을 클릭할 때 발생한다.

Event ID | Objects
pbm_tvnrclicked | TreeView

[Argument]

handle

Long by value

사용자가 클릭한 아이템의 핸들(handle)

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 오른쪽 마우스 버튼을 클릭하였을 때 팝업 메뉴를 나타내는 TreeView control의 RightClicked 이벤트.

// m_main 타입의 메뉴 변수를 선언한다

m_main m_tv_popmenu

// 메뉴의 인스턴스 변수를 생성한다

m_tv_popmenu = CREATE m_main

// 포인터위치에 메뉴를 나타낸다

m_tv_popmenu.m_entry.PopMenu(Parent.PointerX(), &

Parent.PointerY())

[참고]

Clicked

RightDoubleClicked


RightDoubleClicked event: syntax 1

[설명]

ListView control이나 Tab control의 탭 위치에 오른쪽 마우스 버튼을 더블클릭하였을 때 발생한다.

Event ID | Objects
pbm_lvnrdoubleclicked | ListView
pbm_tcnrdoubleclicked | Tab

[Argument]

index

Integer by value

더블클릭한 아이템이나 탭의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 오른쪽 마우스 버튼을 클릭하였을 때 ListView로부터 아이템을 삭제하는 예제. 다음에 아이템은 다시 정렬된다

integer li_rtn
// 아이템을 삭제한다
li_rtn = This.DeleteItem(index)
IF li_rtn = 1 THEN
 | This.Arrange( )
ELSE
 | MessageBox("Error", Deletion failed!")
END IF

[참고]

DoubleClickd

Clicked

RightDoubleClicked event: syntax 2

[설명]

TreeView control에서 오른쪽 마우스 버튼을 더블클릭할 때 발생한다.

Event ID | Objects
pbm_tvnrdoubleclicked | TreeView

[Argument]

handle

Long by value

더블클릭한 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* control에 오른쪽 버튼을 더블클릭 할 때 TreeView 라인을 나타내고 숨기는 토글역할을 한다.

IF This.HasLines = FALSE THEN
 | This.HasLines = TRUE This.LinesAtRoot = TRUE
ELSE
 | This.HasLines = FALSE This.LinesAtRoot = FALSE
END IF

[참고]

DoubleClicked

Clicked


RowFocusChanged event

[설명]

DataWindow의 현재 row가 변할 때 발생한다.

Event ID | Objects
pbm_dwnrowchange | DataWindow

[Argument]

currentrow | Long by value
 | 방금 현재 row가된 row의 번호

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

SetRow 함수는 RowFocusChanged와 ItemFocusChanged events를 발생시킨다.

[예제]

* SingleLineEdit에 현재 row 번호와 전체 row수를 나타낸다.

sle_1.Text = "Row " + String(currentrow) &

+ " of " + String(This.RowCount( ))

[참고]

ItemFocusChanged


Save event

[설명]

서버 응용프로그램이 데이터가 저장된 cntrol을 통지할 때 발생한다.

Event ID | Objects
pbm_omnsave | OLE 2.0

[Argument]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 데이터베이스내의 테이블이 OLE object의 변화를 추적한다. OLE 2.0 control에서 Excel spreadsheet를 저장할 때, 데이터베이스 테이블이 갱신될수 있도록 DataWindow내에 현재 일자를 넣는다.

long ll_row // Excel 파일에관한 정보를 가진 row를 찾는다 ll_row = dw_1.Find("file_name = 'expenses.xls'", 1, 999) IF ll_row > 0 THEN
 | // 발견한 row를 현재 row로 만든다 dw_1.SetRow(ll_row) // last_updated 칼럼에 현재 날짜를 넣는다 dw_1.Object.last_updated[ll_row] = Today( ) // DataWindow를 갱신하고 다시 나타낸다 dw_1.Update( ) dw_1.Retrieve( )
ELSE
 | MessageBox("Find", "No row found")
END IF

[참고]

Close


ScrollHorizontal event

[설명]

TAB, 방향키, 스크롤바 등을 이용하여 DataWindow내에서 좌,우로 스크롤할 때 발생한다.

Event ID | Objects
pbm_dwnhscroll | DataWindow

[Argument]

scrollpos | Long by value DataWindow에 첫 번째로 보이는 row의 번호, 또는 DataWindow가 분리되어있을 경우, 스크롤된 창에 첫 번째로 보이는 row 번호.
pane | Integer by value 스크롤된 창의 번호. DataWindow가 두 개로 분리되어있을 경우, 두 개의 창이 존재하며 다음과같은 값을 갖는다:
 | 1 | 왼쪽 창, 또는 분리되지 않았을 경우의 창
 | 2 | 오른쪽 창

[Return 코드]

Long.
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 스크롤되고있는 창이 하나이고 위치가 100보다 커질 때 현재 row의 사원번호 ID (cust_id 칼럼)를 SingleLineEdit control에 나타낸다.

string ls_id
ls_id = ""
IF pane = 1 THEN
 | IF scrollpos > 100 THEN
 |  | ls_id = &
 |  |  | String(dw_1.Object.Id[dw_1.GetRow( )])
 | END IF
END IF
sle_message.Text = ls_id
RETURN 0

[참고]

ScrollVertical


ScrollVertical event

[설명]

TAB, 방향키, 스크롤바 등을 이용하여 DataWindow내에서 상,하로 스크롤할 때 발생한다.

Event ID | Objects
pbm_dwnvscroll | DataWindow

[Argument]

scrollpos

Long by value

DataWindow에 첫 번째로 보이는 row의 번호, 또는 DataWindow가 분리되어있을 경우, 스크롤된 창에 첫 번째로 보이는 row 번호.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 수직으로 스크롤함에 따라, DataWindow에 현재 표시되고 있는 row들의 범위를 나타낸다.

long ll_numrows string ls_firstrow, ls_lastrow ll_numrows = dw_1.RowCount( ) ls_firstrow = dw_1.Object.Datawindow.FirstRowOnPage ls_lastrow = dw_1.Object.Datawindow.LastRowOnPage sle_message.Text = "Rows " + ls_firstrow &
 | + " through " + ls_lastrow + " of " &
 | + String(ll_numrows)
RETURN 0

[참고]

ScrollHorizontal


Selected event

[설명]

방향키나 마우스를 이용하여 메뉴상의 아이템이 반전되었을 때 발생한다.

Event ID | Objects
None | Menu

[Arguments]

없음

[Return 코드]

없음 (RETURN 문장을 사용하지 않는다)

[용법]

메뉴 아이템에관한 MicroHelp를 나타내기 위하여 Selected 이벤트를 사용할 수 있다. Help 텍스트를 저장하는 한가지 방법은 메뉴 아이템의 Tag property에 기록하는 것이다.

[예제]

* Help 텍스트를 나타내기 위하여 현재 메뉴의 태그 값을 사용하는 예제이다. wf_SetMenuHelp 함수는 통과된 텍스트(태그)를 취하고 MultiLineEdit control에 할당한다. Timer 함수와 Timer 이벤트는 Help 텍스트를 지우는데 사용한다.

*--- Selected 이벤트 : 텍스트를 설정할 함수를 호출한다.

w_test.wf_SetMenuHelp(This.Tag)

*--- wf_SetMenuHelp 함수의 코드 : MultiLineEdit mle_menuhelp에 텍스트를 설정한다.

mle_menuhelp.Text = menuhelpstring

Timer(4)

*--- Timer 이벤트 : Help 텍스트를 지우고 타이머를 정지한다.

w_test.wf_SetMenuHelp("")

Timer(0)

[참고]

Clicked


SelectionChanged event: syntax 1

[설명]

control내의 아이템이 선택되었을 때 발생한다.

Event ID | Objects
pbm_cbnselchange | DropDownListBox, DropDownPictureListBox
pbm_lbnselchange | ListBox, PictureListBox

[Argument]

index

Integer by value

선택된 아이템의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

dropdown listbox의 경우, SelectionChanged 이벤트는 edit 박스가 아니라, control의 dropdown 위치에서의 선택이 이루어졌을 때에만 적용된다.

SelectionChanged 이벤트는 그것이 현재 선택된 아이템이라 할지라도, 리스트의 아이템상에 클릭하였을 때 발생한다. 마우스를 이용하여 선택을 하면 SelectionChanged 이벤트 이후에 Clicked 이벤트와 DoubleClicked 이벤트(더블클릭을한 경우)가 발생한다.

[예제]

* w_graph_sheet_with_list 윈도우의 ListBox lb_value에 관한 예제로, 값을 선택하면 그래프 gr_1의 series로 그려진다.

integer itemcount,i,r string ls_colname gr_1.SetRedraw(FALSE) // 그래프로부터 categories, series 와 data를 지운다 gr_1.Reset(All!) // 선택한만큼 series를 생성한다. FOR i = 1 to lb_value.TotalItems( )
 | IF lb_value.State(i) = 1 THEN
 |  | ls_colname = lb_value.Text(i) // 그래프를 설정하기위한 윈도우 함수를 // 오출한다 wf_set_a_series(ls_colname, ls_colname, &
 |  |  | lb_category.text(1))
 | END IF
NEXT gr_1.SetRedraw(TRUE)

[참고]

Clicked

SelectionChanged event: syntax 2

[설명]

tab이 선택되었을 때 발생한다.

Event ID | Objects
pbm_tcnselchanged | Tab

[Argument]

oldindex | Integer by value 이전에 선택되었던 tab의 인덱스
newindex | Integer by value 선택된 tab의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

SelectionChanged 이벤트는 Tab control이 생성되고 초기 선택이 설정될 때 발생한다.

[참고]

Clicked

SelectionChanging

SelectionChanged event: syntax 3

[설명]

TreeView control내의 아이템이 선택되었을 때 발생한다.

Event ID | Objects
pbm_tvnselchanged | TreeView

[Argument]

oldhandle | Long by value 이전에 선택되었던 아이템의 핸들
newhandle | Long by value 현재 선택된 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

SelectionChanged 이벤트는 SelectionChanging 이벤트 이후에 발생한다.

[예제]

* SelectionChanged 이벤트내에서 아이템을 추적한다.

TreeViewItem l_tvinew, l_tviold

// 이전에 선택하였던 treeview아이템을 구한다

This.GetItem(oldhandle, l_tviold)

//현재 선택한 아이템을 구한다

This.GetItem(newhandle, l_tvinew)

//두 아이템을 sle_get에 나타낸다

sle_get.Text = "Selection changed from " &

+ String(l_tviold.Label) + " to " &

+ String(l_tvinew.Label)

[참고]

Clicked

SelectionChanging


SelectionChanging event: syntax 1

[설명]

다른 탭을 선택하려고할 때 발생한다.

Event ID | Objects
pbm_tcnselchanging | Tab

[Argument]

oldindex | Integer by value 현재 선택된 탭의 인덱스
newindex | Integer by value 선택될 탭의 인덱스

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 선택의 변경을 허락한다
1 | 선택의 변경을 방지한다

[용법]

SelectionChanging는 선택을 변경하는 것을 방지하거나 새로 선택할 탭 페이지가 화면에 보이기 전 처리를 수행하기위하여 사용한다.

CreateOnDemand가 TRUE이고 현재 탭페이지가 처음으로 선택된 것이라면, 페이지상의 control들은 아직 존재하지 않고 이벤트 스크립트내에서 이들을 참조할 수 없다.

[예제]

* 탭을 선택할 때, 다른 DataWindow control과 크기를 일치시키기 위하여 탭 페이지상의 DataWindow control 크기를 변경한다. DataWindow control의 크기변경은 탭 페이지가 보이기전에 일어난다. 이 예제는 PowerBuilder 예제의 w_phone_dir 윈도우내의 tab_uo에 있는 것이다.

u_tab_dir luo_Tab

luo_Tab = This.Control[newindex]

luo_Tab.dw_dir.Height = dw_list.Height

luo_Tab.dw_dir.Width = dw_list.Width

[참고]

Clicked

SelectionChanged

SelectionChanging event: syntax 2

[설명]

TreeView control의 선택을 변경할 때 발생한다.

Event ID | Objects
pbm_tvnselchanging | TreeView

[Argument]

oldhandle | Long by value 현재 선택된 아이템의 핸들
newhandle | Long by value 선택할 아이템의 핸들

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 선택의 변경을 허락한다
1 | 선택의 변경을 방지한다

[용법]

SelectionChanging 이벤트는 SelectionChanged 이벤트 이전에 발생한다.

[예제]

* SingleLineEdit에 변경한 TreeView 아이템의 상태를 나타낸다.

TreeViewItem l_tvinew, l_tviold

// 이전에 선택한 TreeViewItem을 구한다

This.GetItem(oldhandle, l_tviold)

// 현재 선택한 TreeViewItem을 구한다

This.GetItem(newhandle, l_tvinew)

sle_status.Text = "Selection changed from " &

+ String(l_tviold.Label) + " to " &

+ String(l_tvinew.Label)

[참고]

Clicked

SelectionChanged


SQLPreview event

[설명]

SQL 문장이 DBMS로 보내지기 직전에 일어난다. trigger DBMS 활성화 함수들은 Retrieve, Update, ReselectRow 등이다.

Event ID | Objects
pbm_dwnsql | DataWindow

[Argument]

request | SQLPreviewFunction by value 데이터베이스 활동을 초기화한 함수. PreviewFunctionReselectRow! ReselectRow 함수 PreviewFunctionRetrieve! Retrieve 함수 PreviewFunctionUpdate! Update 함수
sqltype | SQLPreviewType by value DBMS에 보낼 SQL 문장의 타입 PreviewDelete! DELETE 문장 PreviewInsert! INSERT 문장 PreviewSelect! SELECT 문장 PreviewUpdate! UPDATE 문장
sqlsyntax | String by value SQL 문장 전체
buffer | DWBuffer by value 데이터베이스 활동에 관련된 row를 포함하는 버퍼 Delete! delete 버퍼 (DataWindow로부터 삭제된 데이터) Filter! filter 버퍼 (필터에서 배제된 데이터) Primary! primary 버퍼 (삭제되거나 필터되지 않은 데이터)
row | Long by value 데이터베이스 활동과 관련된 row의 번호, 즉, updated, selected, inserted, 또는 deleted row.

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

이전에 GetSQLPreview 와 GetUpdateStatus에 의하여 제공되던 정보는, argument sqlsyntax, row, buffer등으로 사용할 수 있다.

[예제]

* DataWindow dw_1에 관한 SQL 문장을 SQLPreview 이벤트에서 설정하는 것이다.

dw_1.SetSQLPreview( &

"INSERT INTO billings VALUES(100, " + &

String(Current_balance) + ")")

[참고]

RetrieveStart

UpdateEnd

UpdateStart


SystemError event

[설명]

(존재하지 않는 윈도우를 오픈하려고 하는것과 같은) 심각한 실행 에러가 발생하였을 때 발생한다.

Event ID | Objects
None | Application

[Arguments]

없음

[Return 코드]

없음 (RETURN 문장을 사용하지 않는다)

[용법]

SystemError 이벤트에관한 스크립트가 없으면, PowerBuilder는 PowerBuilder 에러번호와 에러 메시지 문장을가진 메시지 박스를 나타낸다.

외부 object와 DataWindow와 관련된 에러의 경우, ExternalException 또는 Error 이벤트에서 에러를 다룰 수 있고 SystemError 이벤트가 발생되는 것을 방지할 수 있다.

SystemError 이벤트가 발생한 후, 응용프로그램 실행을 계속하는 것은 좋지못한 생각이다.

스크립트를 이용하여 DBMS로부터의 연결을 완전히 해제하고난 다음 응용프로그램을 빠져나가도록 한다.

[예제]

* 응용프로그램을 즉시 중단시키는 SystemError 이벤트의 스크립트

HALT CLOSE

[참고]

Error


SystemKey event

[설명]

삽입 포인트가 라인 에디트에 있지 않은 상태에서 ALT키나 ALT키와 함께 다른 키를 누를 때 발생한다.

Event ID | Objects
pbm_syskeydown | Window

[Argument]

key | KeyCode by value KeyA! 또는 KeyF1!등과 같이 누른 키를 나타내는 KeyCode 데이터 타입의 값.
keyflags | UnsignedLong by value 키와함께 누른 modifier 키(SHIFT, CONTROL 등)
 | 1 | SHIFT key

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* ALT와 함께 누른 키 이름을 나타낸다.

string ls_key CHOOSE CASE key
 | CASE KeyF1!
 |  | ls_key = "F1"
 | CASE KeyA!
 |  | ls_key = "A"
 | CASE KeyF2!
 |  | ls_key = "F2"
END CHOOSE * ALT+SHIFT+F1를 누르면 소리를 낸다. IF keyflags = 1 THEN
 | IF key = KeyF1! THEN
 |  | Beep(1)
 | END IF
END IF

[참고]

Key


Timer event

[설명]

Timer 함수를 호출한 이후 명시한 초가 경과하면 발생한다.

Event ID | Objects
pbm_timer | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[예제]

* 윈도우의 StaticText control에 현재 시간을 나타낸다.

*--- 윈도우의 Open 이벤트 : 초기 시간을 나타내고 타이머를 시작한다.

st_time.Text = String(Now(), "hh:mm")

Timer(60)

*--- 윈도우의 Timer 이벤트 : 매 분마다 발생되며, st_time에 현재 시간을 나타낸다.

st_time.Text = String(Now(), "hh:mm")


ToolbarMoved event

[설명]

MDI 형식의 윈도우에서 FrameBar 나 SheetBar를 이동할 때 발생한다.

Event ID | Objects
pbm_tbnmoved | Window

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[용법]

sheet 윈도우에 관해서는 이벤트가 trigger되지 않는다.

toolbar 위치에관한 정보를 얻으려면, GetToolbar 와 GetToolbarPos 함수를 호출한다.

이 이벤트는 SetToolbarPos를 이용하여 툴바의 위치를 변경할 때 발생한다.


UpdateEnd event

[설명]

DataWindow (또는 DataStore)로 부터 데이터베이스에 모든 갱신을 끝마쳤을 때 발생한다.

Event ID | Objects
pbm_dwnupdateend | DataWindow 또는 DataStore

[Argument]

rowsinserted | Long by value 삽입된 row의 수
rowsupdated | Long by value 갱신된 row의 수
rowsdeleted | Long by value 삭제된 row이 수

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

RetrieveStart

SQLPreview

UpdateStart


UpdateStart event

[설명]

스크립트에서 Update 함수를 호출한 후, DataWindow나 DataStore의 변경된 내용이 데이터베이스로 보내지기 직전에 발생한다.

Event ID | Objects
pbm_dwnupdatestart | DataWindow 또는 DataStore

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다
1 | 갱신을 수행하지 않는다

[참고]

RetrieveStart

SQLPreview

UpdateEnd


Calling object functions and events (object event)

호출된 object 함수와 이벤트를 제어하기위한 몇가지 키워드가 제공된다.

[문법]

{ objectname.} { type } { calltype } { when } functionname ( { argumentlist } )

[Argument]

objectname | 함수가 정의된 object의 이름 또는 descendant.
type | 호출중인 함수나 이벤트를 지정하기위한 키워드. FUNCTION (Default) EVENT
calltype | PowerBuilder가 함수를 찾는 시점을 명시하는 키워드 STATIC (Default)코드가 컴파일 되었을 때 찾는다. 함수를 찾지 못할 경우 컴파일러 에러가 발생한다. 그러나, objectname이 어떻게 instance 되었는가에 따라서, 실제로 실행되는 함수는 descendent object에 속하게 된다. DYNAMIC 스크립트가 실행될 때 찾는다. 함수가 존재하지 않을 경우, runtime에러가 발생한다.
when | 함수 또는 이벤트를 즉시 실행시킬 것인지 혹은 현재 스크립트를 완료한 후 실행할 것인지를 나타내는 keyword. TRIGGER (Default) 즉시 실행한다 POST object의 queue에 넣고, 현재 스크립트를 수행하고 난 후에 실행 한다
functionname | 호출하려는 object 함수의 이름. objectname에 속한 PowerScript 함수 또는 사용자-정의 함수 등을 호출할 수 있다.
argumentlist | functionname에 통과시키려는 값. 리스트내의 각 값은 반드시 함수내에서 선언한 데이터타입에 상응하여야 한다.

[용법]

The type, calltype, and when keywords can be in any order after the dot.

Calls can be cascaded using dot notation. Each function call must return an object type that is the appropriate object for the following function.

If you want to circumvent the usual search order and force PowerBuilder to find a function or event in an ancestor object, bypassing it in the descendant, you can use the ancestor operator (::).


ViewChange event

[설명]

서버 응용프로그램이 변경된 내용을 사용자에게 보여주기위한 control을 통보해올 때 발생한다.

Event ID | Objects
pbm_omnviewchange | OLE 2.0

[Arguments]

없음

[Return 코드]

Long. |
RETURN | 문장에서 선택가능한 리턴코드
0 | 처리를 계속한다

[참고]

DataChange

PropertyRequestEdit

PropertyChanged

Rename


GetContextService PowerScript function

설명

명시한 서비스의 context-specific instance 참조를 생성한다.

문법

GetContextService ( servicename, servicereference )

Argument

servicename service object를 명시하는 문자열

■ContextInformation context 정보 서비스

■Internet Internet 서비스

■Keyword Context keyword 서비스

servicereference servicename에 의하여 명시된 service object를 참조할 함수에 들어갈 PowerObject. 이 argument는 참조에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

service object내의 method와 property에 접근을 허락하도록 service object에 참조 (reference)를 설치하기 위하여 이 함수를 호출한다. 이 함수를 호출하기 전에 반드시 service object 함수를 호출하여야 한다.

CREATE 문장 사용 PowerScript CREATE 문장을 사용하여 이들 object를 실체화 (instantiate)할 수 있다. 그러나 이것은 항상 기본 설정 context에 관한 object만 생성하고 (native PowerBuilder 실행 환경), 응용프로그램이 실행되는 곳에서는 무시된다.

예제

다음 예제는 GetContextService 함수를 호출한다:

Integer li_return

ContextKeyword lcx_key

li_return = this.GetContextService ("Keyword", lcx_key)

sle_classname.Text = ClassName(lcx_key)

...

참조

GetCompanyName

GetContextKeywords

GetHostObject

GetMajorVersion

GetMinorVersion

GetName

GetShortName

GetURL

GetVersionName

HyperLinkToURL

PostURL


GetLastReturn PowerScript function

설명

마지막 InvokePBFunction 또는 TriggerPBEvent 함수의 리턴 값을 리턴한다.

제어

Window ActiveX controls

문법

activexcontrol.GetLastReturn ( )

Argument 설명

activexcontrol PowerBuilder window ActiveX control에 관한 구분자 (identifier). HTML에서 사용될 때, ActiveX control은 object element의 NAME attribute이다. 다른 환경에서 사용될 때, 이 함수는 PowerBuilder window ActiveX를 포함하고있는 control을 참조한다.

Return 값

Any.

마지막 리턴값을 리턴한다.

용법

리턴 값에 접근하기 위하여 InvokePBFunction 또는 TriggerPBEvent 함수를 호출한 후에 이 함수를 호출한다.

JavaScript 스크립트는 InvokePBFunction과 TriggerPBEvent로 부터의 리턴값에 접근하기 위하여 반드시 이 함수를 사용하여야 한다. VBScript 스크립트는 이 함수를 사용하거나 InvokePBFunction또는 TriggerPBEvent 내의 argument를 통하여 리턴값에 접근할 수 있다.

예제

다음 JavaScript 예제는 GetLastReturn 함수를 호출한다:

...

retcd = PBRX1.TriggerPBEvent(theEvent, numargs);

rc = parseInt(PBRX1.GetLastReturn());

if (rc != 1) {

alert("Error. Empty string.");

}

...

다음 VBScript 예제는 GetLastReturn 함수를 호출한다:

...

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

rc = PBRX1.GetLastReturn()

IF rc <> 1 THEN

msgbox "Error. Empty string."

END IF

...

참고

GetArgElement

InvokePBFunction

SetArgElement

TriggerPBEvent


GetMajorVersion PowerScript function

설명

현재 PowerBuilder 실행 context에 관한 major 버전을 리턴한다. 예를들어, 6.0.03의 major 버전은 6이다.

제어

ContextInformation objects

문법

servicereference.GetMajorVersion ( majorversion )

Argument

servicereference ContextInformation service instance 참조

majorversion 함수의 major 버전 위치 (integer). 이 argument는 참조 (reference)에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

이 함수는 현재의 major 버전을 결정한다.

예제

다음 예제는 GetMajorVersion 함수를 호출한다:

String ls_name

Constant String ls_currver = "6.0.02"

Integer li_majver, li_minver, li_fixver

ContextInformation lci_info

this.GetContextService ("ContextInformation", lci_info)

GetMajorVersion(li_majver)

lci_info.GetMinorVersion(li_minver)

lci_info.GetFixesVersion(li_fixver)

IF li_majver <> 6 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_minver <> 0 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_fixver <> 2 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

END IF

참고

GetCompanyName

GetFixesVersion

GetHostObject

GetMinorVersion

GetName

GetShortName

GetVersionName


GetMinorVersion PowerScript function

설명

현재 PowerBuilder 실행 context에 관한 minor 버전을 리턴한다. 예를들어, 6.0.03의 minor 버전은 0이다.

제어

ContextInformation objects

문법

servicereference.GetMinorVersion ( minorversion )

Argument

Servicereference ContextInformation service instance 참조

Minorversion 함수의 minor 버전 위치 (integer). 이 argument는 참조 (reference)에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

용법

현재의 minor 버전을 결정하기 위하여 이 함수를 사용한다.

예제

다음 예제는 GetMinorVersion 함수를 호출한다:

String ls_name

Constant String ls_currver = "6.0.02"

Integer li_majver, li_minver, li_fixver

ContextInformation lci_info

this.GetContextService ("ContextInformation", lci_info)

lci_info.GetMajorVersion(li_majver)

lci_info.GetMinorVersion(li_minver)

lci_info.GetFixesVersion(li_fixver)

IF li_majver <> 6 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_minver <> 0 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

ELSEIF li_fixver <> 2 THEN

MessageBox("Error", &

"Must be at Version " + ls_currver)

END IF

참고

GetCompanyName

GetFixesVersion

GetHostObject

GetMajorVersion

GetName

GetShortName

GetVersionName


GetName PowerScript function

설명

현재 실행 context에 관한 이름을 구한다.

제어

ContextInformation objects

문법

servicereference.GetName ( name )

Argument

Servicereference ContextInformation service instance 참조

Name 이름이 위치할 string. 이 argument는 참조에 의하여 통과된다.

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 이 함수는 다음 값들을 리턴한다:

▶ PowerBuilder 실행 시 : PowerBuilder Runtime

▶ PowerBuilder window plug-in : PowerBuilder window Plug-in

▶ PowerBuilder window ActiveX : PowerBuilder Runtime ActiveX

용법

현재의 실행 환경을 결정하려면 이 함수를 호출한다.

예제

다음 예제는 GetName 함수를 호출한다. ici_info는 ContextInformation 타입의 instance 변수이다:

String ls_name

this.GetContextService("ContextInformation", ici_info)

ici_info.GetName(ls_name)

IF ls_name <> "PowerBuilder Runtime" THEN

cb_close.visible = FALSE

END IF

참고

GetCompanyName

GetContextService

GetFixesVersion

GetHostObject

GetMajorVersion

GetMinorVersion

GetShortName

GetVersionName


GetShortName PowerScript function

설명

현재 PowerBuilder 실행 context에 관한 단축 이름을 구한다.

제어

ContextInformation objects

문법

servicereference.GetShortName ( shortname )

Argument

Servicereference ContextInformation service instance 참조

Shortname 단축 이름이 위치할 string. 이 argument는 참조에 의하여 통과된다

Return 값

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. 함수는 다음 값들을 리턴한다:

▶ PowerBuilder execution-time : PBRun

▶ PowerBuilder window plug-in : PBWinPlugin

▶ PowerBuilder window ActiveX : PBRTX

용법

현재 실행 환경을 결정하려면 이 함수를 호출한다.

예제

다음 예제는 GetShortName 함수를 호출한다. ici_info는 ContextInformation 타입의 instance 변수이다:

String ls_name

this.GetContextService("ContextInformation",ici_info)

ici_info.GetShortName(ls_name)

IF ls_name <> "PBRun" THEN

cb_close.visible = FALSE

END IF

참고

GetCompanyName

GetContextService

GetFixesVersion

GetHostObject

GetMajorVersion

GetMinorVersion

GetName

GetVersionName


GetStateStatus PowerScript 함수

GetStateStatus PowerScript function

설명

DataWindow에 관한 내부적 state flag의 현재 상태를 retrieve하고 이 정보를 blob에 위치 시킨다.

이 함수는 주로 분산 응용프로그램에서 사용한다.

제어

DataWindow controls and DataStore objects

문법

dwcontrol.GetStateStatus( cookie )

Argument

Dwcontrol state 상태를 구하려는 DataWindow control 또는 DataStore 이름

Cookie DataWindow에 관한 state 정보를 포함하고있는 cookie를 저장하려는 blob 변수

Return 값

Long.

처리에 성공하면 1을 리턴하고 실패하면 -1을 리턴한다.

용법

서로다른 클라이언트상의 여러 target DataWindow (또는 DataStore)의 source로써 서버상에 단일 DataStore가 활성화 되어있는 상황에서는, SetChanges의 성공 여부를 결정하기 위하여 GetStateStatus와 함께 GetChanges를 사용할 수 있다. 이것은 SetChanges 호출이 실패하게 될 때 (다른 클라이언트에 의하여 이미 변경된 내용과 blob 충돌이 있기 때문) 네트웍상의 다른 change blob에 영향을 주지 않도록 하게한다.

1 SetChnages를 호출하려는 DataStore 상에서 GetStateStatus 함수를 호출한다. GetStateStatus는 DataStore의 state를 체크하고 cookie라는 참조(reference) argument에 유용한 state 정보를 만든다. cookie는 일반적으로 DataWindow change blob보다 크기가 많이 작다.

2 cookie를 클라이언트에 보낸다.

3 변경을 적용하려는 DataWindow상에서 GetStateStatus로부터 retrieve된 cookie를 파라미터로 통과시켜 GetChanges를 호출한다. GetChanges의 리턴값은 DataWindow blob과 SetChanges를 실행하려는 DataStore 상태(state) 와의 사이에 모든 부분적 충돌 여부를 나타내게 된다.

GetChages의 리턴 값이 부분적 충돌이 있음을 나타내면, FailOnAnyConflict! argument를 명시하여 뒤따르는 SetChanges 호출은 실패하도록 할 수 있을 것이다. 그러나, GetChanges로 부터의 리턴 값이 충돌이 없음을 나타내면, DataStore의 상태(state)는 사용자가 GetStateStatus 와 GetChanges를 호출한 이후에 변경된 것일 수도 있기 때문에, SetChanges 호출이 아직 실패일 수도 있다.

예제

다음 문장은 remote object에 관한 스크립트이다. 서버상의 DataStore state를 잡아 cookie에 넣기 위하여 GetStateStatus를 사용한다. cookie가 생성되면, 클라이언트로 리턴한다.

blob lblb_cookie

long ll_rv

ll_rv = ids_datastore.GetStateStatus(lblb_cookie)

return lblb_cookie

참고

GetChanges

GetFullState

SetChanges

SetFullState


SelectedLength PowerScript 함수

[설명]

편집 가능한 control내에 선택된 텍스트의 문자수를 구한다 (공란과 라인의 끝 포함).

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.SelectedLength ( )

[Argument]

editname

선택된 텍스트의 길이를 구하려는 DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, 및 DropDownPictureListBox control의 이름. DataWindow의 경우, 현재 row와 column상에 있는 편집 control내에 선택된 텍스트의 길이를 나타낸다.

[Return 값]

Integer.

editname내에 선택된 텍스트의 길이를 리턴한다. 선택된 텍스트가 없으면, SelectedLength는 0을 리턴한다. 에러가 발생하면 -1을 리턴한다. 또한, editname이 NULL이면, SelectedLength 함수는 NULL을 리턴한다.

[용법]

줄의 끝을 만드는 문자 (CTRL+ENTER 또는 ENTER를 타이핑 함으로써 생성된다)는 platform에 따라 다르다. Windows 상에서 그 문자는 carriage return과 line feed를 합한 것이며 길이를 계산할 때 두 문자로 계산된다. 다른 platform에서, 라인의 끝은 단일 문자이다. wrap된 라인은 줄의 끝 문자가 없다.

DropDownListBox 와 DropDownPictureListBox control의 경우, control의 AllowEdit property가 FALSE로 설정되어있으면 SelectedLength는 1을 리턴한다.

dropdown listbox에서의 focus와 선택된 텍스트

DropDownListBox나 DropDownPictureListBox가 focus를 잃었을 때, 선택되어있던 텍스트는 선택이 해제된다

[예제]

* MultiLineEdit mle_Contact내에 선택된 텍스트가 John Smith라면, 다음 예제는 li_length를 10으로 설정한다.

integer li_length

li_length = mle_Contact.SelectedLength( )

[참고]

LineLength

SelectedItem

SelectedLine

SelectedPage

SelectedStart

TextLine


SelectedLine PowerScript 함수

[설명]

편집 가능한 xontrol에서 삽입포인트를 포함하고있는 라인의 번호를 구한다.

[적용]

DataWindow, MultiLineEdit, RichTextEdit controls

[문법]

editname.SelectedLine ( )

[Argument]

editname

삽입 포인트를 포함하고있는 라인의 번호를 구하려는 DataWindow, MultiLineEdit, 및 RichTextEdit의 이름. DataWindow의 경우, 현재 row와 column상에 있는 편집 control내의 라인 번호를 나타낸다.

[Return 값]

Integer.

editname내에 삽입 포인트를 포함하고있는 라인의 번호를 리턴한다. 에러가 발생하면 SelectedLine 함수는 -1을 리턴한다. editname이 NULL이면, SelectedLine 함수는 NULL을 리턴한다.

[용법]

EditMask control의 경우, SelectedLine 함수는 컴파일을 되지만 항상 1을 리턴한다.

삽입 포인트는 선택영역의 시작위치 또는 끝 위치에 올 수 있다. 따라서, SelectedLine 함수는 삽입 포인트의 위치에 따라 처음 또는 마지막으로 선택된 라인의 번호를 리턴한다.

[예제]

* 삽입 포인트가 MultiLineEdit mle_Contact의 1 라인 어느곳엔가 위치하고 있다면, 다음 예제는 li_SL을 1로 설정한다.

integer li_SL

li_SL = mle_Contact.SelectedLine( )

* 다음 예제에서, MultiLineEdit mle_winselect내에 선택한 라인은 오픈 할 윈도우를 결정한다.

integer li_SL

li_SL = mle_winselect.SelectedLine( )

IF li_SL = 1 THEN

Open(w_emp_data)

ELSEIF li_SL = 2 THEN

Open(w_dept_data)

END IF

[참고]

LineLength

Position

SelectedColumn

SelectedPage

SelectedText

TextLine


SelectedPage PowerScript 함수

[설명]

RichTextEdit control에서 현재 페이지 번호를 구한다.

[적용]

RichTextEdit controls

[문법]

rtename.SelectedPage ( )

[Argument]

Rtename

현재 페이지 번호를 구하려는 RichTextEdit control의 이름

[Return 값]

Integer.

rtename내의 현재 페이지 번호를 리턴한다. 에러가 발생하면, SelectedPage 함수는 -1을 리턴한다.

[용법]

RichTextEdit control내의 현재 페이지는 입력 모드 텍스트내에 삽입 포인트를 포함하고있는 페이지이거나 preview 모드에서 현재 표시되고있는 페이지이다.

RichTextEdit가 DataWindow와 데이터를 공유하고 있을 때, SelectedPage 함수는 현재 row에 관한 문서 instanc내의 페이지 번호를 리턴한다.

문서 instance에 관한 자세한 정보는, DataSource를 참조한다.

[예제]

* 다음 예제는 현재 페이지의 번호를 리턴한다.

integer li_pagect

li_pagect = rte_1.SelectedPage( )

[참고]

PageCount

Preview

SelectedLength

SelectedLine

SelectedStart

SelectedText


SelectedStart PowerScript 함수

[설명]

편집 control내에 첫 번째로 선택된 문자의 위치를 구한다.

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.SelectedStart ( )

[Argument]

editname

선택된 텍스트의 시작 위치를 구하려는 DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, 또는 DropDownPictureListBox control의 이름. DataWindow의 경우, 현재 row와 column상에있는 편집 control의 시작 위치를 나타낸다.

[Return 값]

Integer.

editname내에서 선택된 텍스트의 시작 위치를 리턴한다. 선택된 텍스트가 없으면, 삽입 포인트 바로 다음에 있는 문자의 위치를 리턴한다. 에러가 발생하면 SelectedStart는 -1을 리턴하고, editname이 NULL이면 NULL을 리턴한다.

[용법]

RichTextEdit control을 제외한 모든 control의 경우, SelectedStart는 텍스트의 시작위치부터 카운트하고 공란과 라인의 끝 문자를 포함시킨다.

RichTextEdit control의 경우, SelectedStart 함수는 선택영역의 시작위치부터 카운트한다. 시작 위치는 삽입 포인트가 있는 선택영역의 반대편 끝이 된다. 예를 들어, 반대로 드래그하여 선택영역을 만들면, 선택의 시작위치는 반전된 텍스트의 끝 이 되고 삽입포인트는 선택영역의 시작지점 직전에 위치한다. 선택영역의 시작과 끝에 관한 정보를 구하려면 Position 함수를 이용한다.

dropdown listbox에서의 focus와 선택된 텍스트

DropDownListBox나 DropDownPictureListBox가 focus를 잃었을 때, 선택되어있던 텍스트는 선택이 해제된다

[예제]

* MultiLineEdit mle_Comment가 'Closed for Vacation July 3 to July 10'을 포함하고 있고, Vacation을 선택하였다면, 다음 예제는 li_Start를 12로 설정한다 (Vacation의 첫 번째 문자).

integer li_Start

li_Start = mle_Comment.SelectedStart( )

[참고]

Position

SelectedLength

SelectedLine

SelectedPage


SelectedText PowerScript 함수

[설명]

편집 control에서 선택된 텍스트를 구한다.

[적용]

DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, DropDownPictureListBox controls

[문법]

editname.SelectedText ( )

[Argument]

editname

선택된 텍스트를 구하려는 DataWindow, EditMask, MultiLineEdit, SingleLineEdit, RichTextEdit, DropDownListBox, 또는 DropDownPictureListBox control의 이름. DropDownListBox나 DropDownPictureListBox의 경우는, AllowEdit property가 반드시 TRUE로 설정되어 있어야 한다. DataWindow의 경우는, 현재 row와 column상에 위치한 편집 control내에 선택된 텍스트를 리턴한다.

[Return 값]

String.

처리에 성공하면 editname내에 선택된 텍스트를 리턴하고, 선택된 텍스트가 없거나 에러가 발생하면 빈 문자열 ("")을 리턴한다. editname이 NULL이면, SelectedText 함수는 NULL을 리턴한다.

[용법]

RichTextEdit control에서, 선택된 모든 그림들은 무시된다. 선택영역이 입력 필드를 포함하고 있으면, 입력 필드 (중괄호로 둘러싸여있다)는 SelectedText가 리턴하는 문자열의 일부가 된다. 즉, 입력 필드의 내용은 리턴되지 않는다.

예를 들어, 편지의 인사말 부분이 선택되었다면, SelectedText는 다음과 같이 리턴할 것이다:

Dear {title} {lastname}:

dropdown listbox에서의 focus와 선택된 텍스트

DropDownListBox나 DropDownPictureListBox가 focus를 잃었을 때, 선택되어있던 텍스트는 선택이 해제된다

[예제]

* MultiLineEdit mle_Contact의 텍스트가 'James B. Smith'이고 James B.가 선택되었다면, 다음 문장은 emp_fname의 값을 James B.으로 설정한다.

string ls_emp_fname

ls_emp_fname = mle_Contact.SelectedText( )

* DropDownListBox ddlb_Location의 편집 영역내에 선택된 텍스트가 Maine 라면, 다음 문장은 ListBox lb_LBMaine를 나타낸다.

string ls_Loc

ls_Loc = ddlb_Location.SelectedText( )

IF ls_Loc = "Maine" THEN

lb_LBMaine.Show()

ELSE

END IF


SelectItem PowerScript 함수: syntax 1

[설명]

아이템의 일부 또는 모든 텍스트를 명시할 수 있을 때 listbox내에서 아이템을 찾고 반전시킨다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.SelectItem ( item, index )

[Argument]

listboxname | 라인을 선택하려는 listbox control의 이름
item | 선택할 아이템의 시작텍스트
index | 탐색을 시작할 아이템의 번호

[Return 값]

Integer.

처리에 성공하면 선택된 아이템의 인덱스 번호를 리턴한다. 일치되는 아이템을 발견하지 못하면 0을 리턴하고, 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SelectItem 함수는 NULL을 리턴한다.

[용법]

SelectItem 함수는 index에 의하여 나타낸 아이템이후부터 원하는 아이템을 탐색하기 시작한다. 원하는 아이템을 찾으려면 아이템이 반드시 item으로 명시한 텍스트로 시작하여야 한다; 그러나, 아이템은 명시한 텍스트보다 더 길 수도 있다.

아이템을 찾고 선택하지 않으려면, FindItem 함수를 사용한다.

다중선택 listbox

SelectItem은 MultiSelect property가 TRUE로 설정되어있는 ListBox나 PictureListBox에서는 효과가 없다. 대신, 이미 선택되어있는 다른 아이템의 상태에 영향을 주지 않으면서 아이템을 선택하기 위하여 SetState 함수를 사용하도록 한다.

dropdown listbox의 편집 박스 지우기

편집할 수 없는 DropDownListBox나 DropDownPictureListBox의 편집 박스를 지우려면, SelectItem함수의 Syntax 2를 사용한다.

[예제]

* lb_Actions내의 아이템 5가 Delete Files라면, 다음 예제는 아이템 2부터 탐색을 시작하여, Delete Files를 찾고 반전 시킨 다음, li_Index를 5로 설정한다.

integer li_Index

li_Index = lb_Actions.SelectItem("Delete Files", 2)

* lb_Actions내의 아이템 4가 Select Objects라면, 다음 예제는 아이템 2부터 탐색을 시작하여, Select Objects를 찾고 반전 시킨 다음, li_Index를 4로 설정한다.

integer li_Index

li_Index = lb_Actions.SelectItem("Sel", 2)

[참고]

AddItem

DeleteItem

FindItem

InsertItem

SetState

SelectItem: Syntax 2

SelectItem: Syntax 3

SelectItem PowerScript 함수: syntax 2

[설명]

아이템의 인덱스 번호를 명시할 수 있을 때 listbox내에서 아이템을 찾고 반전시킨다. 또한 인덱스 번호로 0을 명시하여 아이템의 선택을 해제할 수 있다.

[적용]

ListBox, DropDownListBox, PictureListBox, DropDownPictureListBox controls

[문법]

listboxname.SelectItem ( itemnumber )

[Argument]

listboxname | 아이템을 선택하려는 listbox control의 이름
itemnumber | listbox나 dropdown listbox의 listbox 영역에있는 아이템의 위치 (인덱스) (integer). 선택된 아이템의 선택을 해제하려면 itemnumber로 0을 명시한다. ListBox나 PictureListBox의 경우, 0은 선택된 아이템으로부터 반전을 제거한다. DropDownListBox나 DropDownPictureListBox의 경우, 0은 편집 박스를 지운다.

[Return 값]

Integer.

선택된 아이템의 인덱스 번호를 리턴한다. itemnumber가 올바르지 않거나 선택된 아이템의 선택을 해제하기 위하여 0을 명시하였을 경우는 0을 리턴한다. 에러가 발생하면 -1을 리턴한다. argument 값 중에 NULL이 있으면, SelectItem 함수는 NULL을 리턴한다.

[용법]

아이템을 찾고 선택하지 않으려면, FindItem 함수를 사용한다.

다중선택 listbox

SelectItem은 MultiSelect property가 TRUE로 설정되어있는 ListBox나 PictureListBox에서는 효과가 없다. 대신, 이미 선택되어있는 다른 아이템의 상태에 영향을 주지 않으면서 아이템을 선택하기 위하여 SetState 함수를 사용하도록 한다.

dropdown listbox의 편집 박스 지우기

편집할 수 없는 DropDownListBox나 DropDownPictureListBox의 편집 박스를 지우려면, itemnumber를 0으로 설정한다. control의 text를 빈 문자열로 설정하면 AllowEdit property가 FALSE일 경우 아무런 작업도 일어나지 않는다.

[예제]

* 다음 예제는 아이템 번호 5를 반전 시킨다.

integer li_Index

li_Index = lb_Actions.SelectItem(5)

* 다음 예제는 DropDownListBox ddlb_choices으 편집 박스에서 선택을 해제하고 li_Index를 0으로 설정한다.

integer li_Index

li_Index = ddlb_choices.SelectItem(0)

[참고]

AddItem

DeleteItem

FindItem

InsertItem

SetState

SelectItem: Syntax 1

SelectItem: Syntax 3

SelectItem PowerScript 함수: syntax 3

[설명]

명시한 아이템을 선택한다.

[적용]

TreeView controls

[문법]

treeviewname.SelectItem ( itemhandle )

[Argument]

treeviewname | 아이템을 선택하려는 TreeView control의 이름
itemhandle | 명시한 아이템의 핸들

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다.

[용법]

TreeView control내에서 아이템을 찾으려 할 때 이 함수를 사용한다.

[예제]

* 다음 예제는 현재 TreeView item의 parent를 선택한다.

long ll_tvi, ll_tvparent

int li_tvret

ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0)

ll_tvparent = tv_list.FindItem(ParentTreeItem!, ll_tvi)

li_tvret = tv_list.SelectItem(ll_tvparent)

[참고]

FindItem

SelectItem: Syntax 2

SelectItem: Syntax 3


SetPosition PowerScript 함수 : Syntax 1

[설명]

윈도우내의 control의 경우, control의 위치를 (전-후 순서에의한) 명시한다. 윈도우의 경우, 오픈된 다른 윈도우보다 항상 제일 위쪽에 위치할 것인지 여부를 명시한다.

[적용]

윈도우내의 control 또는 윈도우

[문법]

objectname.SetPosition ( position {, precedingobject } )

[Argument]

objectname | 윈도우내에 위치를 명시하려는 control, 또는 항상 제일 위쪽에 나타낼 것인지 여부를 명시하려는 윈도우 이름. child 윈도우나 sheet에는 적용되지 않는다.
position | SetPosType 열거형 데이터 타입. 명시할 수 있는 값은 objectname이 control 인가 또는 윈도우인가에 따라 결정된다. control의 경우: ·Behind! -- objectname은 precedingobject뒤쪽에 위치한다 ·ToTop! -- 다른 모든 control 위에 위치한다 ·ToBottom! -- 다른 모든 control 뒤쪽에 위치한다 윈도우의 경우: ·TopMost! -- 오픈된 다른 모든 윈도우보다 항상 위쪽에 위치한다 ·NoTopMost! -- 오픈된 다른 모든 윈도우보다 항상 위쪽에 위치하지 않는다
precedingobject | (선택사항) objectname을 뒤쪽에 위치시키위한 object 이름. precedingobject는 위치가 Behind!일 경우만 해당된다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, Set Position 함수는 NULL을 리턴한다.

[용법]

control에 관한 전-후 순서는 다른 control에 어떻게 겹쳐치는가를 결정한다. control이 다른 control을 완전히 덮으면, 뒤쪽에 있는 control은 사용자가 접근할 수 없게된다.

하나 이상의 윈도우에 TopMost!를 명시하면, 가장 최근에 실행된 SetPosition 함수에서 명시한 윈도우가 제일 앞쪽에 나타난다.

[예제]

* 다음 문장은 cb_two를 제일 위에 위치시킨다.

cb_two.SetPosition(ToTop!)

* 다음 문장은 cb_two를 cb_three뒤에 위치 시킨다.

cb_two.SetPosition(Behind!, cb_three)

* 다음 문장은 w_signon 윈도우를 최상위 윈도우로 만든다.

w_signon.SetPosition(TopMost!)

* 다음 문장은 w_signon 윈도우가 더 이상 최상위 윈도우가 되지않도록 만든다.

w_signon.SetPosition(NoTopMost!)

SetPosition PowerScript 함수 : Syntax 2

[설명]

DataWindow내의 object를 다른 밴드로 옮기거나 밴드내의 object에 대한 전-후 순서를 변경한다.

[적용]

DataWindow control 과 DataStore

[문법]

dwcontrol.SetPosition ( objectname, band, bringtofront )

[Argument]

dwcontrol | object를 포함하고있는 DataWindow control 또는 DataStore의 이름
objectname | 이동하려는 DataWindow내의 object 이름. DataWindow painter에서 DataWindow objec에 이름을 할당한다.
band | 밴드 이름 또는 objectname을 위치시키기 원하는 곳. object의 위치는 background 와 foreground로 명시한다. 밴드 이름은 detail, header, footer, summary, header.#, 와 trailer.# 등이다. #는 그룹 레벨 번호이다. 밴드를 변경하지 않으려면 빈 문자열 ("")을 입력한다
bringtofront | 밴드내에서 objectname을 앞쪽에 위치시킬것인지 여부를 나타내는 boolean: ·TRUE -- 앞쪽으로 가지고온다 ·FALSE -- 앞쪽으로 가지고오지 않는다

[Return 값]

Integer.

처리에 성공하면 1을 리턴하고 에러가 발생하면 -1을 리턴한다. argument 값중에 NULL이 있으면, SetPosition 함수는 NULL을 리턴한다.

[예제]

* 다음 문장은 dw_rpt내의 oval_red를 header로 옮기고 앞쪽으로 가져온다.

dw_rpt.SetPosition("oval_red", "header", TRUE)

* 다음 문장은 oval_red의 위치를 변경하지 않고, 앞쪽으로 가져온다.

dw_rpt.SetPosition("oval_red", "", TRUE)

* 다음 문장은 oval_red의 위치를 footer로 옮기지만 앞쪽으로 가져오지는 않는다.

dw_rpt.SetPosition("oval_red", "footer", FALSE)


SetTraceFileName PowerScript function

설명

BuildModel 함수가 호출되었을 때 PowerBuilder가 분석할 추적 파일 이름을 명시한다.

제어

Profiling and TraceTree objects

문법

instancename.SetTraceFileName ( tracefilename )

Argument

instancename Profiling 또는 TraceTree object의 instance 이름

tracefilename PowerBuilder가 분석할 추적 파일 이름

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리 성공

▶ FileOpenError! 오픈할 수 없는 파일이다

▶ FileInvalidFormatError! 추적 파일 형식이 올바르지 않다

▶ ModelExistsError! 모델이 이미 구축되어 있다

에러가 발생하면 이름은 설정되지 않는다

용법

BuildModel 함수에서 분석할 추적 파일을 명시하려면 이 함수를 사용한다. BuildModel 함수를 호출하기 전에 SetTraceFileName 함수를 먼저 호출한다.

예제

다음 예제는 성능 분석 모델을 구축하기 위한 추적 파일 이름을 제공한다:

Profiling lpro_model

String ls_line

lpro_model = CREATE Profiling

lpro_model.SetTraceFileName (filename)

ls_line = "CollectionTime = " + &

String(lpro_model.CollectionTime ) + "~r~n" &

+ "Num Activities = " &

+ String(lpro_model.NumberOfActivities) + "~r~n"

lpro_model.BuildModel()

참고

BuildModel


SharedObjectDirectory PowerScript function

설명

공유를 위하여 등록되어있는 object 리스트를 구한다.

이 함수는 주로 분산 응용프로그램에서 사용된다.

문법

SharedObjectDirectory ( instancenames {, classnames } )

Argument

instancenames 공유를 위하여 등록된 object 이름을 저장할 string 타입의 무제한 배열

classnames (선택사항) 공유를 위하여 등록된 object 이름의 class를 저장할 string 타입의 무제한 배열

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FeatureNotSupportedError! 이 함수는 Windows 3.x에서 지원되지 않는다

용법

공유 object들은 서버의 메인 session과 서버에 접속된 각 클라이언트에 관하여 생성된 클라이언트 session에서만 접근할 수 있다. 클라이언트 응용프로그램들은 공유(shared) object에 직접 접근할 수 없다. 따라서, 공유 object 리스트를 구하려면, 실행중인 서버에 위치한 함수를 호출하거나 서버상의 클라이언트 session에서 호출하여야 한다.

예제

다음 예제는, 서버 응용프로그램이 공유 object와 그들의 class 이름을 구하는 것이다:

integer status

string InstanceNames[]

string ClassNames[]

status = SharedObjectDirectory(InstanceNames, ClassNames)

참고

SharedObjectRegister


SharedObjectGet PowerScript function

설명

공유 object instance 참조를 구한다.

이 함수는 주로 분산 응용프로그램에서 사용된다.

문법

SharedObjectGet ( instancename , objectinstance )

Argument

instancename 참조를 얻으려는 공유 object instance 이름. 명시하는 이름은 반드시 SharedObjectRegister 함수로 처음 등록하였을 때 object instance에 부여된 이름과 일치하여야 한다.

objectinstance 공유 object instance를 저장할 object 변수

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FeatureNotSupportedError! 이 함수는 Windows 3.x에서 지원되지 않는다

▶ SharedObjectCreateInstanceError! 공유 object의 local 참조는 생성할 수 없다

▶ SharedObjectNotExistsError! instance 이름이 등록되어있지 않다

용법

SharedObjectGet 함수는 SharedObjectRegister로 생성된 object 참조를 구한다. object 참조를 한번 구하면, 다른 object와 마찬가지로 그 object의 method와 property에 접근할 수 있다.

공유 object들은 서버의 메인 session과 서버에 접속된 각 클라이언트에 관하여 생성된 클라이언트 session에서만 접근할 수 있다. 클라이언트 응용프로그램들은 공유(shared) object에 직접 접근할 수 없다. 따라서, 공유 object 리스트를 구하려면, 실행중인 서버에 위치한 함수를 호출하거나 서버상의 클라이언트 session에서 호출하여야 한다.

예제

다음 예제에서 서버 응용프로그램은 share1으로 등록된 shared object instance를 구하고 instance를 메모리변수 shared_object에 저장한다. 다음에 서버는 refresh_custlist 함수를 호출하기 위하여 object instance를 사용한다:

uo_customers shared_object

s_customer customers[]

long ll_rowcount

int result

SharedObjectGet("share1", shared_object)

ll_rowcount=shared_object.refresh_custlist(customers)

참고

SharedObjectRegister


SharedObjectRegister PowerScript function

설명

공유가 가능하도록 user object를 등록한다.

이 함수는 주로 분산 응용프로그램에서 사용된다.

문법

SharedObjectRegister ( classname , instancename )

Argument

classname 공유하려는 user object 이름

instancename 공유 object instance로 할당하려는 이름

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FeatureNotSupportedError! 이 함수는 Windows 3.x에서 지원되지 않는다

▶ SharedObjectExistsError! 이미 사용된 instance 이름이다

▶ SharedObjectCreateInstanceError! object를 생성할 수 없다

▶ SharedObjectCreatePBSessionError! 공유 object session을 생성할 수 없다

용법

SharedObjectRegister 함수를 호출할 때, PowerBuilder는 공유 object에 관하여 분리된 runtime session을 오픈하고 공유 object를 생성한다. object instance를 위하여 명시한 이름은 SharedObjectGet 함수에서 object instance에 접근할 수 있는 길을 제공한다.

공유 object들은 서버의 메인 session과 서버에 접속된 각 클라이언트에 관하여 생성된 클라이언트 session에서만 접근할 수 있다. 클라이언트 응용프로그램들은 공유(shared) object에 직접 접근할 수 없다. 따라서, 공유 object 리스트를 구하려면, 실행중인 서버에 위치한 함수를 호출하거나 서버상의 클라이언트 session에서 호출하여야 한다.

예제

다음 예제에서 서버 응용프로그램은 공유를 위하여 user object uo_customers를 등록한다. 공유 object instance에 할당된 이름은 share1이다. object를 등록한 이후에, 서버는 SharedObjectGet 함수를 사용하여 object의 instance를 object 변수에 저장한다:

SharedObjectRegister("uo_customers", "share1")

SharedObjectGet("share1",shared_object)

참고

SharedObjectGet

SharedObjectUnregister


SharedObjectUnregister PowerScript function

설명

이미 등록되어있는 user object의 등록을 해제한다.

이 함수는 주로 분산 응용프로그램에서 사용된다.

문법

SharedObjectUnregister ( instancename )

Argument

instancename 처음 등록하였을 때 공유 object instance에 할당하였던 이름

Return 값

ErrorReturn.

다음 값을 리턴한다:

▶ Success! 처리성공

▶ FeatureNotSupportedError! 이 함수는 Windows 3.x에서 지원되지 않는다

▶ SharedObjectNotExistsError! 등록되어있지 않은 instance 이름이다

용법

이 함수는 공유 object에 제거 표시를 한다. 그러나 object는 더 이상의 참조가 존재하지 않을 때 까지 실제로 제거되지 않는다.

공유 object들은 서버의 메인 session과 서버에 접속된 각 클라이언트에 관하여 생성된 클라이언트 session에서만 접근할 수 있다. 클라이언트 응용프로그램들은 공유(shared) object에 직접 접근할 수 없다. 따라서, 공유 object 리스트를 구하려면, 실행중인 서버에 위치한 함수를 호출하거나 서버상의 클라이언트 session에서 호출하여야 한다.

예제

다음 예제는 서버 응용프로그램에서 share1이라는 object instance를 등록해제 한다:

SharedObjectUnregister("share1")

참고

SharedObjectRegister