Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Default Printer hardcoded in report
Message
From
08/07/1999 21:40:25
 
 
To
08/07/1999 13:56:07
General information
Forum:
Visual FoxPro
Category:
Reports & Report designer
Miscellaneous
Thread ID:
00239000
Message ID:
00239213
Views:
13
>Whenever I use File / Page Setup / Print Setup in the VFP Report Designer to set page settings -- such as Landscape -- in a report, my default printer gets stored as the default for the report, overriding the user's default printer. I created the program below to clear the printer from the report file as recommended by the Microsoft KB, however, I lose the Landscape setting in the process. How can I prevent the printer from being stored in the first place or flexibly "scrub" only the default printer setting from my report file? Any insight would be greatly appreciated. Thanks, Scott




*-* Author: Terence Tam (mailto:justok@iname.com)
*-* FileName: CleanFrx.prg
*-* Usage: CleanFrx() will automatic clean ALL frx in currectory dir.
*-*        CleanFrx("???INV.frx") will clean matched condition frx files.
*-*        CleanFrx("*.lbx") will clean ALL Labels!

LPARAMETERS pFileFilter

IF PCOUNT() = 0
	LFileFilter = "*.frx"
ELSE
	LFileFilter = pFileFilter
ENDIF

nFileCount = ADIR(frxFile, LFileFilter)

IF nFileCount = 0
	MESSAGEBOX("No .Frx File is found at "+CURDIR(),0+32,"What a Pity!")
	RETURN .F. && Why .f. - on purpose ?
ENDIF

FixedFileList = ""
FOR iCount = 1 to nFileCount
	USE frxFile[iCount,1]   && Dirinfo is two dimensional
	FixedFileList = FixedFileList + frxFile[iCount,1] + Chr(13)
	BLANK fields expr, tag, tag2         && Blank to remove printer driver info
	WAIT "Cleaning "+ frxFile[iCount,1] Window NoWait
** For some special reports... 
**	REPLACE expr with "PAPERSIZE=256" + CHR(13) + "PAPERLENGTH=2750" + CHR(13) + "PAPERWIDTH=2100" + CHR(13)

	IF "PLAN" $ frxFile[iCount,1]	
		* Plan.frx need Orientation=1 means Print in LandScape
		REPLACE expr with "ORIENTATION=1"
	ENDIF
*!*	     replace All NoRepeat With .f. for !IsBlank(NoRepeat) && Use Once only
	USE  && As Barbara pointed out always the first record
ENDFOR

CLEARMSG = "The Following Files in " + SYS(5) +CURDIR() + " : " + CHR(13) + FixedFileList  + " have been Fixed, Compile Execute?"

IF LEN(CLEARMSG) < 255
	IF MESSAGEBOX("The Following Files in " + SYS(5) +CURDIR() + " : " + CHR(13) +  FixedFileList  + " have been Fixed, Compile Execute?", 4 + 64, "CleanFrx Function") = 7
		RETURN
	ENDIF
ELSE
	WW(CLEARMSG)
ENDIF
KEYBOARD '{ENTER}'

SET SAFETY OFF
Delete FILE *.ERR
Delete FILE *.BAK
Delete FILE *.TMP
Delete FILE *.TBK

*SET SAFETY ON
WAIT WINDOW "All Done!!" TIMEOUT 3





there is a ww() function for me to handle message to user if over 255 character
you can custom the message show to you for your favour!!
The weak wait for chance, The strong bid for chance,
The clever notch up chance, but The merciful give you chance.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform