$PBExportHeader$n_svc_dw_rowselection.sru $PBExportComments$Row Selection service forward global type n_svc_dw_rowselection from n_svc_base end type end forward global type n_svc_dw_rowselection from n_svc_base end type global n_svc_dw_rowselection n_svc_dw_rowselection type variables end variables forward prototypes public subroutine of_selectrow (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_row, ref str_dwrowselect astr, readonly boolean ab_isclicked) public subroutine of_rowfocuschanged (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_currentrow, ref str_dwrowselect astr) public subroutine of_clicked (readonly u_dw adw, readonly long al_row, readonly integer ai_selectionmode, ref dwobject adwo, ref str_dwrowselect astr) public subroutine of_invertselection (readonly u_dw adw) end prototypes public subroutine of_selectrow (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_row, ref str_dwrowselect astr, readonly boolean ab_isclicked);long ll_count, n CHOOSE CASE ai_selectionmode CASE CDWRowSelect.SINGLE IF adw.IsSelected(al_row) THEN RETURN adw.SelectRow(0, FALSE) adw.SelectRow(al_row, TRUE) CASE CDWRowSelect.MULTIPLE IF ab_isclicked THEN adw.SelectRow(al_row, NOT adw.IsSelected(al_row)) END IF CASE CDWRowSelect.EXTENDED IF KeyDown(KeyShift!) THEN //reset selection adw.SelectRow(0, FALSE) //shift pressed IF astr.AnchorRow = 0 THEN adw.SelectRow(al_row, TRUE) ELSE adw.SetRedraw(FALSE) IF astr.AnchorRow > al_row THEN FOR n = astr.AnchorRow to al_row STEP -1 adw.SelectRow(n, TRUE) NEXT ELSE FOR n = astr.AnchorRow to al_row adw.SelectRow(n, TRUE) NEXT END IF adw.SetRedraw(TRUE) END IF ELSEIF KeyDown(KeyControl!) THEN //control pressed IF ab_isclicked THEN adw.SelectRow(al_row, NOT adw.IsSelected(al_row)) astr.AnchorRow = al_row END IF ELSE astr.AnchorRow = al_row adw.SelectRow(0, FALSE) adw.SelectRow(al_row, TRUE) END IF END CHOOSE astr.prevrow = al_row astr.prevrowcount = adw.RowCount() end subroutine public subroutine of_rowfocuschanged (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_currentrow, ref str_dwrowselect astr);IF NOT ISVALID(adw) THEN RETURN IF al_currentrow <= 0 THEN RETURN this.of_SelectRow(adw, ai_selectionmode, al_currentrow, astr, FALSE) //reset clicked row astr.currentclickedrow = 0 end subroutine public subroutine of_clicked (readonly u_dw adw, readonly long al_row, readonly integer ai_selectionmode, ref dwobject adwo, ref str_dwrowselect astr);IF NOT ISVALID(adw) THEN RETURN IF NOT ISVALID(adwo) THEN RETURN IF al_row <= 0 THEN RETURN //store clicked row astr.currentclickedrow = al_row this.of_SelectRow(adw, ai_selectionmode, al_row, astr, TRUE) //set as current row IF adw.GetRow() <> al_row THEN adw.SetRow(al_row) END IF end subroutine public subroutine of_invertselection (readonly u_dw adw);long n, ll_count ll_count = adw.RowCount() adw.SetRedraw(FALSE) FOR n = 1 to ll_count adw.SelectRow(n, NOT adw.IsSelected(n)) NEXT adw.SetRedraw(TRUE) end subroutine on n_svc_dw_rowselection.create call super::create end on on n_svc_dw_rowselection.destroy call super::destroy end on
- Sources
- Kodigo
- OpenExplorer
- n_svc_dw_rowselection.sru
File: n_svc_dw_rowselection.sru
Size: 3409
Date: Mon, 07 Apr 2008 21:31:44 +0200
Size: 3409
Date: Mon, 07 Apr 2008 21:31:44 +0200
- n_svc_base n_svc_dw_rowselection(sru)
- of_clicked (readonly u_dw adw, readonly long al_row, readonly integer ai_selectionmode, ref dwobject adwo, ref str_dwrowselect astr)
- of_invertselection (readonly u_dw adw)
- of_rowfocuschanged (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_currentrow, ref str_dwrowselect astr)
- of_selectrow (readonly u_dw adw, readonly integer ai_selectionmode, readonly long al_row, ref str_dwrowselect astr, readonly boolean ab_isclicked)