OpenWithParm PowerScript Function
◆ 기 능
Open의 기능과 더불어 오픈된 윈도우에 접근할 수 있도록 하기 위하여 시스템의 Message object에 매개변수를 저장하는 기능을 한다.
⼦ 적 용
Window objects
⼦ 문법 1
OpenWithParm(windowvar, parameter {, parent})
* windowvar 디스플레이 하고자 하는 윈도우의 이름
Window painter에 정의된 윈도우 오브젝트나 요구된 윈도우 데이타 타입의 변수를 지정할 수 있다.
* parameter 윈도우가 오픈되었을 때 Message object에 저장하기를 원하 는 매개변수 String, Numeric, PowerObject
* parent 열고있는 popup window 또는 child의 parent로 만들고자 하 는 window.
⼦ 반환값 1
Integer. 성공하면 1을 반환하고 실패하면 -1을 반환한다.
⼦문법 2
OpenWithParm(windowvar, parameter, windowtype {, parent})
* windowtype 값이 열기를 원하는 윈도우의 데이타 타입인 스트링
⼦ 반환값 2
Integer. 성공하면 1을 반환하고 실패하면 -1을 반환한다.
⼦사용법
system Message object는 저장하고 있는 데이타에 대한 세가지 속성을 가진다.
parameter data type에 의존하여 OpenWithParm의 속성을 지정한다.
(Message object attribute) (Parameter data type)
Message.DoubleParm Numeric
Message.PowerObjectParm PowerObject
Message.StringParm String
⼦ 예 제
OpenWithParm(w_employee, "James Newton")
w_employee w_to_open
integer age = 50
OpenWithParm(w_to_open, age)
w_to_open 형의 instance 을 오픈한다. 매개변수가 수이기 때문에 그것은 Message에 저장된다.
OpenWithParm(cw_data, "benefit_plan", w_employee)
OpenWithParm(w_to_open, e_location, s_w_name)
OpenWithParm(wc_to_open, age, c_w_name, w_emp)
PostEvent PowerScript Function
⼦ 기 능
오브젝트의 이벤트의 끝에 이벤트를 추가한다. postevent()는 단순히 clicked 이벤트 스크립트가 장래에 언젠가, 파워빌더가 할 수 있을 때 발생하는 것을 요구한다. 그리고 스크립트를 호출하는 실행은 중지하지 않고, 완성할 이벤트를 기다리지 않는다. 단지 postevent() 호출 후에 계속한다. 이벤트가 스크립트가 실행되고 계속할 것을 요구하기 때문에, 비동시성 호출로 언급된다.
⼦ 적 용
application object를 제외한 모든 object
⼦ 문 법
objectname.PostEvent(event,{word, long})
* objectname 연관되어 있는 이벤트를 가진 powerbuilder object나 control
* event 값이 이벤트의 이름이 되는 스트링이나 PowerBuilder 이벤트 를 정의하는 TrigEvent enumerated data type의 값
* word(optional) 시스템 message object의 WordParm attribute에 저장되어
있는 long value
* long(optional) 시스템 Message object의 WordParm attribute에 저장하기 를 원하는 스트링 또는 long value
⼦ 반환값
Boolean. 성공하면 TRUE를 리턴하고 오브젝트에 대하여 유효한 오브젝트가 아니면 FALSE를 리턴한다.
⼦ 사용법
drawing object같이 이벤트를 가지지 않는 오브젝트에 대하여 이벤트를 trigger하거나 붙일 수 없다. 또 application은 event queue를 가지지 않기 때문에 user interface를 가지지 않는 배치 매플리케이션안에 이벤트를 trigger 하거나 붙일 수 없다.
⼦ 예 제
cb_OK.PostEvent(Clicked!)
Clicked 이벤트를 추가한다.
Parent.PostEvent("cb_exit_request")
사용자 정의 이벤트인 cb_exit_request를 이벤트 queue에 추가한다.
Parent.PostEvent("cb_exit_request", 455)
value 455는 Message object에 저장된다.
Print PowerScript Function
⼦ 기 능
현재 프린터에 데이타를 보낸다.
DataWindow control의 내용을 보내기 위해서는 문법 1을 사용한다.
window 또는 graph 같은 visual object를 포함하기 위해서는 문법 2를 사용한다.
text의 line들을 보내기 위해서는 문법 3을 사용한다.
⼦ 적 용
(문법 1) DataWindow controls and child DataWindows
(문법 2) 모든 object
(문법 3) 특정 object를 제외한 것
⼦ 문 법
DataWindow콘트롤의 내용을 프린터에 보낸다.-syntax1
보여지는 오브젝트(윈도우, 그래프 컨트롤)를 프린터로 보낸다.-syntax2
문장의 하나 또는 이상의 라인을 보낸다.-syntax3
문장은 페이지의 수직위치를 조절하는 tab settings에 의해 수행될 수 있다.
⼦ 문법 1
datawindowname.Print({canceldialog})
Parameter Description
────----- ────────────────────────
datawindowname 프린트될 정보를 포함하고 있는 DataWindow 콘트롤이나
child DataWindow의 이름.
canceldialog 프린트 취소를 위한 non-modal다이얼로그를 디스플레이
할지 않할지의 여부를 지시하는 Boolean값
True : 다이얼로그를 디스플레이(디폴트)
False : 다이얼로그를 디스플레이 하지 않음.
False : 다이얼로그를 디스플레이 하지 않음.
⼦ 반환값 1 Integer 성공하면 1, 에러발생시 -1를 리턴한다.
⼦ 문법 2
objectname.Print( printobjnumber,x,y,{,width, height})
Parameter Description
─────── ────────────────────────
objectname 프린트될 정보를 포함하고 있는 오브젝트의 이름.
그 오브젝트는 윈도우에 위치할 수 있는 모든 콘트롤을 포
함한 DragObject를 조상으로 갖는 윈도우나 오브젝트이어
야 한다.
printobjnumber PrintOpen함수가 print job에 할당하는 값(숫자)
x 페이지의 좌측 x위치로서 1/1000인치값으로 integer형이다.
y 페이지의 좌측 y위치로서 1/1000인치값으로 integer형이다.
width(optional) 프린트될 1/1000의 inch값으로 페이지의 폭을 설정.
생략시 original width가 디폴트로 잡힌다.
height(optional) 프린트될 1/1000의 inch값으로 페이지의 길이를 설정.
생략시 original height가 디폴트로 잡힌다.
⼦ 반환값 2
Integer 성공하면 1, 에러발생시 -1를 리턴한다.
⼦ 문법 3
Print( printjobnumber,{tab1}, string {,tab2})
Parameter Description
─────── ────────────────────────
printjobnumber PrintOpen 함수가 print job에 할당하는 숫자
tab1(optional) 프린트 영역의 왼쪽 모퉁이 위치로 1/1000인치 값이다.
프린트되기 전에 print cursor가 옮겨져야 한다.
만약 생략되면 현재위치에서 프린트를 시작한다.
string 프린트하고자 하는 스트링
만약 ~r, ~n을 포함하고 있으면 여러라인을 프린트 할 수
있다.
tab2(optional) 스트링을 프린트한 후의 새로운 왼쪽 모퉁이 위치를 생략시
프린트 커서를 새로운 라인으로 옮겨서 프린트한다.
⼦ 반환값 3
Integer 성공하면 1, 에러발생시 -1를 리턴한다.
⼦ 사용법
파워빌더는 프린트 job을 열고 데이타를 보내고, job을 닫음으로서 printer job을 관리한다.
Syntax1를 사용할 때는 자동적으로 print job관리가 자동적으로 일어난다.
Syntax2,3을 사용할 때는 PrintOpen, PrintClose, PrintCancel을 사용하여야 한다.
Syntax1은 DataWindow오브젝트의 내용을 프린트할 때 사용한다. 이 함수는 검색된 모든 열들을 프린트한다. 몇 개의 DataWindows를 하나의 작업으로 프린트하기 위해서 사용하지 말아라. 대신에 PrintOpen으로 Print Job을 열고, 각각의 DataWindow에 대해서 PrintDataWindow함수를 호출하고, Close해라.
DataWindow콘트롤을 프린트할 때, DataWindow에 대한 이벤트 발생
PrintStart event는 데이타가 printer에 보내지기 직전에 발생하고,
PrintPage event는 각페이지가 끝날때마다 발생, PrintEnd event는 프린트가 끝났을 때 발생.
PrintPage 이벤트는 포맷되어진 페이지에 대해 프린트할지 여부를 묻는 action code를 가진다. 사용자는 SetActionCode함수를 이용해서 action code를 1로 설정함으로서 스킵할 수 있다.
파워빌더는 Print Cursor로 왼쪽 모퉁이 좌표를 기억시켜 프린트될 다음 위치를 알 수 있도록 한다.
텍스트를 프린트할 때 파워빌더는 행간격을 글자높이에 따라서 한다. 디폴트 행간격은 character height의 1.2배이다. PrintSeSpacing함수에 의해 행간격 배수를 설정할 수 있다.
syntax3을 프린트할 때, 파워빌더는 페이지 브레이크를 통제하여 y좌표를 관리하고, 페이지가 넘어갈 때 자동적으로 새로운 페이지 잡을 설정하여 준다.
Print영역과 가장자리 여백은 PrintSent함수와 printer-defined escape sequences를 이용하여 변경할 수 있다.
PrintDefineFont와 PrintSetFont함수를 이용하여 Print함수에 의해 사용될 폰트를 설정할 수 있다. Syntax1을 사용시 파워빌더는 DataWindow에 나타난 폰트와 여백을 사용하여 프린트한다.
⼦ 예 제
1.// dw_employee의 내용을 현재의 프린터로 보낸다.
dw_employee.Print()
2.// CommandButton cb_close를 500,1000위치에 원래의 크기로 프린트한다.
integer Job
Job = PrintOpen()
cb_close.Print(Job, 500, 1000)
PrintClose(Job)
3.// printjob을 열고, 새페이지를 정의하고, 첫번째 페이지에 타이틀과 그래
// 프를 프린트하고, 두번째 페이지에 윈도우를 프린트 함.
integer Job
Job = PrintOpen()
Print(Job, "Report of Year-To-Date Sales")
gr_salesl.Print(Job, 1000, PrintY(Job)+500, 6000, 4500)
PrintPage(Job)
w_sales.Print(Job, 1000, 500, 6000, 4500)
PrintClose(Job)
4.// print job을 열고, Powersoft Corporation문자열을 디폴트폰트로 프린트 // 하고, 새로운 라인을 시작한다.
integer Job
// Blank 페이지를 정의하고, Job에 ID를 할당한다.
Job = PrintOpen()
// 문자열을 프린트하고, 새라인을 시작한다.
Print(Job, "Powersoft Corporation")
.....
PrintClose(Job)
// print job을 열고, Powersoft Corporation문자열을 디폴트 폰트와 tab //은 프린트 영역의 왼쪽 구석에서 5인치만큼 떨어져서 프린트하고 ,새라 //인은
// 시작하지 않는다.
integer Job
// Blank 페이지를 정의하고, Job에 ID를 할당한다.
Job = PrintOpen()
// 문자열을 프린트하고, 새라인을 시작하지 않는다.
Print(Job, "Powersoft Corporation", 5000)
.....
PrintClose(Job)
// 첫번째 프린트 문장은 프린트영역의 왼쪽 가장자리에서 tab아래에 0.5인
// 치만큼 떨어뜨려 Powersoft Corporation문자열을 프린트하고, 새라인을
// 시작한다.
// 두번째 프린트 문장은 프린트 영역의 왼쪽 가장자리에서 1인치만큼 떨어
// 뜨려 Directors문자열을 출력하고, 새라인을 시작한다.
integer Job
// Blank 페이지를 정의하고, Job에 ID를 할당한다.
Job = PrintOpen()
// 문자열을 프린트하고, 새라인을 시작한다.
Print(Job, 500, "Powersoft Corporation")
// 왼쪽 가장자리에서 1인치 tab하고, 프린트한다.
Print(Job, 1000, "Directors:")
.....
PrintClose(Job)
// 첫번째 프린트문장은 프린트 영역의 왼쪽 가장자리에서 tab아래에 0.5인
// 치만큼 떨어뜨려 Powersoft Corporation문자열을 프린트하고, 왼쪽 가장
// 자리의 6인치만큼 떨어뜨리고, 새라인을 시작하지 않는다.
// 두번째 프린트 문장은 현재의 날짜를 출력하고, 새라인을 시작한다.
integer Job
// Blank 페이지를 정의하고, Job에 ID를 할당한다.
Job = PrintOpen()
// 문자열을 프린트하고, 왼쪽 가장자리에서 6인치 tab
Print(Job, 500, "Powersoft Corporation", 6000)
// 현재의 날짜를 같은 라인에 출력한다.
Print(Job, String(Todat()))
.....
PrintClose(Job)
// MultiLineEdit mle_message에서 에러 메세지를 출력하고, 날짜와 시간을 // 출력한다.
integer 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)
PrintSetup PowerScript Function
⼦ 기 능
시스템 프린터 드라이버에 의해 공급된 Printer Setup dialog box를 호출하고 사용자의 응답을 저장한다.
⼦ 문 법
PrintSetup()
⼦ 반환값
Integer. 성공하면 1을 리턴하고 실패하면 -1을 리턴한다.
⼦ 예 제
현재 시스템을 Print setup dialog box를 호출하고 새로운 print job을 시작한다.
long Job
// Printer Setup 프로그램을 호출한다.
PrintSetup()
// print job new page를 시작한다.
Job = PrintOpen()
RelativeDate PowerScript Function
◆ 기 능
특정한 날짜가 있은 후로 일정한 일수만큼 증감된 날짜를 알아낸다.
◆ 문 법
RelativeDate( date, n )
parameter Description
date date 값
n 증감될 날짜
⼦ 반환값
date형이다. n이 0보다 크면 n만큼 큰 날짜를 리턴하고, n이 0보다 작으면 n만큼 작은 날짜를 리턴한다.
⼦ 예 제
1990-02-10을 리턴한다.
RelativeDate( 1990-01-31, 10)
1990-01-21을 리턴한다.
RelativeDate( 1990-01-31, -10)
Reset PowerScript Function
⼦ 기 능
컨트롤의 데이터를 지운다.
Syntex 1 : 데이터윈도우 컨터롤의 데이터를 지운다.
Syntex 2 : 리스트의 모든 데이터를 지운다.
Syntex 3 : 그래프의 카테고리, 시리즈 등의 모든 데이터를 지운다.
⼦ 문 법
Syntex 1 : datawindowname.Reset( )
Syntex 2 : listboxname.Reset( )
Syntex 3 : controlname.Reset(graphresettype)
*graphresettype :
All! -- controlname의 모든 시리즈 와 카테고리들, 데이터를 지 운다.
Category! -- controlname의 카테고리들, 데이터를 지운다.
Data! -- controlname의 데이터를 지운다.
Serise! -- controlname의 모든 시리즈 와 데이터를 지운다.
⼦ 반환값
Integer. 성공시 1을 에러발생시 -1을 반환
⼦ 사용법
Reset()은 DataBase에는 변경을 주지 않으며 단지 Application에만 작용한다. 즉, Delete는 DataWindow Object와 관련된 DataBase table의 특정 row를 삭제하지만, reset 및 update후에는 DataBase table에는 변화가 없다.
⼦ 예 제
1. dw_employee의 내용을 모두 삭제하는 예제
dw_employee.Reset( )
2. ddlb_Actions의 모든 데이터를 지우는 예제
ddlb_Actions.Reset( )
3. 그래프 gr_product_data의 데이터와 시리즈를 모두 지우지만 카테고리를 남기는 예제
gr_product_data.Reset(Series!)
Retrieve PowerScript Function
⼦ 기 능
데이타베이스로부터 자료를 조회하여 데이타윈도우에 보여준다.
CommamdButton(cb_retrieve)의 Clicked 이벤트에 대한 스크립트에서,
데이타를 검색하기 위해서 DataWindow 객체와 결합된 SQL Select문 을 사용한다.
⼦ 문 법
datawindowname.Retrieve({,argument,argument,....})
datawindowname에는 database로부터 조회하고자 하는 row가 있는 DataWindow Control이나 child DataWindow의 이름을 기입한다. argument는 SQL Select문장에서 조회인수로 사용된다.
⼦ 반환값
리턴값은 long형이다. 성공시 조회된 row의 수, 실패하면 -1을 리턴한다.
⼦ 예 제
dw_employee.Retrieve() // 전체를 조회함
dw_employee.Retrieve(sBuseoCode) // 특정 부서만 조회함
dw_emp1.Retrieve(50000,"NW")
// database로부터 급료가 50,000 이상이고 NorthWest지역에 사는 고
// 용인만을 조회함
Double emps[3]
emps[1] = 100
emps[2] = 200
emps[3] = 300
dw_EmpHist.Retrieve(emps)
// EmpHist에서 조건에 맞는 행만 조회한다. 인자는 처음에 배열로
// 선언하여 변수값을 받아들여 사용될 수 있다.
Right PowerScript Function
⼦ 기 능
주어진 문자열에서 특정 위치에 지정한 길이의 문자열을 가져온다.
⼦ 문 법
Right( string, n )
parameter Description
string 원하는 문자들이 있는 string
n long형으로 오른쪽 끝에서 원하는 문자들의 원하는
문자들의 갯수
⼦ 반환값
String형이다. 성공하면 주어진 문자열의 오른쪽끝에서 부터 n개의 문자를 리턴하고, 에러가 발생하면 빈 문자열("")을 리턴한다.
만약 n이 string의 길이보다 크거나 같으면 string만큼 리턴한다. n과 같게 space를 더하지는 않는다.
⼦ 예 제
BSON를 리턴한다.
Right( "JOSH GIBSON" , 4)
JOSH GIBSON을 리턴한다.
Right( "JOSH GIBSON" , 4)
RightTrim PowerScript Function
◆ 기 능
문자열의 마지막 부분에서의 공백문자를 제거한다.
◆ 문 법
RightTrim (string)
Parameter Description
--------- ------------------------------------------------
string trailing blanks을 삭제한 문자열을 리턴한다.
⼦ 반환값
string. trailing blanks의 삭제가 성공하면 복사된 문자열을 리턴하고 실패하면 ("")를 return 한다.
⼦ 예 제
RightTrim("RUTH ") // RUTH를 리턴한다.
RowCount PowerScript Function
◆ 기 능
데이타윈도우의 Row의 갯수를 알아낸다.
Primary Buffer에 있는 Row의 갯수를 알아낸다.
◆ 적 용
데이터윈도우 control 과 자손 데이타윈도우
◆ 문 법
datawindowname.RowCount()
◆ 반환값
Long. 조회된 자료가 없는 경우 0, 실패하면 -1을 리턴한다.
◆ 사용법
현재 display 되고 있는 행에 대한 primary buffer 의 행의 번호 count
◆ 예
- dw_employee의 현재 행번호를 리턴
Long 1Row
1Row = dw_emp.RowCount()
ScrollNextPage PowerScript Function
◆ 기 능
데이타 윈도우상에 보여지는 부분을 다음 페이지로 이동한다.
ScrollNextPage는 현재의 row는 바꾸지만 현재의 column은 바꾸지 않 는다.
◆ 적 용
DataWindow control 및 자손 DataWindow.
◆ 문 법
datawindowname.ScrollNextPage ( )
◆ 반환값
Long. 성공한 경우는 화면의 처음 행번호, 실패하면 -1을 리턴한다.
◆ 사용법
ScrollNextPage는 현재 행을 강조하지는 않는다. 현재행을 사용자가 알도록 하기 위해서는 SelectRow를 사용하라.
◆ Event
ScrollNextPage는 다음의 이벤트들을 트리거할 수 있다.
#ItemChanged
#ItemError
#ItemFocusChanged
#RowFocusChanged
◆ 예
- 다음화면으로 이동한다.
dw_employee.ScrollNextPage( )
ScrollPriorPage PowerScript Function
◆ 기 능
데이타 윈도우상에 보여지는 부분을 이전 페이지로 이동한다.
ScrollPriorPage는 현재의 row는 바꾸지만 현재의 column은 바꾸지 않 다.
◆ 적 용
DataWindow control 및 자손 DataWindow.
◆ 문 법
datawindowname.ScrollPriorPage ( )
◆ 반환값
Long. 성공한 경우는 화면의 처음 row번호, 실패하면 -1을 리턴한다.
◆ 사용법
ScrollPriorPage는 현재 행을 강조하지는 않는다. 현재행을 사용자가 알도록 하기 위해서는 SelectRow를 사용하라.
◆ Event
ScrollPriorPage는 다음의 이벤트들을 트리거할 수 있다.
#ItemChanged
#ItemError
#ItemFocusChanged
#RowFocusChanged
◆ 예
- 이전화면으로 이동한다.
dw_employee.ScrollPriorPage( )
ScrollNextRow PowerScript Function
◆ 기 능
데이터윈도우 컨트롤을 다음 행으로 이동시킨다. 이때 현재의 행은 변경되지만, column은 변경되지 않는다.
◆ 적 용
DataWindow control 및 자손 DataWindow.
◆ 문 법
datawindowname.ScrollNextRow ( )
◆ 반환값
Long. 성공한 경우는 화면의 처음 행번호, 실패하면 -1을 리턴한다.
◆ 사용법
ScrollNextRow를 호출하면 현재행의 다음행이 새로운 현재형이 된다. 만약 그 행이 이미 나타나 있으면 display된 그 행은 변하지 않고 그 행이 나타나 있지 않으면 그 행이 display될 때까지 화면에 나타나 있던 행들이 올라가게 된다.
ScrollNextRow는 그 행을 highlight하지 않는다. SelectRow는 사용자가 현재의 행이 어디인지 알게 하기 위하여 사용한다.
◆ Event
ScrollNextRow는 다음의 이벤트들을 트리거할 수 있다.
#ItemChanged
#ItemError
#ItemFocusChanged
#RowFocusChanged
◆ 예
다음 row로 이동한다.
dw_employee.ScrollNextRow( )
ScrollPriorRow PowerScript Function
◆ 기 능
데이터윈도우 컨트롤을 이전 행으로 이동시킨다. 이때 현재의 행은 변경되지만, column은 변경되지 않는다.
◆ 적 용
DataWindow control 및 자손 DataWindow.
◆ 문 법
datawindowname.ScrollPriorRow ( )
◆ 반환값
Long. 성공한 경우는 화면의 처음 행번호, 실패하면 -1을 리턴한다.
◆ 사용법
ScrollPriorRow를 호출하면 현재행의 이전행이 새로운 현재형이 된다. 만약 그 행이 이미 나타나 있으면 display된 그 행은 변하지 않고 그 행이 나타나 있지 않으면 그 행이 display될 때까지 화면에 나타나 있던 행들이 내려가게 된다.
ScrollPriorRow는 그 행을 highlight하지 않는다. SelectRow는 사용자가 현재의 행이 어디인지 알게 하기 위하여 사용한다.
◆ Event
ScrollPriorRow는 다음의 이벤트들을 트리거할 수 있다.
#ItemChanged
#ItemError
#ItemFocusChanged
#RowFocusChanged
◆ 예
이전 row로 이동한다.
dw_employee.ScrollPriorRow( )
ScrollToRow PowerScript Function
◆ 기 능
지정된 행으로 데이터윈도우의 화면을 이동시킨다. 현재의 행은 변경 되지만, column은 변경되지 않는다.
◆ 적 용
DataWindow control 및 자손 DataWindow.
◆ 문 법
datawindowname.ScrollToRow ( row )
datawindowname에는 지정된 행을 스크롤하기를 윈하는 데이터 윈도우 혹은 차일드 데이터윈도우의 이름을 기입한다. row은 long형이다. 스크롤 하고자 하는 열의 값이다. 만약 0이면 가장 처음 행이고 마지막보다 크면 마지막 행을 스크롤 해 준다.
⼦ 반환값
Integer. 성공한 경우 1, 실패하면 -1을 리턴한다.
⼦ 사용법
ScrollToRow함수를 호출한 후에 지정된 row가 현재 행이 된다. 만일 그 행을 이미 보여졌다면 출력된 행들은 변경하지 않는다. 보여지지 않았다면 디스플레이된 row들은 그 행을 출력하기위해 변경될 것이다.
ScrollToRow함수는 row를 하이라이트하지 않는다. 이용자에게 현재행이 어떤것인지 알려주기위해 SelectRow함수를 사용한다.
⼦ Event
ScrollToRow함수는 아래 이벤트들을 트리거한다.
ItemChanged
ItemError
ItemFocusChanged
RowFocusChanged
⼦ 예 제
dw_employee.ScrollToRow(10)
현재 DataWindowControl이 dw_employee가 되고 10행으로 이동한다.
SelectRow PowerScript Function
⼦ 기 능
데이터윈도우 컨트롤 안에서 행들이 반전 되거나 반전 되지 않는다
모든행을 선택하거나 하나의 행을 선택할수 있다
SelectRow는 현재의 행에 영향을 주지 않는다
SelectRow 는 데이터베이스안에서는 행을 선택하지 않는다
⼦ 적 용
데이터윈도우 컨트롤과 CHILD 데이터윈도우가 있다
⼦ 문 법
데이터윈도우명.SelectRow (row,boolean)
Parameter Description
------------- ----------------------------------------------
데이터윈도우명 데이터윈도우 컨트롤명이나 child 데이터윈도우는
행을 선택 하거나 선택하지 않을수 있다
행 행은 long형의 식별자를 가지며 행을 선택 하거나
선택 하지 않을수 있다
0 값이면 선택된 것을 의미 한다
boolean boolean값은 행을 선택하거나 선택하지 않은 경우 에 결정된다
True--선택된 행인 경우
False--선택 되螡지 않은 경우
⼦ 반환값
integer-->리턴값이 1이면 성공 에러인 경우 -1을 리턴한다
⼦ 예 제
dw_employee.SelectRow(15, TRUE)
//dw_employee에서 15행을 선택.
This.SelectRow(0, FALSE)
This.SelectRow(This.GetClickedRow(), TRUE)
//모든 행에 대한 반전을 해제하고
//사용자가 클릭한 행을 반전한다.
SetColumn PowerScript Function
⼦ 기 능
DataWindow control에서 현재의 열을 설정한다.
⼦ 적 용
데이터윈도우 콘트롤과 자식데이타윈도우.
⼦ 문 법
datawindowname.SetColumn(column)
* datawindowname 사용자가 현재 열로 지정하기를 원하는 데이터윈도우 콘 트롤과 자식데이타윈도우의 이름
* column 사용자가 현재 만들기를 원하는 열. Column은 칼럼번호 또는 칼럼명.
⼦ 반환값
Integer. 성공시 1, 에러발생시 -1을 반환한다. column이 1보다 작거나 column의 수보다 클 경우는 SetColumn은 실패한다.
⼦ 사용법
SetColumn은 커서를 현재의 열로 움직이지만 데이터윈도우콘트롤을 스크롤하지는 않는다. 단지 편집할수 있는 column을 현재의 column으로 지정할 수 있다.
⼦ Event
SetColumn은 다음의 이벤트들을 trigger 할 수 있다.
*ItemChanged
*ItemError
*ItemFocusChanged
무한루프를 피하기위해서는 ItemChanged, ItemError, 또는 ItemFocusChanged 이벤트에서 SetColumn을 호출하지 않아야 한다. 왜냐하면 SetColumn은 이러한 이벤트들을 trigger할 수 있기 때문이며 그러한 회귀적인 요구는 stack fault를 발생시킬 수 있다.
⼦ 예 제
- dw_employee에서 15번째 열을 현재 열로 설정한다.
dw_employee.SetColumn(15)
SetFocus PowerScript Function
◆ 기 능
지정된 object나 control에 focus를 설정한다.
◆ 적 용
모든 object
◆ 문 법
objectname.SetFocus()
Parameter Description
objectname focus를 맞추고 싶은 object 이름이나 control
⼦ 반환값
integer. 성공하면 1. 실패하면 -1을 리턴한다.
⼦ 사용법
object이름이 ListBox이면, SetFocus는 처음 item 주위의 focus 사각형을 보여준다. object이름이 DropDownListBox이면 SetFocus는 edit box를 반전시킨다. ListBox 나 DropDownListBox 안의 item을 선택할 때 SelectItem을 이용한다.
그리기 object는 focus를 가질 수 없다. 따라서, 선,타원,직사각형,원형사각형의 SetFocus를 focus를 맞출수 없다.
⼦ 예 제
lb_Actions.SetFocus()
// lb_Actions 의 첫item에 focus를 옮긴다.
SetItem PowerScript Function
⼦ 기 능
Datawindow control에 지정된 값으로 행과 열을 설정한다.
⼦ 적 용
데이터윈도우 컨트롤과 CHILD 데이터윈도우가 있다
⼦ 문 법
데이터윈도우명.SetItem(row,column,value)
Parameter Description
------------- --------------------------------------------------
데이터윈도우명 데이터윈도우 컨트롤명이나 child 데이터윈도우는
특별한 행과 칼럼의 값을 지정 한다
행 행은 long형의 식별자를 가진다
칼럼 칼럼은 칼럼 번호를 정수 또는 칼럼명을 string으 로 가진다
value 칼럼위치나 행에서 데이터를 지정 할수 있다
⼦ 반환값
integer-->리턴값이 1이면 성공 에러인 경우 -1을 리턴한다
⼦ 사용법
SetItem 에서 지정한 값은 데이터윈도우 버퍼에 가지고 있다
현재의 행과 칼럼 위에 편집 콘트롤은 그값이 유효화되고 받아들여질때까
지 데이터윈도우 아이템의 값이 되지않는다
스크립트에서, SetText함수를 가지고 편집제어상태에 있는 값을 변경할
수 있다.
소스로써 스크립트를 갖는 데이터윈도우 콘트롤에서 아이템의 값을
세트하고자 할때 SetItem을 사용할 수 있다.
⼦ 예 제
dw_order.SetItem(3, "hire_date", 1993-06-07)
//dw_order 데이터콘트롤의 hire_date칼럼 3행에 1993-06-07을 세트한다.
integer null_num //널값을 포함하기위해.
integer col_no
SetNull(null_num)
col_no = This.GetColumn()
If col_no = 2 THEN //칼럼 2에 대한 특별한 처리
If This.GetText() = "" THEN
This.SetItem(This.GetRow(), col_no, null_num)
This.SetActionCode(2)
Return
END IF
END IF
// 위 예제는 칼럼2의 데이터형을 numeric으로 가정하고 , 그것이 날짜,
// 시간, 또는 날짜시간이라면 적절한 데이터형을 가지고 첫번째 라인
// (integer null_num)을 교체한다.
string s, snum, c
integer cmt
For cmt =1 to Len(s) //사용자 데이터로부터 숫자를 추출.
c = Mid(s, cmt, 1)
If IsNumber(c) THEN snum = snum + c
NEXT
This.SetItem(This.GetRow(), This.GetColumn(), Long(snum))
This.SetActionCode(3)
// 위 예제는 데이터윈도우의 아이템에러 이벤트에 대한 스크립트 이다.
// Action code 3은 스크립트가 유효한 값을 제공해 왔기 때문에 편집제
// 어상태에 있는 데이타를 거절할 지도 모른다.
SetNull PowerScript Function
◆ 기 능
주어진 변수를 Data Type에 상관없이 NULL로 만든다.
◆ 문 법
SetNull ( anyvariable )
Parameter Description
---------- -----------------------------------------------
anyvariable 사용자가 null로 setting 하려는 변수
⼦ 반환값
Integer, 성공하면 1을 Return 하고 실패하면 -1를 Return한다.
⼦ 사용법
Database를 작성하기 전에 SetNull함수를 써서 Null변수를 지정하는 데 사용한다.
PowerBuilder는 변수를 Null로 초기화하기 않는다. 만약 변수를 선언하고 특정값들을 지정해 주지 않으면 default값으로 초기화되고 NULL값으로 초기화하려면
SetNull 함수를 사용한다.
⼦ 예 제
SetNull( salary ) // salary를 null로 한다.
SetPointer PowerScript Function
⼦ 기능
mouse pointer의 모양을 지정한다.
⼦ 문 법
SetPoint ( type )
Parameter Description
--------- ---------------------------------------------------
type 원하는 포인터를 지정하는 열거 data type 포인터의 값.
Arrow!
Cross!
Beam!
HourGlass!
SizeNS!
SizeNEWS!
SizeWE!
SizeNWSE!
UpArrow!
⼦ 반환값
Pointer 열거된 pointer의 type들을 바꾸고 저장해 준다
⼦ 사용법
오랜시간 실행되면 스크립트의 처음에 모래시계가 display되도록
Setpointer를 이용한다.
화면을 종료 또는 화면을 바꿀때까지 pointer가 남아있도록 한다.. 화면의 실행을 마칠때 포인터는 arrow로 자동적으로 바뀐다.
powerbuilder의 painter는 window, control, datawindow객체의 정의된 부분 넘어 움직일때 powerbuilder에 display 되도록 pointer의 모양을 정의한다.
⼦ 예 제
SetPointer ( HoutGlass! ) // 모래시계 모양의 포인터로
pointer oldpointer // Declares a pointer variable
oldpointer = SetPointer (HourGlass!)
...... // performs some long activity
SetPointer (oldpointer)
'PowerBuilder' 카테고리의 다른 글
datawindow does not hava update capability (0) | 2012.07.29 |
---|---|
SELECT ERROR: column lists do not match (0) | 2012.07.29 |
파워빌더 함수 4 (0) | 2012.07.29 |
파워빌더 함수 2 (0) | 2012.07.29 |
파워빌더 함수 1 (0) | 2012.07.29 |