Page 1 of 1

Ayuda con crystalreport

Posted: Sun Oct 25, 2020 1:12 am
by JoseAlvarez
Saludos amigos del foro.

Quiero aprender a generar mis reportes con crystalreport. El asunto es que no tengo la mas minima idea de como usarlo y menos de como integrarlo a mi programa FW.

Alguien puede darme una mano con los principales puntos? Que version debo usar? Donde se descarga? Donde consigo manuales que me enseñen a usarlo y sobre todo como hago para que los reportes que genere se integren a mi aplicacion.

Quedo al pendiente de su generosa ayuda al respecto. Gracias adelantadas.

Uso fw17.01, xHarbour, mariaDB, windows 10 64bits

Re: Ayuda con crystalreport

Posted: Sun Oct 25, 2020 10:41 am
by mgsoft
Hola,

Prueba EasyReport, que es de Fivetech, gratuito y el código fuente disponible:

https://bitbucket.org/fivetech/easyreport/src/master/

La parte de impresión funciona muy bien, no así el diseñador, que falla a veces al arrastrar y colocar los objetos, pero en teoría en Fivetech lo están arreglando.

Un saludo

Re: Ayuda con crystalreport

Posted: Sun Oct 25, 2020 7:52 pm
by JoseAlvarez
Gracias eduardo por la informacion y tu sugerencia.

Voy a entrarle al easyreport.

Algun sitio donde pueda descargar un manual de como usarlo y como integrarlo a mis aplicaciones? En realidad es muy importante para mi porque no tengo la mas minima idea de como hacerlo. Jamas he utilizado un generador de reportes. Hasta el dia de hoy, los hago "a pulso"

Re: Ayuda con crystalreport

Posted: Mon Oct 26, 2020 12:08 am
by leandro
Un pequeño ejemplo con dbf

Code: Select all

PROC pIPRI022()
local oReport,Pagina:=nLinea := 1
local vTCRCos:=0,vTCRSal:=0,vTCRPub:=0,vTCRTot:=0
local vTentra:=0,vTsalid:=0,vTsaldo:=0
uFec:=dtoc(date())
uTim:=subs(time(),1,8)

vTRep:="REPORTE MOVIMIENTO DE INVENTARIO"
vTDes:="Fecha Desde:  "+dtoc(vFecDE)+" Hasta: "+dtoc(vFecHA)

SELE d_inv01
SET FILT TO
SUM d_inv01->Entra TO vTentra
SUM d_inv01->Salid TO vTsalid
Dbgotop()
vTsaldo:=vTentra-vTsalid

EASYREPORT oVRD NAME ".\report\R_INVEN02.vrd" PREVIEW (.T.) //OF oDlg2

  IF oVRD:lDialogCancel = .T.
    RETURN( .F. )
  ENDIF

  PRINTAREA 1 OF oVRD;
  ITEMIDS    {101,102,103,104,106,107,105};
  ITEMVALUES {alltrim(oLamcla:vGnom),"NIT: "+alltrim(oLamcla:vGnit),uFec,alltrim(uTim),vTRep,vTDes,Transform(Pagina,"999,999")}

  PRINTAREA 2 OF oVRD

  SELE d_inv01
  SET FILT TO
  Dbgotop()
  Do While !EOF()

      PRINTAREA 3 OF oVRD ;
      ITEMIDS { 377, 390,378,305,307,309,308} ;
      ITEMVALUES { if(d_inv01->Docum="LYM","INIC.",d_inv01->Docum),;
                   if(d_inv01->Conse="LYM","INIC.",d_inv01->Conse),;
               Dtoc(d_inv01->Fecha),;
               pDETIPDO(d_inv01->Contr),;
                   if(d_inv01->Entra#0,Transform(d_inv01->Entra,"999,999,999.99")," "),;
               Transform(d_inv01->Subto,"999,999,999.99"),;
                   if(d_inv01->Salid#0,Transform(d_inv01->Salid,"999,999,999.99")," ")}

      SELE d_inv01
      d_inv01->(DBSKIP())

    IF oVRD:nNextRow > oVRD:nPageBreak
       PAGEBREAK oVRD
       pagina:=pagina+1

       PRINTAREA 1 OF oVRD;
       ITEMIDS    {101,102,103,104,106,107,105};
       ITEMVALUES {alltrim(oLamcla:vGnom),"NIT: "+alltrim(oLamcla:vGnit),uFec,alltrim(uTim),vTRep,vTDes,Transform(Pagina,"999,999")}

       PRINTAREA 2 OF oVRD
    ENDIF

  EndDo

  PRINTAREA 4 OF oVRD ;
  ITEMIDS    {403,404,405};
  ITEMVALUES {Transform(vTentra,"999,999,999.99"),Transform(vTsalid,"999,999,999.99"),Transform(vTsaldo,"999,999,999.99")}

END EASYREPORT oVRD

 
Aun que en el repositorio que te indico Manuel, hay varios ejemplos.