Article ID: 190069
Article Last Modified on 2/12/2007
CLEAR ALL
PUBLIC oform
LOCAL lnI
CLOSE DATA ALL
Delete file table_1.dbf
CREATE TABLE table_1 (field1 C(10))
FOR lnI = 1 TO 3
INSERT INTO table_1 VALUES ('xx')
ENDFOR
Delete file report_1.fr?
CREATE REPORT report_1 FROM table_1
oform=CREATEOBJECT("TL_form")
oform.SHOW()
READ EVENTS
CLOSE TABLES
DEFINE CLASS TL_form AS FORM
BorderStyle = 3
ShowWindow = 2
AutoCenter = .T.
lIsFormUp=.F.
Width = 500
ADD OBJECT commandpreview AS COMMANDBUTTON WITH ;
TOP = 180, ;
LEFT = 210, ;
HEIGHT = 27, ;
WIDTH = 95, ;
CAPTION = "Report Preview", ;
NAME = "Commandpreview"
PROCEDURE DESTROY
Clear EVENTS
_SCREEN.VISIBLE=.T.
SET SYSMENU TO DEFAULT
ENDPROC
PROCEDURE ACTIVATE
IF !THIS.lIsFormUp
_SCREEN.VISIBLE = .f. && We wait till now to hide desktop
&& to ensure SDI form is active window.
this.lIsFormUp = .T.
ENDIF
ENDPROC
ADD object chkType as checkbox with ;
top = 20, ;
caption = 'Check to preview in window sized to form, ' ;
+ 'uncheck to maximize in top level form', ;
autosize = .t., ;
value = .T., ;
backstyle = 0, ;
left = 30
PROCEDURE commandpreview.CLICK
LOCAL foTemplate, llClosable
* Create template form
foTemplate = newobj('form')
foTemplate.Name = SYS(2015)
foTemplate.Caption = "My Report Preview Window"
foTemplate.mdiform = .T.
foTemplate.top = 0
foTemplate.left = 0
* Size template form to top level form
foTemplate.width = thisform.width - 8 && 8 is fudge for border
foTemplate.height = thisform.height ;
- 8 - sysmetric(9) && sysmetric is for TitleBar height
IF !thisform.chkType.value
KEYB '{ctrl+f10}' && Maximize the Preview Window
ENDIF
llClosable = thisform.closable
thisform.closable = .f. && Make main form not closable
REPORT FORM report_1 PREVIEW WINDOW (foTemplate.name)
thisform.closable = llClosable && Restore original setting
ENDPROC
PROC Init
DO do_menu WITH THIS,.T.,.T.
ENDPROC
ENDDEFINE
PROC do_menu && This is stripped down code from Menu Designer menu
LPARAMETERS oFormRef, getMenuName, lUniquePopups
LOCAL cMenuName, a_menupops
m.cMenuName = SYS(2015)
DIMENSION a_menupops[1]
a_menupops[1]="_mfile"
DEFINE MENU (m.cMenuName) IN (m.oFormRef.Name) BAR
DEFINE PAD _msm_file OF (m.cMenuName) PROMPT "\<File"
ON PAD _msm_file OF (m.cMenuName) ACTIVATE POPUP (a_menupops[1])
DEFINE POPUP (a_menupops[1]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[1]) PROMPT "C\<lose" ;
SKIP FOR WEXIST("My Report Preview Window")
ON SELECTION BAR 1 of (a_menupops[1]) _screen.activeform.release()
Activate MENU (m.cMenuName) NOWAIT
ENDPROC
188887 HOWTO: How to Display Print Preview in a Top-Level Form
156237 PRB: Report Designer/Preview Needs VFP Desktop to Display
Additional query words: kbDSupport kbDSE kbVFp600 kbCtrl kbContainer
Keywords: kbhowto KB190069