Code: Select all | Expand
#include "fivewin.ch"
#include "xbrowse.ch"
Static oBrw
Static oWnd
Static aDatos
Static cVarBus
//----------------------------------------------------------------------------//
Function Main()
Datos()
Define Window oWnd Mdi
Define ButtonBar oBar Size 50, 50 Of oWnd 2010
Activate Window oWnd Maximized On Init Tabla()
Return 0
//----------------------------------------------------------------------------//
Function Tabla()
Local oWndChild
Define Window oWndChild MdiChild Of oWnd
@ 50, 50 xBrowse oBrw Array aDatos Of oWndChild Columns 1, 2, 3, 4 Pixel Size 500, 500 Headers 'Nº FACTURA', 'FECHA', 'CONCEPTO', 'IMPORTE' NoBorder
oBrw : CreateFromCode()
oBrw : bKeyDown := { | nKey | KeyFacturas( nKey ) }
oWndChild : SetControl( oBrw )
Activate Window oWndChild Maximized
Return 0
//----------------------------------------------------------------------------//
Function KeyFacturas( nKey )
Switch nKey
Case VK_RETURN
Exit
Case VK_INSERT
Exit
Otherwise
cVarBus := Chr( nKey )
BuscaElDato( nKey )
End Switch
Return 0
//----------------------------------------------------------------------------//
Function BuscaElDato( nKey )
Local oDlg
Local oFont
Local oGrupo
Local oGet := Array( 2, 0 )
Local cVar := Chr( nKey ) + Space( 29 )
Local cVar1 := Space( 10 )
Local lIsNumber := .f.
Define Font oFont Name 'Arial' Size 0, -11
Define Dialog oDlg From 20, 20 To 110, 290 Pixel Of oBrw Font oFont
oDlg : SetText( 'Buscar ...' )
oDlg : nStyle := nOr( DS_MODALFRAME )
@ 00, 01 Group oGrupo To 34, 133 Pixel Of oDlg
@ 07, 06 Say 'Proporcione el texto o parte del dato a localizar' Of oDlg Size 120, 10 Pixel
@ 17, 13 Get oGet[ 1 ] Var cVar Size 115, 10 Of oDlg Picture '@!' Pixel //Valid( oGet[ 1 ] : Assign(), BuscaElEmpleado( cVar ), oDlg : End(), .t. )
oGet[ 1 ] : bKeyDown := { | nKey | If( nKey == VK_RETURN, oGet[ 2 ] : SetFocus(), ) }
oGet[ 1 ] : nPos := 2
oGet[ 1 ] : oWnd : bKeyDown := { | nKey | If( nKey == VK_ESCAPE, oDlg : End(), ) }
@ 87, 13 Get oGet[ 2 ] Var cVar1 Size 115, 10 Of oDlg Pixel
Activate Dialog oDlg Centered //Valid( BuscaElEmpleado( cVar ), .t. )
oFont : End()
Return 0
//----------------------------------------------------------------------------//
Function Datos()
aDatos := { { 10889, "11/30/07", "DICIEMBRE 2007", 309.00 },;
{ 10965, "12/28/07", "RESERVA VACANTE 2008 2DO CICLO", 230.00 },;
{ 11034, "02/25/08", "RES.VACANTE 2008 2DO CICLO", 253.00 },;
{ 11035, "02/25/08", "RES. VACANTE 2008 1ER CICLO", 242.00 },;
{ 11036, "02/25/08", "RES. VACANTE 2008 1ER CICLO", 242.00 },;
{ 11037, "02/25/08", "RES.VACANTE 2008 2DO CICLO", 253.00 },;
{ 11042, "02/25/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11043, "02/25/08", "RESERVA VACANTE 2008 3ER CICLO", 264.00 },;
{ 11044, "02/25/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11045, "02/26/08", "RES. VACANTE 2008 1ER CICLO", 242.00 },;
{ 11046, "02/26/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11051, "02/27/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11052, "02/28/08", "RES. VACANTE 2008 1ER CICLO", 242.00 },;
{ 11053, "02/28/08", "RES.VACANTE 2008 2DO CICLO", 253.00 },;
{ 11056, "02/28/08", "FEBRERO 2008", 242.00 },;
{ 11057, "02/28/08", "FEBRERO 2008", 242.00 },;
{ 11058, "02/29/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11059, "03/01/08", "RESERVA VACANTE 2008 1ER CICLO", 242.00 },;
{ 11060, "03/01/08", "RESERVA VACANTE 2008 1ER CICLO", 242.00 },;
{ 11061, "03/01/08", "RESERVA VACANTE 2008 1ER CICLO", 242.00 },;
{ 11062, "03/01/08", "RESERVA VACANTE 2008 1ER CICLO", 242.00 },;
{ 11063, "03/01/08", "RESERVA VACANTE 2008 1ER CICLO", 242.00 },;
{ 11064, "02/28/08", "MARZO 2008", 242.00 },;
{ 11066, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11068, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11070, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11072, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11073, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11074, "02/28/08", "MARZO 2008", 253.00 },;
{ 11075, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11078, "03/01/08", "RESERVA VACANTE 2008 2DO CICLO", 253.00 },;
{ 11079, "03/01/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11080, "02/28/08", "MARZO 2008", 264.00 },;
{ 11082, "03/01/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11084, "03/01/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11085, "03/01/08", "RES.VACANTE 2008 SECUNDARIA", 264.00 },;
{ 11086, "02/28/08", "MARZO 2008", 264.00 },;
{ 11087, "02/28/08", "MARZO 2008", 264.00 } }
aDatos := ASort( aDatos,,, { | x, y | x[ 1 ] < y[ 1 ] } )
Return 0
Alguna idea ?. Muchísimas gracias
Saludos