FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para CA-Clipper ¿Error en la clave del Indice?
Posts: 40
Joined: Thu Jan 12, 2006 05:10 PM

¿Error en la clave del Indice?

Posted: Mon Apr 03, 2006 05:22 PM
Estimados compañeros:

No se por que no funciona, el Indice, de mi aplicación:

INDEX FILE PFMesFac                                          ;
          TAG    MesFactu                                    ;
          ON     UPPER( CMONTH( fechafactu ) ) + codigo    + ;
                 numfactura                                  ;
          UNIQUE                                             ;
          EVAL   ( lPrimerVez := TRUE                      , ;
                    PorcentInd( oDbfFactP, aoMeter[ 5 ] ) )  ;
          OF     oDbfFactP


Como podreis ver, lo que me interesa, es localizar las facturas del mes, para cada proveedor.

Pero, solo me incluye la primera de cada proveedor. Supongamos que hay tres facturas:

CODIGO   NUMFACTURA      FECHAFACTU
0000001  36              02/20/2006
0000001  5160/1          01/31/2005
0000001  999999          02/28/2006
0000001  LFF2            02/20/2006


Al crear el indice, solo introduce la factura 36. ¿Por que?

Saludos, José Mª
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

¿Error en la clave del Indice?

Posted: Tue Apr 04, 2006 09:56 PM

José María:

Y si quitas la claúsula UNIQUE ?

Saludos, Armando

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: 40
Joined: Thu Jan 12, 2006 05:10 PM

Gracias. Seguire haciendo pruebas.

Posted: Wed Apr 05, 2006 07:10 PM

¡GARCIAS!, Armando.

Probe a quitar el UNIQUE. Y lo que sucede es que me incluye todos los registros.

¿No se supone, que con UNIQUE, en el indice solo se incluyen, la primera aparición, de lo que indique la clave?

Saludos. José Mª

Posts: 40
Joined: Thu Jan 12, 2006 05:10 PM

No hay forma.

Posted: Sun Apr 09, 2006 08:29 PM

¿En que estoy equivocado?.

En una Base de Datos, pequeña, no influye. Pero si encima el ordenador es lento.

Mi intención, es barrer solo las facturas de un cierto mes, o meses seleccionados, de un proveedor.

Apreciaré cualquier ayuda. ¡ GRACIAS!, anticipadas.

José Mª

Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

¿Error en la clave del Indice?

Posted: Mon Apr 10, 2006 08:53 PM

Hola,,, talvez asi?
INDEX FILE PFMesFac ;
TAG MesFactu ;
ON DTOS(fechafactu ) ;
EVAL ( lPrimerVez := TRUE , ;
PorcentInd( oDbfFactP, aoMeter[ 5 ] ) ) ;
OF oDbfFactP
...
...
..
SETSCOPE(cFecha1,cFecha2)
browse()..............// aqui solo te aparecen las facturas que estan entre las fechas

Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

¿Error en la clave del Indice?

Posted: Mon Apr 10, 2006 08:54 PM

Hola,,, talvez asi?
INDEX FILE PFMesFac ;
TAG MesFactu ;
ON DTOS(fechafactu ) ;
EVAL ( lPrimerVez := TRUE , ;
PorcentInd( oDbfFactP, aoMeter[ 5 ] ) ) ;
OF oDbfFactP
...
...
..
SETSCOPE(cFecha1,cFecha2)
browse()..............// aqui solo te aparecen las facturas que estan entre las fechas cFecha1 y cFecha2

Salu2

Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

¿Error en la clave del Indice?

Posted: Mon Apr 10, 2006 08:57 PM

Ups,,, olvide esto:

Function SetScope(vCodi,vCodi2)
DEFAULT vCodi := Nil
DEFAULT vCodi2 := Nil
ORDSCOPE(0,Nil) // SET SCOPE TO
ORDSCOPE(1,Nil)
Do Case
Case vCodi = Nil .AND. vCodi2 = Nil
Return nil
Case vCodi2 = Nil .AND. vCodi <> Nil
ORDSCOPE(0,vCodi) // SET SCOPETOP TO vCodi
Case vCodi = Nil .AND. vCodi2 <> Nil
ORDSCOPE(1,vCodi2) //SET SCOPEBOTTOM TO vCodi2
Other
ORDSCOPE(0,vCodi) //SET SCOPE TO vCodi,vCodi2
ORDSCOPE(1,vCodi2)
EndCase
DbGoTop()
Return nil
//------------------------------------------------

Posts: 40
Joined: Thu Jan 12, 2006 05:10 PM

¡Conseguido!

Posted: Fri Apr 14, 2006 07:16 PM
¡Gracias!, Armando, Willi Quintana, y a todos los que están hay detrás.

Con vuestras respuestas, y bastantes puebas, se ha logrado lo que se perseguía, al menos eso parece:

INDEX FILE PFMesFac                                          ;
          TAG    MesFactu                                    ;
          ON     UPPER( CMONTH( fechafactu ) ) + codigo    + ;
                 numfactura + DTOS( fechafactu )             ;
          UNIQUE                                             ;
          EVAL   ( lPrimerVez := TRUE                      , ;
                    PorcentInd( oDbfFactP, aoMeter[ 5 ] ) )  ;
          OF     oDbfFactP


Saludos, José Mª

Continue the discussion