![]() |
Datenbank: Advantage Database Server • Version: 8.1 • Zugriff über: TDataSetDescendet
Temporäre Datenbank vom ADS an Crystal Reports übergeben
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:
Sobald der Report angezeigt werden soll, meckert Crystal, dass im Namen #BereitTmp ungültige Zeichen vorhanden sind.
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) = 'PRQUE' then begin idT.Name := StringToWideString('#PrqueTmp'); idT.SetLogOnInfo( Global.Connections.dcLager.AliasName, 'ConnectionHandle=' + IntToStr( Global.Connections.dcLager.Handle ) + ';', '', '' ); end; if UpperCase(idT.Name) = 'BEREITSTLG' then 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; 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 |
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
So wie ich das sehe, nutzt du die temporären Tabellen (#) bei ADS. Diese existieren ja nur solange die Session noch existiert. Könnte mir vorstellen, dass Crystal diese nicht unterstützt. Ich würde das über normale Tabellen lösen und diese dann vor dem Füllen leeren.
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Korrekt, ich nutze die Temporären Tabellen im ADS. Damit Crystal an die entsprechende Session herankommt übergebe ich ihm ja das ConnectionHandle.
Laut Roadshow zum ADS 8.1 heiß es zu diesem Thema Zitat:
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Hatte bisher nur mit Crystal 8 zu tun, an deiner stelle würde ich Joachim Dürr bei ADS mal fragen, der weiß eigentlich immer ne Antwort.
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Ich hoffe ja darauf, dass er hier antwortet...
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Zitat:
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Zitat:
|
Re: Temporäre Datenbank vom ADS an Crystal Reports übergeben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 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 by Thomas Breitkreuz