AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Temporäre Datenbank vom ADS an Crystal Reports übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Temporäre Datenbank vom ADS an Crystal Reports übergeben

Ein Thema von hsg · begonnen am 17. Okt 2007 · letzter Beitrag vom 26. Okt 2007
 
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#1

Temporäre Datenbank vom ADS an Crystal Reports übergeben

  Alt 17. Okt 2007, 13:35
Datenbank: Advantage Database Server • Version: 8.1 • Zugriff über: TDataSetDescendet
Hallo,

ich habe einen fertig designten crystal XI Release 2 - Report, der auch auf der Originalen Datenbank super funktioniert.
Nun erzeuge ich in einem anderen Programmteil zwei temporäre Tabellen und fülle die mit Daten. Auch das funktioniert einwandfrei.

Nun soll diese temporären Daten ausgedruckt werden und da fängt mein Problem an. Da die temporäre Datenbank beim ADS an der Connection zum Datenbank-Server liegt, muss ich im Crystal Reports das ConnectionHandle übergeben, das scheint auch zu funktionieren, zumindest kommt keine Fehlermeldung. Aber zusätzlich muss ich im Report auch den Namen der beteiligten Tabellen ändern. Nur wie?

Hier erst einmal der Code:
Delphi-Quellcode:
procedure TBlindBereitFRM.mnuPrintClick(Sender: TObject);
var
 iDb : IDatabase;
 idT : IDatabaseTable;
 i : Integer;
 iApp : CRAXDDRT_TLB.TApplication;
 iRep : CRAXDDRT_TLB.IReport;
begin
  if PPSReportPreview = nil then begin
    iApp := CRAXDDRT_TLB.TApplication.Create(Self);
    iRep    := iApp.OpenReport(Global.Reports + 'Bereitstellung.rpt');
    if iRep <> nil then begin
      iDb := iRep.Database;
      for i := 1 to iDb.Tables.Count do begin
        iDT := iDb.Tables.Item[i];
        if UpperCase(idT.Name) = 'PRQUEthen begin
          idT.Name := StringToWideString('#PrqueTmp');
          idT.SetLogOnInfo( Global.Connections.dcLager.AliasName,
                           'ConnectionHandle=' + IntToStr( Global.Connections.dcLager.Handle ) + ';',
                           '',
                           '' );
        end;
        if UpperCase(idT.Name) = 'BEREITSTLGthen begin
          idT.Name := StringToWideString('#BereitTmp');
          idT.SetLogOnInfo( Global.Connections.dcLager.AliasName,
                           'ConnectionHandle=' + IntToStr( Global.Connections.dcLager.Handle ) + ';',
                           '',
                           '' );
        end;
      end;
      iRep.DiscardSavedData();
      irep.formulasyntax   := crCrystalSyntaxFormula;
      iRep.RecordSelectionFormula := '';
      PPSReportPreview := TPPSReportPreview.Create(self, 'Bereitstellung');
      PPSReportPreview.SetReport(iApp,iRep);
      PPSReportPreview.ShowReport('',True);
      PPSReportPreview.Free();
      if iApp <> nil then
        iApp.Free();
      iRep := nil;
    end;
  end;
end;
Sobald der Report angezeigt werden soll, meckert Crystal, dass im Namen #BereitTmp ungültige Zeichen vorhanden sind.
Wie kann ich nun dem Crystal sagen, welche Tabelle er statt der Originalen Tabelle nehmen soll?

BTW: die Strukturen der temporären Tabellen stimmen vollständig mit denen der Originalen Tabellen überein.

Danke für jede Hilfe
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
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