AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Rave: CustomConnection zur Laufzeit hinzufügen?
Thema durchsuchen
Ansicht
Themen-Optionen

Rave: CustomConnection zur Laufzeit hinzufügen?

Ein Thema von Errraddicator · begonnen am 12. Nov 2008 · letzter Beitrag vom 12. Nov 2008
 
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Rave: CustomConnection zur Laufzeit hinzufügen?

  Alt 12. Nov 2008, 09:28
Ok, habs rausgefunden:

Delphi-Quellcode:
procedure TIWUserSession.generatePDF(pdfName: String; ravName: String);
var
  rvProject: TRvProject;
  rvSystem: TRvSystem;
  rvPDF: TRvRenderPDF;
  rvCcOutputs: TRvCustomConnection;
  dvOutputs: TRaveDataView;
  dcOutputs: TRaveDataConnection;
  rvPage: TRavePage;
  bndOutputs: TRaveDataBand;
begin
  // init components
  rvProject := TRvProject.Create(self);
  rvSystem := TRvSystem.Create(self);
  rvCcOutputs := TRvCustomConnection.Create(self);
  rvPDF := TRvRenderPDF.Create(self);
  // apply event-hanlders to custom-connection
  rvCcOutputs.OnEOF := rvCcOutputsEOF;
  rvCcOutputs.OnFirst := rvCcOutputsFirst;
  rvCcOutputs.OnGetCols := rvCcOutputsGetCols;
  rvCcOutputs.OnGetRow := rvCcOutputsGetRow;
  rvCcOutputs.OnNext := rvCcOutputsNext;
  rvCcOutputs.OnOpen := rvCcOutputsOpen;
  // modify custom connection
  rvCcOutputs.DataIndex := 0;
  rvCcOutputs.DataRows := outputSets.Count;
  // modify system-properties
  rvSystem.SystemOptions := rvSystem.SystemOptions - [soShowStatus];
  rvSystem.SystemSetups := rvSystem.SystemSetups - [ssAllowSetup];
  rvSystem.DefaultDest := rdFile;
  rvSystem.DoNativeOutput := false;
  rvSystem.RenderObject := rvPDF;
  rvSystem.OutputFileName := pdfName;
  // modify project
  rvProject.Engine := rvSystem;
  rvProject.ProjectFile := ravName;
  rvProject.Open();
  // build & modify data view for the report
  dcOutputs := CreateDataCon(rvCcOutputs);
  dvOutputs := rvProject.ProjMan.NewDataObject(TRaveDataView) as TRaveDataView;
  dvOutputs.Name := 'dvOutputs';
  dvOutputs.ConnectionName := dcOutputs.name;
  dvOutputs.DataCon := dcOutputs;
  CreateFields(dvOutputs, nil, nil, true);
  // get data-band & apply data-view
  rvPage := rvProject.ProjMan.FindRaveComponent('Report1.Page1', nil) as TRavePage;
  bndOutputs := rvProject.ProjMan.FindRaveComponent('bndOutputs', rvPage) as TRaveDataBand;
  bndOutputs.DataView := dvOutputs;
  // execute report
  rvProject.Execute();
  // reset report & custom-connection
  rvProject.Close();
  rvCcOutputs.DataRows := 0;
  rvCcOutputs.DataIndex := 0;
end;
Das behebt mein Problem aber leider immer noch nich. :-/
Das 1. Dokument is nach wie vor einwandfrei, beim 2. passiert gar nix mehr.
  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 16:40 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