Report
- Jairo Barbosa
- Posts: 188
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
Report
Antonio
Saludo cordial
En los Report de FWH como puedo cambiar la posición de “Total” ubicarlo en otro sitio del informe y como puedo adicionar otros valores que deriven del total.
Gracias Antonio
Jairo
Saludo cordial
En los Report de FWH como puedo cambiar la posición de “Total” ubicarlo en otro sitio del informe y como puedo adicionar otros valores que deriven del total.
Gracias Antonio
Jairo
- Jairo Barbosa
- Posts: 188
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
Re: Report
Antonio y demás integrantes del foro
Si mi pregunta no tubo respuesta les agradeceré me enseñen como se llama Easy Report desde código
Gracias de antemano
Jairo Barbosa
Si mi pregunta no tubo respuesta les agradeceré me enseñen como se llama Easy Report desde código
Gracias de antemano
Jairo Barbosa
- MauroArevalo
- Posts: 98
- Joined: Thu Jan 19, 2006 11:47 pm
- Location: Bogota DC. Colombia
- Contact:
Re: Report
Jairo:
Te pongo una parte de mi codigo para la impresión de Facturas por Computador, cada cliente tiene su propio diseño, logo, etc., y lo imprimo con esta rutina. Tienes que enlazar el VRD.PRG a tu programa y colocar el #include vrd.ch en el prg que vayas a imprimir.
Si quieres con mucho gusto conectate al ms hymplus@hotmail.com y con gusto te puedo despejar dudas.
Saludos,
Te pongo una parte de mi codigo para la impresión de Facturas por Computador, cada cliente tiene su propio diseño, logo, etc., y lo imprimo con esta rutina. Tienes que enlazar el VRD.PRG a tu programa y colocar el #include vrd.ch en el prg que vayas a imprimir.
Si quieres con mucho gusto conectate al ms hymplus@hotmail.com y con gusto te puedo despejar dudas.
Code: Select all
EASYREPORT oVRD NAME Pub:DIRLOCAL+Pub:CODEMP+"\REP\factura.vrd" PREVIEW (.T.) OF ventana
IF oVRD:lDialogCancel = .T.
RETURN( .F. )
ENDIF
PRINTAREA 1 OF oVRD ;
ITEMIDS { 101, 102, 103, 104, 170, 171, 172, 150, 181, 180, 173, 174, 175, 182, 183, 184, 185, 186, 187, 190} ;
ITEMVALUES {V101,V102,V103,V104,V170,V171,V172,V150,V181,V180,V173,V174,V175,V182,V183,V184,V185,V186,V187,V190}
PRINTAREA 2 OF oVRD
SELE (SELTEMP)
DBGOTOP()
SELE (SELTEMP)
DBGOTOP()
DO WHILE .NOT. EOF()
V330:=TRANSFORM(RECNO(),"9,999")
V320:=(SELTEMP)->HTARTICU
IF NITEMP="860534227"
V302:=ALLTRIM(SUBS((SELTEMP)->HTDETALL,1,28))+"-"+ALLTRIM((SELTEMP)->HTOBSER2)
ELSEIF NITEMP="900186800"
V302:=(SELTEMP)->HTDETALL+" "+(SELTEMP)->HTOBSER2
ELSE
V302:=ALLTRIM(SUBS((SELTEMP)->HTDETALL,1,28))
ENDIF
V303:=TRANSFORM((SELTEMP)->HTCANTID,"99999.99")
IF DOLAR=.F.
VRporiva:=(SELTEMP)->HTPORIVA
VRtotale:=(SELTEMP)->HTVRUNIT
VRpordes:=(SELTEMP)->HTPORDES
IF ((SELTEMP)->HTFORIVA=1) //*******IVA INCLUIDO*********
Divide:=((VRporiva/100)+1)
VRtota:=ROUND(VRtotale,Decimales)
VRprde:=(VRpordes/100)
Etotal:=ROUND((VRtota*VRprde),Decimales) //Valor Descuento
Vrunit:=VRtota-Etotal
VRfinal:=ROUND((Vrunit/Divide),Decimales)
V304:=TRANSFORM(VRfinal,"999,999,999")
ELSE
V304:=TRANSFORM((SELTEMP)->HTVRUNIT,"999,999,999")
ENDIF
* V304:=TRANSFORM((SELTEMP)->HTVRUNIT,"999,999,999")
V305:=TRANSFORM((SELTEMP)->HTSUBTOT,"999,999,999")
V306:=TRANSFORM((SELTEMP)->HTDESCUE,"999,999,999")
V307:=TRANSFORM((SELTEMP)->HTVRIVAS,"999,999,999")
V308:=TRANSFORM((SELTEMP)->HTVRTOTA,"999,999,999")
V309:=TRANSFORM((SELTEMP)->HTPORIVA,"999,999,999")
V310:=TRANSFORM((SELTEMP)->HTPORDES,"999,999,999")
V311:=V451:=(SELTEMP)->HTOBSER2
V312:=TRANSFORM(ROUND(((SELTEMP)->HTVRUNIT)/(((SELTEMP)->HTPORIVA/100)+1),0),"999,999,999")
V313:=TRANSFORM(((SELTEMP)->HTVRTOTA-(SELTEMP)->HTVRIVAS),"999,999,999")
ELSE
V307:=" " //No Genera IVA
V309:=" " //No Genera IVA
* V305:=" " //Subtotal no lo muestra en la factura
V306:=" " //Valor $ de Descuento no lo muestra en la factura
V311:=V451:=" " //No genera
V312:=" " //No genera
V304:=TRANSFORM((SELTEMP)->HTDOLARE,"999,999,999.99")
V310:=TRANSFORM((SELTEMP)->HTPORDES,"999,999,999.99")
SUB:=(HTCANTID*HTDOLARE)
V305:=TRANSFORM(SUB,"999,999,999.99")
DES:=ROUND( (((HTCANTID*HTDOLARE)*HTPORDES)/100),2)
TOT:=(SUB-DES)
V308:=TRANSFORM(TOT,"999,999,999.99")
V313:=TRANSFORM(TOT,"999,999,999.99")
ENDIF
IF Pub:CODEMP="LU" //PARA ILUMINATTY
V305:=TRANSFORM(((SELTEMP)->HTSUBTOT-(SELTEMP)->HTDESCUE),"999,999,999")
ENDIF
IF Pub:CODEMP="20" //PARA METALES
PRINTAREA 3 OF oVRD ITEMIDS { 330, 320, 302, 303, 304, 305, 306, 307, 308, 311};
ITEMVALUES {V330,V320,V302,V303,V304,V305,V306,V307,V308,V311}
ELSE
PRINTAREA 3 OF oVRD ITEMIDS { 330, 320, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313};
ITEMVALUES {V330,V320,V302,V303,V304,V305,V306,V307,V308,V309,V310,V311,V312,V313}
ENDIF
FACDOL:=(SELTEMP)->HTFACDOL
//TOTALES//
IF DOLAR=.F.
CANT:=CANT+HTCANTID
SUBT:=SUBT+HTSUBTOT
DEST:=DEST+HTDESCUE
IVAT:=IVAT+HTVRIVAS
VRTT:=VRTT+HTVRTOTA
ELSE
CANT:=CANT+HTCANTID
SUBT:=SUBT+SUB
DEST:=DEST+DES
IVAT:=" "
VRTT:=VRTT+TOT
ENDIF
(SELTEMP)->(DBSKIP())
IF oVRD:nNextRow > oVRD:nPageBreak
PAGEBREAK oVRD
PRINTAREA 1 OF oVRD ;
ITEMIDS { 101, 102, 103, 104, 170, 171, 172, 150, 181, 180, 173, 174, 175, 182, 183, 184, 185, 186, 187} ;
ITEMVALUES {V101,V102,V103,V104,V170,V171,V172,V150,V181,V180,V173,V174,V175,V182,V183,V184,V185,V186,V187}
PRINTAREA 2 OF oVRD
ENDIF
ENDDO
IF DOLAR=.F.
V403:=TRAN(CANT,"999,999,999")
V405:=V505:=TRAN(SUBT,"999,999,999")
V406:=TRAN(DEST,"999,999,999")
V407:=V507:=TRAN(IVAT,"999,999,999")
V408:=TRAN(VRTT,"999,999,999")
V410:=V520:=ALLTRIM(GVobs)
V411:=TRAN(GVfle,"999,999,999")
V412:=V512:=TRAN(((VRTT)-(GVret+GViva+GVica)),"999,999,999")
V413:=TRAN(GVret,"999,999,999")
V414:=TRAN(GViva,"999,999,999")
V415:=TRAN(GVica,"999,999,999")
ELSE
V403:=TRANSFORM(CANT,"999,999,999.99")
V405:=V505:=TRANSFORM(SUBT,"999,999,999.99")
V406:=TRANSFORM(DEST,"999,999,999.99")
V407:=V507:=TRANSFORM(IVAT,"999,999,999.99")
V408:=TRANSFORM(VRTT,"999,999,999.99")
V410:=V520:=ALLTRIM(GVobs)
V411:=TRAN(GVfle,"999,999,999.99")
V412:=V512:=TRAN(((VRTT)-(GVret+GViva+GVica)),"999,999,999.99")
V413:=TRAN(GVret,"999,999,999.99")
V414:=TRAN(GViva,"999,999,999.99")
V415:=TRAN(GVica,"999,999,999.99")
ENDIF
IF Pub:CODEMP="LU" //PARA ILUMINATTY
V405:=TRAN((SUBT-DEST),"999,999,999")
ENDIF
SDOTOT:=((VRTT)-(GVret+GViva+GVica))
VALORES()
V521:=V409:=CAMT
PRINTAREA 4 OF oVRD ITEMIDS { 403, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 451} ;
ITEMVALUES {V403,V405,V406,V407,V408,V409,V410,V411,V412,V413,V414,V415,V451}
PRINTAREA 5 OF oVRD ITEMIDS { 520, 521, 505, 507, 512} ;
ITEMVALUES {V520,V521,V505,V507,V512}
END EASYREPORT oVRD
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
Re: Report
Jairo:
El ejemplo de Mauro (Saludos Mauro) es perfectamente funcional, hay otra forma de usar EasyReport que da un poco de más libertad al usuario, veamos un pequeño ejemplo.
Sí, esto es todo el código necesario para imprimir el reporte, lo destacable aquí es el código oVrd:aAlias, en este código estamos pasando al objeto VRD los Alias que usamos en nuestro PRG.
Observa, también, que estoy enviando a imprimir áreas completas, ejemplo PRINTAREA 2 OF oVRD // Detail y es de suponerse que en esa área hay definidos _ de la DBF que quiero imprimir, de hecho esa área es el detalle de una factura donde hay El producto, la descripción, el precio unitario, la cantidad, el importe etc. Ahora la pregunta es ¿Cómo sabe EasyReport lo que debe imprimir?
Sencillo !, en el diseñador del reporte debemos definir las áreas y _ de cada área, en cada campo debemos definir/relacionar el nombre del campo de la DBF que queremos imprimir, déjame mostrarte una imágen.
En esta primera imágen vemos cómo esta definida el área DETAIL, observa que esta formada por 6 campos.
Esta segunda imágen es la de las propiedades del campo DESCRIPCION observa que hay un botón con una pequeña marca en color rojo (Arriba del puntero del ratón) al dar clic sobre este botón abrimos otro diálogo donde podemos escribir cualquier fórmula, en la siguiente imagén veras lo que tengo escrito.
Alias6->MOD_DES Es puro código xBase, estamos enviando a imprimir la descripción del modelo, campo tomado del Alias6 que si miras en el trozo de código al inicio del post veras que se trata de la DBF Producto.
Creo que de esta forma podras aumentar o disminuir campos al diseño de tu reporte sin necesidad de volver a compilar tu aplicación, lo que la hace más independiente del código.
Un saludo
El ejemplo de Mauro (Saludos Mauro) es perfectamente funcional, hay otra forma de usar EasyReport que da un poco de más libertad al usuario, veamos un pequeño ejemplo.
Code: Select all
// Definimos el objeto
EASYREPORT oVRD NAME (cFmto) PREVIEW (cFolNdv)->FOL_VPN ;
OF oWindow TITLE "Nota de venta "+ALLTRIM(oHdr:HDR_FAC);
COPIES (cFolNdv)->FOL_CDN
oVrd:aAlias := {(cEmpresa),; // 1
(cHdrOpe),; // 2
(cDetOpe),; // 3
(cClienta),; // 4
(cVendedor),; // 5
(cProducto)} // 6
PRINTAREA 1 OF oVrd // Header
(cDetOpe)->(DBSEEK(oHdr:HDR_OPE))
DO WHILE (cDetOpe)->(! EOF()) .AND. (cDetOpe)->DET_OPE == oHdr:HDR_OPE
PRINTAREA 2 OF oVrd // Detail
(cDetOpe)->(DBSKIP())
ENDDO
PRINTAREA 3 OF oVrd // Totals
END EASYREPORT oVRD
Observa, también, que estoy enviando a imprimir áreas completas, ejemplo PRINTAREA 2 OF oVRD // Detail y es de suponerse que en esa área hay definidos _ de la DBF que quiero imprimir, de hecho esa área es el detalle de una factura donde hay El producto, la descripción, el precio unitario, la cantidad, el importe etc. Ahora la pregunta es ¿Cómo sabe EasyReport lo que debe imprimir?
Sencillo !, en el diseñador del reporte debemos definir las áreas y _ de cada área, en cada campo debemos definir/relacionar el nombre del campo de la DBF que queremos imprimir, déjame mostrarte una imágen.
En esta primera imágen vemos cómo esta definida el área DETAIL, observa que esta formada por 6 campos.
Esta segunda imágen es la de las propiedades del campo DESCRIPCION observa que hay un botón con una pequeña marca en color rojo (Arriba del puntero del ratón) al dar clic sobre este botón abrimos otro diálogo donde podemos escribir cualquier fórmula, en la siguiente imagén veras lo que tengo escrito.
Alias6->MOD_DES Es puro código xBase, estamos enviando a imprimir la descripción del modelo, campo tomado del Alias6 que si miras en el trozo de código al inicio del post veras que se trata de la DBF Producto.
Creo que de esta forma podras aumentar o disminuir campos al diseño de tu reporte sin necesidad de volver a compilar tu aplicación, lo que la hace más independiente del código.
Un saludo
Last edited by Armando on Wed Oct 21, 2009 7:57 pm, edited 1 time in total.
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- Jairo Barbosa
- Posts: 188
- Joined: Fri Jan 23, 2009 2:50 am
- Location: Cali Valle Colombia
- Contact:
Re: Report
Mauro Armando
Muy agradecido muy claro el ejemplo lo organizare a mi necesidad y si tengo problemas seguramente les estaré solicitando ayuda.
Empleo el Report de FW y no encontré la libertad de disponer de los espacios del reporte
Cordialmente
Jairo Barbosa
Muy agradecido muy claro el ejemplo lo organizare a mi necesidad y si tengo problemas seguramente les estaré solicitando ayuda.
Empleo el Report de FW y no encontré la libertad de disponer de los espacios del reporte
Cordialmente
Jairo Barbosa
Re: Report
Hola,
Entiendo que para usar EasyReport desde FWH necesitas el modulo VRD.PRG?
En ese caso, ¿como puedo obtener ese modulo de enlace?
Saludos,
Entiendo que para usar EasyReport desde FWH necesitas el modulo VRD.PRG?
En ese caso, ¿como puedo obtener ese modulo de enlace?
Saludos,
Javier,
FWH 8.04 2008
FWH 8.04 2008
- MauroArevalo
- Posts: 98
- Joined: Thu Jan 19, 2006 11:47 pm
- Location: Bogota DC. Colombia
- Contact:
Re: Report
Javier:
En el directorio de EasyReport encuentras los prgs que necesitas para enlazar con tu sistema:
\EaseRerport\Fivewin\Source
Lor prg que necesitas son:
VRD.PRG
VRDBCODE.PRG
VRDITEM.PRG
Ademas necesitas el archivo VRD.CH que lo encuentras dentro de \EaseRerport\Fivewin\include
En tu prg donde llamas al EasyReport llamas el archivo vrd.ch Ejemplo:
Tambien puedes crear la libreria con los prgs que tienes por ejemplo EASYREPO.LIB y la enlazas con tu programa.
Saludos,
En el directorio de EasyReport encuentras los prgs que necesitas para enlazar con tu sistema:
\EaseRerport\Fivewin\Source
Lor prg que necesitas son:
VRD.PRG
VRDBCODE.PRG
VRDITEM.PRG
Ademas necesitas el archivo VRD.CH que lo encuentras dentro de \EaseRerport\Fivewin\include
En tu prg donde llamas al EasyReport llamas el archivo vrd.ch Ejemplo:
Code: Select all
#include "FiveWin.ch"
#include "vrd.ch"
#include "dtpicker.ch"
...Tú codigo
FUNC REPOFACTURA()
EASYREPORT oVRD NAME "\MIPROGRAMA\REPORTE\factura.vrd" PREVIEW (.T.) OF Dlg1
PRINTAREA 1 OF oVRD
PRINTAREA 2 OF oVRD
PRINTAREA 3 OF oVRD
PRINTAREA 4 OF oVRD
PRINTAREA 5 OF oVRD
END EASYREPORT oVRD
Saludos,
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
Bogotá DC. Colombia
FWH 19.06 xHarbour 1.2.1, Pelles C, Fivedit, Borland 7.30
http://www.hymplus.com
Tratando de retomar la programación....
-
- Posts: 257
- Joined: Wed May 16, 2007 9:40 pm
- Location: Iquique Chile
-
- Posts: 149
- Joined: Thu Jun 21, 2007 3:26 pm
Re: Report
HOLA, YO ESTOY USANDO EASY REPORT 1.7.6
COMPILO CON FIVEWIN 2.8 Y USO EL BLINKER 7.0 PARA ENLAZAR Y LOS PROGRAMAS ME FUNCIONAN PERFECTAMENTE (REPORTES). POR EJ. UN PROGRAMA QUE SE LLAMA RECI04.PRG
PERO HACE RATO QUE USO TAMBIEN FWH, Y NO PUEDO COMPILAR EL RECI04.PRG
ME DICE QUE NO ENCUENTRA LA FUNCION VRD. ¿ALGUIEN TIENE IDEA SI ES COMPATIBLE, SI CON ESA VERSION DE EASY REPORT PUEDO COMPILAR CON HAUBOUR? SI SE PUEDE, ¿TIENE IDEA DE QUE ME ESTARA FALTANDO HACER? USO FWH104. Y AHORA LO QUE HAGO ES USAR CASI TODO CON FWH, Y 5 O 6 .EXE'S CON BLINKER, PERO ME GENERA 16 BITS, CON TODOS LOS DRAMAS QUE ESTO TRAE.
MUCHAS GRACIAS.
COMPILO CON FIVEWIN 2.8 Y USO EL BLINKER 7.0 PARA ENLAZAR Y LOS PROGRAMAS ME FUNCIONAN PERFECTAMENTE (REPORTES). POR EJ. UN PROGRAMA QUE SE LLAMA RECI04.PRG
PERO HACE RATO QUE USO TAMBIEN FWH, Y NO PUEDO COMPILAR EL RECI04.PRG
ME DICE QUE NO ENCUENTRA LA FUNCION VRD. ¿ALGUIEN TIENE IDEA SI ES COMPATIBLE, SI CON ESA VERSION DE EASY REPORT PUEDO COMPILAR CON HAUBOUR? SI SE PUEDE, ¿TIENE IDEA DE QUE ME ESTARA FALTANDO HACER? USO FWH104. Y AHORA LO QUE HAGO ES USAR CASI TODO CON FWH, Y 5 O 6 .EXE'S CON BLINKER, PERO ME GENERA 16 BITS, CON TODOS LOS DRAMAS QUE ESTO TRAE.
MUCHAS GRACIAS.