반응형
GetNextModified 와 GetItemStatus 를 사용하여 변경된 정보를 찾을 수 있다.
Long lRcnt, lRow, lCcnt, lCol
String ls_colname, ls_tag, ls_data, ls_value
String ls_colname_n, ls_tag_n, ls_data_n, ls_value_n
String change_log, now_date, ls_update_log
now_date = String(Now(), "yyyy-mm-dd:hh:mm:ss")
dw_sheet.AcceptText()
lRcnt = dw_sheet.RowCount()
lCcnt = Long(dw_sheet.Describe("DataWindow.Column.Count"))
DO WHILE lRow <= lRcnt
lRow = dw_sheet.GetNextModified(lRow, Primary!)
IF lRow = 0 THEN Exit
CHOOSE CASE dw_sheet.GetITemStatus(lRow, 0, Primary!)
CASE NewModified!
//이경우 Row 전체 신규임 모든 칼럼 변경? 신규. (Insert SQL)
return
CASE New!
//추가만되고 아무것도 입력안된상태.. 무시 또는 튕겨내야..
return
CASE DataModified!
//이경우 일부칼럼 수정 (Update SQL)
FOR lCol = 1 TO lCcnt
IF dw_sheet.GetItemStatus(lRow, lCol, Primary!) = DataModified! THEN
//해당 칼럼만 변경된 것임.
ls_colname = dw_sheet.Describe("#"+String(lCol)+".Name") // 컬럼명
ls_tag = dw_sheet.Describe("#"+String(lCol)+".tag") // 컬럼태그
ls_value = dw_sheet.Describe( "Evaluate('LookUpDisplay("+ls_colname+") ', " + String(lRow) + ")") //컬럼 display
ls_data =dw_sheet.Object.Data[lRow, lCol] //컬럼 DATA
ls_colname_n = dw_old.Describe("#"+String(lCol)+".Name") // 컬럼명
ls_tag_n = dw_old.Describe("#"+String(lCol)+".tag") // 컬럼태그
ls_value_n = dw_old.Describe( "Evaluate('LookUpDisplay("+ls_colname_n+") ', " + String(lRow) + ")") //컬럼 display
ls_data_n =dw_old.Object.Data[lRow, lCol] //컬럼 DATA
if ls_tag <> "?" then
change_log = now_date+" "+gs_username+"("+gs_userid+")"+"["+ ls_tag +"변경] : "+ls_value_n+" → "+ls_value
ls_update_log = dw_sheet.Object.wl_list_update_log[1]
if IsNull(ls_update_log) or ls_update_log="" then
ls_update_log = change_log
else
ls_update_log = ls_update_log+"|"+change_log
end if
dw_sheet.Object.wl_list_update_log[1] = ls_update_log
MessageBox("ls_update_log",ls_update_log)
end if
//return
END IF
NEXT
END CHOOSE
LOOP
반응형
'PowerBuilder' 카테고리의 다른 글
파워빌더 성능관리 [1장. 개요] (0) | 2021.06.07 |
---|---|
파일 관련 함수 (파워빌더 8.0이상) (0) | 2021.06.05 |
동적으로 데이타윈도우(DW) 쿼리 수정하기 (0) | 2021.06.04 |
파워빌더 API함수 Arc( ) , Beep( ) , BringWindowToTop( ) (0) | 2020.09.14 |
파워빌더가 무엇인가요? (0) | 2020.09.13 |
댓글