Page 1 of 1
Ayuda con XBROWSE
Posted: Thu Sep 12, 2019 3:25 pm
by jvtecheto
Hola :
Practicamente he migrado mi vieja aplicacion a la nueva version de Fivewin con exito pero me gustaria cambiar los
antiguos LISTBOX por XBROWSE.
Tengo este codigo que funciona perfecto.
Code: Select all
@ 2, 0 LISTBOX Empw ;
FIELDS aDbfBmps[ IF( Emp->Cerrada, 4, 3 ) ], aDbfBmps[ IF( Emp->Activo, 1, 2 ) ], Emp->codigo, Emp->Nombre, Emp->Ano ;
Alias cAlias HEADERS "E", "A", "CODIGO", "NOMBRE", "AÑO TRABAJO" VALID ( SaveIniCol( Empw, cAlias ), .T. ) ;
ON DBLCLICK EditEmpres( Empw, .F. ) WHEN ( IF( Select( cAlias ) > 0, Emp->( LastRec() ) > 0, .F. ) ) UPDATE OF oWndEmp
Como seria utilizando XBROWSE
Gracias por vuestra ayuda.
Jose.
Re: Ayuda con XBROWSE
Posted: Sun Sep 15, 2019 5:46 pm
by FranciscoA
Por si aun no lo has hecho, aqui tienes un ejemplo.
Code: Select all
Function Lbx2Brw()
local Empw, cAlias, Emp, oWndEmp
if !File(".\Emp.dbf")
dbCreate(".\Emp",{ { "Cerrada", "L", 1,0 } ,;
{ "Activo" , "L", 1,0 } ,;
{ "Codigo" , "C", 2,0 } ,;
{ "nombre" , "C", 35,0 } ,;
{ "Ano" , "N", 4,0 } } )
DBUsearea(.t.,,"Emp","Emp",.t.)
dbappend()
field->cerrada := .f. ; field->activo := .t. ; field->codigo := "01"
field->nombre := "EMPRESA NUMERO UNO" ; field->ano := 2019
dbappend()
field->cerrada := .f. ; field->activo := .t. ; field->codigo := "02"
field->nombre := "EMPRESA NUMERO DOS" ; field->ano := 2019
dbappend()
field->cerrada := .T. ; field->activo := .F. ; field->codigo := "03"
field->nombre := "EMPRESA NUMERO TRES" ; field->ano := 2018
Emp->(dbcloseArea())
endif
DBUsearea(.t.,,"Emp","Emp",.t.)
cAlias:=Alias()
DEFINE DIALOG oWndEmp SIZE 600,400 PIXEL TITLE "FiveWin Version 1204"
@ 2, 0 XBROWSE Empw OF oWndEmp PIXEL ;
SIZE 280,140 ;
DATASOURCE cAlias ;
COLUMNS "Cerrada", "Activo", "Codigo", "Nombre", "Ano" ;
HEADERS "E", "A", "CODIGO", "NOMBRE", "AÑO TRABAJO" ;
FOOTERS CELL LINES ;
ON DBLCLICK EditEmpres( Empw, .F. ) ;
WHEN ( IF( Select( cAlias ) > 0, Emp->( LastRec() ) > 0, .F. ) ) ;
VALID ( SaveIniCol( Empw, cAlias ), .T. ) ;
UPDATE
WITH OBJECT Empw
:nColDividerStyle := LINESTYLE_LIGHTGRAY
:nRowDividerStyle := LINESTYLE_LIGHTGRAY
:aCols[ 1 ]:addResource("aceptar")
:aCols[ 1 ]:addResource("cancelar")
:aCols[ 1 ]:bBmpData := {|| IF( Emp->Cerrada, 2,1 ) }
:aCols[ 2 ]:addResource("checked")
:aCols[ 2 ]:addResource("unchecked")
:aCols[ 2 ]:bBmpData := {|| IF( Emp->Activo , 1,2 ) }
END
Empw:CreateFromCode()
ACTIVATE DIALOG oWndEmp CENTERED ON INIT Empw:Move(40,20)
(cAlias)->(DbCloseArea())
Ferase(".\Emp.dbf")
RETURN NIL
Function EditEmpres( oBrw, lLogico )
Return MsgInfo("EditEmpres()"+CRLF+;
oBrw:codigo:Value +" "+ oBrw:nombre:value )
Function SaveIniCol( oBrw, cAlias )
Return .t.
Saludos
Re: Ayuda con XBROWSE
Posted: Wed Sep 18, 2019 4:21 pm
by jvtecheto
Hola FranciscoA.
En primer lugar muchas gracias por tu interes.
Me funciona bien pero no consigo que me muestre los bitmaps como antiguamente con este codigo.
Code: Select all
FIELDS aDbfBmps[ IF( Emp->Cerrada, 4, 3 ) ], aDbfBmps[ IF( Emp->Activo, 1, 2 ) ]
Yo tengo en el arreglo aDbfBmps cargados los bitmaps que tengo que usar y segun sea aDbfBmps[3] ó aDbfBmps[4] me muestra uno u otro.
Pruebo con esto y no lo muestra
Code: Select all
:aCols[ 1 ]:bBmpData := {|| aDbfBmps[ IF( Emp->Cerrada, 4, 3 ) ] }
mira la pantalla.
Tambien me gustaria que la linea apareciera toda resaltada y no solo un campo.
Saludos amigo.
Jose.
Re: Ayuda con XBROWSE
Posted: Wed Sep 18, 2019 9:00 pm
by FranciscoA
jvtecheto wrote:
Yo tengo en el arreglo aDbfBmps cargados los bitmaps que tengo que usar y segun sea aDbfBmps[3] ó aDbfBmps[4] me muestra uno u otro.
Pruebo con esto y no lo muestra
Code: Select all
:aCols[ 1 ]:bBmpData := {|| aDbfBmps[ IF( Emp->Cerrada, 4, 3 ) ] }
Jose.
Jose:
La unica forma que conozco es agregando los recursos en cada col en que los vas a utilizar.
Prueba lo siguiente (siempre agregando los recursos a las cols):
Code: Select all
local aDbfBmps:={"aceptar","cancelar","checked","unchecked"}
...
...
:aCols[1]:AddResource( aDbfBmps )
:aCols[1]:bBmpData := {|| IF( Emp->Cerrada, 2, 1 ) }
:aCols[2]:AddResource( aDbfBmps )
:aCols[2]:bBmpData := {|| IF( Emp->Activo, 3, 4 ) }
Si existe forma similar o igual a la que expones, traslademos la consulta a los maestros de FiveWin.
Saludos.
Re: Ayuda con XBROWSE
Posted: Wed Sep 18, 2019 9:03 pm
by FranciscoA
jvtecheto wrote:
Tambien me gustaria que la linea apareciera toda resaltada y no solo un campo.
Jose.
Si te refieres a sobre-iluminar la fila prueba con esto
Code: Select all
:nMarqueeStyle := MARQSTYLE_HIGHLROW //ilumina toda la linea
Si te refieres a resaltar los datos (fuente), intenta asi:
Code: Select all
AEval(oBrw:aCols,{|o| o:DataFont := if(Emp->Activo, oFont2, oFont1 ) } )
Saludos
Re: Ayuda con XBROWSE
Posted: Wed Sep 18, 2019 9:09 pm
by cnavarro
Intenta definiendo el tipo de columna
Re: Ayuda con XBROWSE
Posted: Thu Sep 19, 2019 5:46 pm
by jvtecheto
Hola:
Gracias a los 2, por ahora me funciona me quedan unos flecos que resolver pero prefiero estudiar un poco mas la clase.
Creia que el cambio era mas automatica pero al ser una clase con muchas mas opciones es mas complicado.
dentro de unos dias posteo de nuevo.
Muchisimas gracias.
Jose.