The following code shows how to create a dataview in code:
uses
daDatMod, daQClass, daDataVw, daQuery, daDBBDE;
{------------------------------------------------------------------------------}
{TForm1.CreateDataView}
procedure TDynamicReport.CreateDataView;
var
lSQL: TdaSQL;
lTable: TdaTable;
lField: TdaField;
begin
{create a datamodule - note: this is only necessary if you need to stream the report definition to an .rtm or database}
FDataModule := TdaDataModule.CreateForReport(FReport);
{create a query dataview}
FDataView := TdaBDEQueryDataView.Create(Self);
FDataView.Parent := FDataModule;
{initialize the dataview}
FDataView.Init;
{define database connect and type}
FDataView.SQL.DatabaseName := 'DBDemos';
FDataView.SQL.DatabaseType := dtParadox;
FDataView.SQL.SQLType := sqBDELocal;
FDataView.SQL.Session := FDataView.Session;
{create local version of the SQL object}
lSQL := TdaSQL.Create(Self);
lSQL.Assign(FDataView.SQL);
{modify the local version}
{ lSQL.SQLText.Text := 'Select * from clients';
lSQL.EditSQLAsText := True;
}
lTable := lSQL.AddTable('clients');
lSQL.AddSelectField(lTable, 'Last_Name');
lSQL.AddSelectField(lTable, 'First_Name');
{assign local SQL object values to the dataview}
FDataView.SQL := lSQL;
{get a reference to the dataivew's pipeline and assign a Name to the pipeline}
FPipeline := TppDBPipeline(FDataView.DataPipelines[0]);
FPipeline.Name := 'plClient';
{connect report to datapipeline}
FReport.DataPipeline := FPipeline;
lSQL.Free;
end; {procedure, CreateDataView }