set filter to &filtro no funciona.....
Moderator: Rathinagiri
set filter to &filtro no funciona.....
Buenas.
Intento hacer algo que en clipper siempre me funciono...
filtro:="clientes->codigo=ncodigo"
set filter to &filtro
No se supone que es totalmente compatible con clipper?
un saludo
Intento hacer algo que en clipper siempre me funciono...
filtro:="clientes->codigo=ncodigo"
set filter to &filtro
No se supone que es totalmente compatible con clipper?
un saludo
Gipuzkoa - ESPAÑA
Re: set filter to &filtro no funciona.....
Then... Just try again
filtro:="clientes->codigo=ncodigo"
set filter to ( filtro )
or
set filter to &( filtro )
or
set filter to "&filtro"
M., Ronaldo
By: IMATECH
Imation Tecnologia
By: IMATECH
Imation Tecnologia
Re: set filter to &filtro no funciona.....
Pues ninguna de las 3......
Seguire probando.
Gracias
Un saludo
Seguire probando.
Gracias
Un saludo
Gipuzkoa - ESPAÑA
Re: set filter to &filtro no funciona.....
Or just use a better way of code
or
Dont use filter (Better practice for code)
bFiltro := { || clientes->codigo == ( ncodigo ) }
clientes->( DBSETFILTER( bFiltro ) )
or
Dont use filter (Better practice for code)
IF Clientes->( DBSeek( ncodigo ) )
While clientes->codigo == ( ncodigo )
clientes->( DBSkip() )
End
End
M., Ronaldo
By: IMATECH
Imation Tecnologia
By: IMATECH
Imation Tecnologia
Re: set filter to &filtro no funciona.....
I'm using such a solution for speed up filtering data:
Marek
PS. When setting filter, you must remember to activate it by DBGoTop() or DbSkip()
Code: Select all
cIndexkey := IndexKey(0)
index on &cIndexKey to (cIndexFile) for &cCondition
PS. When setting filter, you must remember to activate it by DBGoTop() or DbSkip()
Re: set filter to &filtro no funciona.....
Yo estoy usando un índice provisional, al que llamo 'MiIndice' y que posteriormente elimino. Es instantáneo con 70.000 registros. El RDD que utilizo es CDX.
Saludos
Rafael Pérez
Code: Select all
INDEX ON &(cCampo) TAG MiOrden TO &(cBase) FOR &(cCondFiltro)
OrdSetFocus('MiOrden')
(cBase)->(DbGoTop())
Rafael Pérez
I am using a provisional rate, which I call 'MiIndice' and subsequently eliminated. Is instantaneous with 70,000 records. The RDD I use is CDX.RegardsCode: Select all
INDEX ON &(cCampo) TAG MiOrden TO &(cBase) FOR &(cCondFiltro) OrdSetFocus('MiOrden') (cBase)->(DbGoTop())
Rafael Pérez
Re: set filter to &filtro no funciona.....
Hola, la variable filtro, ¿de que tipo es?paimar wrote:Buenas.
Intento hacer algo que en clipper siempre me funciono...
filtro:="clientes->codigo=ncodigo"
set filter to &filtro
No se supone que es totalmente compatible con clipper?
La Macrosustitución no funciona con variables locales. Asi que si es de tipo LOCAL podrías probar haciéndola PRIVATE.
Salu2,
GVS
Re: set filter to &filtro no funciona.....
Gracias a todos por los comentarios.
He probado varias de sus opciones , unas no funcionan y otras no las se adaptar
El codigo de clipper actual es el siguiente: (perdon por el desorden)
READ
IF LASTKEY()=27
SET COLO TO W
@ 3,1 clea to maxrow()-4,78
IMPRIME()
RETU NIL
ENDI
filtro:=""
if xfecha1<>ctod(" - - ")
anio=0
endif
IF Xfactura1>0 .AND. Xfactura2>=Xfactura1
filtro=filtro+" .and. FACTURA>=Xfactura1 .and. factura<=xfactura2"
ENDIF
IF Xfecha1>CTOD(" - - ") .AND. Xfecha2>Xfecha1
filtro=FILTRO+" .AND. fecha>=xFECHA1 .AND. fecha<=xFECHA2"
ENDI
IF Xfecha_P1>CTOD(" - - ") .AND. Xfecha_p2>Xfecha_p1
filtro=FILTRO+" .AND. fechaPAGO>=xFECHA_p1 .AND. fechaPAGO<=xFECHA_p2"
ENDI
IF Xfecha_P1>CTOD(" - - ") .AND. Xfecha_p2=CTOD(" - - ")
filtro=FILTRO+" .AND. fechaPAGO>=xFECHA_p1"
ENDI
IF xsimbol<>" "
filtro=filtro+" .and. suma&xsimbol nbase"
ENDIF
do case
case xrecibo="R"
FILTRO=FILTRO+[ .AND. RECIBO="R"]
case xrecibo="F"
FILTRO=FILTRO+[ .AND. RECIBO=" "]
case xrecibo="A"
FILTRO=FILTRO+[ .AND. RECIBO="A"]
case xrecibo=" "
FILTRO=FILTRO+[ .AND. RECIBO<>"A"]
ENdcase
IF Xfecha1>CTOD(" - - ") .AND. Xfecha2=CTOD(" - - ")
FILTRO=FILTRO+" .AND. XFECHA1=FECHA"
ENDIF
IF ncliente>0
filtro=filtro+" .AND. CODCLIENTE=ncliente"
ENDIF
IF xmes>0
filtro=filtro+" .and. month(fecha)=xmes"
endif
IF ntrimestre>0
FILTRO=FILTRO+" .AND. QUARTER(FECHA)=NTRIMESTRE"
ENDIF
IF anio>0
FILTRO=FILTRO+" .AND. anio=year(fecha)"
ENDIF
IF Xcobrada="S"
filtro=filtro+[ .AND. fechapago!=ctod(" - - ")]
endif
if xcobrada="N"
filtro=filtro+[ .AND. fechapago=ctod(" - - ")]
endif
if nformcobro>0
filtro=filtro+" .AND. numforpago=nformcobro"
ENDIF
IF Xcolabora<>" "
filtro=filtro+" .AND. colaborado=xcolabora"
ENDIF
if Xnotas<>SPAC(15)
filtro=filtro+" .and. upper(xnotas)$upper(notas)"
endif
IF xc<>spac(20)
xc=alltrim(xc)
filtro=filtro+" .and. (xc$upper(concepto1) .or. xc$upper(concepto2) .or. xc$upper(concepto3) .or. xc$upper(concepto4) .or. xc$upper(concepto5) .or. xc$upper(concepto6) .or. xc$upper(concepto7) .or. xc$upper(concepto8) .or. xc$upper(concepto9) .or. xc$upper(concepto10) .or. xc$upper(concepto11) .or. xc$upper(concepto12) .or. xc$upper(concepto13))"
endif
IF Xiva<>spac(2)
xiva:=alltrim(upper(xiva))
xfiltro=spac(20)
do case
case xiva="7"
xfiltro="iva=7"
case xiva="16"
xfiltro="iva=16"
case xiva="8"
xfiltro="iva=8"
case xiva="18"
xfiltro="iva=18"
case xiva="M"
xfiltro=[tipofact="M"]
endcase
filtro=filtro+" .and. "+xfiltro
endif
IF UPPER(left(alltrim(filtro),5))=".AND."
FILTRO=RIGHT(FILTRO,LEN(FILTRO)-6)
ENDIF
SELE 1
IF LASTKEY()=27
set colo to w
@ 3,1 clea to 21,78
FILTRO:=SPAC(500)
PARTE:=SPAC(90)
IMPRIME()
RETU NIL
ENDI
SET CURS ON
SET COLOR TO
COIN:=0
DBGOTOP()
IF empty(filtro)
SET FILTER TO
SETCOLOR("w+/n")
@ 7,72 SAY RECC() PICT "@E #,###"
COIN:=RECC()
IF coin>0
DBGOTOP()
SUM sumaexenta,suma,sumaiva,total TO vtotalexen,vsuma,viva,vtotal
ENDIF
ELSE
FILTRO:=allTRIM(FILTRO)
SET FILTER TO &filtro
GO TOP
COUNT FOR &filtro TO COIN
DBGOTOP()
SUM sumaexenta,suma,sumaiva,total TO vtotalexen,vsuma,viva,vtotal FOR &FILTRO
ENDIF
IF COIN=0
SET COLO TO W/N
mensatext("No coincide ninguna factura.",2)
set filter to
LOOP
ENDIF
He probado varias de sus opciones , unas no funcionan y otras no las se adaptar
El codigo de clipper actual es el siguiente: (perdon por el desorden)
READ
IF LASTKEY()=27
SET COLO TO W
@ 3,1 clea to maxrow()-4,78
IMPRIME()
RETU NIL
ENDI
filtro:=""
if xfecha1<>ctod(" - - ")
anio=0
endif
IF Xfactura1>0 .AND. Xfactura2>=Xfactura1
filtro=filtro+" .and. FACTURA>=Xfactura1 .and. factura<=xfactura2"
ENDIF
IF Xfecha1>CTOD(" - - ") .AND. Xfecha2>Xfecha1
filtro=FILTRO+" .AND. fecha>=xFECHA1 .AND. fecha<=xFECHA2"
ENDI
IF Xfecha_P1>CTOD(" - - ") .AND. Xfecha_p2>Xfecha_p1
filtro=FILTRO+" .AND. fechaPAGO>=xFECHA_p1 .AND. fechaPAGO<=xFECHA_p2"
ENDI
IF Xfecha_P1>CTOD(" - - ") .AND. Xfecha_p2=CTOD(" - - ")
filtro=FILTRO+" .AND. fechaPAGO>=xFECHA_p1"
ENDI
IF xsimbol<>" "
filtro=filtro+" .and. suma&xsimbol nbase"
ENDIF
do case
case xrecibo="R"
FILTRO=FILTRO+[ .AND. RECIBO="R"]
case xrecibo="F"
FILTRO=FILTRO+[ .AND. RECIBO=" "]
case xrecibo="A"
FILTRO=FILTRO+[ .AND. RECIBO="A"]
case xrecibo=" "
FILTRO=FILTRO+[ .AND. RECIBO<>"A"]
ENdcase
IF Xfecha1>CTOD(" - - ") .AND. Xfecha2=CTOD(" - - ")
FILTRO=FILTRO+" .AND. XFECHA1=FECHA"
ENDIF
IF ncliente>0
filtro=filtro+" .AND. CODCLIENTE=ncliente"
ENDIF
IF xmes>0
filtro=filtro+" .and. month(fecha)=xmes"
endif
IF ntrimestre>0
FILTRO=FILTRO+" .AND. QUARTER(FECHA)=NTRIMESTRE"
ENDIF
IF anio>0
FILTRO=FILTRO+" .AND. anio=year(fecha)"
ENDIF
IF Xcobrada="S"
filtro=filtro+[ .AND. fechapago!=ctod(" - - ")]
endif
if xcobrada="N"
filtro=filtro+[ .AND. fechapago=ctod(" - - ")]
endif
if nformcobro>0
filtro=filtro+" .AND. numforpago=nformcobro"
ENDIF
IF Xcolabora<>" "
filtro=filtro+" .AND. colaborado=xcolabora"
ENDIF
if Xnotas<>SPAC(15)
filtro=filtro+" .and. upper(xnotas)$upper(notas)"
endif
IF xc<>spac(20)
xc=alltrim(xc)
filtro=filtro+" .and. (xc$upper(concepto1) .or. xc$upper(concepto2) .or. xc$upper(concepto3) .or. xc$upper(concepto4) .or. xc$upper(concepto5) .or. xc$upper(concepto6) .or. xc$upper(concepto7) .or. xc$upper(concepto8) .or. xc$upper(concepto9) .or. xc$upper(concepto10) .or. xc$upper(concepto11) .or. xc$upper(concepto12) .or. xc$upper(concepto13))"
endif
IF Xiva<>spac(2)
xiva:=alltrim(upper(xiva))
xfiltro=spac(20)
do case
case xiva="7"
xfiltro="iva=7"
case xiva="16"
xfiltro="iva=16"
case xiva="8"
xfiltro="iva=8"
case xiva="18"
xfiltro="iva=18"
case xiva="M"
xfiltro=[tipofact="M"]
endcase
filtro=filtro+" .and. "+xfiltro
endif
IF UPPER(left(alltrim(filtro),5))=".AND."
FILTRO=RIGHT(FILTRO,LEN(FILTRO)-6)
ENDIF
SELE 1
IF LASTKEY()=27
set colo to w
@ 3,1 clea to 21,78
FILTRO:=SPAC(500)
PARTE:=SPAC(90)
IMPRIME()
RETU NIL
ENDI
SET CURS ON
SET COLOR TO
COIN:=0
DBGOTOP()
IF empty(filtro)
SET FILTER TO
SETCOLOR("w+/n")
@ 7,72 SAY RECC() PICT "@E #,###"
COIN:=RECC()
IF coin>0
DBGOTOP()
SUM sumaexenta,suma,sumaiva,total TO vtotalexen,vsuma,viva,vtotal
ENDIF
ELSE
FILTRO:=allTRIM(FILTRO)
SET FILTER TO &filtro
GO TOP
COUNT FOR &filtro TO COIN
DBGOTOP()
SUM sumaexenta,suma,sumaiva,total TO vtotalexen,vsuma,viva,vtotal FOR &FILTRO
ENDIF
IF COIN=0
SET COLO TO W/N
mensatext("No coincide ninguna factura.",2)
set filter to
LOOP
ENDIF
Gipuzkoa - ESPAÑA
filtro:="test->codigo>3" y set filter to &filtro /si funcio
Hola
Afinando un poco mas :
filtro:="test->codigo>3"
set filter to &filtro
/si funciona
pero si hago
filtro:="test->codigo>form_1.text_3.value"
set filtro to &filtro
da error Error BASE/1449 Sintax error:&
Que puede pasar ?
gracias
Afinando un poco mas :
filtro:="test->codigo>3"
set filter to &filtro
/si funciona
pero si hago
filtro:="test->codigo>form_1.text_3.value"
set filtro to &filtro
da error Error BASE/1449 Sintax error:&
Que puede pasar ?
gracias
Gipuzkoa - ESPAÑA
- danielmaximiliano
- Posts: 2612
- Joined: Fri Apr 09, 2010 4:53 pm
- Location: Argentina
- Contact:
Re: filtro:="test->codigo>3" y set filter to &filtro /si fu
Hola Paimar: filtro:="test->codigo>form_1.text_3.value"paimar wrote:Hola
Afinando un poco mas :
filtro:="test->codigo>3"
set filter to &filtro
/si funciona
pero si hago
set filtro to &filtrofiltro:="test->codigo>form_1.text_3.value"
da error Error BASE/1449 Sintax error:&
Que puede pasar ?
gracias
estas sumando la palabra "form_1.text_3.value" en vez del valor
intenta
Code: Select all
filtro:="test->codigo>"+Str(form_1.text_3.value)
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*
Saludos / Regards
DaNiElMaXiMiLiAnO
Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*
Saludos / Regards
DaNiElMaXiMiLiAnO
Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO