| **Navigation:**  [[introduction.htm|Language Reference]] > 9 -  Window and Report Attributes > Window and Report Attributes >====== PREVIEW (set report output to metafiles) ====== | [[password set data non display .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[range set range limits .htm|{{btn_next_n.gif|Next page}}]] | | || **PREVIEW(**//queue//**)** {{blk2blue.jpg|blk2blue.jpg}} | **PREVIEW** | Specifies report output goes to Windows metafiles containing one report page per file. | | //queue// | The label of a QUEUE or a field in a QUEUE to receive the names of the metafiles. | The **PREVIEW** attribute (PROP:PREVIEW. write-only) on a REPORT sends the report output to Windows metafiles containing one report page per file. The PREVIEW attribute names a //queue// to receive the names of the metafiles. The filenames are temporary filenames internally created by the Clarion library and are complete file specifications (up to 64 characters, including drive and path), unless you use PROP:TempNameFunc to provide your own names for these files. The temporary files listed in the preview queue are deleted from disk when you CLOSE the REPORT. To prevent the files from being deleted from the disk, delete them from the queue. You can create a window to display the report in an IMAGE control, using the //queue// containing the file names to set the IMAGE control's {PROP:Text} property. This allows the end user to view the report before printing. A runtime-only property, {PROP:FlushPreview}, when set to ON, flushes the metafiles to the printer. **Example:** **SomeReport PROCEDURE** **WMFQue    QUEUE                          !Queue to contain .WMF filenames** **PageImage  STRING(64)** **          END** **NextEntry  BYTE(1)                       !Queue entry counter variable** **Report  REPORT,****PREVIEW****(WMFQue.PageImage) !Report with PREVIEW attribute** **DetailOne  DETAIL** **           !Report controls** **           END** **        END** **ViewReport WINDOW('View Report'),AT(0,0,320,200),MDI,MAX,HVSCROLL** **            IMAGE(''),AT(0,0,320,180),USE(?ImageField)** **            BUTTON('View Next Page'),AT(0,180,60,20),USE(?NextPage),DEFAULT** **            BUTTON('Print Report'),AT(80,180,60,20),USE(?PrintReport)** **            BUTTON('Exit Without Printing'),AT(160,180,60,20),USE(?ExitReport)** **           END** ** CODE** ** OPEN(Report)** ** SET(SomeFile)                              !Code to generate the report** ** LOOP** **  NEXT(SomeFile)** **   IF ERRORCODE() THEN BREAK.** **  PRINT(DetailOne)** ** END** ** ENDPAGE(Report)** ** OPEN(ViewReport)                           !Open report preview window** ** GET(WMFQue,NextEntry)                      !Get first queue entry** ** ?ImageField{PROP:text} = WMFQue.PageImage  !Load first report page** ** ACCEPT** **  CASE ACCEPTED()** **  OF ?NextPage** **   NextEntry += 1                           !Increment entry counter** **   IF NextEntry > RECORDS(WMFQue)           !Check for end of report** **    CYCLE** **   END** **   GET(WMFQue,NextEntry)                    !Get next queue entry** **   ?ImageField{PROP:text} = WMFQue.PageImage!Load next report page** **   DISPLAY                                  !and display it** **  OF ?PrintReport** **   Report{PROP:flushpreview} = TRUE         !Flush files to printer** **   BREAK                                    !and exit procedure** **  OF ?ExitReport** **   BREAK                                    !Exit procedure** **  END** ** END** ** CLOSE(ViewReport)                          !Close window** ** FREE(WMFQue)                               !Free the queue memory** ** CLOSE(Report)                              !Close report (deletes all .WMF files)** ** RETURN                                     !and return to caller** **See Also:** [[endpage force page overflow .htm|ENDPAGE]], [[pageno set page number print .htm|PAGENO]], [[prop nextpageno.htm|PROP:NextPageNo]]