Page 1 of 1
¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 4:17 am
by lagm
Hola,
Ya estoy utilizando la versión FWH20.04, donde me encuentro con bastantes cambios respecto a versiones anteriores.
Estoy migrando una aplicación xHarbour modo consola, que maneja tablas dbf /cdx.
En estos días he cambiado la forma de trabajar las tablas dbf: como objetos.
Los registros los paso a arrays mediante FW_DbfToArray()
Los arreglos los trabajo con xBrowse.
Todo bien hasta este punto.
Lo que no he podido lograr (no encuentro un ejemplo claro), y esa es la ayuda que pido para poder seguir avanzando, es manejar una tabla de detalle, en donde
necesito contar con columnas de: código, descripción, precio, cantidad y total.
Entiendo que ya muchos programadores no usan dbf's pero debe quedar algún ejemplo actualizado para manejar tablas de detalle,
Agradezco su ayuda,
Luis Antonio
Curicó - Chile
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 4:42 am
by Antonio Linares
Luis Antonio,
Revisa el ejemplo samples\fivedbu.prg que te dará una visión amplia de como trabajar con tablas, browses, etc
Desde c:\fwh\samples haz:
buildh.bat fivedbu
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 11:46 am
by leandro
Una idea
Code: Select all
oBrwDoin := TXBrowse():New( oDlgDin )
oBrwDoin:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrwDoin:nRowDividerStyle := LINESTYLE_LIGHTGRAY
oBrwDoin:nColDividerStyle := LINESTYLE_LIGHTGRAY
oBrwDoin:nHeaderLines := 1
oBrwDoin:lColDividerComplete := .t.
oBrwDoin:lRecordSelector := .t.
oBrwDoin:nStretchCol := STRETCHCOL_LAST
oBrwDoin:l2007 := .f.
oBrwDoin:oFont := oFont1
oCol = oBrwDoin:AddCol()
oCol:bStrData := {|| if(Len( detalle ) > 0 , Transform(detalle[oBrwDoin:nArrayAt]["id"],oLamcla:PIC9) ,"" ) }
oCol:AddResource( "#8208" )
oCol:cHeader = "Item"
oCol:nWidth = 30
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol = oBrwDoin:AddCol()
oCol:bStrData := {|| if(Len( detalle ) > 0 , detalle[oBrwDoin:nArrayAt]["idproducto"] ,"" ) }
oCol:cHeader = "Codigo"
oCol:nWidth = 85
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol = oBrwDoin:AddCol()
oCol:bStrData := {|| if(Len( detalle ) > 0 , detalle[oBrwDoin:nArrayAt]["nombreproducto"] ,"" ) }
oCol:cHeader = "Descripción"
oCol:nWidth = 180
oCol:nHeadStrAlign = AL_LEFT
oCol:nDataStrAlign = AL_LEFT
oCol:oHeaderFont = oFont
oCol:cFooter = "TOTALES"
oCol:oFooterFont = oFont3
oBrwDoin:SetArray( detalle )
oBrwDoin:CreateFromResource( 102 )
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 2:26 pm
by lagm
Gracias Antonio y Leandro,
Muy buenos ejemplos para seguir investigando hasta crear el módulo de mantenimiento encabezado detalle
Luis antonio
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 3:53 pm
by FranciscoA
Hola.
Mira, en \samples, Yunus.prg, especificamente function EditInvoice( oRec ).
Saludos.
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 5:19 pm
by wilsongamboa
buenos dias
aprovechando
como hago para si en la fila del browse tengo una fecha esta no sea editable en funcion de otro campo que tiene un valor digamos
campo = 'CD' ->edite la fecha de esa fila
campo = 'EF' ->no edite la fecha de esa fila
he probado con
oCol1:nEditType =0 para no editar o igual a otro valor para editar
PERO me deja editar o me bloquea TODA la columna
como o que uso para solo bloquear esa celda en esa fila
espero haberme explicado
muchas gracias por su ayuda
saludos
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 6:58 pm
by FranciscoA
Wilson, aquí tienes un ejemplo probado en 1709.
Code: Select all
//----------------------------------------------------------//
// CELDA EDITABLE O NO ( FAPSOFTWARE )
//---------------------------------------------------------//
Function CeldaDisable()
local oDlg, oBrw, n
LOCAL aAgenda := { {1,5,8,4,5,6,7} ,;
{1,4,9,4,5,6,7} ,;
{1,2,3,4,5,6,7} ,;
{1,5,0,4,5,6,7} ,;
{1,2,3,4,5,6,7} }
DEFINE DIALOG oDlg SIZE 450,200 PIXEL
@5, 10 SAY "Celdas en Columna 3 son editables si valor en Columna 2 == 2" SIZE 200,10 PIXEL OF oDlg
@ 20, 10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg DATASOURCE aAgenda ;
COLUMNS 1,2,3,4,5,6,7 HEADERS "LU","MA","MI","JU","VI","SA","DO";
CELL LINES
WITH OBJECT oBrw:aCols[3]
:nEditType := 1
:bEditWhen := {|| oBrw:aCols[2]:Value == 2 } //Celda en col 3 es editable si valor celda en col 2 = 2
END
oBrw:CreateFromCode()
AEVAL( oBrw:aCols,{|o| o:nWidth := 50 } )
ACTIVATE DIALOG oDlg CENTERED
Return nil
Saludos.
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 7:32 pm
by lagm
FranciscoA wrote:Hola.
Mira, en \samples, Yunus.prg, especificamente function EditInvoice( oRec ).
Saludos.
Eso es precisamente lo que necesito.
Es fundamental contar con ejemplos así de claros para quienes estamos iniciando o retomando la programación con FiveWin,
y personas que amablemente comparten sus conocimientos y experiencias.
Muchas gracias Francisco,
Luis Antonio
Curicó-Chile
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 9:00 pm
by wilsongamboa
Francisco que barbaro!! justo lo que necesito
muchas gracias !!
Re: ¿Algún ejemplo del uso de xBrowse?
Posted: Tue May 19, 2020 9:30 pm
by FranciscoA
Me alegra mucho que hayan resuelto.
Saludos.