From: Michael Haensch on 17 Mar 2007 12:20 Hi, I've a reproducible 5333 error in connection with Crystal Reports 8.5. In my menu I call a function Test5333 which inits a class which opens a report (with 9 subreports) and scan through the subreports. The code itself is ok; it does what it should. When I call this function via menu it crashes on the 3.-5. call; It doesn't crash when I use a local IApplication object instead of the IApplication object from mApp. Do you have any idea, whats wrong with the code? Michael IApplication, IReport.. are OLEAutoObjects generated from a Crystal DLL. -------------------------------------------------------- METHOD Test5333 () CLASS winShell LOCAL o AS mReport5333_3 o := mReport5333_3 {} o:LogOn() o:ShowTables () RETURN SELF -------------------------------------------------------- CLASS mReport5333_3 PROTECT _oApp AS mApp PROTECT _oApplication AS IApplication PROTECT _oReport AS IReport DECLARE METHOD LogOn DECLARE METHOD ShowTables METHOD LogOn () AS VOID PASCAL CLASS mReport5333_3 LOCAL o AS IDataBase o := _oReport:DataBase o:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', 'crystal') RETURN METHOD init () CLASS mReport5333_3 _oApp := OBJECT(GetAppObject()) _oApplication := _oApp:CrystalApplication // _oApplication := IApplication{} _oReport := _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', 1 ) RETURN SELF METHOD ShowTables () AS VOID PASCAL CLASS mReport5333_3 LOCAL nSection AS DWORD LOCAL nReportObject aS DWORD LOCAL oSections AS ISections LOCAL oSection AS ISection LOCAL oReportObjects AS iReportObjects LOCAL oReportObject AS iReportObject LOCAL oSubreportObject AS ISubreportObject LOCAL cSubReportName AS STRING oSections := _oReport:Sections FOR nSection := 1 TO oSections:count oSection := oSections[nSection] oReportObjects := oSection:ReportObjects FOR nReportObject := 1 TO oReportObjects:count oReportObject := oReportObjects[nReportObject] IF oReportObject:kind = crSubreportObject // tricky: now oReportObject is used as oSubreportObject oSubreportObject := ISubreportObject{oReportObject} oSubreportObject := oReportObjects:itemSub(nReportObject) cSubReportName := oSubreportObject:SubreportName _oReport:OpenSubreport(cSubReportName) ENDIF NEXT nReportObject NEXT nSection RETURN -------------------------------------------------------- CLASS mApp INHERIT App PROTECT _oCrystalApplication AS IApplication DECLARE ACCESS CrystalApplication ACCESS CrystalApplication () AS IApplication PASCAL CLASS mApp RETURN _oCrystalApplication METHOD INit () CLASS mApp SUPER:INit () _oCrystalApplication := IApplication{} RETURN SELF -------------------------------------------------------- FUNCTION Start() __SetAppObject(MApp{})
From: Marc Verkade [Marti IT] on 18 Mar 2007 16:00 Hai Michael, I really want to take a look into this hence we also suffer now and then from 5333's with crystal (fortnately only when using crystal!). .Can you supply the AEF's so I can import then into a new project? That would safe me time and the I am really sure we use the same source... Thanx, Marc "Michael Haensch" <mh(a)fritsche-entsorgung.de> schreef in bericht news:eth4s0$v4b$1(a)murphy.mediascape.de... > Hi, > > I've a reproducible 5333 error in connection with Crystal Reports 8.5. > In my menu I call a function Test5333 which inits a class which opens a > report (with 9 subreports) and scan through the subreports. > The code itself is ok; it does what it should. > > When I call this function via menu it crashes on the 3.-5. call; > It doesn't crash when I use a local IApplication object instead of the > IApplication object from mApp. > > Do you have any idea, whats wrong with the code? > > Michael > > IApplication, IReport.. are OLEAutoObjects generated from a Crystal DLL. > > -------------------------------------------------------- > METHOD Test5333 () CLASS winShell > > LOCAL o AS mReport5333_3 > > o := mReport5333_3 {} > o:LogOn() > o:ShowTables () > > RETURN SELF > > -------------------------------------------------------- > CLASS mReport5333_3 > > PROTECT _oApp AS mApp > PROTECT _oApplication AS IApplication > PROTECT _oReport AS IReport > > DECLARE METHOD LogOn > DECLARE METHOD ShowTables > > > METHOD LogOn () AS VOID PASCAL CLASS mReport5333_3 > > LOCAL o AS IDataBase > > o := _oReport:DataBase > o:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', > 'crystal') > > RETURN > > METHOD init () CLASS mReport5333_3 > > _oApp := OBJECT(GetAppObject()) > _oApplication := _oApp:CrystalApplication > // _oApplication := IApplication{} > _oReport := > _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', > 1 ) > > RETURN SELF > > METHOD ShowTables () AS VOID PASCAL CLASS mReport5333_3 > > LOCAL nSection AS DWORD > LOCAL nReportObject aS DWORD > > LOCAL oSections AS ISections > LOCAL oSection AS ISection > LOCAL oReportObjects AS iReportObjects > LOCAL oReportObject AS iReportObject > LOCAL oSubreportObject AS ISubreportObject > > LOCAL cSubReportName AS STRING > > oSections := _oReport:Sections > > FOR nSection := 1 TO oSections:count > oSection := oSections[nSection] > oReportObjects := oSection:ReportObjects > > FOR nReportObject := 1 TO oReportObjects:count > > oReportObject := oReportObjects[nReportObject] > > IF oReportObject:kind = crSubreportObject > > // tricky: now oReportObject is used as oSubreportObject > oSubreportObject := ISubreportObject{oReportObject} > > oSubreportObject := oReportObjects:itemSub(nReportObject) > cSubReportName := oSubreportObject:SubreportName > _oReport:OpenSubreport(cSubReportName) > > ENDIF > NEXT nReportObject > > NEXT nSection > > RETURN > > > -------------------------------------------------------- > CLASS mApp INHERIT App > > PROTECT _oCrystalApplication AS IApplication > > DECLARE ACCESS CrystalApplication > > ACCESS CrystalApplication () AS IApplication PASCAL CLASS mApp > RETURN _oCrystalApplication > > METHOD INit () CLASS mApp > > SUPER:INit () > > _oCrystalApplication := IApplication{} > > > RETURN SELF > > -------------------------------------------------------- > FUNCTION Start() > > __SetAppObject(MApp{})
From: Michael Haensch on 19 Mar 2007 02:40 Hallo Marc, I send the source per email to you. I'm hoping you find something I missed. I need to open the subreports to set the datasource for each subreport. Michael Marc Verkade [Marti IT] schrieb: > Hai Michael, > > I really want to take a look into this hence we also suffer now and then > from 5333's with crystal (fortnately only when using crystal!). .Can you > supply the AEF's so I can import then into a new project? That would safe me > time and the I am really sure we use the same source... > Thanx, Marc > > "Michael Haensch" <mh(a)fritsche-entsorgung.de> schreef in bericht > news:eth4s0$v4b$1(a)murphy.mediascape.de... >> Hi, >> >> I've a reproducible 5333 error in connection with Crystal Reports 8.5. >> In my menu I call a function Test5333 which inits a class which opens a >> report (with 9 subreports) and scan through the subreports. >> The code itself is ok; it does what it should. >> >> When I call this function via menu it crashes on the 3.-5. call; >> It doesn't crash when I use a local IApplication object instead of the >> IApplication object from mApp. >> >> Do you have any idea, whats wrong with the code? >> >> Michael >> >> IApplication, IReport.. are OLEAutoObjects generated from a Crystal DLL. >> >> -------------------------------------------------------- >> METHOD Test5333 () CLASS winShell >> >> LOCAL o AS mReport5333_3 >> >> o := mReport5333_3 {} >> o:LogOn() >> o:ShowTables () >> >> RETURN SELF >> >> -------------------------------------------------------- >> CLASS mReport5333_3 >> >> PROTECT _oApp AS mApp >> PROTECT _oApplication AS IApplication >> PROTECT _oReport AS IReport >> >> DECLARE METHOD LogOn >> DECLARE METHOD ShowTables >> >> >> METHOD LogOn () AS VOID PASCAL CLASS mReport5333_3 >> >> LOCAL o AS IDataBase >> >> o := _oReport:DataBase >> o:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', >> 'crystal') >> >> RETURN >> >> METHOD init () CLASS mReport5333_3 >> >> _oApp := OBJECT(GetAppObject()) >> _oApplication := _oApp:CrystalApplication >> // _oApplication := IApplication{} >> _oReport := >> _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', >> 1 ) >> >> RETURN SELF >> >> METHOD ShowTables () AS VOID PASCAL CLASS mReport5333_3 >> >> LOCAL nSection AS DWORD >> LOCAL nReportObject aS DWORD >> >> LOCAL oSections AS ISections >> LOCAL oSection AS ISection >> LOCAL oReportObjects AS iReportObjects >> LOCAL oReportObject AS iReportObject >> LOCAL oSubreportObject AS ISubreportObject >> >> LOCAL cSubReportName AS STRING >> >> oSections := _oReport:Sections >> >> FOR nSection := 1 TO oSections:count >> oSection := oSections[nSection] >> oReportObjects := oSection:ReportObjects >> >> FOR nReportObject := 1 TO oReportObjects:count >> >> oReportObject := oReportObjects[nReportObject] >> >> IF oReportObject:kind = crSubreportObject >> >> // tricky: now oReportObject is used as oSubreportObject >> oSubreportObject := ISubreportObject{oReportObject} >> >> oSubreportObject := oReportObjects:itemSub(nReportObject) >> cSubReportName := oSubreportObject:SubreportName >> _oReport:OpenSubreport(cSubReportName) >> >> ENDIF >> NEXT nReportObject >> >> NEXT nSection >> >> RETURN >> >> >> -------------------------------------------------------- >> CLASS mApp INHERIT App >> >> PROTECT _oCrystalApplication AS IApplication >> >> DECLARE ACCESS CrystalApplication >> >> ACCESS CrystalApplication () AS IApplication PASCAL CLASS mApp >> RETURN _oCrystalApplication >> >> METHOD INit () CLASS mApp >> >> SUPER:INit () >> >> _oCrystalApplication := IApplication{} >> >> >> RETURN SELF >> >> -------------------------------------------------------- >> FUNCTION Start() >> >> __SetAppObject(MApp{}) > >
From: Michael Haensch on 19 Mar 2007 15:12 Hallo Marc, I'm thinking the problem is the function OpenSubReport and not VO. In VO I can produce a 5333 error with this simple function: And it's not the report, a new report with 7 new subreports gives the same error. ------------------------------------------------------ METHOD Test5333 () CLASS winShell LOCAL _oApplication aS IApplication LOCAL _oReport AS IReport LOCAL oDataBase AS IDataBase LOCAL i AS DWORD LOCAL j AS DWORD _oApplication := IApplication {} FOR j := 1 TO 10 _oReport := _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', 1 ) // 1 statt NIL oDataBase := _oReport:DataBase oDataBase:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', 'crystal') FOR i := 1 TO 10 ? i // Bankkonten is a valid name for one subreport _oReport:OpenSubreport('Bankkonten') NEXT i nEXT j return ------------------------------------------------------ Now I made the work to write a VBS scripts and it breaks in the same way. What do you think? What's your way to change the datasources for reports with subreports? Michael -------------------------------------------------------- Option Explicit dim c dim oApp dim oReport dim oDatabase dim x dim i, j set oApp = CreateObject("CrystalRuntime.Application.8.5") WScript.Echo "Version " & hex(oApp.GetVersion) for j = 1 to 10 set oReport = oApp.openreport ("k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt", 1 ) WScript.Echo "Report " & oReport.ApplicationName set oDataBase = oReport.DataBase x = oDataBase.LogOnServer ( "P2SODBC.DLL", "Fritsche", "fritsche8", "crystal", "crystal" ) for i = 1 to 10 oReport.OpenSubreport ("Bankkonten") next WScript.Echo "fertig " & j next Marc Verkade [Marti IT] schrieb: > Hai Michael, > > I really want to take a look into this hence we also suffer now and then > from 5333's with crystal (fortnately only when using crystal!). .Can you > supply the AEF's so I can import then into a new project? That would safe me > time and the I am really sure we use the same source... > Thanx, Marc > > "Michael Haensch" <mh(a)fritsche-entsorgung.de> schreef in bericht > news:eth4s0$v4b$1(a)murphy.mediascape.de... >> Hi, >> >> I've a reproducible 5333 error in connection with Crystal Reports 8.5. >> In my menu I call a function Test5333 which inits a class which opens a >> report (with 9 subreports) and scan through the subreports. >> The code itself is ok; it does what it should. >> >> When I call this function via menu it crashes on the 3.-5. call; >> It doesn't crash when I use a local IApplication object instead of the >> IApplication object from mApp. >> >> Do you have any idea, whats wrong with the code? >> >> Michael >> >> IApplication, IReport.. are OLEAutoObjects generated from a Crystal DLL. >> >> -------------------------------------------------------- >> METHOD Test5333 () CLASS winShell >> >> LOCAL o AS mReport5333_3 >> >> o := mReport5333_3 {} >> o:LogOn() >> o:ShowTables () >> >> RETURN SELF >> >> -------------------------------------------------------- >> CLASS mReport5333_3 >> >> PROTECT _oApp AS mApp >> PROTECT _oApplication AS IApplication >> PROTECT _oReport AS IReport >> >> DECLARE METHOD LogOn >> DECLARE METHOD ShowTables >> >> >> METHOD LogOn () AS VOID PASCAL CLASS mReport5333_3 >> >> LOCAL o AS IDataBase >> >> o := _oReport:DataBase >> o:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', >> 'crystal') >> >> RETURN >> >> METHOD init () CLASS mReport5333_3 >> >> _oApp := OBJECT(GetAppObject()) >> _oApplication := _oApp:CrystalApplication >> // _oApplication := IApplication{} >> _oReport := >> _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', >> 1 ) >> >> RETURN SELF >> >> METHOD ShowTables () AS VOID PASCAL CLASS mReport5333_3 >> >> LOCAL nSection AS DWORD >> LOCAL nReportObject aS DWORD >> >> LOCAL oSections AS ISections >> LOCAL oSection AS ISection >> LOCAL oReportObjects AS iReportObjects >> LOCAL oReportObject AS iReportObject >> LOCAL oSubreportObject AS ISubreportObject >> >> LOCAL cSubReportName AS STRING >> >> oSections := _oReport:Sections >> >> FOR nSection := 1 TO oSections:count >> oSection := oSections[nSection] >> oReportObjects := oSection:ReportObjects >> >> FOR nReportObject := 1 TO oReportObjects:count >> >> oReportObject := oReportObjects[nReportObject] >> >> IF oReportObject:kind = crSubreportObject >> >> // tricky: now oReportObject is used as oSubreportObject >> oSubreportObject := ISubreportObject{oReportObject} >> >> oSubreportObject := oReportObjects:itemSub(nReportObject) >> cSubReportName := oSubreportObject:SubreportName >> _oReport:OpenSubreport(cSubReportName) >> >> ENDIF >> NEXT nReportObject >> >> NEXT nSection >> >> RETURN >> >> >> -------------------------------------------------------- >> CLASS mApp INHERIT App >> >> PROTECT _oCrystalApplication AS IApplication >> >> DECLARE ACCESS CrystalApplication >> >> ACCESS CrystalApplication () AS IApplication PASCAL CLASS mApp >> RETURN _oCrystalApplication >> >> METHOD INit () CLASS mApp >> >> SUPER:INit () >> >> _oCrystalApplication := IApplication{} >> >> >> RETURN SELF >> >> -------------------------------------------------------- >> FUNCTION Start() >> >> __SetAppObject(MApp{}) > >
From: Marc Verkade [Marti IT] on 20 Mar 2007 04:38 I am using the work of RalfK as a start and extended it to our needs. We are using the PE funcions like lRet := PESetNthTableLocation(nJob, siTable, strTableLocation) "Michael Haensch" <mh(a)fritsche-entsorgung.de> schreef in bericht news:etmnmi$r9u$1(a)murphy.mediascape.de... > Hallo Marc, > > I'm thinking the problem is the function OpenSubReport and not VO. > > In VO I can produce a 5333 error with this simple function: > And it's not the report, a new report with 7 new subreports gives the same > error. > > ------------------------------------------------------ > METHOD Test5333 () CLASS winShell > > LOCAL _oApplication aS IApplication > LOCAL _oReport AS IReport > LOCAL oDataBase AS IDataBase > LOCAL i AS DWORD > LOCAL j AS DWORD > > _oApplication := IApplication {} > FOR j := 1 TO 10 > _oReport := > _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', > 1 ) // 1 statt NIL > > oDataBase := _oReport:DataBase > oDataBase:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', > 'crystal', 'crystal') > > FOR i := 1 TO 10 > ? i > // Bankkonten is a valid name for one subreport > _oReport:OpenSubreport('Bankkonten') > NEXT i > > nEXT j > > > return > > ------------------------------------------------------ > > Now I made the work to write a VBS scripts and it breaks in the same way. > > What do you think? > What's your way to change the datasources for reports with subreports? > > Michael > > -------------------------------------------------------- > Option Explicit > > dim c > dim oApp > dim oReport > dim oDatabase > dim x > dim i, j > > set oApp = CreateObject("CrystalRuntime.Application.8.5") > WScript.Echo "Version " & hex(oApp.GetVersion) > > for j = 1 to 10 > > set oReport = oApp.openreport > ("k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt", 1 ) > WScript.Echo "Report " & oReport.ApplicationName > > set oDataBase = oReport.DataBase > x = oDataBase.LogOnServer ( "P2SODBC.DLL", "Fritsche", "fritsche8", > "crystal", "crystal" ) > > for i = 1 to 10 > oReport.OpenSubreport ("Bankkonten") > next > > WScript.Echo "fertig " & j > > next > > > Marc Verkade [Marti IT] schrieb: >> Hai Michael, >> >> I really want to take a look into this hence we also suffer now and then >> from 5333's with crystal (fortnately only when using crystal!). .Can you >> supply the AEF's so I can import then into a new project? That would safe >> me time and the I am really sure we use the same source... >> Thanx, Marc >> >> "Michael Haensch" <mh(a)fritsche-entsorgung.de> schreef in bericht >> news:eth4s0$v4b$1(a)murphy.mediascape.de... >>> Hi, >>> >>> I've a reproducible 5333 error in connection with Crystal Reports 8.5. >>> In my menu I call a function Test5333 which inits a class which opens a >>> report (with 9 subreports) and scan through the subreports. >>> The code itself is ok; it does what it should. >>> >>> When I call this function via menu it crashes on the 3.-5. call; >>> It doesn't crash when I use a local IApplication object instead of the >>> IApplication object from mApp. >>> >>> Do you have any idea, whats wrong with the code? >>> >>> Michael >>> >>> IApplication, IReport.. are OLEAutoObjects generated from a Crystal DLL. >>> >>> -------------------------------------------------------- >>> METHOD Test5333 () CLASS winShell >>> >>> LOCAL o AS mReport5333_3 >>> >>> o := mReport5333_3 {} >>> o:LogOn() >>> o:ShowTables () >>> >>> RETURN SELF >>> >>> -------------------------------------------------------- >>> CLASS mReport5333_3 >>> >>> PROTECT _oApp AS mApp >>> PROTECT _oApplication AS IApplication >>> PROTECT _oReport AS IReport >>> >>> DECLARE METHOD LogOn >>> DECLARE METHOD ShowTables >>> >>> >>> METHOD LogOn () AS VOID PASCAL CLASS mReport5333_3 >>> >>> LOCAL o AS IDataBase >>> >>> o := _oReport:DataBase >>> o:LogOnServer('P2SODBC.DLL', 'Fritsche', 'fritsche8', 'crystal', >>> 'crystal') >>> >>> RETURN >>> >>> METHOD init () CLASS mReport5333_3 >>> >>> _oApp := OBJECT(GetAppObject()) >>> _oApplication := _oApp:CrystalApplication >>> // _oApplication := IApplication{} >>> _oReport := >>> _oApplication:openreport('k:\cavo_app\fritsche\reports\crystal\MIFIBU\Monatscheck.rpt', >>> 1 ) >>> >>> RETURN SELF >>> >>> METHOD ShowTables () AS VOID PASCAL CLASS mReport5333_3 >>> >>> LOCAL nSection AS DWORD >>> LOCAL nReportObject aS DWORD >>> >>> LOCAL oSections AS ISections >>> LOCAL oSection AS ISection >>> LOCAL oReportObjects AS iReportObjects >>> LOCAL oReportObject AS iReportObject >>> LOCAL oSubreportObject AS ISubreportObject >>> >>> LOCAL cSubReportName AS STRING >>> >>> oSections := _oReport:Sections >>> >>> FOR nSection := 1 TO oSections:count >>> oSection := oSections[nSection] >>> oReportObjects := oSection:ReportObjects >>> >>> FOR nReportObject := 1 TO oReportObjects:count >>> >>> oReportObject := oReportObjects[nReportObject] >>> >>> IF oReportObject:kind = crSubreportObject >>> >>> // tricky: now oReportObject is used as oSubreportObject >>> oSubreportObject := ISubreportObject{oReportObject} >>> >>> oSubreportObject := oReportObjects:itemSub(nReportObject) >>> cSubReportName := oSubreportObject:SubreportName >>> _oReport:OpenSubreport(cSubReportName) >>> >>> ENDIF >>> NEXT nReportObject >>> >>> NEXT nSection >>> >>> RETURN >>> >>> >>> -------------------------------------------------------- >>> CLASS mApp INHERIT App >>> >>> PROTECT _oCrystalApplication AS IApplication >>> >>> DECLARE ACCESS CrystalApplication >>> >>> ACCESS CrystalApplication () AS IApplication PASCAL CLASS mApp >>> RETURN _oCrystalApplication >>> >>> METHOD INit () CLASS mApp >>> >>> SUPER:INit () >>> >>> _oCrystalApplication := IApplication{} >>> >>> >>> RETURN SELF >>> >>> -------------------------------------------------------- >>> FUNCTION Start() >>> >>> __SetAppObject(MApp{}) >>
|
Next
|
Last
Pages: 1 2 Prev: Polygon Area (Graphics4VO?, other packages?) Next: Error 5018 When using ADSADT.RDD Driver |