Einzelnen Beitrag anzeigen

Benutzerbild von Samashy
Samashy

Registriert seit: 20. Feb 2004
Ort: Cottbus
127 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Crystal Reports VCL XI und Delphi 2009

  Alt 18. Sep 2008, 07:25
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"

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
  Mit Zitat antworten Zitat