Forums Neueste Beiträge
 

Master/Detail - DefaultView

20/11/2007 - 19:03 von Priddy Panamera | Report spam
Hallo,

ich lasse in zwei Datagrid zwei Tabellen anzeigen, die über Relations
miteinander verbunden sind.
Das klappt auch soweit.

Nun möchte ich die Master-Tabelle nach einem Wert sortieren lassen per
Defaultview.

Der wird nur angenommen, wenn den DataSource einem datgrid zuweise, aber
dann funktioniert die Relation nicht mehr.

Wie macht man es richtig?




sqlmaster := 'SELECT * FROM t_messung ' ;

da := FbDataAdapter.Create (sqlmaster, connectionString);
dt := DataTable.Create;

da.Fill(dsmaster, 'master');

dsmaster.Tables['master'].DefaultView.Sort := 'ID DESC';
dsmaster.Tables['master'].DefaultView.RowFilter := 'ID < 20';

dgmaster.SetDataBinding(dsmaster, 'master');
dgmaster.DataSource := dsmaster.Tables['master'].DefaultView;

dsmaster.Tables['master'].DefaultView.ApplyDefaultSort := true;;


sqldetail := 'SELECT * FROM T_MESSTASTER ' ;

da := FbDataAdapter.Create (sqldetail, connectionString);
dt := DataTable.Create;
da.Fill(dsmaster, 'detail');
dgdetail.SetDataBinding(dsmaster, 'detail');

dsmaster.Relations.Clear;
rel := DataRelation.Create('auswertung',
dsmaster.Tables['master'].Columns['id'] ,
dsmaster.Tables['detail'].Columns['mid'] );


dsmaster.Relations.Add(rel);
dgdetail.SetDataBinding(dsmaster, 'master.auswertung');
 

Lesen sie die antworten

#1 Peter Fleischer
20/11/2007 - 21:30 | Warnen spam
"Priddy Panamera" schrieb im Newsbeitrag
news:fhv7jh$65u$

ich lasse in zwei Datagrid zwei Tabellen anzeigen, die über Relations
miteinander verbunden sind.
Das klappt auch soweit.

Nun möchte ich die Master-Tabelle nach einem Wert sortieren lassen per
Defaultview.

Der wird nur angenommen, wenn den DataSource einem datgrid zuweise, aber
dann funktioniert die Relation nicht mehr.

Wie macht man es richtig?



Hi Priddy,
dein Problem habe ich nicht verstanden. Was bedeutet "richtig"?

sqlmaster := 'SELECT * FROM t_messung ' ;

da := FbDataAdapter.Create (sqlmaster, connectionString);
dt := DataTable.Create;

da.Fill(dsmaster, 'master');

dsmaster.Tables['master'].DefaultView.Sort := 'ID DESC';
dsmaster.Tables['master'].DefaultView.RowFilter := 'ID < 20';

dgmaster.SetDataBinding(dsmaster, 'master');



Hier bindest du aber nicht an die Sicht, sondern an den Context {dsmaster,
'master'}, das ist etwas anderes als der Context
{dsmaster.Tables['master'].DefaultView, ""}.

dgmaster.DataSource := dsmaster.Tables['master'].DefaultView;

dsmaster.Tables['master'].DefaultView.ApplyDefaultSort := true;;

sqldetail := 'SELECT * FROM T_MESSTASTER ' ;

da := FbDataAdapter.Create (sqldetail, connectionString);
dt := DataTable.Create;
da.Fill(dsmaster, 'detail');
dgdetail.SetDataBinding(dsmaster, 'detail');

dsmaster.Relations.Clear;
rel := DataRelation.Create('auswertung',
dsmaster.Tables['master'].Columns['id'] ,
dsmaster.Tables['detail'].Columns['mid'] );


dsmaster.Relations.Add(rel);
dgdetail.SetDataBinding(dsmaster, 'master.auswertung');



Ja und? was stimmt nicht`?


Viele Gruesse

Peter

Ähnliche fragen