Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Crystal Reports VCL XI und Delphi 2009 (https://www.delphipraxis.net/120819-crystal-reports-vcl-xi-und-delphi-2009-a.html)

toms 17. Sep 2008 11:01

Re: Crystal Reports VCL XI und Delphi 2009
 
Delphi-Quellcode:
aString : string[255];
=

Delphi-Quellcode:
aString : ShortString

Samashy 17. Sep 2008 15:58

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

toms 17. Sep 2008 16:09

Re: Crystal Reports VCL XI und Delphi 2009
 
Zitat:

Zitat von Samashy
Ändere ich alles AnsiChar und AnsiString, kann die Version nicht mehr ermittelt werden.

Hallo Romy, was meinst du damit? Wie wird die Version ermittelt?

Samashy 17. Sep 2008 16:19

Re: Crystal Reports VCL XI und Delphi 2009
 
Zitat:

Zitat von toms
Zitat:

Zitat von Samashy
Ändere ich alles AnsiChar und AnsiString, kann die Version nicht mehr ermittelt werden.

Hallo Romy, was meinst du damit? Wie wird die Version ermittelt?

Ich hänge beim Umschreiben der VCL doch an einer anderen Stelle.

Es kann kein Printjob gefunden werden. Die Fehlermeldung ist witzig... bestand erst aus chinesischen Zeichen und nun nach AnsiStringnutzung aus ??????? :wall:

Egal...

Delphi-Quellcode:
{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;
Hier kommt für FPrintJOb 0 raus.


Delphi-Quellcode:
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;
GetProcAddress ermittelt eine Adresse. Ich verstehe aber nicht wie der Aufruf für das Result funktioniert.
Delphi-Quellcode:
TPEOpenPrintJob = function (reportFilePath: PChar): SmallInt; stdcall;

Bitte bitte helft. :?

mkinzler 17. Sep 2008 18:13

Re: Crystal Reports VCL XI und Delphi 2009
 
Zitat:

Das ist auch noch ein Problem. Die OnlineHilfe geht auch nicht... aber damit muss ich mich später befassen.
http://docs.codegear.com/docs/radstu.../contents.html
Versuch mal
Delphi-Quellcode:
FPrintJob := FCrpeEngine.PEOpenPrintJob(PAnsiChar(FReportName));

Samashy 18. Sep 2008 07:25

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:
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;
Bei GetProcAdress kommt eine Adresse raus. printJob=1 und tableN=0

Vielleicht ist es ja schon das Fatale, dass TableN=0 ist.

In einer Procedure davor werden diese ermittelt
Delphi-Quellcode:
{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;
Da kommt 1 raus.


Delphi-Quellcode:
{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;
Bei "Set LogOnINfo" kommt auch TRUE raus... was dann scheitert ist der "Test Connect".


Bitte bitte helft.

Romy

rwachtel 18. Sep 2008 08:30

Re: Crystal Reports VCL XI und Delphi 2009
 
Zitat:

Zitat von Bernhard Geyer
[...] Gibt nicht evtl. schon ein D2009-Update von CR?

Wird es auch nicht geben, da das VCL-Interface seit Delphi 7 (nicht 2007!) als "deprecated" gilt.

Samashy 18. Sep 2008 09:01

Re: Crystal Reports VCL XI und Delphi 2009
 
Zitat:

Zitat von rwachtel
Zitat:

Zitat von Bernhard Geyer
[...] Gibt nicht evtl. schon ein D2009-Update von CR?

Wird es auch nicht geben, da das VCL-Interface seit Delphi 7 (nicht 2007!) als "deprecated" gilt.

Was wäre die Alternative?

Romy

rwachtel 18. Sep 2008 09:12

Re: Crystal Reports VCL XI und Delphi 2009
 
Lt. Business Objects/SAP: weg von Win32, hin zu .NET

https://boc.sdn.sap.com/files/Updati...20XI%20VCL.pdf

mkinzler 18. Sep 2008 09:22

Re: Crystal Reports VCL XI und Delphi 2009
 
Oder einer anderen Repoting-Bibliothek


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz