hier mein constructor, der aufgerufen wird sobald die Form geöffnet wird.
Delphi-Quellcode:
begin
adoConnectionString := adoConnectionString;
raveSystem := TRvSystem.Create( self );
raveProject := TRvProject.Create( self );
ravePDFRender := TRvRenderPDF.Create( self );
raveDataSetConnection_Auf := TRvDataSetConnection.Create( self );
raveDataSetConnection_Pos := TRvDataSetConnection.Create( self );
raveDataSetConnection_Technik := TRvDataSetConnection.Create( self );
raveDataSetConnection_Design := TRvDataSetConnection.Create( self );
raveDataSetConnection_Flg := TRvDataSetConnection.Create( self );
raveDataSetConnection_VerAdr := TRvDataSetConnection.Create( self );
raveDataSetConnection_RecAdr := TRvDataSetConnection.Create( self );
raveDataSetConnection_TechPos := TRvDataSetConnection.Create( self );
raveDataSetConnection_UeberTechPos := TRvDataSetConnection.Create( self );
raveDataSetConnection_Revision := TRvDataSetConnection.Create( self );
dataSet_Auf := TADODataSet.Create( self );
dataSet_Pos := TADODataSet.Create( self );
dataSet_Technik := TADODataSet.Create( self );
dataSet_Design := TADODataSet.Create( self );
dataSet_Flg := TADODataSet.Create( self );
dataSet_VerAdr := TADODataSet.Create( self );
dataSet_RecAdr := TADODataSet.Create( self );
dataSet_RecLaen := TADODataSet.Create( self );
dataSet_VerLaen := TADODataSet.Create( self );
dataSet_E := TADODataSet.Create( self );
dataSet_TechPos := TADODataSet.Create( self );
dataSet_UeberTechPos := TADODataSet.Create( self );
dataSet_Revision := TADODataSet.Create( self );
raveProject.Engine := _raveSystem;
raveProject.ProjectFile := '.\TestReport.rav';
raveProject.StoreRAV := true;
//DataSet-Auf
raveDataSetConnection_Auf.DataSet := dataSet_Auf;
raveDataSetConnection_Auf.Name := 'Auf';
raveDataSetConnection_Auf.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Auf.OnGetCols := raveDataSetConnection_AufGetCols;
raveDataSetConnection_Auf.OnGetRow := raveDataSetConnection_AufGetRow;
//Pos
raveDataSetConnection_Pos.DataSet := dataSet_Pos;
raveDataSetConnection_Pos.Name := 'Pos';
raveDataSetConnection_Pos.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Pos.OnGetCols := raveDataSetConnection_PosGetCols;
raveDataSetConnection_Pos.OnGetRow := raveDataSetConnection_PosGetRow;
//Technik
raveDataSetConnection_Technik.DataSet := dataSet_Technik;
raveDataSetConnection_Technik.Name := 'Technik';
raveDataSetConnection_Technik.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Technik.OnGetCols := raveDataSetConnection_TechnikGetCols;
raveDataSetConnection_Technik.OnGetRow := raveDataSetConnection_TechnikGetRow;
//
raveDataSetConnection_Design.DataSet := dataSet_Design;
raveDataSetConnection_Design.Name := 'Design';
raveDataSetConnection_Design.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Design.OnGetCols := raveDataSetConnection_DesignGetCols;
raveDataSetConnection_Design.OnGetRow := raveDataSetConnection_DesignGetRow;
//AufträgeFlg
raveDataSetConnection_Flg.DataSet := dataSet_Flg;
raveDataSetConnection_Flg.Name := 'Flg';
raveDataSetConnection_Flg.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Flg.OnGetCols := raveDataSetConnection_FlgGetCols;
raveDataSetConnection_Flg.OnGetRow := raveDataSetConnection_FlgGetRow;
raveDataSetConnection_VerAdr.DataSet := dataSet_VerAdr;
raveDataSetConnection_VerAdr.Name := 'VerAdr';
raveDataSetConnection_VerAdr.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_VerAdr.OnGetCols := raveDataSetConnection_VerAdrGetCols;
raveDataSetConnection_VerAdr.OnGetRow := raveDataSetConnection_VerAdrGetRow;
raveDataSetConnection_RecAdr.DataSet := dataSet_RecAdr;
raveDataSetConnection_RecAdr.Name := 'RecAdr';
raveDataSetConnection_RecAdr.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_RecAdr.OnGetCols := raveDataSetConnection_RecAdrGetCols;
raveDataSetConnection_RecAdr.OnGetRow := raveDataSetConnection_RecAdrGetRow;
raveDataSetConnection_TechPos.DataSet := dataSet_TechPos;
raveDataSetConnection_TechPos.Name := 'TechPos';
raveDataSetConnection_TechPos.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_TechPos.OnGetCols := raveDataSetConnection_TechPosGetCols;
raveDataSetConnection_TechPos.OnGetRow := raveDataSetConnection_TechPosGetRow;
raveDataSetConnection_UeberTechPos.DataSet := _dataSet_UeberTechPos;
raveDataSetConnection_UeberTechPos.Name := 'UeberTechPos';
raveDataSetConnection_UeberTechPos.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_UeberTechPos.OnGetCols := raveDataSetConnection_UeberTechPosGetCols;
raveDataSetConnection_UeberTechPos.OnGetRow := raveDataSetConnection_UeberTechPosGetRow;
raveDataSetConnection_Revision.DataSet := _dataSet_Revision;
raveDataSetConnection_Revision.Name := 'Revision';
raveDataSetConnection_Revision.RuntimeVisibility := rtDeveloper;
raveDataSetConnection_Revision.OnGetCols := raveDataSetConnection_RevisionGetCols;
raveDataSetConnection_Revision.OnGetRow := raveDataSetConnection_RevisionGetRow;
Hier die GetCols/GetRow:
Delphi-Quellcode:
procedure TForm_KundenauftragReport._raveDataSetConnection_AuftraegeVersandAdrGetCols(
Connection: TRvCustomConnection);
begin
raveDataSetConnection_VerAdr.DoGetCols;
raveDataSetConnection_VerAdr.WriteField('ADR',dtString, 20, 'ADR','ADR');
end;
procedure TForm_KundenauftragReport._raveDataSetConnection_AuftraegeVersandAdrGetRow(
Connection: TRvCustomConnection);
begin
_raveDataSetConnection_VerAdr.DoGetRow;
Adr();
Last but Not least, das Dataset befüllen:
Delphi-Quellcode:
dataSet_Revision.Connection := adoConnection;
dataSet_Revision.CommandText:= 'select * from Revision where nr=''xyz''';
dataSet_Revision.Open();
Der
ado connection string wird aus einer
DLL übergeben. Im Prinzip werden dann Alle DataConnections initalisiert beim start, da ich ja nen Create constructor hab. Die Form wird letztendlich über eine Funktion aufgerufen, dort wo meine datasets befüllt werden, und anschließend kann ich den Rave Dialog per druck auf nen button öffnen und damit halt weitermachen. ich habs jetzt so eingestellt dass er den Dialog nicht zeigt sondern direkt nen Preview ausgibt.
Ist viel Tipperei, aber er hatte mit dem komponenten auf der oberfläche probleme, weswegen ich die sachen später erzeugen muss.
Gruß