홈 · 개발 참고자료

개발 참고자료

[jTier for PowerBuilder] Nested DW 조회하기...

작성자
왕희복
작성일
2015-09-23
조회
7931
분류
jTier
분산환경에서 DW의 Nested DW는 컨트롤이 안된다....


왜?? Setitem이 안되기 때문이다. Composit DW는 되는데...




완벽하진 않지만 트릭을 이용하여 부분적으로 사용은 가능하다.


제한사항은 메인 DW의 데이터가 한건이어야 한다는 것이다


그래야 Child DW를 컨트롤 할 수 있다.




간단하게 설명을 하자면


파워빌더를의 Nested DW를 Composit DW 라고 속여서 사용하는것이다 ㅡ,,ㅡ




String sTemp, sDwType, sNested, sObjects, sType, sDataObject, sNest_Arguments, sColtype
Long iTemp




/* 자동실행 방지를 위하여 잠시 디비와 끊어둔다. */


idw_Work.DataObject = idw_Work.DataObject


// 0-(Default)Form or Group or Tabular, 1-Grid, 2-Label,3-Graph,4-Crosstab, 5-Composite, 7-RichText
sDwType = idw_Work.Describe("DataWindow.Processing")
sNested = Upper(idw_Work.Describe("DataWindow.Nested")) /* Return = 'yes' */




/* 넌 Composite 이야라고 속인다. */


if sNested = 'YES' then
sTemp = idw_Work.Modify("Datawindow.processing=5")
sTemp = idw_Work.Describe("DataWindow.Processing")
end if


ads_jTier ds_Nested
DataWindowChild dwc


/* 본문내용조회 */
ds_Nested = Create ads_jTier
ds_Nested.DataObject = idw_Work.DataObject
ds_Nested.SetTransObjectj( sqlca )
ll_Rcnt = ds_Nested.Retrieve( as_hakbun, as_year, as_name )


if ll_Rcnt >= 1 then
ds_Nested.RowsCopy( 1, 1, Primary!, idw_Work, 1, Primary! )
end if


/* Nested DW */
iTemp = idw_Work.GetChild ( 'dw_1', dwc )
sDataObject = idw_Work.Describe("dw_1.DataObject")
ds_Nested.DataObject = sDataObject
ds_Nested.SetTransObjectj( sqlca )
ll_Rcnt = ds_Nested.Retrieve( as_hakbun, as_year )
if ll_Rcnt >= 1 then
ds_Nested.RowsCopy( 1, ll_Rcnt, Primary!, dwc, 1, Primary! )
end if


Destroy ds_Nested


idw_Work.SetTransObject(sqlca)




jTier 뿐아니라 모든 파워빌더를 사용한 분산환경에서 사용가능한 스크립트이다...