본문 바로가기
프로그래머의 길/Power Builder

Power Builder Function (9)

by 하늘아래. 2008. 1. 3.
반응형

[ Sort PowerScript Function ]

◆ 기 능
데이터윈도우 컨트롤의 현재 정렬방법을 사용하여 행을 Sort한다.

◆ 적 용
DataWindow control 과 child DataWindows

◆ 문 법
datawindowname.Sort( )

* datawindowname----이용자가 row정렬을 하고자하는 DataWindow control 과 childDataWindows명

◆ 반환값
Integer. 성공한 경우 1, 실패하면 -1을 리턴한다.

◆ 사용법
해당 데이터윈도우에대한 현재의 Sort방법을 사용하여 Sort한다. SetSort함수를 호출하여 소트방법을 정한 후 Sort함수를 사용하여 정렬한다.
만일 Sort함수를 호출하기전에 SetSort함수가 호출되지 않는다면 DataWindow 오브젝트에 지정된 소트방법을 이용하여 Sort한다.

Sort함수는 SetSort함수를 사용하여 Sort하는 방법을 변경한 후에 호출되어 Sort를 수행하는데 사용되고
이용자가 입력하거나 처리하여 데이터가 변경된 후에 사용한다.

Sorting 과 groups
데이터윈도우 오브젝트를 그룹으로 소트하기위해선 Sort 함수를 호출한 후에 GroupCalc함수를 호출한다.

◆ 예 제
dw_employee데이타윈도우의 1 컬럼은 오름차순으로, 2 컬럼은 내림차순으로 소트방법을 지정한후 그 행을 sort한다.

dw_employee.SetSort("#1 A, #2 D")
dw_employee.Sort( )

dw_depts데이타윈도우에서 부서명에의해 그룹짓고 employee name에의해 정렬할 때 사용하는예이다.
만일 이용자가 여러 고용인들의 부서를 변경한다면, 다음의 커맨드로 sort 방법을 적용하므로서 각 그룹은 알파벳순으로 정렬되고
그 그룹에의해 row를 재정렬한다.
dw_depts.Sort( )
dw_depts.GroupCalc( )

아래 예는 정렬 기준이 null로 정해졌기 때문에 파워빌더가 지정된 sort컬럼다이얼로그를 보여주도록 한 것이다.
string null_str
SetNull(null_str)
dw_main.SetSort(null_str)
dw_main.Sort( )

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

[ TriggerEvent PowerScript Function ]

◆ 기 능
triggerevent는 event를 즉시 trigger 시킨다. 이 기법은 함수로 코드를 호출하는 것과 같다.
이벤트 스크립트는 clicked 이벤트의 모든 코드가 실행될 때까지 중지하고, 기다리고, 그리고 나서 계속한다.
중지하고 기다리기 때문에 동시성 호출로 언급된다.

◆ 문 법
objectname.TriggerEvent (event {, word, long })

objectname에는 연합된 event를 가지는 powerbuilder의 object나 control의 이름을 기입한다.
event에는 Clicked!, Modified!, 또는 DoubleClicked! 등이 기입된다. word는 option이다.
긴 값은 시스템의 메시지 object의 wordparm 속성에 저장된다.
long은 option이다. 긴 값이나 string은 시스템의 메시지 object의 longparm 속성에 저장된다.
string이나 string 포인터를 지정할 때 그것은 longparm속성에 저장된다. 따라서 string 함수에 접근할 수 있다.

◆ 반환값
리턴값은 Integer이다. 성공일 떼에는 1을 리턴하고, 실패일 때에는 -1을 리턴한다.

◆ 동일 문법
다음 두 문장의 결과는 같게 나타난다.
Send(Handle(Parent), 273, 0, Long(Handle(cb_OK), 0))
cb_OK.TriggerEvent(Clicked!)

◆ 사용법
TriggerEvent enumerated data type의 값 대신에 이벤트의 이름을 지정하고자 한다면 더블 쿼테이션 마크로 이름을 묶어야 한다.
word와 long 매개변수를 가진 이벤트 스크립트에 정보를 건넬 수 있다.
그 정보는 Message object에 저장되어 있다.
스크립트에서 정보에 접근하기 위해서 메시지 오브젝트의 WordParm과 LongParm 영역을 참조할 수 있다.
long에 대한 스트링을 지정했다면 format parameter로서 키워드 "address"를 가진 String 함수를 사용함으로써 트리거된 이벤트에 접근할 수 있다.

◆ 예 제
cb_OK라는 버튼의 Clicked 이벤트를 즉시 실행하기 위하여 다음과 같이 코드한다.
cb_OK.TriggerEvent(Clicked!)
parent window에서 사용자 정의의 cb_exit_request를 실행하기 위해서는 다음과 같이 코드한다.
Parent.TriggerEvent("cb_exit_request")

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

[ Trim PowerScript Function ]

◆ 기 능
주어진 문자열로부터 처음과 마지막의 공백을 제거한다.

◆ 문 법
Trim(string)
string은 leading and trailing의 space를 삭제하고 원하는 문자열을 반납한다.

◆ 반환값
리턴값은 string이다. space의 삭제가 성공하면 복사문자열을 return하고 실패하면 ("")를 return한다.

◆ 예 제
Trim (" BABE RUTH ") // 이 문장은 BABE RUTH를 반납한다.
string emp_fname;
emp_fname = LeftTrim(sle_emp_fname.Text)
이 문장은 SingleLineEdit인 sle_emp_fname.text로부터 앞뒤의 spaces 삭제후 emp_fname에 저장한다.

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

[ Uncheck PowerScript Function ]

◆ 기 능
dropdown 또는 cascading menu의 아이템에 있는 체크마크를 제거한다. 아이템의 체크된
attribute를 FALSE로 지정한다.

◆ 적 용
Menu objects에 있는 Menuitems

◆ 문 법
menuitem . uncheck ()

Parameter------menuitem
Description-----체크표시를 삭제하고자 하는 menuitem의 이름을 지정한다.
그 item은 menu bar의item이 아니라 반드시 dropdown이나 cascading menu 이어야 한다.


◆ 반환값
integer. 성공하면 1, 실패하면 -1을 리턴한다.

◆ 사용법
check와 동일.
uncheck를 호출하는 대신, 객체의 Checked 속성을 지정할 수 있다.
menuitem.Checked = False
즉, Menu_Appl.m_view.m_grid.checked = False 라는 문장은
Menu_Appl.m_view.m_grid.uncheck()와 같다.

◆ 예 제
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

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

[ Update PowerScript Function ]

◆ 기 능
DataWindow의 변경된 내용으로 database를 갱신한다.database를 갱신하기 전에 현재 row와
colomn에 대한 AcceptText를 호출한다.

◆ 적 용
DataWindow control 및 자식 DataWindow.

◆ 문 법
DataWindowName.Updata({accept{,resetflag}})

Parameter------------Description
------------------------------------------------------------------------------------
datawindowname-----database를 갱신할 때 사용할 정보를 포함하는 DataWindow의 이름
accept---------------DataWindow control이 update를 수행하기전 AcceptTex를 자동으로 수행할 것인지를 결정.
(선택사항) . TRUE: (default) AcceptText를 수행
. FALSE: AcceptText를 수행 않음
resetflag--------------updateflags를 자동으로 reset 시킬것인지를 결정
(선택사항) . TRUE: (default) flags를 reset시킴
. FALSE: flags를 reset 시키지 않음

◆ 반환값
long. 정상적으로 수행되면1, 실패하면 -1을 return.

◆ 사용법
accept가 TRUE이면 data가 맞는지 확인 후 갱신된다.
Update함수를 실행전 SetTrans나 SetTransObject를 database연결에 이용해야한다.
default로, 정상적으로 갱신 후 Update함수는 update flag을 고쳐쓴다.
resetflag이 FALSE일 경우에는 반드시 SetTransObject만을 사용한다.
하나의 DataWindow에 있는 여러 table을 갱신하고자 한다면 Modify를 사용한다.
하나의 transaction안에서 다중 DataWindow를 갱신하고자 한다면 resetflag를 FALSE로 놓는다.
Caution:Itemchanged event에서 Update함수를 호출하면, 무한루프에 빠지지 않기 위해 반드시 accept를 FALSE로 놓아야한다.

◆ Event
Update는 다음과 같은 event를 trigger한다.
.DBErrer
.SQLPreview
.UpdateEnd
.UpdateStart
AcceptText가 수행될 때 다음과 같은 event를 trigger한다.
.ItemChanged
.ItemErrer

◆ 예 제
다음 예제는 database를 연결하고 SetTransObject로 DataWindow에 대한 transaction object를 기술
하고,변경된 database를 갱신한다.
CONNECT USING SQLCA;
dw_employee.SetTransobject(SQLCA)
. . .
dw_employee.Update()
다음 예제는 Update가 database를 갱신하기전에 AcceptText를 수행하지 않고 status flag을 고쳐쓴다.
CONNECT USING SQLCA;
dw_employee.SetTransObject(SQLCA)
. . .
dw_employee.Update(FALSE, TRUE)

다음 예제는 Update함수가 수행된 후 COMMIT나 ROLLBACK을 실행한다.
integer rtn
CONNECT using SQLCA;
dw_employee.SetTransObject(SQLCA)
rtn=dw_employee.Update()
if rtn = 1 then
COMMIT using SQLCA;
else
ROLLBACK using SQLCA;
end if

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

[ Year PowerScript Function ]

◆ 기 능
date형의 값에서 연도의 값을 취한다.

◆ 문 법
Year( date )
parameter------Description
------------------------------------------------------------
date-----------Date형으로 부터 year를 가져온다.

◆ 반환값
Integer형이다. 성공하면, date형의 년도 부분에서 얻은 네자리 숫자로 된 정수를 리턴하고, 에러가 발생했을 경우 1900을 리턴한다.
만약 date형에 두자리 string으로 년도를 치환하면, PowerBuilder에서는 다음과 같이 세기를 선택한다.
만약 년도가 00과 49사이에 있으면, Power Builder는 처음 두 숫자를 20으로 취하고, 50과 99사이라면 Power Builder는 19를 취한다.

◆ 사용법
Power Builder는 연도수로 1000 부터 3000까지 사용한다.
데이터가 1950년도 이전날짜를 포함하고 있다면, Year함수나 다른 Power Builder 함수에서도 항상
4자리 숫자로 년도를 표현하는 것이 좋다.

◆ 예 제
// '1995' 를 리턴한다.
Year( 1995-01-31 )

반응형