MyRpt


Puedes descargar MyRpt en ZIP aquí , son solo el prg y la dll en castellano.

Librería libre para uso con FWH. El proyecto original es de Carles Aubia Floresvi y solo pide que se respete el autor dentro de los creditos de cualquier aplicación.

Existen versiones en varios idiomas de MyRpt.dll, de momento la incluida en esta versión solo es en castellano.

Modificaciones hechas al proyecto original por Sebastián Almirón:

Para utilizarlo, solo debemos incorporar el prg a nuestra app y dejar la dll en la carpeta del ejecutable.

Para llamar al modo diseño tenemos dos opciones:

Llamarlo en modo completo, es decir que el usuario genere un nuevo fichero rpt: orpt := MyRpt():New(,,,,,oIcon1)  //oIcon1 es opcional para sustituir el icono de myrpt
oRpt:cTitle := 'MyApp - Nuevo formato de documento'
orpt:Activate()
oRpt:oForm:InitForm( )
oRpt:oMdi:cCaption := 'MyApp- ' + oRpt:oForm:cFormName
oRpt:cTitle := 'MyApp - ' + oRpt:oForm:cFormName
oRpt:oMdi:Refresh()
Llamarlo en modo restringido, es decir que el usuario pueda modificar el formato del documento, pero no crearlo nuevo ni quitar ciertos datos orpt := MyRpt():New(ruta\Factura.rpt',"Diseño de Factura de MyApp",'MyApp',.t.,cimpresora, oIcon1)
orpt:Activate()
orpt:afixed :{'NOMBRE_CLIENTE','CIF/NIF_CLIENTE'}
 

Para imprimir, por ejemplo si tenemos diseñado factura.rpt:

o := MyRpt():New('ruta/Factura.rpt',"Factura",'MyApp',.t.,cimpresora)
oRpt := o:Run()
oRpt:lPreview := .t. //Si quereis Preview
oRpt:Activate()

   oRpt:bHeader := {|| Cabefact(oRpt) } 
   oRpt:bFooter := {|| Piefact(oRpt) }
   oRpt:Activate()

     //utilizar el método data para poner los datos en los Items: 

        For nI = 1 to len(oPrt:oReport:aitems)
              oitem := oRpt:oReport:aitems[nI] //Item actual
              do case
                   case oitem:cID = 'NUMERO_FACTURA'
                          oRpt:Data('NUMERO_FACTURA', cnumanio)
                  case oitem:cID = 'NOMBRE_CLIENTE'
                         oRpt:data('NOMBRE_CLIENTE',cnombre')
                  ....

            endcase 
        Next nI 

oRpt:End()
o := nil

Si tenéis dificultad para su uso, lo podemos comentar el el foro.