6

The LA Fox Developer Newsletter
VFUG’s Hot Tips (Con't from page 5)

foxpro desktop). NO T E This exampie previews tne
5Odbcpro and 5Odbc reports found in the filespec directory * of
VFP5 * * * NOTE: This is for use in .EXEs * - in APP or
PRJ modes you will see the VFP desktop flashing * (when it is
made visible))

IoForm1 = createobject("MainForm")
loFormi .show()
read events
return


classes defined for this example *******
define class cmdQuit as commandbutton
Height = 27
Width = 84
Caption = “Quit”
Name = “cmdQuit”
PROCEDURE Click
*
a simple quit button for the purpose of this demonstration
clear events
release thisform
ENDPROC

enddefine

define class cmdReportPreview as commandbutton
Height = 27
Width = 110
Caption = “View Report”
Name = “cmdReportPreview”
cReportName="ReportName"
cReportCaption=”Report Preview”

PROCEDURE Click
if type(”thisform.llPreviewForm”)”L”

thisform.PrintPreview(this.cReportName,this.cReportCaption)
endif
ENDPROC

enddefine


DEFINE CLASS mainform as RPForm

Top = 2
Left = 23
Height = 390
Width = 549
Name = “MAINFORM”

ADD OBJECT TestQuit AS cmdQuit WiTH;
Top = 12,;
Left = 456

ADD OBJECT Previ AS cmdReportPreview WITH;
Top = 12,;
Left = 50,;
Caption= “View Reporti”,
cReportName=”5odbc”,
cReportCaption=”Preview of 50dbc report”


ADD OBJECT Prev2 AS cmdReportPreview WiTH;
Top= 12,;
Left = 200,;
Caption= “View Report2”,;
cReportName= 50dbc -
August 1997
cReportCaption=”VFP5 DBC Properties’

ENDOEFINE


the general class - can be used in any app that needs report

previews in the main app screen

DEFINE CLASS RPFORM AS form

ShowWindow = 2 && top-level form
DoCreate = .T.
Caption = “Preview Window”
MDlform = .t.
Name = “RPFORM”
llScreenVisible=.f.
IlPreviewForm.t.
loPreviewForm=.NULL.
PROCEDURE INIT()
*
make sure the screen is not visible even if we call
this from the command window
this.llScreenVisible=_screen.visible
_screen.visible.f.
this. IoPreviewFormcreateObject(”test”)
ENDPROC


PROCEDURE RELEASE()
this.loPreviewForm.release()
screen.visible~this.llScreenVisibIe
ENDPROC

Procedure PrintPreview
LPARAMETERS tcReportName,tcCaption
local
lnOldTop,lnOldLeft,llVisible,lcWindowName,lcScreencaption,loForm2
if type(”tcReportName”)=”U”
return .f.
endif
llVisible=_screen.visible
sc reen .vis ibi e.f.

loForm2this.loPreviewForm
if type(”tcCaption”)”C”
loForm2.caption=tcCaption
endif

*
save the old _screen values if we are calling this
from the VFP desktop
*
and move the screen out of sight
lnOldTop=_screen.top
lnOldLeft=_screen.Ieft
screen.top-1 000
screen.Ieft-1 000

*
you have to make the screen visible before moving the
preview toolbar and form
*
or else it will not transfer them correctly
lcScreencaption=_screen.caption
screen.caption=”Prepeari ng Report”
_screen.visible.t.

report preview form (tcReportName) nowait window test

activate window print in (thisform.name)

IcWindowName=left(loForm2.caption,at(”
“,loForm2.caption))
loForm2.caption=”default caption”
Page 6

6