![]() |
Crystal Reports VCL XI und Delphi 2009
Hallo Ihr Lieben,
habe heute Delphi 2009 installiert und stehe nun vor einem mittelschweren Problem... Die VCL von CR läuft nicht mehr. :roll: Die UCrpe32 kann nicht kompiliert werden.
Delphi-Quellcode:
PE_RPTOPT_CVTDATETIMETOSTR : FConvertDateTimeType := ToString;
...
case ReportOptions.convertDateTimeType of PE_RPTOPT_CVTDATETIMETOSTR : FConvertDateTimeType := ToString; PE_RPTOPT_CVTDATETIMETODATE: FConvertDateTimeType := ToDate; PE_RPTOPT_KEEPDATETIMETYPE : FConvertDateTimeType := ToDateTime; else FConvertDateTimeType := ToDateTime; end; ... Fehler: Inkompatible Typen: 'TCrDateTimeType' und 'string' :gruebel: Hat jemand einen Rat für mich? Danke, Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Was steckt hinter TCrDateTimeType?
|
Re: Crystal Reports VCL XI und Delphi 2009
Delphi-Quellcode:
TCrDateTimeType = (ToString, ToDate, ToDateTime);
|
Re: Crystal Reports VCL XI und Delphi 2009
Und FConvertDateTimeType ist vom Typ TCrDateTimeType?
|
Re: Crystal Reports VCL XI und Delphi 2009
TObject hat jetzt eine ToString-Methode und diese versucht der Compiler zu ziehen.
Schreib mal:
Delphi-Quellcode:
E_RPTOPT_CVTDATETIMETOSTR : FConvertDateTimeType := TCrDateTimeType.ToString;
|
Re: Crystal Reports VCL XI und Delphi 2009
Vielen Dank!!! Das hat funktioniert.
Gibt es eine Übersicht über diese Funktionen? Haben nämlich schon ein neues Problem in der Pas QRExpr (von QuickReport)
Delphi-Quellcode:
aString[pos('.', aString)] := DecimalSeparator;
if result.Kind = resDouble then
begin if DecimalSeparator <> '.' then begin while pos('.', aString) > 0 do aString[pos('.', aString)] := DecimalSeparator; end; try result.dblResult := StrToFloat(aString); except result := ErrorCreate(Format(SqrExpIllegalCharInNumeric, [aString])) end; end; Inkompatible Typen: 'AnsiChar' und 'Char' Dafür sollte ich wohl besser einen neuen Thread eröffnen, da es ja nicht zu Crystal gehört. Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
![]() Zitat:
Gibt nicht evtl. schon ein D2009-Update von CR? |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
Zitat:
Delphi-Quellcode:
aString : string[255];
Zitat:
Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
geht auch
Delphi-Quellcode:
aString: String
... SetLength(aString, 255); |
Re: Crystal Reports VCL XI und Delphi 2009
Du hast mir sehr geholfen! Hab vielen Dank.
Ich habe mir die Erläuterung zu Ansi und Unicode runtergeladen... und wurschtel mich da jetzt durch. Mein Programm funktioniert erst mal. Also nochmal Danke! Romy |
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
|
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
In Delphi 2007 läuft ja alles, aber ich wollte halt gerne hin zu Delphi 2009. Kann mir irgendjemand helfen die VCL umzuschreiben? Romy |
Re: Crystal Reports VCL XI und Delphi 2009
Zitat:
ich stehe nun vor dem selben Problem. :-( Wie ist denn der Stand der Dinge ?
Ich hoffe Du beobachtest diesen Thread noch. Viele Grüße MaBuSE ps: Deine Fotos sind der Hammer :love: |
AW: Crystal Reports VCL XI und Delphi 2009
Hi,
sorry für das Ausgraben, aber gibt es eigentlich hierzu neue Erkenntnisse? |
AW: Crystal Reports VCL XI und Delphi 2009
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 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