>>*-* 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 >> >>