exemplo tbrowse/tsbrowse definido pelo usuário
Enviado: 06 Jun 2024 10:43
Alguém tem exemplo de tbrowse ou tsbrowse definido pelo usuário ?
Pro meu uso não serve a opção ADO existente.
Pro meu uso não serve a opção ADO existente.
Em homenagem a Paulo Cesar Toledo
https://www.pctoledo.org/
Código: Selecionar todos
/*
This source code does not works.
Do not use it as reference
*/
#include "hmg.ch"
#include "tsbrowse.ch"
STATIC ObjTb
PROCEDURE Main
LOCAL xDlg := "DLG1", xTb := "TB1"
LOCAL aList := { { "A" }, { "B" }, { "C" }, { "E" } }
Set( _SET_DEBUG, .F. )
DEFINE WINDOW ( xDlg ) ;
AT 0, 0 ;
WIDTH 1024 HEIGHT 768 ;
MAIN
END WINDOW
DEFINE TBROWSE ( xTb ) OBJ ObjTB ;
AT 5, 5 ;
OF ( xDlg ) ;
WIDTH 900 ;
HEIGHT 600
END TBROWSE
objTB:nAt := 1
ObjTB:aArray := aList
ObjTB:lCellBrw := .T.
ADD COLUMN TO ObjTB ;
DATA { || ObjTB:aArray[ objtb:nAt, 1] };
TITLE "ITEM"
ADD COLUMN TO ObjTB ;
DATA { || ObjTB:aArray[ objtb:nAt, 1] } ;
TITLE "COPY1"
ADD COLUMN TO ObjTB ;
DATA { || ObjTB:aArray[ objtb:nAt, 1 ] } ;
TITLE "COPY2"
SetBrowseToArray( ObjTB )
DoMethod( xDlg, "CENTER" )
DoMethod( xDlg, "ACTIVATE" )
RETURN
FUNCTION SetBrowseToArray( oTsBrowse )
WITH OBJECT oTsBrowse
:nAt := 1
:bKeyNo := { | n | iif( n == NIL, oTsBrowse:nAt, oTsBrowse:nAt := n ) }
:cAlias := "ANY"
:nLen := Eval( oTsBrowse:bLogicLen := { || Len( oTsBrowse:aArray ) + iif( oTsBrowse:lAppendMode, 1, 0 ) } )
:bGoTop := { || oTsBrowse:nAt := 1 }
:bGoBottom := { || oTsBrowse:nAt := Eval( oTsBrowse:bLogicLen ) }
:bSkip := { | nSkip, nOld | nOld := oTsBrowse:nAt, oTsBrowse:nAt += nSkip, oTsBrowse:nAt := Min( Max( oTsBrowse:nAt, 1 ), oTsBrowse:nLen ), oTsBrowse:nAt - nOld }
:bGoToPos := { | n | Eval( oTsBrowse:bKeyNo, n ) }
:bBof := { || oTsBrowse:nAt < 1 }
:bEof := { || oTsBrowse:nAt > Len( oTsBrowse:aArray ) }
:lHitTop := .F.
:lHitBottom := .F.
:nRowPos := 1
:nColPos := 1
:nCell := 1
ENDWITH
RETURN Nil