Page 1 of 2

PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 2:34 pm
by LuisPonce
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

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 3:36 pm
by joseluisysturiz
Pasate por fwh\samples, hay varios ejemplos, tambien hay que saber que vas usar para almacenamiento de datos, DBF, ADO, MYSQL, etc., saludos... :shock:

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 8:27 pm
by LuisPonce
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

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 10:26 pm
by joseluisysturiz
Prueba este campo asi "A_CONCEP", como definistes el xbrowse en tu recurso.? debe ser de tipo custom, verifica y avisa...saludos... :shock:

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 10:55 pm
by cnavarro
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

Buenas noches
Creo que los nombres de _ de la base de datos no van entre comillas

REDEFINE XBROWSE oBrw ID 101 OF oDlg ;
COLUMNS "First", "Salary" ;
FIELDS (cAlias)->State, (cAlias)->Age ;
HEADERS nil, nil, "State", "AGE" ;
JUSTIFY .F., nil, .F., .T. ;
ALIAS cAlias AUTOSORT LINES CELL ;
BACKGROUND aGrad HORIZONTAL

Puede ser?
Un saludo

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 11:07 pm
by LuisPonce
Estoy probando como me aconsejan, quité el "LEFT(A_CONCEP,35)" puse el alias a _, 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

Re: PROBLEMA CON TXBROWSE

Posted: Mon Jan 07, 2013 11:25 pm
by LuisPonce
El ejemplo lo saqué de aqui:

http://forums.fivetechsupport.com/viewt ... se#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

* Dialogo

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[ 5 ]:nFooterType := AGGR_SUM
* 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

Re: PROBLEMA CON TXBROWSE

Posted: Tue Jan 08, 2013 1:00 am
by joseluisysturiz
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... :shock:

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

Re: PROBLEMA CON TXBROWSE

Posted: Tue Jan 08, 2013 2:52 am
by LuisPonce
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

Re: PROBLEMA CON TXBROWSE

Posted: Tue Jan 08, 2013 7:02 pm
by FranciscoA
Hola Luis, prueba asi: (me funciona en FWH1204)

Code: Select all

REDEFINE XBROWSE oLbxAlmacenes ID 112 OF oDlgTraslado ;
ALIAS "FTAlmacenes" ;
COLUMNS "FILIAL","CODIGO","ALMACEN","CANTIDAD","UNIDAD" ;
HEADERS "FL","Co","Almacen","Cantidad","Unidad" ;
CELL LINES FOOTERS NOBORDER
Asi lo uso:

Code: Select all

REDEFINE 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 centrado
 
Saludos.

Re: PROBLEMA CON TXBROWSE

Posted: Wed Jan 09, 2013 9:51 am
by Pedro
Una pregunta, Luis, aunque parezca tonta, pero a veces por despiste me ha pasado.
¿Tienes puesto el fichero de definiciones, xbrowse.ch?

Re: PROBLEMA CON TXBROWSE

Posted: Wed Jan 09, 2013 2:59 pm
by LuisPonce
Si pedro, ya revise ese pequeño detalle que a todos nos habrá pasado alguna vez....
El codigo queda asi :


#include "FiveWin.ch"
#include "IMAGE.ch"
#include "xbrowse.ch"


FUNCTION EDITAFILE()
LOCAL oLbxAlmacenes,oFntArial,oFntArial2

* Dialogo

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

* ACCIONES

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 !!

Re: PROBLEMA CON TXBROWSE

Posted: Wed Jan 09, 2013 3:04 pm
by LuisPonce
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

Re: PROBLEMA CON TXBROWSE

Posted: Wed Jan 09, 2013 3:47 pm
by joseluisysturiz
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... :shock:

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()

Re: PROBLEMA CON TXBROWSE

Posted: Wed Jan 09, 2013 6:47 pm
by FranciscoA
Luis,
Solo para informacion, los comandos que tratas de usar están disponibles desde la version AGOSTO/2008 (8.08), y vos indicas que utilizas la 8.02
* 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.
PD: Revisando mas cuidadosamente WHATSNEW, estos comandos estan disponibles desde la 8.03
Saludos.