TOTAL en Report
Publicado: Jue Ago 23, 2007 8:21 pm
Hola
En un reporte, deseo especificar que se totalicen ciertas columnas con valores numéricos, lo hago alterando la propiedad oRep:lTotal := .T. lo hago de esta manera ya que las columnas las defino:
NOTA: <::aColumnas1> y <::aColumnas2> contienen las definiciones de cada propiedad de las columnas
METHOD RepToPrint(aTitulo, lToExcel) CLASS tFrmRepMovsCont
REPORT oRep;
PREVIEW MODAL;
FONT oFntNormal, oFntBld, oFnt2Bld;
HEADER SetIni("Escuela"), TimeRep(), " " ALIGN taRIGHT;
JOBNAME ::cName;
TITLE "Movimientos Contables", " ", " ", " ", " ", " " // Máximo de líneas a ocupar en el título del reporte
// mas abajo se sobreescribe con :oTitle:aLine := <aTitulo>
// El array <aTitulo> no puede ser mas grande de lo especificado
// en TITLE ya que si no truena.
FOR nColumna := 1 TO LEN(::aColumnas1)
IF !::aColumnas1[nColumna, REP_IMPRIMIR]
LOOP
ENDIF
WITH OBJECT oRep:AddColumn()
:aTitle := ::aColumnas2[nColumna, REP_TITLES]
:aData :={::aColumnas2[nColumna, REP_DATA]}
:nCharSize := ::aColumnas1[nColumna, REP_SIZE]
:aPicture :={::aColumnas1[nColumna, REP_PICTURE]}
:nDataFont := ::aColumnas1[nColumna, REP_FONT, 2]
:nTitleFont:= ::aColumnas1[nColumna, REP_FONT, 1]
:nAlignment:= ::aColumnas1[nColumna, REP_ALIGN]
// Si se omite :lTotal el reporte funciona perfectamente...
:lTotal := ::aColumnas1[nColumna, REP_TOTAL] // TRUENA CON ERROR: Subsistema: BASE
// Código de error: 1081
// Estado: .F.
// Descripción: Error de argumento
// Operación: +
// Argumentos: [ 1] = Tipo: U Valor: NIL [ 2] = Tipo: N Valor: 0.00
:nClrText := ::oLblFuente:nClrText
END WITH
NEXT
GROUP OF oRep ON FIELD->CtaConta HEADER FIELD->CtaConta + " " + AllTrim(FIELD->Nombre);
FOOTER "Subtotal (" + StrTrim(oRep:aGroups[1]:nCounter) + " movimientos)";
FONT 2
WITH OBJECT oRep
:oTitle:aFonts[1] := 3
:oTitle:aFonts[2] := 1
:oTitle:aFonts[3] := 2
:nGridStyle:= IF(::oChkLineas:lChecked, rgVERTICAL, rgNONE)
IF ::oChkPautado:lChecked
:nClrLined := RGB(230, 230, 230)
ENDIF
:oTitle:aLine := aTitulo // Se sobreescribe el Título del reporte con los pasados en <aTitulo>
END WITH
IF lToExcel
oRep:ToExcel(::cArchivo)
ELSE
oRep:oFooter:aLine := {{||Application:cTitle + " - Página: " + StrTrim(oRep:nPage)}}
oRep:oFooter:aAlignment := { taCENTER }
RUN REPORT oRep ON STARTPAGE RepLogo(oRep, oImgLogo)
ENDIF
oFntNormal:Destroy()
oFntBld:Destroy()
oFnt2Bld:Destroy()
oImgLogo:Destroy()
RETURN NIL
Que estoy haciendo mal?
SALUDOS!!
Israel
--
En un reporte, deseo especificar que se totalicen ciertas columnas con valores numéricos, lo hago alterando la propiedad oRep:lTotal := .T. lo hago de esta manera ya que las columnas las defino:
NOTA: <::aColumnas1> y <::aColumnas2> contienen las definiciones de cada propiedad de las columnas
METHOD RepToPrint(aTitulo, lToExcel) CLASS tFrmRepMovsCont
REPORT oRep;
PREVIEW MODAL;
FONT oFntNormal, oFntBld, oFnt2Bld;
HEADER SetIni("Escuela"), TimeRep(), " " ALIGN taRIGHT;
JOBNAME ::cName;
TITLE "Movimientos Contables", " ", " ", " ", " ", " " // Máximo de líneas a ocupar en el título del reporte
// mas abajo se sobreescribe con :oTitle:aLine := <aTitulo>
// El array <aTitulo> no puede ser mas grande de lo especificado
// en TITLE ya que si no truena.
FOR nColumna := 1 TO LEN(::aColumnas1)
IF !::aColumnas1[nColumna, REP_IMPRIMIR]
LOOP
ENDIF
WITH OBJECT oRep:AddColumn()
:aTitle := ::aColumnas2[nColumna, REP_TITLES]
:aData :={::aColumnas2[nColumna, REP_DATA]}
:nCharSize := ::aColumnas1[nColumna, REP_SIZE]
:aPicture :={::aColumnas1[nColumna, REP_PICTURE]}
:nDataFont := ::aColumnas1[nColumna, REP_FONT, 2]
:nTitleFont:= ::aColumnas1[nColumna, REP_FONT, 1]
:nAlignment:= ::aColumnas1[nColumna, REP_ALIGN]
// Si se omite :lTotal el reporte funciona perfectamente...
:lTotal := ::aColumnas1[nColumna, REP_TOTAL] // TRUENA CON ERROR: Subsistema: BASE
// Código de error: 1081
// Estado: .F.
// Descripción: Error de argumento
// Operación: +
// Argumentos: [ 1] = Tipo: U Valor: NIL [ 2] = Tipo: N Valor: 0.00
:nClrText := ::oLblFuente:nClrText
END WITH
NEXT
GROUP OF oRep ON FIELD->CtaConta HEADER FIELD->CtaConta + " " + AllTrim(FIELD->Nombre);
FOOTER "Subtotal (" + StrTrim(oRep:aGroups[1]:nCounter) + " movimientos)";
FONT 2
WITH OBJECT oRep
:oTitle:aFonts[1] := 3
:oTitle:aFonts[2] := 1
:oTitle:aFonts[3] := 2
:nGridStyle:= IF(::oChkLineas:lChecked, rgVERTICAL, rgNONE)
IF ::oChkPautado:lChecked
:nClrLined := RGB(230, 230, 230)
ENDIF
:oTitle:aLine := aTitulo // Se sobreescribe el Título del reporte con los pasados en <aTitulo>
END WITH
IF lToExcel
oRep:ToExcel(::cArchivo)
ELSE
oRep:oFooter:aLine := {{||Application:cTitle + " - Página: " + StrTrim(oRep:nPage)}}
oRep:oFooter:aAlignment := { taCENTER }
RUN REPORT oRep ON STARTPAGE RepLogo(oRep, oImgLogo)
ENDIF
oFntNormal:Destroy()
oFntBld:Destroy()
oFnt2Bld:Destroy()
oImgLogo:Destroy()
RETURN NIL
Que estoy haciendo mal?
SALUDOS!!
Israel
--