Hola
Uso el FWH 8.02 y necesito usar algo mas avanzado que el Listbox para editar algunas tablas, alguien tiene un ejemplo funcional del XBrowse ?, Altas, Bajas, Modificaciones etc.
Gracias
Hola
Uso el FWH 8.02 y necesito usar algo mas avanzado que el Listbox para editar algunas tablas, alguien tiene un ejemplo funcional del XBrowse ?, Altas, Bajas, Modificaciones etc.
Gracias
Pasate por fwh\samples, hay varios ejemplos, tambien hay que saber que vas usar para almacenamiento de datos, DBF, ADO, MYSQL, etc., saludos... ![]()
Gracias por responder Jose Luis
he puesto este codigo, con recursos, a partir de uno de los ejemplos de \Samples
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
HEADERS "Tipo", "Número","Fecha","Concepto","Cargo","Abono","Fec Capt" ;
fields "A_TIPO", "A_NUMPOL", "A_FHAMOV", "LEFT(A_CONCEP,35)", ;
"A_TOTCARG", "A_TOTCRED", "F_ECALTA" ;
CELL LINES FOOTERS NOBORDER
con el fichero xbrowse.ch al inicio, y al compilar con el xharbour me da este error :
Error E0030 syntax error "Syntax error at 'XBROWSE' "
1 error
No code generade
Le he dado mil vueltas, y no encuentro la razon de este mensaje
Te agradezco
Prueba este campo asi "A_CONCEP", como definistes el xbrowse en tu recurso.? debe ser de tipo custom, verifica y avisa...saludos... ![]()
LuisPonce wrote:Gracias por responder Jose Luis
he puesto este codigo, con recursos, a partir de uno de los ejemplos de \Samples
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
HEADERS "Tipo", "Número","Fecha","Concepto","Cargo","Abono","Fec Capt" ;
fields "A_TIPO", "A_NUMPOL", "A_FHAMOV", "LEFT(A_CONCEP,35)", ;
"A_TOTCARG", "A_TOTCRED", "F_ECALTA" ;
CELL LINES FOOTERS NOBORDER
con el fichero xbrowse.ch al inicio, y al compilar con el xharbour me da este error :
Error E0030 syntax error "Syntax error at 'XBROWSE' "
1 error
No code generade
Le he dado mil vueltas, y no encuentro la razon de este mensaje
Te agradezco
Estoy probando como me aconsejan, quité el "LEFT(A_CONCEP,35)" puse el alias a los campos, y me sigue dando el mismo error de syntaxis...
el cosigo quedó asi:
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
HEADERS "FL","Co","Almacen","Cantidad","Unidad" ;
FIELDS FTAlmacenes->FILIAL,FTAlmacenes->CODIGO,FTAlmacenes->ALMACEN,TRANS(FTAlmacenes->CANTIDAD,IMPMUM),FTAlmacenes->UNIDAD ;
CELL LINES FOOTERS NOBORDER
y el resultado es:
Error E0030 syntax error "Syntax error at 'XBROWSE' "
1 error
No code generade
El ejemplo lo saqué de aqui:
viewtopic.php?f=6t=24706p=134157hilit=txbrowse#p134157
y lo acondiconé a mi necesidad :
uso una tabla con esta estructura:
FILIAL,C,2
CODIGO,C,2
ALMACEN,30
CANTIDAD,N,2
UNIDAD,C,3
FUNCTION EDITAFILE()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2,oSayCod,oSayDes,oSayMar
DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE BRUSH oBrush NAME "BMP_TECLAS2"
DEFINE DIALOG oDlgTraslado RESOURCE "CONS_TABLA" BRUSH oBrush OF oDlg TITLE "Stock en Almacenes"
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
HEADERS "FL","Co","Almacen","Cantidad","Unidad" ;
FIELDS FTAlmacenes->FILIAL,FTAlmacenes->CODIGO,FTAlmacenes->ALMACEN,TRANS(FTAlmacenes->CANTIDAD,IMPMUM),FTAlmacenes->UNIDAD ;
CELL LINES FOOTERS NOBORDER
oLbxAlmacenes:Concepto:cFooter := "Prueba Adriano"
oLbxAlmacenes:aCols[ 6 ]:nFooterType := AGGR_SUM
oLbxAlmacenes:MakeTotals()
REDEFINE BTNBMP ID 117 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 118 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())
ACTIVATE DIALOG oDlgTraslado CENTERED ON INIT (oLbxAlmacenes:SetFocus(.T.))
Select("FTAlmacenes")
IF lAceptar
* ACCIONES
ENDIF
FTAlmacenes->(DbCloseArea())
oFntArial:End()
oFntArial2:End()
ENDIF
oLbxCompra:UpStable()
oLbxCompra:Refresh()
RETURN Nil
&&&
Asi lo tengo y trabaja sin problema, solo que uso es un array, revisa como tienes definido tu xbrowse en el recurso, debe ser de tipo CUSTOM, saludos...
REDEFINE xBrowse oBrw ID 100 of oDlg ;
HEADERS "CODIGO", "DESCRIPCION", "UNIDAD", "CANTIDAD", "PRECIO", "DESC", "SUB-TOTAL" ;
COLUMNS 1, 2, 3, 4, 5, 6, 7 ;
COLSIZES 100, 200, 70, 70, 70, 70, 70 ;
JUSTIFY AL_LEFT, AL_LEFT, AL_LEFT, AL_RIGHT, AL_RIGHT, AL_RIGHT, AL_RIGHT ;
PICTURES , , , "@E 9,999,999", "@E 9,999,999.99", "@E 999.99%", "@E 9,999,999.99" ;
ARRAY aItems FASTEDIT LINES
Gracias Jose Luis por el interes, lo probare como dices, pero el detalle esta que el error es en la compilacion, no en tiempo de ejecucion.
Gracias
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
COLUMNS "FILIAL","CODIGO","ALMACEN","CANTIDAD","UNIDAD" ;
HEADERS "FL","Co","Almacen","Cantidad","Unidad" ;
CELL LINES FOOTERS NOBORDERREDEFINE XBROWSE oBrw ID 118 OF oDlg ;
COLUMNS "Codigo", "Nombre", "Apellido","CedulaIde" ;
HEADERS "Cod/Clte","Nombres","Apellidos","Cedula Id";
SIZES 70,170,170,140 ;
ALIAS (cAlias) FOOTERS LINES CELL
AEval( oBrw:aCols, { |o| o:nEditType := 0 ,; //No editables
o:nHeadStrAlign := 2 } ) //texto encab/col centradoUna pregunta, Luis, aunque parezca tonta, pero a veces por despiste me ha pasado.
¿Tienes puesto el fichero de definiciones, xbrowse.ch?
Si pedro, ya revise ese pequeño detalle que a todos nos habrá pasado alguna vez....
El codigo queda asi :
FUNCTION EDITAFILE()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2
DEFINE FONT oFntArial NAME "Arial" SIZE 0, -14
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -14 BOLD
DEFINE BRUSH oBrush NAME "BMP_TECLAS2"
DEFINE DIALOG oDlgTraslado RESOURCE "CONS_TABLA" BRUSH oBrush OF oDlg TITLE "Stock en Almacenes"
REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
COLUMNS "FILIAL", "CODIGO", "ALMACEN","CANTIDAD" ;
HEADERS "FL","CO","Almacen","Cantidad";
SIZES 70,170,170,140 ;
ALIAS "FTAlmacenes" FOOTERS LINES CELL
AEval( oLbxAlmacenes:aCols, { |o| o:nEditType := 0 ,; //No editables
o:nHeadStrAlign := 2 } ) //texto encab/col centrado
REDEFINE BTNBMP ID 117 OF oDlgTraslado NAME "BMP_ACEPTAR" ACTION (lAceptar:=.T.,oDlgTraslado:End())
REDEFINE BTNBMP ID 118 OF oDlgTraslado NAME "BMP_SALIR" ACTION (lAceptar:=.F.,oDlgTraslado:End())
ACTIVATE DIALOG oDlgTraslado CENTERED ON INIT (oLbxAlmacenes:SetFocus(.T.))
Select("FTAlmacenes")
IF lAceptar
ENDIF
FTAlmacenes->(DbCloseArea())
oFntArial:End()
oFntArial2:End()
oLbxCompra:UpStable()
oLbxCompra:Refresh()
RETURN Nil
y sigue saliendo el mismo error de compilacion:
Error E0030 syntax error "Syntax error at 'XBROWSE' "
no encuentro la causa !!
A lo mejor sirve de algo comertar lo siguiente... el numero de linea que me da el error como referencia va a:
linea 10978 = ALIAS "FTAlmacenes" FOOTERS LINES CELL
.prg (10978) Error E0030 syntax error "Syntax error at 'XBROWSE' "
lo he probado asi;
ALIAS "FTAlmacenes"
Y da lo mismo
Podrias mostrar como haces la apertura de la DBF antes de mostrar el xBrowse, es decir, donde asiganas el ALIAS, nose si sera eso lo que te esta hechando broma, saludos... ![]()
Ejemplo totalmente funcional:
DBSELECTAREA("jlalumno") // MAESTRO DE ALUMNOS
jlalumno->( OrdSetFocus(2) )
jlalumno->( DBGOTOP() )
DATABASE oDbfALUM // LECTURA Y CLONACION DE DBF ORIGINAL
oDbfALUM:GOTOP()
oBrow:=TxBrowse():New( oWndAlu )
WITH OBJECT oBrow
:bClrStd := { || If( ( oBrow:nArrayAt % 2 ) == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
:bClrSel := { || If( ( oBrow:nArrayAt % 2 ) == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
:nMarqueeStyle := 4
:bRClicked := { || msginfo(cvaltochar(recno())) } // LLAMA MENU-POPUP CON BOTON DERECHO
:nLeft := 203 // DISTANCIA DESDE EL BORDER IZQ.
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:nColDividerStyle := LINESTYLE_BLACK
:nStretchCol := STRETCHCOL_LAST
:lColDividerComplete := .T.
:nHeaderHeight := 30
:l2007 := .T.
:lFooter := .F.
:lRecordSelector := .T.
END WITH
//COMIENZAN LAS COLUMNAS
*** COL.1
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0 ,;
STRZERO( jlalumno->alu_codigo, 7 ), SPACE(10) ) }
oCol:cHeader := "Código"
oCol:nWidth := 70
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
*** COL.2
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0, jlalumno->alu_ape1, SPACE(250) ) }
oCol:cHeader := "Apellidos"
oCol:nWidth := 250
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
*** COL.3
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0, jlalumno->alu_nom1, SPACE(250) ) }
oCol:cHeader := "Nombres"
oCol:nWidth := 250
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
*** COL.4
oCol := oBrow:AddCol()
oCol:bStrData := {|| IIF( LastRec() > 0 ,;
STRZERO( jlalumno->alu_cedula, 8 ), SPACE(10) ) }
oCol:cHeader := "Cédula"
oCol:nWidth := 70
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
// TERMINAN LAS COLUMNAS
oBrow:cAlias := "jlalumno"
oBrow:SetRDD()
oBrow:Refresh( .T. )
oBrow:CreateFromCode()
* New: XBROWSE Commands:
1. @ 0,0 XBROWSE and REDEFINE XBROWSE:
Now list of columns, fields, headers, etc. can also be specified as arrays in line or array variables can be
used. Example:
REDEFINE XBROWSE <clauses> HEADERS 'First', 'Last', ....
can also be written as
REDEFINE XBROWSE <clauses> HEADERS aHdrs .... ( where aHdrs := { 'First', 'Last', .... } )
This applies to all lists in xbrowse creation commands.