Ultima Hoja de Reporte, Resumen de Conceptos

119 views
Skip to first unread message

William López Jiménez

unread,
Jul 26, 2017, 8:59:26 PM7/26/17
to Comunidad de Visual Foxpro en Español
Estimado recurro a su conocimientos para este detalle que tengo.

Tengo una Tabla llamada Conceptos, como su nombre lo dice, tengo diferentes concepto que me gustaría poner en la ultima hoja de mi reporte, ya pude ponerlo en la ultima hoja del reporte. Quiero algo así, este es un ejemplo de como muestra un reporte en la Banda Detail ..

CLIENTE        CONCEPTO         COSTO
A0001                 RENTA                300
A0002                RENTA                 300
A0006               ADICIONAL         100
A0035               COMBO                200
..
.
.
---------
Las palabras RENTA, ADICIONAL, COMBO están dentro de la Tabla "Conceptos", asi como otras palabras mas..
Ahora use la Banda Summary para que a lo ultimo de mi reporte tuviera una especie de resumen de estos resultados, por ejemplo algo como ,,,

CANTIDAD    TOTAL     CONCEPTO
2                       600                RENTA
1                      100                 ADICIONAL
1                      200                COMBO

---------
Me podrían dar alguna luz de cómo podría hacer estos cálculos en mi reporte?
Agradezco de antemano !

Saludos !!..

Víctor Hugo Espínola Domínguez

unread,
Jul 26, 2017, 9:47:43 PM7/26/17
to publice...@googlegroups.com
El report lo generas desde un cursor o tablas relacionadas?

Saludos,
Víctor.
Lambaré - Paraguay.

I.S.C. William

unread,
Jul 26, 2017, 9:54:02 PM7/26/17
to publice...@googlegroups.com
En el formulario tengo una consulta en SQL:

lcCadena=""
lcCadena="SELECT COUNT(concepto),nombre FROM cabfolios JOIN conceptos on conceptos.id=cabfolios.concepto"
lcCadena=lcCadena+" WHERE  fecha BETWEEN {"+dtoc(VINICIO)+"} .AND. {"+dtoc(VFIN)+"} .AND. cabfolios.empresa_id ="+str(VAREMPRESA)
lcCadena=lcCadena+" GROUP BY concepto"
SQLEXEC(nHandle,lcCadena,"gridconceptos")
select gridconceptos

y mando a visualizar el reporte:

REPORT FORM imprimereportedia.frx PREVIEW NOCONSOLE

Asi me sale la lista de lo que mencioné.

Lo que busco es que a lo ulitmo de mi reporte aparezca un resumen, por ejemplo en mi caso La cantidad total de RENTAS, las de ADICIONALES , COMBO , etc..




El 26 de julio de 2017, 20:47, Víctor Hugo Espínola Domínguez <vich...@gmail.com> escribió:
El report lo generas desde un cursor o tablas relacionadas?

Saludos,
Víctor.
Lambaré - Paraguay.


El 26 de julio de 2017, 20:59, William López Jiménez<william.koalasoft@gmail.com> escribió:
Estimado recurro a su conocimientos para este detalle que tengo.

Tengo una Tabla llamada Conceptos, como su nombre lo dice, tengo diferentes concepto que me gustaría poner en la ultima hoja de mi reporte, ya pude ponerlo en la ultima hoja del reporte. Quiero algo así, este es un ejemplo de como muestra un reporte en la Banda Detail ..

CLIENTE        CONCEPTO         COSTO
A0001                 RENTA                300
A0002                RENTA                 300
A0006               ADICIONAL         100
A0035               COMBO                200
..
.
.
---------
Las palabras RENTA, ADICIONAL, COMBO están dentro de la Tabla "Conceptos", asi como otras palabras mas..
Ahora use la Banda Summary para que a lo ultimo de mi reporte tuviera una especie de resumen de estos resultados, por ejemplo algo como ,,,

CANTIDAD    TOTAL     CONCEPTO
2                       600                RENTA
1                      100                 ADICIONAL
1                      200                COMBO

---------
Me podrían dar alguna luz de cómo podría hacer estos cálculos en mi reporte?
Agradezco de antemano !

Saludos !!..




--

Atte.

ISC. William López Jiménez

Ingeniero en Sistemas

Computacionales

User Linux: 379636

Twitter: @koalasoft

MSN: isc.wlj[a]hotmail.com

LinkedIn: http://linkd.in/Q2U6q7

Web: http://koalasoft.wordpress.com


P Salva un Árbol... Por favor, no imprimas este em@il a menos que sea necesario.

AVISO DE CONFIDENCIALIDAD

Este correo electrónico es confidencial y para ser leído y utilizado exclusivamente por la(s) persona(s) a quien(es) se dirige. Si el lector de esta transmisión electrónica no es el destinatario, se le notifica que cualquier distribución o copia de la misma está estrictamente prohibida. Si ha recibido este correo por error le suplicamos notificar inmediatamente a la persona que lo envió y borrarlo definitivamente de su sistema.


CONFIDENTIALITY NOTICE

This electronic mail transmission is confidential, may be privileged and should be read or retained only by the intended recipient. If the reader of this transmission is not the intended recipient, you are hereby notified that any distribution or copying hereof is strictly prohibited. If you have received this transmission in error, please immediately notify the sender and delete it from your system.

Víctor Hugo Espínola Domínguez

unread,
Jul 26, 2017, 10:20:04 PM7/26/17
to publice...@googlegroups.com
En esa consulta no estás calculando TOTAL y solo genera el cursor para el resumen final, mi pregunta es sobre el cursor de los detalles.

Saludos,
Víctor.
Lambaré - Paraguay.


Víctor Hugo Espínola Domínguez

unread,
Jul 26, 2017, 10:21:36 PM7/26/17
to publice...@googlegroups.com
Creo que lo más fácil en tu caso es crear otro reporte con los datos del resumen y unir ambos reportes en uno solo.

Saludos,
Víctor.
Lambaré - Paraguay.


El 26 de julio de 2017, 22:19, Víctor Hugo Espínola Domínguez<vich...@gmail.com> escribió:
En esa consulta no estás calculando TOTAL y solo genera el cursor para el resumen final, mi pregunta es sobre el cursor de los detalles.

Saludos,
Víctor.
Lambaré - Paraguay.


Víctor Hugo Espínola Domínguez

unread,
Jul 26, 2017, 10:33:14 PM7/26/17
to publice...@googlegroups.com
Tu consulta es más legible así:

Local lcCadena As String

Text To m.lcCadena Noshow Textmerge Pretext 15

    Select  Count(concepto)
             , nombre
        From cabfolios
        Join conceptos
            On conceptos.Id = cabfolios.concepto
        Where fecha Between ?m.VINICIO And ?m.VFIN
            And cabfolios.empresa_id = ?m.VAREMPRESA
        Group By concepto

Endtext

SQLExec(nHandle, m.lcCadena, "gridconceptos")
Select gridconceptos


Saludos,
Víctor.
Lambaré - Paraguay.


El 26 de julio de 2017, 21:53, I.S.C. William<william....@gmail.com> escribió:

I.S.C. William

unread,
Jul 26, 2017, 10:35:05 PM7/26/17
to publice...@googlegroups.com
En si los resultados que quiero de muestran en un grid con la consulta que acabo de mostrar, lo que no se como mostrar ese resultado al final del reporte o a como mencionas en uno nuevo. Alguna idea?

Gracias 

Víctor Hugo Espínola Domínguez

unread,
Jul 26, 2017, 10:50:11 PM7/26/17
to publice...@googlegroups.com
3 ideas:

1) Como ya lo mencioné hacer otro reporte con el cursor gridconceptos y unirlo al otro report de detalles, esto es fácil si tienes VFP 9 SP2 v7423, usando Foxypreviewer

DO LOCFILE("FoxyPreviewer.App")

* To merge reports, the trick is to use the clauses
* NOPAGEEJECT NORESET

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Colors.frx") ;
        PREVIEW NOPAGEEJECT NORESET

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Wrapping.frx") ;
        PREVIEW

2) Uniendo los cursore de detalles y resumen en uno, agregando un campo Orden = 1 para detalles y 2 para el resumenm el reporte se agrupa por Orden

3) Haciendo un report multi banda de detalles, puedes ver ejemplos en https://msdn.microsoft.com/en-us/library/ms965281.aspx
 otros ejemplos:
DO Form (HOME(2) + "Solution\Europa\MultipleDetail1.scx")
DO Form (HOME(2) + "Solution\Europa\MultipleDetail2.scx")


Saludos,
Víctor.
Lambaré - Paraguay.


I.S.C. William

unread,
Jul 27, 2017, 1:41:58 PM7/27/17
to publice...@googlegroups.com
Lo estoy intentando hacer por Banda de grupos, pero tengo un detalle con una condicion IF, si me hechas la mano .. me marca error de sintaxis.

IIF(reportediacab.concepto=0,"RENTA",IIF(reportediacab.preciopagado>reportediacab.precio,"RENTA Y RECARGO","RENTA PROPORCIONAL"),reportediacab.concepto)

Gracias



El 26 de julio de 2017, 21:50, Víctor Hugo Espínola Domínguez <vich...@gmail.com> escribió:
3 ideas:

1) Como ya lo mencioné hacer otro reporte con el cursor gridconceptos y unirlo al otro report de detalles, esto es fácil si tienes VFP 9 SP2 v7423, usando Foxypreviewer

DO LOCFILE("FoxyPreviewer.App")

* To merge reports, the trick is to use the clauses
* NOPAGEEJECT NORESET

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Colors.frx") ;
        PREVIEW NOPAGEEJECT NORESET

REPORT FORM LOCFILE(_Samples + "\Solution\Reports\Wrapping.frx") ;
        PREVIEW

2) Uniendo los cursore de detalles y resumen en uno, agregando un campo Orden = 1 para detalles y 2 para el resumenm el reporte se agrupa por Orden

3) Haciendo un report multi banda de detalles, puedes ver ejemplos en https://msdn.microsoft.com/en-us/library/ms965281.aspx
 otros ejemplos:
DO Form (HOME(2) + "Solution\Europa\MultipleDetail1.scx")
DO Form (HOME(2) + "Solution\Europa\MultipleDetail2.scx")


Saludos,
Víctor.
Lambaré - Paraguay.


Víctor Hugo Espínola Domínguez

unread,
Jul 27, 2017, 2:08:40 PM7/27/17
to publice...@googlegroups.com
IIF(reportediacab.concepto=0,"RENTA",IIF(reportediacab.preciopagado>reportediacab.precio,"RENTA Y RECARGO","RENTA PROPORCIONAL"),reportediacab.concepto)

Lo resaltado en rojo sobra! Es mejor en estos casos usar la funcion ICASE.

ICASE(reportediacab.concepto = 0, "RENTA", reportediacab.preciopagado > reportediacab.precio, "RENTA Y RECARGO", reportediacab.preciopagado <= reportediacab.precio, "RENTA PROPORCIONAL", reportediacab.concepto <> 0, TRANSFORM(reportediacab.concepto), "* ERROR *")

Saludos,
Víctor.
Lambaré - Paraguay.


William López Jiménez

unread,
Jul 27, 2017, 2:23:48 PM7/27/17
to Comunidad de Visual Foxpro en Español
Gracias por tu respuesta, pero trato de poner esto en las propiedades del informe (banda Group del rerporte) en la pestaña DataGrouping => Group on:

Pero me dice que la expresión es muy larga. Es por eso que optaba por el iff.

Lo que intento hacer es que la Banga me agrupe por conceptos mi reporte, en la tabla de concepto el concepto de valor 0, que utilizo para señala que es un abono, pero hay condiciones que se deben cumplir para clasificar el tipo de abono, si es RENTA, RENTA PROPORCIONAL o RENTA Y RECARGO, por eso la expresión que necesito es la siguiente.

IIF(reportediacab.concepto=0,IIF(reportediacab.preciopagado=reportediacab.precio .or. reportediacab.preciopagado=0,"RENTA",IIF(reportediacab.preciopagado>reportediacab.precio,"RENTA Y RECARGO","RENTA PROPORCIONAL")),reportediacab.concepto)

Pero no me los esta ordenando como tal osea un grupo de RENTA otra de RENTA RECARGO y OTRA de RENTA PROPORCIONAL

Todo esto lo estoy haciendo en el reporteador, en la Banda Grouping

Espero haberme explicado mejor...


Víctor Hugo Espínola Domínguez

unread,
Jul 27, 2017, 2:50:24 PM7/27/17
to publice...@googlegroups.com
IIF(reportediacab.concepto=0,IIF(reportediacab.preciopagado=reportediacab.precio .or. reportediacab.preciopagado=0,"RENTA",IIF(reportediacab.preciopagado>reportediacab.precio,"RENTA Y RECARGO","RENTA PROPORCIONAL")),reportediacab.concepto)

Esta expresión no tiene error de singtaxis, pero puede tener como resultado una de tres cadenas o un valor nuérico entero, eso se soluciona reemplazando ")),reportediacab.concepto" por ")), Tansform(reportediacab.concepto)"

Lo correcto es que esa expresión la uses en el código de generación del cursor guardandolo en un campo, por ejemplo "Grupo", y en el reporte en Data grouping pones cursor.Grupo


Saludos,
Víctor.
Lambaré - Paraguay.


Reply all
Reply to author
Forward
0 new messages