TABLE : EMPList
COLUNM : EMPCD, EMPMN, EMPREGM, EMPAGE, EMPADD
COMMENTS : 사원번호, 사원명, 주민번호, 나이, 주소
위와 같은 테이블의 구성을 SQL구문과 Script로 DataWindow 만들고 Retrieve 해보겠습니다.
// SQL 구문을 이용하여 DW SyntaxForm을 생성한다.
ls_SQL = "SELECT EMPCD, EMPMN, EMPREGM, EMPAGE, EMPADD FROM EMPList"
ls_style = "style(type=grid)"
ls_syntax = SQLCA.syntaxfromsql( ls_SQL, ls_style, ls_LastError )
// 생성된 DW SyntaxForm 을 이용하여 DataWindow 만들기
dw_1.create( ls_syntax, ls_LastError )
// DB Catalog를 이용하여 Title( Oracle 기준) 넣어주고, Design 한다.
ls_SQL = "SELECT A.COLUMN_ID AS ID, ~n"
ls_SQL += " A.COLUMN_NAME AS COL_NAME, ~n"
ls_SQL += " B.COMMENTS AS CMMT, ~n"
ls_SQL += "FROM USER_TAB_COLUMNS A, ~n"
ls_SQL += " USER_COL_COMMENTS B ~n"
ls_SQL += "WHERE A.TABLE_NAME = B.TABLE_NAME ~n"
ls_SQL += "AND A.COLUMN_NAME = B.COLUMN_NAME ~n"
ls_SQL += "AND A.TABLE_NAME = 'EMPLIST' ~n"
ls_SQL += "AND A.COLUMN_NAME IN ('EMPCD', 'EMPMN', 'EMPREGM', 'EMPAGE', 'EMPADD') ~n"
ls_SQL += "ORDER BY A.COLUMN_ID ~n"
ls_syntax = SQLCA.syntaxfromsql( ls_SQL, ls_style, ls_LastError )
dw_1.modify( "DataWindow.header.height=88 DataWindow.detail.height=88 " )
dw_1.modify( "DataWindow.detail.color=~"15790320~tif( currentrow() = getrow(), rgb(199,225,245), if ( mod( getrow(), 2 ) = 1 , rgb(255,255,255), rgb(235,246,253) ) )~" " )
lds.create( ls_syntax, ls_LastError )
for col = 1 to lds.rowcount()
sCol = lds.GetItemString(col, 2)
dw_1.Modify( sCol+".TabSequence='"+String(col * 10)+" '")
dw_1.Modify( sCol+".Edit.DisplayOnly=Yes ")
dw_1.modify( sCol+".font.face='맑은 고딕' " )
dw_1.modify( sCol+".font.height=-10 " )
dw_1.modify( sCol+".height=64 " )
dw_1.modify( sCol+".width=100 " )
dw_1.modify( sCol+".y=12 " )
dw_1.modify( sCol+".width.autosize=3 ")
dw_1.modify( sCol+".background.color=~"15790320~tif( currentrow() = getrow(), rgb(199,225,245), if ( mod( getrow(), 2 ) = 1 , rgb(255,255,255), rgb(235,246,253) ) )~" ")
dw_1.modify( sCol+"_t.font.face='맑은 고딕' " )
dw_1.modify( sCol+"_t.font.height=-10 " )
dw_1.modify( sCol+"_t.height=64 " )
dw_1.modify( sCol+"_t.y=12 " )
dw_1.modify( sCol+"_t.Text='"+lds.GetItemString(col,3)+"' " )
next
// 만들어진 DataWindow 조회
dw_1.SetTransobject( SQLCA )
dw_1.Retrieve( )
각 단계 를 Function 으로 만들어 활용하시면 생산성 향상에 도움이 됩니다.
PS,, 이렇게 만들어진 Datawindow를 PBL에 저장 하려고 하면
ls_pblname = 'EMP01.pbl'
ls_DWname = 'd_emplist'
i_rtn = LibraryImport( ls_pblname, ls_DWname, ImportDataWindow!, ls_syntax, ls_Error )