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

Power Builder Function (2)

by 제이콥케이 2008. 1. 3.
반응형

[ Date PowerScript Function ]
◆ 기 능
DateTime형, string형 이나 숫자형의 데이터를 date형으로 변환한다. 또한 bolb형도 가능하다. 함
수에 들어오는 Parameter의 자료형에 의해 세가지 Syntex중 한가지를 사용 할수 있다.
* Syntex1 : DateTime형, blob형에 의해
* Syntex2 : string형을 date형으로 형변환
* Syntex3 : 수치값에 의해
◆ 문법 1
Date(datatime)
parameter : datetime
Description : DateTime 자료나 blob에 저장된 자료의 첫번째 값은 date또는 DateTime 값이다.
◆ 반환값 1
date형이다. datetime형을 date형으로 리턴한다. datetime값이 date형에 맞지않는 자료형이면
Date함수는 1900-01-01을 리턴한다.
◆ 문법 2
Date(string)
parameter : string
Description : string형의 값은 January 1,1998이나 12-31-99 이어야지 date 형으로 리턴 된다.
◆ 반환값 2
date형이다.
string형을 dategud으로 리턴한다. date형에 맞지않으면 Date함수는 1900-01-01을 리턴한다.
◆ 문법 3
Date(year, month, day)
parameter----Description
====================================
year---------년 (-9999 에서 9999까지)
month------- 월 (1에서 12까지)
day----------일 (1에서 31까지)
◆ 반환값 3
date형이다. 년, 월, 일의 정수로 특정지어진 date형의 값이 리턴된다. 만약 각각의 값이 범위에
들지않으면, Date함수는 1900-01-01을 리턴한다.
◆ 사용법
string안에 알맞은 날짜(1부터 31), 달수(1부터 12), 그리고 두개나 네개로 이루어진 년도수의 조
합으로 이루어지게 된다. 한자리수의 날짜나 달수 앞에 '0'을 붙일 것인지는 옵션이다.
Date litral은 yyyy-mm-dd의 format을 갖고 있다.
◆ 예 제
1. 데이터 베이스로부터 ldt_StartDateTime에 DateTime형의 값을 활당 받은 다음,
ldt_StartDateTime의 date값을 date형 ld_StartDate에 셋팅한다.
DateTime ldt_StartDateTime
date ld_StartDate
ld_StartDate = Date(ldt_StartDateTime)
데이터베이스로부터 ib_blob에 blob 값을 활당받은 다음, ib_bolb의 32byte부터 date값을 date형
ld_date에 셋팅한다.
date ld_date
ld_date = Date(Blobmid(ib_blob,32))
2. 이들 문장들은 모두 July 4, 1994(1994-07-04)를 표현하는 date형을 리턴한다. 시스템은 month
의 위치를 가운데에로 setting시켜준다.
Date("1994/07/04")
Date("1994 July 4")
Date("July 4, 1994")
위의 예제는 sle_start_date가 올바른 date인지 먼저 확인하고, 아닌 경우에는 message를 display
한다. 첫번째 version은 Date()의 결과를 통해 date가 올바른지 알아보고, 두번째 version에서는
IsDate()를 사용하여 Date()를 사용하기 전에 확인해 본다.
version 1:
date ld_my_date
ld_my_date = Date( sle_start_date.Text )
IF ld_my_date = Date("1900-01-01") THEN
MessageBox("Error", "This date is invalid: " &
+sle_start_date.Text )
END IF
version 2:
date ld_my_date
IF IsDate( sle_start_date.Text ) THEN
ld_my_date = Date(sle_start_date.Text )
ELSE
MessageBox("Error", "This date is invalid: " &
+ sle_start_date.Text )
END IF
3.이 예제는 ld_my_date를 1994-10-15로 set하기 위해서 정수값을 사용한다.
date ld_my_date
ld_my_date = Date( 1994, 10, 15 )
----------------------------------------------------------------------------------------------
[ Day PowerScript Function ]
◆ 기 능
주어진 date형의 값에서 일자를 가져온다.

◆ 문 법
Day( date )
parameter : date
Description : Date형으로 부터 day를 가져온다.
◆ 반환값
date에서 일자(1부터 31) 정수를 리턴한다.
◆ 예 제
다음 예제는 1994-01-21에서 날짜인 31을 반환한다.
integer li_day_portion
li_day_portion = Day(1994-01-31)
다음 예제는 sle_date에서 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
----------------------------------------------------------------------------------------------

반응형


[ FindItem PowerScript Function ]
◆ 기 능
임의의 찾고자 하는 텍스트를 찾기 시작하는 리스트박스나 DropDownListBox에서 그 다음 항목
을 찾는다.

◆ 문 법
listboxname.FindItem(text,index)
Parameter-------Description
======================================================
listboxname-----찾고자 하는 item을 포함하고 있는 listbox명
text-------------찾고자 하는 item명
index-----------탐색을 시작할 위치(item의 번호)
◆ 반환값
Integer. 첫번째 매칭되는 아이템의 인덱스를 리턴한다. 매치시키기 위해서 아이템은 지정된 텍
스트에서 출발해야 한다. 그러나 아이템에 있는 텍스트는 지정된 텍스트보다 길수 없다. 매치되는
것을 찾을 수 없거나 에러가 발생하면 -1을 반환한다.
◆ 사용법
FindItem이 매칭하는 아이템을 찾을 때 그 아이템을 선택하지 않은 아이템의 인덱스를 리턴한
다. 아이템을 찾아서 선택하기 위해서 SelectItem function을 사용하라.
◆ 예 제
ListBox lb_actions이 다음의 리스트를 포함한다고 가정하자.
index number | Item text
1 | Open files
2 | Close files
3 | Copy files
4 | Delete files
integer Index
Index = lb_actions.FindItem("Delete", 2)
// 아이템 2(Close files)를 가진 출발을 제거하기 위하여 검색을 시작한다. FindItem은 인
덱스를 4로 지정한다.
----------------------------------------------------------------------------------------------
[ GetClickedColumn PowerScript Function ]
◆ 기 능
DataWindow 에서 click 또는 double click한 column의 번호를 얻는다.
◆ 적 용
DataWindow control 및 자식 DataWindow.
◆ 문 법
DataWindowName.GetClickedColumn()
Parameter : DataWindowName
Description : click 또는 double click한 column에 대한 DataWindow의 이름
◆ 반환값
integer.유저가 datawindowname의 열을 클릭, 더블클릭하면 열의 번호를 반환한다.
특정한 열(예를들면 데이타의 범위 밖, 열사이의 공간이나 문자, header, summary, footer area부
분)을 클릭하거나 더블클릭하지 않으면 0을 반환한다.
◆ 사용법
데이타윈도우 컨트롤에 대해 클릭이나 더블클릭의 이벤트가 발생되면 GetClickedColumn
을 호출한다.
User가 열(Column)에 클릭했을때, 즉 클릭이나 더블클릭후에 현재 열에 표시된다.
GetColumn, GetClickedColumn의 이벤트가 발생하는 동안 다른값이 반환될 수 있다. User가 다
른 방법 즉 tab를 이용하여 열을 이동시킨다면 GetClickedColumn를 사용했다고 볼 수 없다.
◆ 예 제
dw_Employee의 열을 User가 클릭 또는 더블클릭하면 열의 번호를 표시한다.
integer li_ColNbr
li_ColNbr = dw_Employee.GetClickedColumn()
----------------------------------------------------------------------------------------------
[ GetClickedRow PowerScript Function ]
◆ 기 능
DataWindow에서 click 또는 double click한 row의 번호를 얻는다.
◆ 적 용
DataWindow control 및 자식 DataWindow.
◆ 문 법
DataWindowName.GetClickedRow()
Parameter : DataWindowName
Description : click 또는 더블클릭한 row에 대한 DataWindow의 이름.
◆ 반환값
Long.
DataWindowName에서 click 또는 double click된 row의 번호를 반환한다.
row을 click 또는 double click하지 않았을시 zero(0)값을 반환한다.
(예를 들어 data 영역을 벗어나 row 사이의 공간에서, 또는 header, summary, footer
영역에서 click 또는 double click 시)
◆ 사용법
데이타윈도우 컨트롤에 대해 클릭이나 더블클릭의 이벤트가 발생되면 GetClickedRow을 호출
User가 행(Row)에 클릭했을때, 즉 클릭이나 더블클릭후에 현재 행에 표시된다.
GetRow, GetClickedRow의 이벤트가 발생하는 동안 다른값이 반환될 수 있다.
User가 다른 방법 즉 tab를 이용하여 행을 이동시킨다면 GetClickedRow를 사용했다고 볼 수 없
다.
◆ 예 제
dw_Employee의 행을 User가 클릭 또는 더블클릭하면 행의 번호를 표시한다.
long ll_RowNbr
ll_RowNbr = dw_Employee.GetClickedRow()
--------------------------------------------------------------------------------------
[ GetItemXXXX PowerScript Function ]
◆ 기 능
DataWindow의 buffer로부터 자료를 얻고자할 때 사용한다.
DataWindow buffer의 각 field는 item이라고 부르며 각 item은 관련 함수를 사용해서 참조
할 수 있다.
GetItem()들은 인수로서 row과 column(번호나 column 이름으로써)을 요구한다.
또한 buffer를 명시할수도 있으며(Primary가 default이다), database로부터 색된 원래의 값을 얻기
위한 인수를 추가할 수도 있다.
◆ 적 용
DataWindow control 및 자식 DataWindow.
◆ 함수의 종류
GetItemDate()
GetItemDateTime()
GetItemNumber()
GetItemString()
GetItemStatus()
GetItemTime()
◆ 상태 code
각 row은 한 buffer를 갖는다.
#Primary!
#Delete!
#Filter!
각 item도 역시 상태 code를 가지고 있다.
#NotModified! 변경되지 않은 상태
#DataModified! 사용자에 의해 변경되었음
#New! 새로 삽입된 item
#NewModified! 변경되어진 새로운 item
row들도 역시 상태들을 가진다.
#New! 추가된 row
#NewModified! 변경되어진 새로 추가된 row
#DataModified! 변경된 field를 포함
#notModified! 검색이후로 변경되지 않음
------------------------------------------------------------------------------------------
[ GetItemStatus PowerScript Function ]
◆ 기 능
행의 변경된 상태 또는 행안의 칼럼을 리턴 한다
변경된 상태는 갱신함수가 행이나 열에대해 SQL문장의 타입을 결정한다
◆ 적 용
데이터윈도우 컨트롤과 CHILD 데이터윈도우가 있다
◆ 문 법
데이터윈도우명.GetItemStatus(row,column,dwbuffer)
Parameter------------Description
====================================================================
데이터윈도우명-------데이터윈도우 컨트롤명이나 child 데이터윈도우는
행 안의 칼럼 또는 행의 상태를 얻을 수 있다
행-------------------행은 long형의 식별자 상태를 요구한다
칼럼-----------------칼럼은 정수형 또는 칼럼명으로 string을 가질수 있
으며 모든 행은 특별하게 0의 상태를 가질수 있다
dwbuffer-------------dwbuffer 값은 열거형 데이터 타입을 식별자로 갖
으며 데이타윈도우 버퍼는 행을 가지고 있다

PRIMARY!(DEFAULT)==> 기본 버퍼의 데이터(삭제등 안됨)
DELETE! ==> 삭제버퍼의 데이터
FILTER! ==> 필터 아웃 데이터
◆ 반환값
dwItemStatus-->dwItemStatus 값은 열거형 데이터 타입을 갖는다
행의 항목을 리턴하며 데이터윈도우명의 칼럼은 dwbuffer안에 있다
만약 칼럼이 0이면 GetItemStatus는 행의 상태를 리턴한다
◆ 사용법
dwItemStatus 값의 열거형 데이터 타입
1. NotModified! --> 어떤 값이 회복이 되어도 행이나 칼럼의 정보는 변경되지 않는다
2.DataModified! --> 예전에 회복되어 변경된 행안의 칼럼중의 하나 또는 칼럼의 데이터 정보는 수정 되지 않는다
3.New! --> 삽입된 새로운 행은 칼럼이 명시되지 않음 값이 없다
4.NewModified! --> 새로운행의 값은 칼럼을 할당한다
갱신 조건은 칼럼이 디폴트 값을 가질떄 SetItem 함수 또는 사용자의 entry 조건에 의해
새로운 행은 NewModified!의 상태를 얻는다
GetItemStatus 활동에 따른 SQL문장이 데이터베이스의 갱신이 일어날 때 변경을 유발하는 것
을 이해하는것이다
NewModified!의 상태를 위하여 기본 정보와 필터버퍼는 갱신을 유발하는 INSERT문장을 한다
DataModified! 상태는 UPDATE 문장의 행을 유발한다
삭제 버퍼안에 있는 행은 DELETE문장을 하지 못하도록 변경하며 New! 또는 NewModified 상태가 된다
◆ 예 제
// dw_1의 기본버퍼에서 5행에 있는 emp_status칼럼의 상태를 변수 1_status에 저장한다.
dwItemStatus 1_status
1_status = dw_1.GetItemStatus(5, "emp_status", Primary!)
// dw_emp의 기본버퍼에 있는 현재 행에서 Salary칼럼의 상태를 변수 1_status에 저장.
dwItemStatus 1_status
1_status = dw_emp.GetItemStatus(dw_emp.GetRow(), "Salary", Primary!)

반응형

'프로그래머의 길 > Power Builder' 카테고리의 다른 글

Power Builder Function (6)  (0) 2008.01.03
Power Builder Function (5)  (0) 2008.01.03
Power Builder Function (4)  (0) 2008.01.03
Power Builder Function (3)  (0) 2008.01.03
Power Builder Function (1)  (0) 2008.01.03