Page 1 of 1

Loop con clase Report

Posted: Thu Oct 05, 2006 3:17 pm
by gdeteran
Este proceso lee correctamente el primer registro y luego repite el mismo registro eternamente. He hecho todo tipo de cambios y el error persiste.

Agradezco de antemanos a quien me pueda dar una luz.

Code: Select all

 Function ImprimeIngresos( aVars )
*-------------------------------
   (cPAGMOV)->(DbSeek("IN" + DTOS(dFecIni) + "000000", .T. ))

   REPORT oInforme CAPTION "Ingresos en Caja" ;
      TITLE " ", " ", "Ingresos desde "+DTOC(dFecIni)+" al "+DTOC(dFecFin);
      HEADER  "COMERCIAL NITOBEL LTDA." + SPACE(100) + "Fecha : "+DTOC(DATE());
      FOOTER "Pagina : "+STR(oInforme:nPage,3) CENTER ;
      PREVIEW

                  COLUMN TITLE "Tipo"        ;
                  DATA (cPAGMOV)->Tipo

                  COLUMN TITLE "Numero"      ;
                  DATA (cPAGMOV)->Numero

                  COLUMN TITLE "Fecha"       ;
                  DATA (cPAGMOV)->Fecha

                  COLUMN TITLE "Monto"       ;
                  DATA (cPAGMOV)->Pagado ;
                  PICTURE "@E 9,999,999"     ;
                  TOTAL ;
                  GRID

   END REPORT

   ACTIVATE REPORT oInforme  ;
          WHILE  .NOT.(cPAGMOV)->(EOF()) .AND. (cPAGMOV)->Tipo = "IN" ;
          FOR (cPAGMOV)->Fecha >= dFecIni .AND. (cPAGMOV)->Fecha <= dFecFin
                

Posted: Thu Oct 05, 2006 4:52 pm
by Armando
gdeteran:

Yo simplemente lo haría así:


ACTIVATE REPORT oInforme FOR (cPAGMOV)->Fecha >= dFecIni .AND. (cPAGMOV)->Fecha <= dFecFin .AND. (cPAGMOV)->Tipo = "IN";
WHILE ! EOF()

Probar no cuesta

Saludos, Armando

Loop con clase Report

Posted: Thu Oct 05, 2006 9:58 pm
by gdeteran
Armando :

Desgraciadamente persiste el error.

Uso CDX, no se si el RDD este con error.

Gracias

Posted: Thu Oct 05, 2006 10:50 pm
by Armando
Gonzalo:

No creo que sea el RDD, yo tambien uso CDX y no he tenido problemas, por no dejar quita el WHILE ! EOF()

Saludos, Armando

Re: Loop con clase Report

Posted: Sat Oct 07, 2006 6:31 pm
by wmormar
gdeteran wrote:Armando :

Desgraciadamente persiste el error.

Uso CDX, no se si el RDD este con error.

Gracias
Si se trata de probar,

Code: Select all

oRpt:bSkip := {|| cAlias->(DBSkip()) }
Saludos

Posted: Tue Oct 10, 2006 2:42 pm
by gdeteran
Gracias William,

Con bskip funcionó perfecto, me encantaria saber porque sucede, tengo otros informes que funcionan sin bSkip.

Gracias Armando por tu ayuda.

Posted: Fri Oct 20, 2006 5:29 pm
by Mike Serra
Hola gdeteran:

Creo que el problema que tienes en los otros archivos es porque habrá seleccionado otro alias. A mi me pasaba lo mismo y lo arregle poniendo la siguiente línea antes del report :

select <tabla dbf del informe>

en tu caso seria

select (cpagmov)



Function ImprimeIngresos( aVars )
*-------------------------------


sele (cpagmov) <------------- AQUI POR EJEMPLO


(cPAGMOV)->(DbSeek("IN" + DTOS(dFecIni) + "000000", .T. ))

REPORT oInforme CAPTION "Ingresos en Caja" ;
TITLE " ", " ", "Ingresos desde "+DTOC(dFecIni)+" al "+DTOC(dFecFin);
HEADER "COMERCIAL NITOBEL LTDA." + SPACE(100) + "Fecha : "+DTOC(DATE());
FOOTER "Pagina : "+STR(oInforme:nPage,3) CENTER ;
PREVIEW

COLUMN TITLE "Tipo" ;
DATA (cPAGMOV)->Tipo

COLUMN TITLE "Numero" ;
DATA (cPAGMOV)->Numero

COLUMN TITLE "Fecha" ;
DATA (cPAGMOV)->Fecha

COLUMN TITLE "Monto" ;
DATA (cPAGMOV)->Pagado ;
PICTURE "@E 9,999,999" ;
TOTAL ;
GRID

END REPORT

ACTIVATE REPORT oInforme ;
WHILE .NOT.(cPAGMOV)->(EOF()) .AND. (cPAGMOV)->Tipo = "IN" ;
FOR (cPAGMOV)->Fecha >= dFecIni .AND. (cPAGMOV)->Fecha <= dFecFin







Powered