Loop con clase Report

Post Reply
User avatar
gdeteran
Posts: 110
Joined: Fri Oct 14, 2005 7:10 pm
Location: Puerto Montt - CHILE

Loop con clase Report

Post 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
                
Saludos,
Gonzalo
Puerto Montt - CHILE
FWH 21.01 - Harbour 3.2.0dev (r2008190002) - Borland/Embarcadero C++ 7.0(32-bit)
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post 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
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
gdeteran
Posts: 110
Joined: Fri Oct 14, 2005 7:10 pm
Location: Puerto Montt - CHILE

Loop con clase Report

Post by gdeteran »

Armando :

Desgraciadamente persiste el error.

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

Gracias
Saludos,
Gonzalo
Puerto Montt - CHILE
FWH 21.01 - Harbour 3.2.0dev (r2008190002) - Borland/Embarcadero C++ 7.0(32-bit)
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post 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
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
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: Loop con clase Report

Post 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
William, Morales
Saludos

méxico.sureste
User avatar
gdeteran
Posts: 110
Joined: Fri Oct 14, 2005 7:10 pm
Location: Puerto Montt - CHILE

Post 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.
Saludos,
Gonzalo
Puerto Montt - CHILE
FWH 21.01 - Harbour 3.2.0dev (r2008190002) - Borland/Embarcadero C++ 7.0(32-bit)
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post 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
Post Reply