Einzelnen Beitrag anzeigen

EG045947

Registriert seit: 23. Mai 2022
13 Beiträge
 
#13

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 16:04
Ich habe eine Access DB und dort mehrere Felder, die ich aber nicht alle in der DBgrid anzeigen möchte. Die Felder die ich ausblende werden woanders angezeigt.
Ziel ist es mit Column.fieldname den order by sql Befehl flexibel zu machen.

Klicke ich auf Nr kommt der Titel.
Art, Baureihe, Epoche und Hersteller gehen nicht. Da ist der Column.Index = -1
Ab Anzahl geht es wieder.
Ich habe auch schon alle Fields mit dem visible = false auskommentiert, dann sehe ich alle Felder, habe aber das Gleiche Problem. Also ist es das Visible=false nicht.
Im edit1.text Feld lasse ich mir den Titel der jeweiligen Spalte nur Anzeigen, zwecks Kontrolle.

Hier der Quell-Text:

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
FDConnection1.Params.Database:= ProgPath+'database.mdb';
FDConnection1.Params.DriverID:='MSAcc' ;
FDConnection1.Connected:=true;
FDQuery1.SQL.Clear;

FDQuery1.SQL.Add('select Nr, Art, Baureihe, Epoche, Hersteller, Anzahl, Preis, Rocrail, CS3, Eingemessen, Bild, Motor, Dekoder, Artikelnummer, URL, Zusatzinfo, Protokol, Adresse, Dateien, Kaufdatum from TabLoks ');
//FDQuery1.SQL.Add('order by Epoche');


FDQuery1.Active:=true;
FDQuery1.first;
DBGrid1.Columns.State := csDefault;

dbgrid1.Columns[5].Visible:=false;
dbgrid1.Columns[6].Visible:=false;
dbgrid1.Columns[7].Visible:=false;
dbgrid1.Columns[8].Visible:=false;
dbgrid1.Columns[9].Visible:=false;
dbgrid1.Columns[10].Visible:=false;

dbgrid1.Columns[14].Visible:=false;
dbgrid1.Columns[15].Visible:=false;
dbgrid1.Columns[16].Visible:=false;
dbgrid1.Columns[17].Visible:=false;
dbgrid1.Columns[18].Visible:=false;
dbgrid1.Columns[19].Visible:=false;

dbgrid1.Columns[0].Width:=150;
dbgrid1.Columns[1].Width:=150;
dbgrid1.Columns[2].Width:=150;
dbgrid1.Columns[3].Width:=150;
dbgrid1.Columns[4].Width:=150;
dbgrid1.Columns[5].Width:=150;

dbgrid1.Columns[11].Width:=150;
dbgrid1.Columns[12].Width:=150;
dbgrid1.Columns[13].Width:=150;

edit1.Text:=Column.FieldName;
end;
  Mit Zitat antworten Zitat