CodePlex FoxyPreviewer downloads page
Export your reports to Images, RTF, PDF, HTML or XLS super easy! Send them by email! Enhance the look of your previews!
*** v1.73 - UPDATED 2010-07-27***
- Updated the Localizations table with the Spanish, Czech, Turkish and Arabic translations, Juan Antonio Santana and Rick Castro, Martin Krivka, Soykan Ozcelik and Dany Eid
- Fix: FoxyPreviewerCaller.Prg adapted to work with the new settings possibilities.
*** v1.72 - UPDATED 2010-07-26***
- updated the Localizations table with the German and Indonesian translations, thanks to Stefan Wuebbe and Samir H.
- Fix: the toolbar will be disabled when the Settings form will be called
- Fix: in the language assignment at initialization
*** v1.71 - UPDATED 2010-07-24***
- Updated the Localizations table in order to update the new settings form
- New property: nButtonSize - Numeric, 1 = Small - 16x16 pixels (default), 2 = Big - 32x32 pixels
*** v1.70 - UPDATED 2010-07-22***
- Fix: ExcelListener was raising an error when the report used the _PAGETOTAL variable
- Fix: When the Miniatures form was minimized the miniaturesdid not show
- Renamed property: Old name: PDFnPageMode; New name: nPDFPageMode
- New Property: "lShowPrinters" - Logical, determines if the available printers combo will be shown
- New Property: "nShowToolbar" - Numeric, determines the visibility of the toolbar
&& 1 = Visible (default), 2 = Invisible, 3 = Use resource
- New Property: "lShowSetup" - Logical, determines if the FoxyPreviewer setup button will be shown
- New Property: "nMaxMiniatureDisplay" - Numeric, the number of miniature to display in the miniature form
- New Property: "nShowToolBar" - numeric, determines if the toolbar will be visible or not at startup && 1 = Visible (default), 2 = Invisible, 3 = Use resource
- New Property: "lShowSetup" - logical, determines if the setup button will be shown
- New Property: "lShowPrinters" - logical, determines if the available printers combo will be shown
- Other New Properties: for Email sending using CDOSYS
nEmailMode && 1 = MAPI, 2 = CDOSYS, 3 = Custom procedure
cSMTPServer
nSMTPPort
lSMTPUseSSL
cSMTPUserName
cSMTPPassword
cEmailTo
cEmailSubject
cEmailBody
cEmailFrom
- New dialog forms:
"Settings", allow user to define most of the available settings for the current and next session of Foxypreviewer
"Send Email" Form allowing user to pass email information
- When the user chooses to save as "XLS", it will allow saving using the XML extension, because the output file will be able to be opened by other tools, such as OpenOffice.
- Tweaks in the sample distribution project, to adapt it to the new changes.
- Fix: RTF and PDF Listeners now work with basic rounded shapes
- Fix: FoxyPreviewerCaller.Prg cleanup improved, now PAPERSIZE and ORIENTATION are kept when the EXPRE cleanup is done (Thnaks to Nick Porfirys)
- Several improvements on the settings form
- New downloads page at CodePlex
*** v1.53 - UPDATED 2010-07-08***
- Several new tweaks in translations
- GoToPage form translations activated
- Removed the exibition of the FRX nme if using the cTitle property
- Changed all buttons to use the property SpecialEffect = 2, in order to keep the same appearance of the original report toolbar
- Updated samples, using translated versions
- Special thanks to Manuel B and Jacques Parent for their big contribution for this release, testing, providing suggestions and fixes. Very much apreciated !
*** v1.52 - UPDATED 2010-07-08***
- New property: cLanguage, to determine the language for the dialogs and tooltips. Available at this moment: ENGLISH (default), PORTUGUES, ESPANIOL, GERMAN, TURKISH, ITALIANO, CZECH, PERSIAN, GREEK, FRENCH, POLISH, INDONESIAN
Notice that I removed all the translations from FoxyPreviewer.H
There I only kept information about the default language to be selected. This is to be used if you use FoxyPreviewer to set the global variable "_REPORTPREVIEW"
- Several tweaks in FoxyPreviewerCaller
- Fix in Report title, was showing "TMP_"
*** v1.49 - UPDATED 2010-06-30***
- Improvement: Included the "PrinterPreferences" button to the Default Preview Toolbar, the one used without calling FoxyPreviewer.
- New translations, Polish and Indonesian, thanks to Kazimierz Pszenny and Samir H.
- Improvement: Allows using bigger icons, such as 32x32
- Replaced original icons due to some doubts about licensing, now using icons from www.pixel-mixer.com, that are free to use for commercial use.
- New definitions in FoxyPreviewer.H allow you to change the name of the image buttons to be used.
*** v1.45 - UPDATED 2010-06-19***
- Fix: Property "lPrinted" now returns the correct value if user selected the "Printer Prompt" dialog (Printer preferences button), thanks to Martin Krivka
- Updated Greek translation
- Improvement: Now the preview title bar displays: "Page - PageTotal" when user selectes 1Page mode i.e.: "Page 5 - 1500" or: "Pages from %FP% to %LP%" when user selectes 2Page or 4Page mode i.e.: "Pages from 5 to 6" or "Pages from 5 to 8", thanks to Nick Porfyris
*** v1.43 - UPDATED 2010-06-16***
- Fix: Page# will appear translated in the Preview Form titlebar
*** v1.42 - UPDATED 2010-06-15***
- Fix: PDFListener was not rendering some strings when Dynamic properties were incorrectly set, reported by Anil Kamat
- Fix: AddReport() new tweaks, thanks to Carlos Morandin
- New property: PDFnPageMode, numeric, Default = 0, 0 = Normal view, 1 = Show the outlines pane, 2 = Show the thumbnails pane, 3 = Full Screen
- Improvement: Included support for labels (LBX) in FoxyPreviewerCaller.prg, thanks to Nick Porfyris
*** v1.41 - UPDATED 2010-06-14***
- Fix: ExcelListener now renders "&" characters correctly
- Improvement: New parameter allowed in method "AddReport(tcFRX, tcClauses, tcAlias)", allowing specifying the alias to be selected when the desired report will be executed.
- Tweak: Miniatures form will not show the nvigtion buttons when the quantity of pges will not exceed the existing quantity of pages. (by Jacques Parent)
*** v1.40 - UPDATED 2010-06-13***
- Fix: "SET TALK ON" bug in SP2 reporting bypassed. Now PDF and HTML outputs will not dirty the console http://cathypountney.blogspot.com/2009/04/set-talk-appears-to-be-on-when-running.html
- Fix: "AddReport()" bug, was not allowing chained reports, thanks to Craig Boyd
- New property - "lUseListener", when .F., REPORTBEHAVIOR will be set to 80 (old way), to generate good printings on dot-matrix printers.
- Improvement: new internal function to detect if the output printer is Dot-Matrix type;
if positive, the report will be sent to the printer using REPORTBEHAVIOR 80
- Improvement: Lots of cool tweaks from Jacques Parent, specially in the miniatures form, allowing to have all available pages miniatures
- Improvement: French translation from Jacques Parent
- New property "cEmailPRG"
Character, receives the name of a PRG that will fire your custom email.
In this PRG, you need to receive one parameter, ec tcFile, that is the temporary output file that you'll send by email.
A complete sample, "MYSENDMAIL.PRG" is available, showing you how you can send your emails
Uses a CDOSYS class, courtesy of Sergey Berezniker
http://www.berezniker.com/content/pages/visual-foxpro/send-email-msn-email-account
http://www.berezniker.com/content/pages/visual-foxpro/cdo-2000-class-sending-emails
*** v1.31 - UPDATED 2010-04-28***
*** v1.30 - UPDATED 2010-04-26***
- Fix: "Save As" menu working in Top-Level forms (Thanks to Tushar)
*** v1.26a - UPDATED 2010-04-01***
- Fix: PDF Listener accepts GIFs
- Fix: "Save As" menu working in Top-Level forms
- Fix: PDF Listener will use Gdi+ to convert a not supported image
- Enhancement: New MAPI function to send emails
- Enhancement: The property "cDestFile" can be filled manually, in order to generate output files without previewing
- Fix: Excel output files are saved in the desired folder
*** v1.25 - UPDATED 2010-03-28***
- Fix: HTML output now works correctly in EXE.
- Fix: Turned off SetConsole during PDF generation
- The "Priting Preferences" button now activates the "PRINTER PROMPT" dialog, that enables users to change the current printer, and all available settings. This provides the maximum customization.
- Included a new file - FoxyPreviewer.H, that contains the localized constants for the strings.
- Included the CZECH, PERSIAN and GREEK localized strings in FoxyPreviewer.H. Now we have translations for 9 languages available.
- New Property : "cCodePage" && Default = "CP1252", CodePage, to be used by PDF Listener
- New Property : "lQuietMode" && Default = .T., determines the QuietMode property for the listeners used
- New Property : "lPDFasImage" && Default = .F., the PDF document will be an image document
- Enhancement: PDFx received some tweaks in order to generate smaller files when repeated images are used in reports. Thanks to Luis Navas
- Updated FoxyPreviewerCaller.Prg to accept the new properties
*** v1.23 - UPDATED 2010-02-28***
- New tweaks for Top-Level forms - now the parent form will have its "Closable" property set as false during report preview, and reset on preview release (Thanks to Stefan Wuebbe)
- Fixes in RTF and PDF Listeners, now images with Isometric settings correctly rendered. (Thanks to Andrew Nickless)
- Fix in PDF rendering for GIF conversion (Thanks to Kevin)
*** v1.22 - UPDATED 2010-02-23***
- Improvement: New property: nDockType (see description below)
- Improvement: New PRG, FoxyPreviewerCaller.Prg, to be included in the EXE. It allows using embedded reports in the EXE, using the APP file. TO be better documented soon. See sample in downloads file.
*** v1.21 - UPDATED 2010-02-22 ***
- Fix: Enlarged label size for RTF output
- Fix: Included file "FrxPreview.H" in distribution (needed by ExcelListener)
- Tweak: Removed progress dialogs in spanish. All listeners have all progress dialogs disabled
- New properties:
- Output types allowed in the "Save as.." button from the toolbar
lSaveAsImage
lSaveAsHTML
lSaveAsRTF
lSaveAsXLS
lSaveAsPDF
- Defining the previewform.WindowState
nWindowState && 0 = Normal, 2 = Maximized
*** v1.20 - UPDATED 2010-02-21 ***
- Improvement: PDFListener now draws backgrounds for fields and labels
- Improvement: RTFListener now draws backgrounds for fields and labels
- New feature: Basic Excel output available (Using ExcelListener by Alejandro Sosa, first implemented by Edwin Duran)
- Important - Excel listener, differently from PDF and RTF listeners is being provided as is. I will not support new features or improvements to this listener. My goal is to offer another output possibility, but I really can't add fetures, or important fixes. As it is open source, feel free to add your improvements and fixes. I'll be happy to update the version distributed with FoxyPreviewer if you send it to me. Using version 1.02 from UT, having disabled the automatic file opening after generation, and also removed the CTL32 Progressbar
*** v1.18 - UPDATED 2010-02-18***
- Fix: RTFListener now works correctly when _PageTotal is used
- Fix: RTFListener now works with CMYK JPGs, TIFFs and PNGs
- Fix: PDFxListener now works with all kinds of images
- Fix: PDFxListener now draws transparent shapes
*** v1.16 - UPDATED 2010-02-13***
- Fix: TopForm property error in initialization
- Fix: Now the _ReportPreview cache will be always cleared to avoid errors during toolbar rebuilding
- Many tweaks in the _ReportPreview factory
*** v1.15 - UPDATED 2010-02-10***
- Fix: Context menu now works normally in Top-Level forms.
- MAJOR CHANGE: Now distributing a separate APP file that is a library that contains ALL the required files for FoxyPreviewer to run properly, including: LibHaru.dll, _GdiPlus.vcx, _ReportListener.vcx, FoxyPreviewer classes, PDFx, RTFListener, and all support images. This post will be updated soon, with more detailed information about these changes.
*** v1.11 - UPDATED 2010-02-09***
- Fix: Context menu now works normally when the toolbar is invisible.
*** v1.10 - UPDATED 2010-02-07***
- Fixed forced preview close (Vivek Deodhar)
- Included new "Printer preferences" button in toolbar and context menu (using codes from Barbara Peisch)
- Fixed "lPrintVisible" property error (Zen Tes)
*** UPDATED 2010-02-04***
- Included translation to Italian (thanks to Fabio Lenzarini)
- Fix: Printing in a network printer was not working correctly
- Fix: method RunReport, missing "This" in some lines of code (Benny Thomas)
- Fixed RTFListener colors initialization, thanks to Hector Urrutia
- Removed the "NORESET" clause on merged reports. Users should add it by themselves in case they need
- Renamed the ReportListener helper classes
(PDFx became PR_PDFX and FRX_RTF became PR_RTFListener),
in order to avoid people messing with the original versions from the authors.
The versions distributed with FoxyPreviewer are tweaked ones
*** UPDATED 2010-02-03***
- Included translation to Turkish (thanks to Soykan Ozcelik)
- Fix: RTF Listener was omitting 1st page when Range clause was used
- Fix: Property "lSaved" was not becoming 'True' when an image file was saved
*** UPDATED 2010-02-02***
- Tweaked German translation
- Fixed GotoPage dialog not working when toolbar was not visible
- Fixed Default printer in Combobox
*** UPDATED 2010-02-01***
- Included translation to German (Thanks to Tom Knauf)
- Fixed toolbar regeneration when user closed the toolbar using the "X" button
- Now compatible with VFP9 1st release and SP1 (SP2 strongly recommended)
FoxyPreviewer is my report generating class, that brings some cool and useful functions, as you can see in the pictures below.
FEATURES
1 - Preview Toolbar
The original toolbar was modified, with some new button images, and new buttons too !
2 - Printers ComboBox
The printers combobox will show you all the available printers (local and in the network), and allows you to change the deviate the output to any printer that you want.
3 - Copies spinner
Determine on the fly the quantity of copies that you want to print!
4 - Miniatures button
View miniatures of all pages of the current report. Clicking on any miniature will jump the output page to the selected one.
5 - Save As.
A new button that calls a context menu that allows you to save the current report as:
- Image Files - EMF, PNG, JPG, BMP, GIF, TIFF
- HTML
- PDF
- RTF, a MS-Word compatible format
- XLS, a MS-Excel simplified worksheet new!
6 - Context menu
The report context menu was updated as well, receiving all the new buttons and pictures. For the case of the "Save as." button, a submenu brings all the output possibilities.
7 - Changing the Printer Preferences. New !
Now you can access the Printer Preferences dialog to change the default printer settings of the selected printer. Works on all Windows versions!
When you click on this button: 
You'll get a printer dialog from your current printer. For my case I got:
8 - Translating ALL report windows, dialogs, tooltips and captions.
Have you noticed that the context menu above is in spanish ? You can determine in what language your report will be working with. Currently FoxyPreviewer is available in English, Portuguese and Spanish. It's up to you to decide in what language the dialogs will be shown.
Go to page dialog in spanish
USAGE
To test FoxyPreviewer, download this file, unzip it, and run the file TESTPREVIEWER.PRG. Please make sure to start VFP from this file, by doubleclicking on this file from Explorer, to make sure that the default path is automatically set, and all the needed files will be found.
To use it with your own reports is super simple, with just three lines of code:
LOCAL loReport AS "PreviewHelper" OF "FoxyPreviewer.prg"
loReport = CREATEOBJECT("PreviewHelper")
loReport.AddReport(_Samples + "\Solution\Reports\colors.frx", "RANGE 1,1 NODIALOG") && FRX File, Clauses
loReport.RunReport()
The main file is FOXYPREVIEWER.PRG that contains the PreviewHelper class that is the class that you need to instantiate to have the new toolbar options. It uses the ReportListener's ExtensionHandler class to make all the changes in the original toolbar. This file also brings the classes from Colin Nicholls, that generate the miniatures sheet.
For the RTF output, kudos go to Vladimir Zhuravlev's RTFListener class. Impressive how he managed to make it! No need of any external library, RTF Listener converts your report into an RTF file, that can be perfectly opened and viewed in MS-Word ! I applied some fixes in the original version, now allowing all the text output to be shown correctly, enabled colors for texts, backgrounds and shapes, and also images stored in general fields. Another small tweak was added to allow merging reports.
The PDF files are generated using Luis Navas' amazing PDFx class. It uses an external library, Haru Free PDF Library 2.0.8, from Takeshi Kanno. Super light weight, no need to install a ghostscript printer, no dependancies to generate your PDFs! More info at Luis Navas' blog: http://weblogs.foxite.com/luisnavas/archive/2008/10/06/7025.aspx. The original version from Luis also received some few tweaks, to allow merging reports, and also eliminating the need to use the GdiPlusX library from VFPX. Now it used the _GdiPlus.vcx FFC class, that is already stored in the Report*.App files, that are already available in all VFP9 sources. I decided doing that because the GDI+ usage was really very very simple, and the FFC classes were enough for that purpose. Hey ! I keep recommending to everybody to use GdiPlusX !!!
CUSTOMIZING
Of course, you may choose what features will be available in the report preview toolbar. There are some few and obvious properties that you may set in order to fit your needs. Below are the methods and properties available:
Methods - all obligatory
- AddReport(tcFRXFile, tcClauses, tcAlias)
That's the place where you determine what report and which clauses will be used
tcFRXFile - character, the FRX to be run
tcClauses - character, the report clauses
eg.: .AddReport(_Samples + "\Solution\Reports\wrapping.frx", "NODIALOG FOR title = 'S' RANGE 3,3")
- RunReport()
Runs the chosen report, and shows the preview window and FoxyPreviewer toolbar
Properties - all optional
- cTitle - character, the preview window title
- lSendToEmail - logical, determines if the "send to email" button will be shown (not available yet)
- lSaveToFile - logical, determines if the "saveto file" button will be shown
- lShowCopies - logical, shows the copies spinner
- lShowMiniatures - logical, shows the miniatures page
- nCopies - numeric, the default quantity of copies to be printed
- lPrintVisible - logical, shows the print button in the toolbar
- cDefaultListener - character or object, the name or object from the default listener to be used; the default one is "FXLISTENER"
- nCanvasCount - numeric, the initial nr of pages rendered on the preview form. Valid values are 1 (default), 2, or 4.
- nZoomLevel - numeric, the initial zoom level of the preview window. Possible values are:
1-10%, 2-25%, 3-50%, 4-75%, 5-100% default, 6-150% ;
7-200%, 8-300%, 9-500%, 10-whole page
- lPrinterPref - logical, shows the "Change printer preferences" button in the toolbar new!
- lSaveAsImage - logical, includes the "save as Image" option in menu new!
- lSaveAsHTML - logical, includes the "save as HTML" option in menu new!
- lSaveAsRTF - logical, includes the "save as RTF" option in menu new!
- lSaveAsXLS - logical, includes the "save as XLS" option in menu new!
- lSaveAsPDF - logical, includes the "save as PDF" option in menu new!
- nWindowState - numeric, defines the previewform.WindowState 0 = Normal, 2 = Maximized new!
- nDockType - logical or numeric (0-4). If False, the dock will follow the resource file used. Or numeric, to force the toolbar docking. new!
- nMaxMiniatureDisplay - numeric, the quantity of reports to be shown in the miniatures form.
- cFormIcon - character, the file name of the icon to be used in the preview and other helper forms
- lEmailAuto - logical, Automatically generates the report output file
- cEmailType - character, the file type to be used in Emails (PDF, RTF, HTML or XLS)
- lEmailed - logical, returns .T. (true) if an email has been sent
- cEmailPRG - character, the name of a PRG that will fire your custom email. In this PRG, you need to receive one parameter, tcFIle, that is the temporary output file that you'll send by email. A complete sample, "MYSENDMAIL.PRG" is available, showing you how you can send your emails. To use it, you need to set the value of this property, for instance: .cEmilPrg = "MySendMail.Prg"
- cCodePage - character, the codepage to be used by the PDF listener && Default = "CP1252"
- lUseListener - logical, determines if ReportListeners will be used during printing. The report previsualization will always use listeners. There are some situations or incompatibilities between some printers and report listeners so you may try setting this property to .F. to get an "old way" printing. So, when .F., REPORTBEHAVIOR will be set to 80. Useful for dot-matrix printers.
- lQuietMode - logical, determines the QuietMode property for the listeners used && Default = .T.
- lPDFasImage - logical, the PDF document will generated as an image document && Default = .F.
- cDestFile - character, determines the filename of the output file to be generated when "RunReport()" is called. If you set this propertym the report will not be previewed
- PDFnPageMode - integer, determines the Page mode for the PDF document. && Default = 0, 0 = Normal view, 1 = Show the outlines pane, 2 = Show the thumbnails pane, 3 = Full Screen
AUTOMATING WITH INTELLISENSE
I've also created a small PRG that updates the FOXCODE table in order to add an Intellisense script to use it. Please run the file INSTALLFOXCODE.PRG to update the Intellisense.
To test it, open any empty PRG or Method, and just type:
FOXYPREVIEW and a complete script with all available options will be shown. Obviously, you may delete or comment all the properties that you don't want to use.
CHANGING ALL PREVIEWS
Another cool feature is that you can also set the Global _REPORTPREVIEW variable to "FoxyPreviewer.prg", and all your reports, even those that will not create the Helper Object will have that look. Unfortunately, I could not add all the options from the toolbar to them, because it is impossible to retrieve the "FOR" clauses after a report is run.
Just type the following in your command window:
_ReportPreview = "FoxyPreviewer.prg"
REPORT FORM _Samples + "Solution\Reports\Colors.frx" PREVIEW
Notice that some functions are not available in this option, but some cool ones remain, like the changes picture buttons, translations, the Miniatures is still avalable, and the save to file can only save the report in image file.
TRANSLATING TO NON ENGLISH LANGUAGES
To enable it, just open the FoxyPreviewer.H, and you'll find the language definitions. Comment the line that defines the default language to English, and uncomment the one that sets it to the desired language. It's very simple to add another language, just open FoxyPreviewer.prg and translate the #DEFINE's constants to your native language. I'll be very happy to add other localized languages to the main download ! Please, if you do translate it to another language, send to me your translation !
To enable the spanish language, for instance just leave the desired language uncommented
* #DEFINE PR_ENGLISH
* #DEFINE PR_PORTUGUES
* #DEFINE PR_GERMAN
* #DEFINE PR_ITALIANO
* #DEFINE PR_TURKISH
* #DEFINE PR_CZECH
* #DEFINE PR_GREEK
* #DEFINE PR_PERSIAN
* #DEFINE PR_FRENCH
#DEFINE PR_ESPANIOL
DISTRIBUTION
FoxyPreviewer consists of a set of separate utilities, that were adapted to work together.
These files include classes, prgs, images, dlls and header files.
In order to simplify the distribution and to avoid adding many individual files to your project, all the related files have been compiled into a single APP file - FoxyPreviewer.App
The usage is simple:
Store the file FoxyPreviewer.App in the same folder that you have your EXE or the Report*.App files.
Add to your main project just one file: FOXYPREVIEWERCALLER.PRG
The usage is EXACTLY the same as if you were using the PRG - the only difference is that instead of starting the FoxyPreviewer class directly, you'll access the Helper class that I created that you'll include in your EXE.
This was necessary in order to allow FoxyPreviewer to access the FRX files from your EXE. Being an external library, FoxyPreviewer.App can't access directly the FRX that are in your EXE. That's the reason that I'm asking you to include the helper file, FoxyPreviewerCaller.Prg in your EXE. That way, the helper class is inside your EXE, and it can access your FRX, and pass them to the Previewer class.
Behind the scenes, this helper class stores a copy of the FRX classes from your EXE in a TEMP file, that is used by FoxyPreviewer. This helper class does the needed cleanups, deleting the temporary files. All the properties available in the main class are available in the helper as well, so you'll use it the same way:
SET PROCEDURE TO FoxyPreviewerCaller.prg ADDITIVE
LOCAL loReport as "FoxyPreviewerCaller" OF "FoxyPreviewerCaller.Prg"
loReport = CREATEOBJECT("FoxyPreviewerCaller")
WITH loReport as ReportHelper
.AddReport("Sample.frx", "RANGE 1,1 NODIALOG")
.RunReport()
DO CASE
CASE .lPrinted
MESSAGEBOX("Report was printed !",64, "Report status")
CASE .lSaved
MESSAGEBOX("Report was saved as file:" + CHR(13) + .cDestFile,;
64, ;
"Report status")
=Thisform.OpenFile(.cDestFile)
OTHERWISE
MESSAGEBOX("Report Preview was closed without saving or printing",48, "Report status")
ENDCASE
ENDWITH
The APP distributed is using the English language translation by default.
If you want to change it to your own language, we have already 9 options available: English, portuguese, spanish, turkish, german and italian. Just edit the file Foxypreviewer.H, uncomment your desired language in the 1st lines, and recompile it, generating your localized FoxyPreviewer.App file that you'll distribute.
The other option is to include all classes, VCX/VCT, images, the header files (*.H), and the file FoxyPreviewer.Prg in your Project, and compile. That's all. This brings the advantage of including FoxyPReviewer in your executable:
- pr_ExcelListener.vcx
- pr_PDFx.vcx
- pr_RtfListener.vcx
- GdiPlus.vcx
- _ReportListener.vcx
- _FRXCursor.vcx
- FoxPro_Reporting.H
- FoxyPreviewer.H
- FrxPreview.H
- GdiPlus.H
- GdiPlus_locs.H
- HPDF_consts.H
- ReportListeners.H
- ReportListeners_Locs.H
- WinCrypt.H
- _FrxCursor.H
- _Reports.H
- pr_IMAGES.bmp
- pr_Bottom.bmp
- pr_Close.bmp
- pr_Close2.bmp
- pr_Excel.bmp
- pr_GoToPage.bmp
- pr_Html.bmp
- pr_Img.bmp
- pr_Locate.bmp
- pr_Mail.bmp
- pr_Next.bmp
- pr_Pdf.bmp
- pr_Previous.bmp
- pr_Print.bmp
- pr_PrintPref.bmp
- pr_Save.bmp
- pr_Top.bmp
- pr_Word.bmp
- WWrite.ico
FUTURE IMPROVEMENTS
- Another missing point is the "SendToEmail" option. This involves an HTML editor form, and a CDOSYS email class, lots of images, etc. I hope to add it to FoxyPreviewer soon. I already have this working in my own framework, but I still have to disconnect some objects in order to add them to this project, and to allow some other customizations, like allowing you to choose another email component to send your emails. The HTML editor was adapted from the original from Frederick Steczicky and Tracy Pearson, published in www.atoutfox.com .
SPECIAL THANKS / AUTHORS
As you could see, FoxyPreviewer is the result of some researches, and the use of some amazing tools provided as open source and free from other foxers. The VFP community is amazing !!!
Lisa Slater Nicholls - for the great job that she made with the reporting system of VFP9 SP2. And more than that, for her great blog, the excellent and well documented articles.
Colin Nicholls - He's the author of the Miniatures form; for his many great articles too regarding the new reporting system, specially for the article Exploring and Extending Report Previewing in VFP9. I took the miniatures preview form classes from there.
Luis Navas - He's the author of the PDF Listener. A terrific job, great code. More info about PDFx can be obtained in his blog: PDFx Update Support for some SP2 Features. This brings a new, lightweight and very reliable option for us to export our reports to PDFs. Thanks a lot for your support and help with this project !
Vladimir Zhuravlev - He's the author of the RTF Listener together with Dmitriy Petrov and Valeriy Liftshits with help of Vadim Pirozhkov. It was published in the Foxite downloads section - http://www.foxite.com/downloads/default.aspx?id=166. Another impressive and courageous work. Thanks very much !
Leandro Walfrans for testing and Luis Maria Guayan, for his continuous support and for the spanish translations. Tom Knauf, for the german translation.
Takeshi Kanno, the author of the HARU PDF library, and all his collaborators, for making PDFx come true with HARU library. More information about this great project: http://libharu.org/wiki/Main_Page
Barbara Peisch, for the codes to open the "Printer Preferences" dialog window, posted in the Foxite forums: http://www.foxite.com/archives/0000158197.htm
Edwin Duran, for the samples using ExcelListener, created by Alejandro Sosa
Sergey Berezniker, for the email CDO class used in the samples, and for some codes used to get printer information.
DISCLAIMER
This software ("FoxyPreviewer") and the distributed classes are provided "as is'.
You may use the Software for any commercial or noncommercial purpose, including distributing derivative works.
In return, we simply require that you agree:
1. Not to remove any copyright or other notices from the Software, or from the distributed classes, created by other authors.
2. That the Software comes "as is", with no warranties. None whatsoever. This means no express, implied or statutory warranty, including without limitation, warranties of merchantability or fitness for a particular purpose or any warranty of title or non-infringement.
3. That no contributor to the Software will be liable for any of those types of damages known as indirect, special, consequential, or incidental related to the Software or this license, to the maximum extent the law permits, no matter what legal theory it's based on. Also, you must pass this limitation of liability on whenever you distribute the Software or derivative works.
DOWNLOAD
CodePlex FoxyPreviewer downloads page
Hope you enjoy !