Hallo,
Ich habe die Sichtbarkeit aller Felder aller Tabellen in einer weiteren sog. Konfigurationstabelle abgelegt. Soll jetzt der Inhalt einer Tabelle in einem DBGrid angezeigt werden, so lade ich erst alle Daten der betreffenden Tabelle über eine
Query in ein Dataset:
Query.sql.add('SELECT * FROM Tabelle');
Anschließend lese ich aus der Konfigurationstabelle das Attribut für die Sichtbarkeit der Felder dieser Tabelle:
Delphi-Quellcode:
...
for i:=0 to Datasource.DataSet.FieldCount-1 do
begin
Datasource.DataSet.Fields[i].Visible:= visability[i+1]='1';
Datasource.DataSet.Next;
end;
Das Attribut "visability" ist ein String der Form: '001010011011'. Die Sichtbarkeit wird jedem Feld im Dataset über die Schleife zugeordnet. So weit klappt das auch.
Will ich jetzt ebenfalls zur Laufzeit das Grid mit der Datasource verbinden, mache ich das folgende:
Delphi-Quellcode:
...
with Grid do
begin
for ColCount:=0 to DataSource.DataSet.FieldCount-1 do
Fields[ColCount].Visible:= DataSource.DataSet.Fields[ColCount].Visible;
end;
Leider sind immer alle Felder sichtbar!? Wo ist mein Fehler?
Danke und Gruß,
Barnti