FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Clase TXBrowse
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Clase TXBrowse

Posted: Mon Jul 16, 2012 04:19 PM

Hola a todos:

Quisiera saber si hay alguna manera de seleccionar lineas de una base de datos que se muestran en un TxBrowse, mas concretamente si se puede filtrar (sin usar SET FILTER TO) que no muestren los registros que no cumplan una eterminada condicion. Por ejemplo si son mayores o menores de unas determinadas fechas y mas grandes que una determinada cantidad, las dos condiciones combinadas o por separado.

Un saludo

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM

Re: Clase TXBrowse

Posted: Mon Jul 16, 2012 10:28 PM

Puedes usar SCOPE, rapido, funcional y seguro...saludos...y si usas MYSQL, pues, con los querys pueds hacer de todo...saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Fri Jul 20, 2012 01:34 PM

gracias jose luis:

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 10:00 AM
Hola e nuevo.

He estado revisando la funcionalidad de Ordscope, en mi caso y no se como se ajusta por ejemplo tengo el siguiente codigo:
Code (fw): Select all Collapse
SELECT 8
use ASIENTOS SHARED
OrdSetFocus (asientos)
cScopeIni:=str(numact,6,0) + "     1" + dtos(fz1)
cScopeFin:=str(numact,6,0) + "999999" + dtos(fz2)
OrdScope(0,cScopeIni)
OrdScope(1,cScopeFin)
go top


En donde act es 1, Fz1 y Fz2 son 1 de enero de 2012 y 31 12 de 2012 y no me filtra en esas fechas todos los registros me salen todos los de la base de datos.

Una ayudita por favor.

Gracias

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 03:04 PM

Colthop:

Hay que considerar que el SCOPE funciona sobre una DBF con índice y como veo que
usas campos de tipo fecha, el índice debe estar construido con DTOS(), es así?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 03:46 PM

Hola Armando:

Si es CTOS. Lo que sucede es que SCOPE etermina el primer y ultimo registro de una base indexada y si quieres determinar dos condiciones no te vale, lo que yo hago es que quiero que delimite por numero de asientos y luego tambien por fecha y eso no lo hace.

Un saludo y gracias por ayudar,

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 03:52 PM

Hola Armando:

Si es CTOS. Lo que sucede es que SCOPE etermina el primer y ultimo registro de una base indexada y si quieres determinar dos condiciones no te vale, lo que yo hago es que quiero que delimite por numero de asientos y luego tambien por fecha y eso no lo hace.

Un saludo y gracias por ayudar,

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 04:06 PM
Colthop

Aquí un ejemplo

Code (fw): Select all Collapse
    (cBitacora)->(ORDSCOPE(0,(cCamiones)->TRN_NUM+DTOS(dFecIni)))
    (cBitacora)->(ORDSCOPE(1,(cCamiones)->TRN_NUM+DTOS(dFecFin)))


Desde luego el índice debe estar formado, al menos, por los campos del SCOPE

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 06:08 PM

Hola armando:

Ese ejemplo te filtraría por fechas pero no por numeros y fechas, por ejemplo desde el 1 al 999 y desde 01/01/2012 al 31/12/2012 tenieno apuntes desde el 1 al 99999 y fechas desde 01/01/2000 hasta 31/12/2013. y aparte de esto también tengo que coincidir que el primer campo del indice sea 1.

Un saludo y gracias por el interés.

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sat Jul 21, 2012 07:05 PM

Hola Armando.

No se si me he explicado bien antes, mi caso es el siguiente:

Tengo una base de datos con un indice CDX formado por str(act,6,0) + str(numero,6,0) + dtos(fecha)

Yo necesito que se filtre por que el primer campo ACT sea un numero por ejemplo 1 que tengo en una variable llamada NUMACT, el NUMERO me da igual el que tenga y el segundo filtro es el de FECHA que tiene que ir entre dos valores FZ1 y FZ2 que suelen ser ejercicios fiscales.

Porias indicarme, tu o alguna alma caritativa, con estos datos que OrdScope tendria que usar, claro esta si es posible.

Un saluddo y gracias

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 344
Joined: Sat Jul 22, 2006 09:04 PM

Re: Clase TXBrowse

Posted: Sun Jul 22, 2012 03:09 AM
Hola no se cual es el motivo por el cual no usas set filter, de todas maneras te digo como lo uso yo, utilizando el codigo que pusiste:

Code (fw): Select all Collapse
SELECT 8
use ASIENTOS SHARED
OrdSetFocus (asientos)
cScopeIni:=str(numact,6,0) + "     1"
cScopeFin:=str(numact,6,0) + "999999"
OrdScope(0,cScopeIni)
OrdScope(1,cScopeFin)
SET FILTER TO fecha>=fz1 .AND. fecha<=fz2
go top

Espero que te sirva.
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM

Re: Clase TXBrowse

Posted: Sun Jul 22, 2012 07:55 AM

Hola Marcelo:

La idea es reemplazar el set filter que tengo ya que sin el funciona más rápido en red.

Un saludo y gracias por tu interés.

Carlos

Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM

Re: Clase TXBrowse

Posted: Tue Jul 24, 2012 01:19 PM
colthop wrote:Hola Armando.

No se si me he explicado bien antes, mi caso es el siguiente:

Tengo una base de datos con un indice CDX formado por str(act,6,0) + str(numero,6,0) + dtos(fecha)

Yo necesito que se filtre por que el primer campo ACT sea un numero por ejemplo 1 que tengo en una variable llamada NUMACT, el NUMERO me da igual el que tenga y el segundo filtro es el de FECHA que tiene que ir entre dos valores FZ1 y FZ2 que suelen ser ejercicios fiscales.

Porias indicarme, tu o alguna alma caritativa, con estos datos que OrdScope tendria que usar, claro esta si es posible.

Un saluddo y gracias


Y porque no crear un índice para lo que necesitas mostrar con el SCOPE? -> str(act,6,0) + dtos(fecha)

Saludos
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion