OTRAS PREGUNTAS DE REPORT - (RESUELTO)

OTRAS PREGUNTAS DE REPORT - (RESUELTO)

Postby joseluisysturiz » Tue Oct 28, 2008 7:55 am

Gracias a los colegas ya adelante bastante mi reporte pero ahora me pasa algo curioso....

1. se puede poner la lineas de HEADER el la posicion que se quiera sin usar +space(n), es decir darle un nRow, nCol...?

asi es una lata.....

HEADER "NOMBRE"+SPACE(150)+"REGISTRO"+SPACE(150)+"PERIODO"

2.estoy usando oRpt:CellView(), esta bien porque me pone valores de registros entre celdas estilo excel, pero, al colocar otros textos al final de la impresion del ultimo registro se siguen dibujando la lineas verticales..solo easa...aca anexo la imagen de mi report, probe de diferentes formas con oRpt:NewLine() , oRpt:Startline(), agregue oRpt:TotalLine( RPT_DOUBLELINE ) y nada...este es el codigo..

END REPORT

* oFont[1]:END()
* oFont[2]:END()
* oFont[3]:END()

oRpt:CellView() // COLOCA COLUMNAS DENTRO DE CELDAS TIPO HOJA EXCEL
oRpt:oDevice:lPrvModal:=.T. // NI IDEA PARA QUE SIRVE

oRpt:bPostEnd :={|| DatosFin( oRpt ) }

ACTIVATE REPORT oRpt

USE

return nil


FUNCTION datosfin( oRpt )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas en Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas solo Alicuota Reducida" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota Reducida" )

RETURN NIL

esta la imagen...mi ultimo registro es el 000114
Image
Image

Gracias de antemano...
Last edited by joseluisysturiz on Wed Oct 29, 2008 1:53 pm, edited 2 times in total.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby Loren » Tue Oct 28, 2008 10:19 am

Jose Luis, yo hago así y me funciona de maravillas:

Code: Select all  Expand view
DEFINE PEN oPen1 WIDTH 1 COLOR CLR_HGRAY
  report infor preview title 'BALANCE','CALCULO POR ARTÍCULOS','Periodo: '+IIF(EMPTY(desde),'GENERAL','del '+dtoc(desde)+' al '+dtoc(hasta)) left PEN oPen1 HEADER alltrim(nempresa),' ' center footer 'Fecha del listado: '+dtoc(date())+space(80)+'Pagina: '+str(infor:npage,3) font letra_cabecera1, letra_cuerpo1, llistado CAPTION 'BALANCE. Calculo por artículos.'
   GROUP ON tipofami HEADER iif(tipofami='PL','>> PLANTAS',iif(tipofami='RI','>> RIEGOS',iif(tipofami='IN','>> INSUMOS',iif(tipofami='RA','>> RATIOS',)))) FOOTER "Total: "+ltrim(str(infor:aGroups[1]:nCounter))+' artículos.' font 1
    column title 'Código' data codigo size 6 font 2 grid
    column title 'Descripción' data descrip size 35 font 2 grid
    column title 'Udes.','Vendidas' data xudes TOTAL size 6 font 2 grid
    column title 'Importe','Venta','(A)' data xvven PICTURE '9999999.99' total size 8 font 2 grid
    column title 'Valor','Costo','(B)' data xvcos PICTURE '9999999.99' total size 8 font 2 grid
    column title 'Beneficio',' ','(C=A-B)' data xvven-xvcos PICTURE '9999999.99' total size 8 font 2 grid
    column title '% s/las','ventas' data (xvven/ttventa)*100 size 10 font 2 grid
    column title '% s/los','benef.' data ((xvven-xvcos)/(ttventa-ttcosto))*100 size 10 font 2 grid
  end report
  infor:oHeader:aFont[1]:= {|| 3 }
  infor:oHeader:aFont[2]:= {|| 3 }
activate report infor on change balance3(.t.) ON POSTEND balance4()
release xudes, xvcos, xvven
return

funct balance3(avanzar)
select 2
if avanzar=.t.
  skip
endif
c=codigo
select 24
find &c
store 0 to xvcos, xudes, xvven
do while .not. eof() .and. c=codart
  xudes+=cantidad
  xvcos+=cantidad*pcosto
  xvven+=importe
  skip
enddo
select 2
if avanzar=.t.
  skip-1
endif
return

funct balance4
infor:lGrid:=.f.
for x=1 to 4
  infor:NewLine()
next
infor:Say(2,'Total Ingresos por ventas:')
infor:Say(4,transform(infor:aColumns[4]:nTotal,'9,999,999.99'),2,2) ; infor:NewLine() &&Penultimo 2=tipo letra ; ultimo 2=justificacion a la dcha, si fuese 1, a la izda.
infor:Say(2,'Total Costes de las ventas:')
infor:Say(4,transform(infor:aColumns[5]:nTotal,'9,999,999.99'),2,2) ; infor:NewLine()
infor:Say(2,'Total Beneficio Bruto:')
infor:Say(4,transform(infor:aColumns[6]:nTotal,'9,999,999.99'),2,2) ; infor:NewLine()
infor:Say(2,'Total Gastos en este periodo:')
infor:Say(4,transform(ttgasto+ttbase,'9,999,999.99'),2,2) ; infor:NewLine() ; infor:NewLine()
infor:Say(2,'TOTAL BENEFICOS NETOS:',3) && 3=tipo de letra
infor:Say(4,transform(infor:aColumns[4]:nTotal-infor:aColumns[5]:nTotal-ttgasto-ttbase,'9,999,999.99'),3)
return


Estudia mi ejemplo.... le podrás sacar mucho partido.
Un saludo.
LORENZO
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: OTRAS PREGUNTAS DE REPORT

Postby FranciscoA » Tue Oct 28, 2008 12:48 pm

oRpt:lGrid:=.f. //quitar los divisores de columnas

Saludos.
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: OTRAS PREGUNTAS DE REPORT

Postby joseluisysturiz » Tue Oct 28, 2008 2:30 pm

FranciscoA wrote:oRpt:lGrid:=.f. //quitar los divisores de columnas

Saludos.

Gracias por su pronta respuesta, sabia que eso es lo que me me esta saboteando, intentaba pero sobre oRpt:CellView() , tratando de desactivarla....lo intente, pero creo en el lugar equivocado, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: OTRAS PREGUNTAS DE REPORT

Postby joseluisysturiz » Tue Oct 28, 2008 2:33 pm

joseluisysturiz wrote:
FranciscoA wrote:oRpt:lGrid:=.f. //quitar los divisores de columnas

Saludos.

Gracias por su pronta respuesta, sabia que eso es lo que me esta saboteando, intentaba pero sobre oRpt:CellView() , tratando de desactivarla....lo intente, pero creo en el lugar equivocado, y sobre este otro tema, se puede o no se puede....para no seguir dandole vuelta ni tratar de inventar la rueda..

1. se puede poner la lineas de HEADER el la posicion que se quiera sin usar +space(n), es decir darle un nRow, nCol...?

asi es una lata.....

HEADER "NOMBRE"+SPACE(150)+"REGISTRO"+SPACE(150)+"PERIODO"
saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: OTRAS PREGUNTAS DE REPORT

Postby FranciscoA » Tue Oct 28, 2008 5:09 pm

Intenta asi, a ver que te resulta: (es una salida rápida)

COLUMN TITLE CentTitCol("NOMBRE DE LA CUENTA",45) ;
DATA CDIARIO->NOMBRE ;
SIZE 45;
GRID 1


//------------------------------------
Function CentTitCol(cTituCol,nColSize)
Return Space( nColSize-Len(alltrim(cTituCol)) ) + Alltrim(cTituCol)
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: OTRAS PREGUNTAS DE REPORT

Postby joseluisysturiz » Tue Oct 28, 2008 5:50 pm

FranciscoA wrote:Intenta asi, a ver que te resulta: (es una salida rápida)

COLUMN TITLE CentTitCol("NOMBRE DE LA CUENTA",45) ;
DATA CDIARIO->NOMBRE ;
SIZE 45;
GRID 1


//------------------------------------
Function CentTitCol(cTituCol,nColSize)
Return Space( nColSize-Len(alltrim(cTituCol)) ) + Alltrim(cTituCol)

Franciso, esto seria como para que.....?
no tengo problema con las COLUMN, lo que preguntaba era sobre los HEADER mira mi pregunta,,,solo si se puede hacer algo...

1. se puede poner la lineas de HEADER el la posicion que se quiera sin usar +space(n), es decir darle un nRow, nCol...?

asi es una lata.....

HEADER "NOMBRE"+SPACE(150)+"REGISTRO"+SPACE(150)+"PERIODO"
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: OTRAS PREGUNTAS DE REPORT

Postby FranciscoA » Tue Oct 28, 2008 6:19 pm

joseluisysturiz wrote:
FranciscoA wrote:Intenta asi, a ver que te resulta: (es una salida rápida)

COLUMN TITLE CentTitCol("NOMBRE DE LA CUENTA",45) ;
DATA CDIARIO->NOMBRE ;
SIZE 45;
GRID 1


//------------------------------------
Function CentTitCol(cTituCol,nColSize)
Return Space( nColSize-Len(alltrim(cTituCol)) ) + Alltrim(cTituCol)

Franciso, esto seria como para que.....?
no tengo problema con las COLUMN, lo que preguntaba era sobre los HEADER mira mi pregunta,,,solo si se puede hacer algo...

1. se puede poner la lineas de HEADER el la posicion que se quiera sin usar +space(n), es decir darle un nRow, nCol...?

asi es una lata.....

HEADER "NOMBRE"+SPACE(150)+"REGISTRO"+SPACE(150)+"PERIODO"


Hasta donde sé, el TITLE y/o HEADER de tReport, solo pueden colocarse a la izquierda, centro o derecha: RIGHT, CENTER, LEFT.

Quizás modificando la classe...
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: OTRAS PREGUNTAS DE REPORT

Postby joseluisysturiz » Tue Oct 28, 2008 6:33 pm

FranciscoA wrote:
joseluisysturiz wrote:
FranciscoA wrote:Intenta asi, a ver que te resulta: (es una salida rápida)

COLUMN TITLE CentTitCol("NOMBRE DE LA CUENTA",45) ;
DATA CDIARIO->NOMBRE ;
SIZE 45;
GRID 1


//------------------------------------
Function CentTitCol(cTituCol,nColSize)
Return Space( nColSize-Len(alltrim(cTituCol)) ) + Alltrim(cTituCol)

Franciso, esto seria como para que.....?
no tengo problema con las COLUMN, lo que preguntaba era sobre los HEADER mira mi pregunta,,,solo si se puede hacer algo...

1. se puede poner la lineas de HEADER el la posicion que se quiera sin usar +space(n), es decir darle un nRow, nCol...?

asi es una lata.....

HEADER "NOMBRE"+SPACE(150)+"REGISTRO"+SPACE(150)+"PERIODO"


Hasta donde sé, el TITLE y/o HEADER de tReport, solo pueden colocarse a la izquierda, centro o derecha: RIGHT, CENTER, LEFT.

Quizás modificando la classe...

Ok Francisco, muchas gracias...
esperaba se pudiese hacer algo como...

oRpt:oHeader(n):SAY( 1,"Total Ventas" )

siendo (n) el numero de la linea del oHeader...bueno....luego probare con otra clase, esto de poner Hearder a punta d calculo es un LATA...pero esta casi listo el REPORTE gracias a vuestros aportes y sugerencias....feliz dia a todos...saludos.. :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby FranciscoA » Tue Oct 28, 2008 6:33 pm

TReport tiene el methodo Say(). Yo nunca lo he usado directamente.

TReport:Say( nCol, xText, nFont, nPad, nRow )

Recuerda que tambien tienes la clase TPrinter
Saludos.
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby joseluisysturiz » Tue Oct 28, 2008 7:12 pm

FranciscoA wrote:TReport tiene el methodo Say(). Yo nunca lo he usado directamente.

TReport:Say( nCol, xText, nFont, nPad, nRow )

Recuerda que tambien tienes la clase TPrinter
Saludos.

Ya probare TPrinter....por ahora termino este report...luego revisare las demas clases de impresion.....gracias por la ayuda.... como vas con xBrowse.-..?...respondeme si quieres a mi privado de yaho...
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby joseluisysturiz » Tue Oct 28, 2008 11:30 pm

Srs,
iba todo bien hasta que no se que invente...ahora tengo este error de repente

Application
===========
Path and name: C:\SISINGE\PRUEBASX\PRUEBA.Exe (32 bits)
Size: 508,928 bytes
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 28/10/2008, 18:43:25
Error description: Error BASE/1004 Class: 'NIL' has no exported method: NEW
Args:
[ 1] = U
[ 2] = N 10

Stack Calls
===========
Called from: => NEW(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => DATOSFIN(118)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => (b)MAIN(108)
Called from: .\source\classes\REPORT.PRG => TREPORT:ENDPAGE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:END(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:PLAY(0)
Called from: .\source\classes\REPORT.PRG => (b)TREPORT:ACTIVATE(0)
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG(0)
Called from: => TDIALOG:DISPLAY(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => MAIN(110)

agregue esto nuevo...y ahora da el error anterior....

intente usar, oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
y nVentas siempre me da 0, nose si es que lo estoy usando en el lugar equivocado, lo hacia para calcular totales y colocarlos al final de reporte... gracias por su atencion y ayuda... :shock:

lineas del reporte:


oRpt:CellView() // COLOCA COLUMNAS DENTRO DE CELDAS TIPO HOJA EXCEL
oRpt:oDevice:lPrvModal := .T. // NI IDEA PARA QUE SIRVE

*oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
*msginfo(cValToChar(nVentas))

oRpt:bPostEnd :={|| DatosFin( oRpt, oDbf ) }

ACTIVATE REPORT oRpt

USE

return nil

FUNCTION datosfin( oRpt, oDbf )

local nTotales := Array{10}

&(oDbf)->( dbgotop() )

SUM total TO nTotales[1]
* SUM exento TO nTotales[2]
* SUM base TO nTotales[3]
* SUM iva TO nTotales[4]
* SUM ivaret TO nTotales[5]
* SUM exento TO nTotales[6]

oRpt:lGrid := .F. // DESACTIVA LAS CELDAS DE LOS REGISTRO TIPO EXCEL

oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + STR( Transform(nTotales[1],"999,999.99") ) ,,PAD_RIGHT, )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas en Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas solo Alicuota Reducida" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota Reducida" )

RETURN NIL
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby FranciscoA » Wed Oct 29, 2008 12:42 am

joseluisysturiz wrote:Srs,
iba todo bien hasta que no se que invente...ahora tengo este error de repente

Application
===========
Path and name: C:\SISINGE\PRUEBASX\PRUEBA.Exe (32 bits)
Size: 508,928 bytes
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 28/10/2008, 18:43:25
Error description: Error BASE/1004 Class: 'NIL' has no exported method: NEW
Args:
[ 1] = U
[ 2] = N 10

Stack Calls
===========
Called from: => NEW(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => DATOSFIN(118)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => (b)MAIN(108)
Called from: .\source\classes\REPORT.PRG => TREPORT:ENDPAGE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:END(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:PLAY(0)
Called from: .\source\classes\REPORT.PRG => (b)TREPORT:ACTIVATE(0)
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG(0)
Called from: => TDIALOG:DISPLAY(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => MAIN(110)

agregue esto nuevo...y ahora da el error anterior....

intente usar, oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
y nVentas siempre me da 0, nose si es que lo estoy usando en el lugar equivocado, lo hacia para calcular totales y colocarlos al final de reporte... gracias por su atencion y ayuda... :shock:

lineas del reporte:


oRpt:CellView() // COLOCA COLUMNAS DENTRO DE CELDAS TIPO HOJA EXCEL
oRpt:oDevice:lPrvModal := .T. // NI IDEA PARA QUE SIRVE

*oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
*msginfo(cValToChar(nVentas))

oRpt:bPostEnd :={|| DatosFin( oRpt, oDbf ) }

ACTIVATE REPORT oRpt

USE

return nil

FUNCTION datosfin( oRpt, oDbf )

local nTotales := Array{10}

&(oDbf)->( dbgotop() )

SUM total TO nTotales[1]
* SUM exento TO nTotales[2]
* SUM base TO nTotales[3]
* SUM iva TO nTotales[4]
* SUM ivaret TO nTotales[5]
* SUM exento TO nTotales[6]

oRpt:lGrid := .F. // DESACTIVA LAS CELDAS DE LOS REGISTRO TIPO EXCEL

oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + STR( Transform(nTotales[1],"999,999.99") ) ,,PAD_RIGHT, )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas en Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas solo Alicuota Reducida" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota Reducida" )

RETURN NIL


Aqui existe una contradicción. Estas usando STR(.. y TRANSFORM(... a la vez.
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + STR( Transform(nTotales[1],"999,999.99") ) ,,PAD_RIGHT, )

Prueba asi:
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + Transform(nTotales[1],"999,999.99") ,,PAD_RIGHT, )


Si deseas alinear los valores, debes utilizar otra columna, como en este ejemplo. (para el texto, uso col 1, para los valores, la col 2)
oReport:Say(1, "Valor Productos Malos",,PAD_LEFT, )
oReport:Say(2, Transform(nMalo,"999,999.99") ,,PAD_RIGHT,)

Saludos
Francisco
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby joseluisysturiz » Wed Oct 29, 2008 2:06 am

FranciscoA wrote:
joseluisysturiz wrote:Srs,
iba todo bien hasta que no se que invente...ahora tengo este error de repente

Application
===========
Path and name: C:\SISINGE\PRUEBASX\PRUEBA.Exe (32 bits)
Size: 508,928 bytes
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 28/10/2008, 18:43:25
Error description: Error BASE/1004 Class: 'NIL' has no exported method: NEW
Args:
[ 1] = U
[ 2] = N 10

Stack Calls
===========
Called from: => NEW(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => DATOSFIN(118)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => (b)MAIN(108)
Called from: .\source\classes\REPORT.PRG => TREPORT:ENDPAGE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:END(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:PLAY(0)
Called from: .\source\classes\REPORT.PRG => (b)TREPORT:ACTIVATE(0)
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG(0)
Called from: => TDIALOG:DISPLAY(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => MAIN(110)

agregue esto nuevo...y ahora da el error anterior....

intente usar, oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
y nVentas siempre me da 0, nose si es que lo estoy usando en el lugar equivocado, lo hacia para calcular totales y colocarlos al final de reporte... gracias por su atencion y ayuda... :shock:

lineas del reporte:


oRpt:CellView() // COLOCA COLUMNAS DENTRO DE CELDAS TIPO HOJA EXCEL
oRpt:oDevice:lPrvModal := .T. // NI IDEA PARA QUE SIRVE

*oRpt:bStartRecord := {|| nVentas+= &(oDbf)->total }
*msginfo(cValToChar(nVentas))

oRpt:bPostEnd :={|| DatosFin( oRpt, oDbf ) }

ACTIVATE REPORT oRpt

USE

return nil

FUNCTION datosfin( oRpt, oDbf )

local nTotales := Array{10}

&(oDbf)->( dbgotop() )

SUM total TO nTotales[1]
* SUM exento TO nTotales[2]
* SUM base TO nTotales[3]
* SUM iva TO nTotales[4]
* SUM ivaret TO nTotales[5]
* SUM exento TO nTotales[6]

oRpt:lGrid := .F. // DESACTIVA LAS CELDAS DE LOS REGISTRO TIPO EXCEL

oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + STR( Transform(nTotales[1],"999,999.99") ) ,,PAD_RIGHT, )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas en Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Exportacion Afectadas solo Alicuota Reducida" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota General+Adicional" )
oRpt:NewLine()
oRpt:SAY( 1,"Total Ventas Internas Afectadas solo Alicuota Reducida" )

RETURN NIL


Aqui existe una contradicción. Estas usando STR(.. y TRANSFORM(... a la vez.
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + STR( Transform(nTotales[1],"999,999.99") ) ,,PAD_RIGHT, )

Prueba asi:
oRpt:SAY( 1,"Total Ventas y/o Sin Derecho a Credito Fiscal: " + Transform(nTotales[1],"999,999.99") ,,PAD_RIGHT, )


Si deseas alinear los valores, debes utilizar otra columna, como en este ejemplo. (para el texto, uso col 1, para los valores, la col 2)
oReport:Say(1, "Valor Productos Malos",,PAD_LEFT, )
oReport:Say(2, Transform(nMalo,"999,999.99") ,,PAD_RIGHT,)

Saludos
Francisco

Franciso,
hice lo que me dijistes y nada.....
aun si suspendo las lineas SAY, sigue el error, solo suspendiendo la llamada a la funcion donde coloco los totales, no sale el error....esto me tiene como loco, ya que no veo el porque de dicho error....
el programa compila y todo...el informe se ejecuta...pèro cuando va hacer el PREVIEW da el erro;

Error description: Error BASE/1004 Class: 'NIL' has no exported method: NEW
Args:
[ 1] = U
[ 2] = N 10

Stack Calls
===========
Called from: => NEW(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => DATOSFIN(118)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => (b)MAIN(108)
Called from: .\source\classes\REPORT.PRG => TREPORT:ENDPAGE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:END(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:PLAY(0)
Called from: .\source\classes\REPORT.PRG => (b)TREPORT:ACTIVATE(0)
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG(0)
Called from: => TDIALOG:DISPLAY(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE(0)
Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => MAIN(110)
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby FranciscoA » Wed Oct 29, 2008 2:17 am

Prueba a cambiar esto...
local nTotales := Array{10}

por esto:
local nTotales := Array(10)

O si no, declaralo asi:
local nTotales := {0,0,0,0,0,0,0,0,0,0} //si es que solo se van a manejar valores numericos.

Si el erro continua, muestra solo el codigo de la fila que indica el mensaje.
Ej: Called from: C:\SISINGE\PRUEBASX\REPORT.PRG => DATOSFIN(118)

Saludos.
Francisco
User avatar
FranciscoA
 
Posts: 2114
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 79 guests