¿Error en la clave del Indice?

¿Error en la clave del Indice?

Postby JMFS-D » Mon Apr 03, 2006 5:22 pm

Estimados compañeros:

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

Code: Select all  Expand view  RUN
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:

Code: Select all  Expand view  RUN
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ª
Last edited by JMFS-D on Fri Apr 14, 2006 7:24 pm, edited 1 time in total.
JMFS-D
 
Posts: 40
Joined: Thu Jan 12, 2006 5:10 pm

Postby Armando » Tue Apr 04, 2006 9: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
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Gracias. Seguire haciendo pruebas.

Postby JMFS-D » Wed Apr 05, 2006 7: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ª
JMFS-D
 
Posts: 40
Joined: Thu Jan 12, 2006 5:10 pm

No hay forma.

Postby JMFS-D » Sun Apr 09, 2006 8: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ª
JMFS-D
 
Posts: 40
Joined: Thu Jan 12, 2006 5:10 pm

Postby Willi Quintana » Mon Apr 10, 2006 8: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
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby Willi Quintana » Mon Apr 10, 2006 8: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
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby Willi Quintana » Mon Apr 10, 2006 8: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
//------------------------------------------------
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

¡Conseguido!

Postby JMFS-D » Fri Apr 14, 2006 7: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:

Code: Select all  Expand view  RUN
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ª
JMFS-D
 
Posts: 40
Joined: Thu Jan 12, 2006 5:10 pm


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 9 guests