martes, 11 de junio de 2019

Reportes Visual Foxpro con ShellExecute

Hoy vamos a explicar una forma distinta de poder visualizar los reportes realizados en Visual foxpro de manera diferente. Hemos visto como al ejecutar un reporte muchos utilizamos el report form nombredelreporte preview para visualizar el reporte por pantalla . El dia de hoy vamos a cambiar un poco la forma de visualizar estos reportes
utilizando otra metodología.

Como vemos, las posibilidades para trabajar los informes son cada vez se amplían notablemente en esta nueva versión y aunque quedaría mucho por lograr.



También veremos la manera de utilizar el Foxpreviewer en nuestro programa, el cual te permitirá imprimir el reporte en diferentes formas, de igual forma veremos como crear una tabla libre .

Veremos el funcionamiento del ShellExecute abriendo el reporte PDF el cual hemos creado.

En el Evento init de nuestro formulario debemos pegar lo siguiente :

PUBLIC xhasta
xhasta=DATE()

Set Safety Off
sw=0
Create Table vispre Free (i1 c(20),i2 c(20), i3 c(20),i4 c(20),i5 c(20), i6 c(20), i7 c(20), i8 c(20), i9 c(20))
Set Devi To File "temp.txt"
SELECT poliza,tip_poli,as_cedula,as_nombre,as_fecexp FROM poliza INTO table "porvencer2" WHERE as_fecexp <=xhasta
unlock
x=0
xempresa="Tu Empresa"
xrif="J-000000000-0"
xdir="Direccion de la Empresa"
@ x,1 Say "EMPRESA  : "+xempresa
X=X+1
@ x,1 Say "Rif      : "+xrif
X=X+1
@ x,1 Say "Direccion: "+xdir
X=X+1
@ x,1 Say "REPORTE DE POLIZAS X VENCER : "+"    HASTA EL DIA : "+DTOC(XHASTA)
x=x+1
@ x,1 Say "Fecha    : " +Dtoc(Date())
x=x+1
@ x,1 say REPLICATE("-",115)
x=x+1
@ x,1 Say "Poliza Tipo de Poliza            Cédula          Nombre del Cliente         Fecha de Vencimiento"
x=x+1
@ x,1 say REPLICATE("-",115)
x=x+1
Select "porvencer2.DBF"
Go Top
Do While !Eof()
@ x,1 Say poliza+" "+tip_poli+" "+as_cedula+" "+SUBSTR(as_nombre,1,32)+DTOC(as_fecexp)
x=x+1
If x>1000
Set Devi To Screen
Select "vispre"
Append From "temp.txt" Sdf
Set Devi To File "temp.txt"
x=0
Endif
Skip
Enddo
@ x,1 say REPLICATE("-",115)
x=x+1
@ x,1 say ""
X=X+1
Set Devi To Screen
Select "vispre"
Append From "temp.txt" Sdf
Thisform.grid1.RecordSource="vispre"
Thisform.Refresh
Thisform.grid1.column1.text1.SetFocus

En el evento Keypress del formulario deberás colocar lo siguiente :

Lparameters nKeyCode, nShiftAltCtrl
If nKeyCode=27
Thisform.Release
Endif
If nKeyCode=-1
Thisform.check1.SetFocus
Thisform.check1.Value =1
Thisform.check1.Click
Endif

Control Check1 Evento Click

Declare Integer ShellExecute In "shell32.dll" Integer HWnd,String lpOperation,String lpFile,String lpParameters,String lpDirectory,Long nShowCmd
Create Table vispre Free (Item c(100))
Append From  "temp.txt" Sdf
Select vispre
Go Top
Set Devi To Screen
Do foxypreviewer.App
xdir_pdf="C:\Users\FamVas2\Desktop\poli"
Report Form rinforme11.frx Object Type 10 Noreset To File ALLTRIM(xdir_pdf)+'\'+'Informe'+'.PDF'
cRutaPDF = ALLTRIM(xdir_pdf)+'\'+'Informe'+'.PDF'
ShellExecute(0, "open", cRutaPDF,"", Fullpath(""),0)
llave=0
Thisform.Release

Al presionar sobre el control Check1 obtendremos el reporte el cual mostraremos en lasiguiente imagen :



En la parte principal del formulario inserta el control Grid con las siguientes características el cual debes cambiar en las propiedades.

AllowHeaderSizing   .f.
AllowRowsizing      .f.
ColumnCount         6
DeleteMark          .f.
FontName            Courier New
Forecolor           0,255,0
GridLinecolor       0,255,0
GridLines           0
Highlight           .t.
Highlightrow        .f.
PanelLink           .f.
ReadOnly            .t.
RecordMark          .f.
RecordSource        vispre.i1
RecordSourceType    0

También te puede interesar Reportes Visual Foxpro el cuales podrás observar otros detalles en nuestro Blog.



Acá les dejo el link de Descarga.



0 comentarios:

Publicar un comentario