> >IF .LastErrorNumber <> 0 > _SCREEN.MOUSEPOINTER = 0 > lcMsg = "Crystal Report Error! Error nunmber: "+ALLTR(STR(.LastErrorNumber))+CHR(13)+ ; > "Error Message: "+.LastErrorString > oApplication.Update_Error(.LastErrorNumber, lcMsg, MESSAGE(1), LINENO(1), PROGRAM(), ALIAS(), ORDER(), SYS(18), WONTOP()) > RETURN > ENDIF > > > > >PROCEDURE DoPrint >*================================================ >LPARAMETERS tcReportName, tlShowGroupTree, tcWindowTitle >LOCAL loCrystalReport, lnResult, lnHandle, lcMsg >LOCAL lcCR_DSN, lcCR_USR, lcCR_PWD, lcCR_SourcePath, lcFile, lcMsg > >IF TYPE("loCrystalReport")<>"O" AND !ISNULL(loCrystalReport) > loCrystalReport = CREATEOBJECT("Crystal.CrystalReport") >ENDIF > >lcCR_DSN = Mem_DataSource_Name &&GetIni("REPORTS", "DSN", gcIni) >lcCR_USR = gcCR_USR &&GetIni("REPORTS", "USR", gcIni) >lcCR_PWD = gcCR_PWD &&GetIni("REPORTS", "PWD", gcIni) > > >lcCR_SourcePath = GetIni("REPORTS", "SourcePath", gcIni) > >lcFile = lcCR_SourcePath + tcReportName >IF !FILE(lcFile) && si le fichier cystal report n'existe pas > > lcMsg = ; > "Error : File not found!" + CHR(13) + ; > "Report: '" + lcFile + CHR(13) + ; > "Erreur : Fichier non trouvé!" + CHR(13) + ; > "Rapport: " + lcFile > > MESSAGEBOX(lcMsg,16,IIF(!EMPTY(tcWindowTitle),tcWindowTitle, "File not found!")) > loCrystalReport = NULL > RELEASE loCrystalReport > > RETURN .F. >ENDIF > >WITH loCrystalReport > > *.CONNECT = '"'+"DSN = "+lcCR_DSN+";UID = "+lcCR_USR+";PWD = "+lcCR_PWD+";DSQ = "+lcCR_DSN+'"' > *.CONNECT = '"'+"dsn="+gcCR_DSNNative+"; uid="+lcCR_USR+"; pwd="+lcCR_PWD+"; dsq="+Mem_SQLDatabase+'"' > .CONNECT = "dsn="+lcCR_DSN+"; uid="+lcCR_USR+"; pwd="+lcCR_PWD+"; dsq="+Mem_SQLDatabase > > > .ReportFileName = lcCR_SourcePath + tcReportName > .DiscardSavedData = 1 > * .WindowHeight = 500 > * .WindowWidth = 580 > .WindowLeft = 100 > .WindowMaxButton = .T. > .WindowBorderStyle = 2 &&sizable > .WindowControlBox = .T. > > .WindowTitle = tcWindowTitle > .WindowShowGroupTree = .T. > .ProgressDialog = .T. > .Destination = 0 && Window > > *.Action = 1 > lnResult = .PrintReport() > > > IF .LastErrorNumber <> 0 > _SCREEN.MOUSEPOINTER = 0 > lcMsg = "Crystal Report Error! Error nunmber: "+ALLTR(STR(.LastErrorNumber))+CHR(13)+ ; > "Error Message: "+.LastErrorString > oApplication.Update_Error(.LastErrorNumber, lcMsg, MESSAGE(1), LINENO(1), PROGRAM(), ALIAS(), ORDER(), SYS(18), WONTOP()) > RETURN > ENDIF > > lnHandle = GetActiveWindow() > DO WHILE IsWindow(lnHandle )<>0 > DOEVENTS > *--just in case... > IF LASTKEY()=27 > EXIT > ENDIF > ENDDO > >ENDWITH > >loCrystalReport = NULL >RELEASE loCrystalReport > >RETURN > >>