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

Power Builder Function (8)

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

[ SetTabOrder PowerScript Function ]

◆ 기 능
객체들의 탭순서를 설정하여 데이터윈도우 내의 컨트롤의 커서방문순서를 변경한다. 어떤 객
체가 탭순서에 들어가지 않게 하기를 원한다면(편집될 수 없는 필드 등의 객체), 그 객체의 탭 순
서를 0으로 설정하여Tab 번호를 0으로하면 커서가 방문하지 못한다

◆ 적 용
DataWindow control 과 child DataWindows

◆ 문 법
datawindowname.SetTabOrder(column, tabnumber)

*datawindowname---탭순서를 정하고자하는 DataWindow control과 child
DataWindow명
*column------------탭값을 할당한 칼럼. 칼럼은 칼럼번호(정수형)이거나 칼럼명 (String)이 될 수 있다.
*tabnumber---------탭순서번호(0 - 9999)가능. 탭순서가 0이되면, 읽기전용이된다.

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

◆ 사용법
DataWindow 오브젝트에서 칼럼을 변경하고자 할 때 SetTabOrder 을 사용하는데 칼럼의 탭순
서번호를 0으로 변경하면 읽기전용이되서 어떤 객체가 탭순서에 들어가지 못하게 된다.(편집될 수
없는 필드 등의 객체에서 사용.) 탭순서모드에서, 각 객체는 자신의 탭순서를 나타내는 정수 값을
가지고 표시되는데 탭순서는 런-타임에서 사용자가 탭 키를 누를 때 어느 객체가 선택될 것인지
를 결정한다. 선택될 객체는 바로 다음 높은 탭 값을 가진 객체가 된다. 가장 높은 값의 객체가
선택된 후에, 탭 순서는 그 시리즈를 따라서 아래로 이동한다.

◆ 예 제
dw_Employee.SetTabOrder(4, 0)
데이터윈도우dw_Employee의 4번째 칼럼을 읽기전용으로 탭순서를 변경하여 4번째 칼럼은 편집될
수 없는 필드가 된다.

integer OldTabNum
// OldTabNum에 이전 탭순서값을 준다.
OldTabNum = dw_employee.SetTabOrder(4, 0)
. . . . . //some processing
//컬럼4가 이전 탭순서값으로 리턴
dw_employee.SetTabOrder(4, OldTabNum)

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

[ SetTrans PowerScript Function ]

◆ 기 능
내부적으로 트랙잭션 오브젝트를 사용하여 DataWindow control를 활성화시키며 데이터베이스
와 통신을 하기위한 정보를 제공한다.

◆ 문 법
datawindowname.SetTrans ( transaction )

* datawindowname----사용자가 내부 트랜젝션 오브젝트의 값을 지정하고자 하는 데이터윈도우 컨트롤 또는 자손데이터윈도우의 이름
* transaction----------트랜젝션 오브젝트의 이름

◆ 반환값
Integer. 성공시 1을 반환. 실패시는 -1을 반환.

◆ 사용법
스크립트에 이 함수를 사용할 때 데이터윈도우는 자동적으로 connect와 disconnect를 하는 내
부적인 트랙잭션 오브젝트를 이용한다. 또한 connect, commit, disconnect와 같은 SQL문을 쓰지
않으며 단지 retrieve할 때에만 이용하게 된다. 효과적인 성능을 위해서는 settransobject함수를 사
용하는 것이 바람직하다.

◆ 예 제
데이터베이스 타입과 패스워드를 바꾸는 예제
// Name the transaction object.
transaction emp_TransObj
// Create the transaction object.
emp_TransObj = CREATE transaction
// Fill the new object with the original values.
dw_employee.GetTrans(emp_TransObj)
// Change the database type.
emp_TransObj.DBMS ="Sybase"
// Change the password.
emp_TransObj.LogPass = "cam2"
// Put the revised values into the
dw_employee.SetTrans(emp_TransObj)

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

[ SetTransObject PowerScript Function ]


◆기 능
프로그래머의 특정 트랙잭션 오브젝트를 데이터윈도우에 적용시킬 경우 트랜잭션 오브젝트는
데이터베이스와 통신할 수 있는 정보를 제공한다.

◆ 문 법
datawindowname.SetTransObject ( transaction )

* datawindowname----DataWindow control, child DataWindow의 이름
* transaction----------트랜젝션 오브젝트의 이름

◆ 반환값
Integer. 성공시 1을 반환. 에러발생시는 -1을 반환.

◆ 사용법
프로그래머의 특정 트랜잭션 오브젝트는 데이터베이스 트랜젝션에 대해 많은 제어를 할 수 있
게 해주며 응용 프로그램의 성능을 향상시킨다. SQL문( CONNECT, COMMIT, and ROLLBACK)을
사용하여 데이터베이스와 연결할 수 있게 해준다.

◆ 예 제
SQLCA를 사용하여 dw_employee 데이터윈도우를 데이터베이스와 연결하는 예제.
dw_employee.SetTransObject(SQLCA)
프로그래머가 정의한 트랜잭션 오브젝트를 사용하는 예제.
emp_TransObj = CREATE transaction
. . . // Assign values to the transaction object
dw_employee.SetTransObject(emp_TransObj)

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

[ ShareData PowerScript Function ]

◆ 기 능
ShareData는 첫번째 데이타윈도우의 자료를 두번째 데이타윈도우에서 공유하여 사용하게 한
다. DataWindow들간에 한 DataWindow 버퍼공유를 활성화한다. 처음 데이타윈도우에서는
SetTransObject()와 Retrieve()를 하여야 하나 둘째 데이타윈도우는 그것을 필요로하지 않는다.

◆ 적 용
DataWindow control과 child DataWindows.

◆ 문 법
dwprimary.ShareData( dwsecondary )
datawindowname.ShareDataOff ()

* dwprimary---------데이터를 가지고있는 primary datawindow control명.
child DataWindow가 될 수도 있다.
* dwsecondary------secondary DataWindow control명. 데이터를 공유한 다.
child DataWindow가 될 수도 있다.

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

◆ 사용법
칼럼들은 DataWindow 오브젝트에서의 primary와 secondary DataWindow control과 같다. 예를
들어 SELECT문을 사용해서 DataWindow 오브젝트간에 데이터를 공유할 수 있다.

select dept_id from dept
select dept_id from dept where dept_id = 200
select dept_id from employee

사용자는 스크립트데이타 소스를 가진 DataWindow 오브젝트와 데이터를 공유할 수 있다. 그
리고 칼럼은 dept_id와 같은 칼럼으로 정의된다.
primary DataWindow와 secondary DataWindow control간에 데이터를 공유하기위해, 각
secondary DataWindow control들이 ShareData를 호출한다.
primary DataWindow와 secondary DataWindow에서 공유한 데이터를 반환하기위해
ShareDataOff 함수를 호출한다. primary DataWindow의 공유된 데이터가 반환되고, secondary
DataWindow가 끊어지고 데이터가 사라진다. 그러나 secondary DataWindow control에서 공유한
데이터를 해제하면 primary DataWindow 나 다른 secondary DataWindow의 데이터에는 영향을 주
지않는다.

◆ 예 제
프로그래머는 사용자가 검색된 동일데이타를 2부분으로 뷰(View)를 작성하도록 허용한다. 그리
고 ShareData함수는 윈도우 Open 이벤트에대한 스크립트을 달성하는데 사용한다. 두 개의 데이
터윈도우 오브젝트에대한 SELECT문은 같으나 dw_dept에 데이터윈도우 오브젝트는 dw_employee
에서 디스플레이된 5컬럼 중 dw_dept 에 데이터윈도우 오브젝트는 2개 칼럼만 보여준다.

CONNECT USING SQLCA;
dw_employee.SetTransObject(SQLCA)
dw_employee.Retrieve ()
dw_employee.ShareData(dw_dept)

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

[ ShareDataOff PowerScript Function ]

◆ 기 능
ShareDataOff는 DataWindow들간의 DataWindow데이터 공유버퍼를 종료(해제)시킨다.

◆ 적 용
DataWindow control 과 child DataWindows

◆ 문 법
datawindowname.ShareDataOff( )

*datawindowname-----데이터공유를 종료하고자하는 DataWindow control 과 child DataWindows

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

◆ 사용법
하나이상의 DataWindow control은 primary DataWindow와 데이터를 공유할 수 있다. 사용자가
secondary DataWindow에서 ShareDataoff를 호출할 때, 그 컨트롤은 더 이상 데이터를 포함하지않
는다. 그러나 primary DataWindow와 다른 secondary DataWindow control에는 영향을 미치지 않는
다. primary DataWindow에서 ShareDataoff함수를 호출할 때는 모든 secondary 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)
....// Some processing
dw_emp.ShareDataOff()

반응형