@ -1, 16 COLUMN BROWSE oBrw OF oWndEdit ;
FONT oFont ;
SIZE oWnd:nWidth(),oWnd:nHeight(); //Ancho y lago posilbe COLOR CLR_BLACK, 14481663;
ON CHANGE ( aMantStack[nLen, 4] := str(recno()), oMsgRecNo:SetText("Registro: "+ alltrim( str(recno())) + "/" + alltrim(str(lastrec())) ), oWndEdit:Update() )
//Añado columna si esta borrado el registro para eliminacion
ADD COLUMN TO BROWSE oBrw ;
HEADER "D." OEM ;
DATA iif(deleted(),'>>','');
NOBAR CENTER ;
COLORS CLR_WHITE , 9129488 ; //nRGB( 190, 215, 190 )
SIZE 15
//Añado una columna por cada campo de la base de datos
for nPos := 1 to Len(f_expd) // Array con NOMBRE DE CAMPOS
ADD COLUMN TO BROWSE oBrw; //
HEADER f_nomd[nPos] OEM ; // Array con TITULOS DE LAS COLUMNAS
DATA FieldWBlock( f_expd[nPos] , Select()) // Aca se genera el CodeBlock para el CAMPO
next
//Las dos lineas siguientes pone el color en las cabeceras de columnas
oBrw:nClrForeHead := CLR_WHITE//CLR_BLACK
oBrw:nClrBackHead := 9129488//CLR_HCYAN 16436871
//Las dos lineas siguientes pone el color a linea que estas explorando
oBrw:nClrForeFocus := CLR_BLACK //CLR_WHITE
oBrw:nClrBackFocus := CLR_YELLOW //CLR_CYAN
/*
//Coloco lineas de distintos colores
oBrw:nClrPane := { || IF((OrdKeyNo()) % 2 == 0,;
16777184 , 16119285 ) } // 14481663
// oBrw:nRowCount() //Esto nos da el numero de lineas que se muestran el el browse
// oBrw:bLDblClick = { | nRow, nCol | EditCell( oBrw, nRow, nCol ) }
// oBrw:lNoLiteBar := .t. // Hace desaparecer la barra cursor del browse
// oBrw:lNoGrayBar := .t. // Hace desparecer la barra gris cuando pierde el foco
oBrw:lMChange := .t. // set false to prevent Mouse colm resize/drag
oBrw:lLogicDrop := .t. // use crazy logic dropbox
oBrw:lNoHScroll := .t. // don't use that pesky horiz scroll bar
// oBrw:nAdjColumn := 3 // expand this column to flush table right
// oBrw:nFreeze := 3 // This will freeze all & prevent horiz scrolling
// NOTE can't resize/drag on frozen columns
*/
oBrw:bKeyChar = { | nKey | zoom() } //Aqui puedes realizar el proceso de accion por tecla MsgInfo( nKey ) &(x_fun[5]) SI REA
//UNA FUNCION PUEDES REALIZAR DISTINTAS COSAS DEPENDIENDO DE LA TECLA PULSADA
//oBrw:bLDblClick := { | nRow, nCol | EditCell( oBrw, nRow, nCol ) } //Para definir una accion cuando se pulse dobleclic
oBrw:bLDblClick := { | nRow, nCol | zoom() } //Con el dobleclic muestro el registro. &(x_fun[5])
oBrw:bRClicked := { | nRow, nCol | ShowPopup( nRow, nCol, oBrw ) }
oWndEdit:oClient := oBrw //Hago que el browse se adapte al espacio que le queda libre
//----------------------------------------------------------------------------//
// Sistema de SPLITTER. objeto oSpl //
//----------------------------------------------------------------------------//
@ 1, 124 SPLITTER oSpl ;
VERTICAL ;
PREVIOUS CONTROLS oOut ;
HINDS CONTROLS oBrw;
LEFT MARGIN 100;
RIGHT MARGIN 200 ;
SIZE 4, oWnd:nHeight() PIXEL ;
OF oWndEdit ;
_3DLOOK ;
UPDATE
oBrw:goTop()
oBrw:goBottom()
oBrw:SetFocus() //activo el browse
#include "fivewin.ch"
#include "xbrowse.ch"
function main()
local odlg, obrw
use customer new
DEFINE DIALOG odlg FROM 10,10 TO 40,90
@1,1 XBROWSE obrw ALIAS "customer" OF odlg
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize(), obrw:gotop(), obrw:gobottom() )
use
return nil
********************************
function setScope(v_op)
//Realiza un filtro rapido por el indice activo.
local x_rec := recno()
DEFAULT v_op := 1
if !Empty(x_scope1[v_op])
oBrw:Gotop()
//oBrw:Refresh()
if !Empty(x_scope2[v_op])
OrdScope(0, &(x_scope1[v_op]))
OrdScope(1, &(x_scope2[v_op]))
else
OrdScope(0, &(x_scope1[v_op]))
OrdScope(1, &(x_scope1[v_op]))
endif
dbGotop()
else
OrdScope( 0, Nil )
OrdScope( 1, Nil )
endif
goto x_rec
oBrw:Gotop()
oBrw:Gobottom()
return nil
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 39 guests