AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Spalten während Laufzeit ausblenden/verschieben
Thema durchsuchen
Ansicht
Themen-Optionen

Spalten während Laufzeit ausblenden/verschieben

Ein Thema von thomas.h · begonnen am 9. Apr 2025 · letzter Beitrag vom 10. Apr 2025
 
thomas.h

Registriert seit: 28. Okt 2024
4 Beiträge
 
#1

Spalten während Laufzeit ausblenden/verschieben

  Alt 9. Apr 2025, 15:58
Datenbank: MySQL • Version: Delphi 11 • Zugriff über: FireDAC
Ich lese eine SQL-Tabelle mit FDQuery aus lasse es mir in einem DBGrid anzeigen. Das Funktioniert auch soweit.

Die Tabelle hat am Anfang 8 Spalten, die ich aber wegen anderen Anwendungen welche die Tabelle auch nutzen nicht in der Reihenfolge ändern kann. Da ich sie aber bei mir in einer anderen Reihenfolge benötige habe ich sie im DBGrid von der Reihenfolge geändert.
Da aber nicht jeder Benutzer alle Spalten sehen darf blende ich im Nachgang je nach Berechtigung die Spalten aus und ändere in diesem Moment gleichzeitig die Spaltenüberschriften dies mache ich wie folgt:

FDQuerryAfterOpen
for i := 0 to DataSet.Fields.Count-1 do begin
DataSet.Fields[i].DisplayLabel := DataSet.Fields[i].DisplayLabel + '_TXT'; // Umbenennen geht
if NOT(Access[i]) then begin
// DataSet.Fields[i].Visible := FALSE; // -> Erzeugt eine Fehlermeldung daher geändert in:
DBGGrid.Columns[i].Visible := FALSE // Blendet falsche Spalten aus, da Reihenfolge geändert
end;
end;

Durch das Umsortieren bekomme ich jetzt die Falschen Spalten ausgeblendet da "DataSet.Fields[i]" auf eine andere Spalte verweist als "DBGGrid.Columns[i]"

Hat jemand ein Tipp wie ich das zusammen bekomme?
Oder wie ich das VISIBLE der Spalte unter "DataSet" erreiche?
Alternative wäre noch dass ich die Reihenfolge der Spalten im original lasse und sie dann nach dem Auslesen in der Reihenfolge verändere, was ich aber auch noch nicht herausgefunden habe, wie es geht.

Zu alten Zeiten als es noch kein FireDAC gab und man es mit etwas mehr und aufwändigerem Code auslesen musste und in einen normalen GRID geschrieben hat hat es in der Auslese-Schleife ganz gut Funktioniert. Jetzt wo das alte Programm ein Update braucht und ich es in meine Aktuelle Version übernehme soße ich gerade an die grenzen meines wissens mit FireDAC.
  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 08:11 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