![]() |
Re: Crystal Reports VCL XI und Delphi 2009
Delphi-Quellcode:
=
aString : string[255];
Delphi-Quellcode:
aString : ShortString
|
Re: Crystal Reports VCL XI und Delphi 2009
:wall: Compilieren geht mit CR aber kein Report kann erzeugt werden.
Ändere ich alles AnsiChar und AnsiString, kann die Version nicht mehr ermittelt werden. Ich bin kurz vor dem Verzweifeln. Delphi2007 arbeitet nicht mehr. :wall: Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
|
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
Es kann kein Printjob gefunden werden. Die Fehlermeldung ist witzig... bestand erst aus chinesischen Zeichen und nun nach AnsiStringnutzung aus ??????? :wall: Egal...
Delphi-Quellcode:
Hier kommt für FPrintJOb 0 raus.
{Open the Main PrintJob}
FPrintJob := FCrpeEngine.PEOpenPrintJob(PChar(FReportName)); FPrintJobs[0] := IntToStr(FPrintJob); {If PrintJob is zero, generate error} if FPrintJob = 0 then begin Result := False; case GetErrorMsg(0,errNoOption,errEngine,'','OpenPrintJob <PEOpenPrintJob>') of errIgnore : Exit; errAbort : Abort; errRaise : raise ECrpeError.Create(FLastErrorNumber, FLastErrorString); end; end;
Delphi-Quellcode:
GetProcAddress ermittelt eine Adresse. Ich verstehe aber nicht wie der Aufruf für das Result funktioniert.
function TCrpeEngine.PEOpenPrintJob (reportFilePath : PChar): Smallint;
var CrpeOpenPrintJob : TFarProc; begin CRDEngineError(''); Result := -1; {Check if Engine is loaded} if CRDEngine = 0 then begin CRDEngineError(CRD_ENGINE_NOT_LOADED); Exit; end; CrpeOpenPrintJob := GetProcAddress(CRDEngine, 'PEOpenPrintJob'); if CrpeOpenPrintJob = nil then CRDEngineError('PEOpenPrintJob') else Result := TPEOpenPrintJob(CrpeOpenPrintJob)(reportFilePath); end;
Delphi-Quellcode:
TPEOpenPrintJob = function (reportFilePath: PChar): SmallInt; stdcall;
Bitte bitte helft. :? |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
![]() Versuch mal
Delphi-Quellcode:
FPrintJob := FCrpeEngine.PEOpenPrintJob(PAnsiChar(FReportName));
|
Re: Crystal Reports VCL XI und Delphi 2009
Ich habe noch ewig gefummelt und bekomme einen Report ohne Datenbankanbindung zum Laufen. (Zwar mit nicht wirklich hübschen Daten, aber wenigstens schon mal was :? )
Inzwischen hänge ich also an der DB-Verbindung und dort jetzt wirklich im absoluten "IchverstehegarnichtsLand" :gruebel: Ich brauche also dringend Hilfe von Euch, wie ich die VCL von Crystal unter Delphi 2009 zum Laufen bekomme. Hier die Procedure, welche ich nicht verstehe und damit keinen Ansatz zum Ändern auf UNiCode habe.
Delphi-Quellcode:
Bei GetProcAdress kommt eine Adresse raus. printJob=1 und tableN=0
function TCrpeEngine.PETestNthTableConnectivity (printJob: Smallint; tableN: Smallint): Bool;
var CrpeTestNthTableConnectivity : TFarProc; begin CRDEngineError(''); Result := False; {Check if Engine is loaded} if CRDEngine = 0 then begin CRDEngineError(CRD_ENGINE_NOT_LOADED); Exit; end; CrpeTestNthTableConnectivity := GetProcAddress(CRDEngine, 'PETestNthTableConnectivity'); if CrpeTestNthTableConnectivity = nil then CRDEngineError('PETestNthTableConnectivity') else Result := TPETestNthTableConnectivity(CrpeTestNthTableConnectivity) (printJob, tableN); end; Vielleicht ist es ja schon das Fatale, dass TableN=0 ist. In einer Procedure davor werden diese ermittelt
Delphi-Quellcode:
Da kommt 1 raus.
{Get the number of tables}
nTables := Cr.FCrpeEngine.PEGetNTables(Cr.FPrintJob); if nTables = -1 then begin Result := False; Cr.GetErrorMsg(Cr.FPrintJob,errNoOption,errEngine,'', 'Connect.Test <PEGetNTables>'); Exit; end;
Delphi-Quellcode:
Bei "Set LogOnINfo" kommt auch TRUE raus... was dann scheitert ist der "Test Connect".
{Loop through the tables}
for nIndex := 0 to (nTables - 1) do begin {Set LogOnInfo and propagate through other tables} if not Cr.FCrpeEngine.PESetNthTableLogOnInfo(Cr.FPrintJob, nIndex, LogInfo, True) then begin Result := False; Cr.GetErrorMsg(Cr.FPrintJob,errNoOption,errEngine,'', 'Connect.Test <PESetNthTableLogOnInfo>'); Exit; end; {Test Connect} Result := Cr.FCrpeEngine.PETestNthTableConnectivity(Cr.FPrintJob, nIndex); {If if failed, store the resulting error} if Result = False then begin Cr.GetErrorMsg(Cr.FPrintJob,errNoOption,errEngine,'', 'Connect.Test <PETestNthTableConnectivity>'); Exit; end; end; end; Bitte bitte helft. Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
|
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Lt. Business Objects/SAP: weg von Win32, hin zu .NET
![]() |
Re: Crystal Reports VCL XI und Delphi 2009
Oder einer anderen Repoting-Bibliothek
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz