Navegar por un txxxBrowse con un cursor ADO
Publicado: Vie Sep 02, 2005 8:11 pm
Hola,
Lo siento... me siento incapaz de hacer andar un browse con un cursor de
ADO.
En FWH lo hago así... ¿Y como se puede hacer en Xailer?
FUNCTION Do_Browse ( oClientes )
LOCAL oDlg, oBrw
DEFINE DIALOG oDlg NAME "BROWSE_ADO"
REDEFINE BROWSE oBrw ID 100 OF oDlg
oBrw:cargo := oClientes
oBrw:bGotop := { || oBrw:cargo:MoveFirst() }
oBrw:bGoBottom := { || oBrw:cargo:MoveLast() }
oBrw:bSkip := { | n, nold | GoNext(n,oBrw:cargo)}
oBrw:bLogicLen := { || oBrw:cargo:RecordCount}
oBrw:cAlias := "ARRAY"
oBrw:lNoLiteBar := .f.
oCol := TcColumn():New( "Código",{|| oBrw:cargo:clie_codigo } )
oBrw:AddCol( oCol)
...
ACTIVATE DIALOG oDlg
RETURN NIL
// For Reference...
FUNCTION GoNext( n, rs )
LOCAL nSkipped := 0
LOCAL nDirection := IIF(n > 0, 1, -1)
LOCAL oCol := nil
do while nSkipped != n .AND. !rs:EOF() .AND. !rs:BOF()
if nDirection > 0
rs:MoveNext()
else
rs:MovePrevious()
endif
nSkipped += nDirection
enddo
if rs:Eof()
rs:MoveLast()
nSkipped--
elseif rs:Bof()
rs:MoveFirst()
nSkipped++
endif
RETURN (nSkipped)
Gracias por la ayuda.
Saludos,
José Luis Capel
Lo siento... me siento incapaz de hacer andar un browse con un cursor de
ADO.
En FWH lo hago así... ¿Y como se puede hacer en Xailer?
FUNCTION Do_Browse ( oClientes )
LOCAL oDlg, oBrw
DEFINE DIALOG oDlg NAME "BROWSE_ADO"
REDEFINE BROWSE oBrw ID 100 OF oDlg
oBrw:cargo := oClientes
oBrw:bGotop := { || oBrw:cargo:MoveFirst() }
oBrw:bGoBottom := { || oBrw:cargo:MoveLast() }
oBrw:bSkip := { | n, nold | GoNext(n,oBrw:cargo)}
oBrw:bLogicLen := { || oBrw:cargo:RecordCount}
oBrw:cAlias := "ARRAY"
oBrw:lNoLiteBar := .f.
oCol := TcColumn():New( "Código",{|| oBrw:cargo:clie_codigo } )
oBrw:AddCol( oCol)
...
ACTIVATE DIALOG oDlg
RETURN NIL
// For Reference...
FUNCTION GoNext( n, rs )
LOCAL nSkipped := 0
LOCAL nDirection := IIF(n > 0, 1, -1)
LOCAL oCol := nil
do while nSkipped != n .AND. !rs:EOF() .AND. !rs:BOF()
if nDirection > 0
rs:MoveNext()
else
rs:MovePrevious()
endif
nSkipped += nDirection
enddo
if rs:Eof()
rs:MoveLast()
nSkipped--
elseif rs:Bof()
rs:MoveFirst()
nSkipped++
endif
RETURN (nSkipped)
Gracias por la ayuda.
Saludos,
José Luis Capel