M
Hallo!
Ich habe ein DBAdvGrid und möchte für ein Datenfeld statt dem Wert ein Image angezeigt bekommen. Das funktioniert auch ganz gut, leider ist die Routine glaube ich nicht besonders elegant gelöst bzw. es muss immer die ganze Schleife durchlaufen werden, nicht gerade performant...
Hier mein Code:
void __fastcall Tdatenbankkomponenten::D_kundenverwaltungDataChange
(TObject *Sender, TField *Field) {
// Ansicht fuer Symbole 'Druck' und 'Versand' anpassen
for (int i = 0; i < Q_abrechnungen_uebersicht->RecordCount; i++) {
// Pruefen ob Abrechnung gedruckt wurde
if (datenbankkomponenten->Q_abrechnungen_uebersicht->FieldByName
("ABRECHNUNG_DRUCK_STATUS")->AsInteger == 0) {
// Spalte, Zeile
kundenverwaltung->DBAdvGrid1->AddDataImage(8, i + 1, 2,
haCenter, vaTop);
}
if (datenbankkomponenten->Q_abrechnungen_uebersicht->FieldByName
("ABRECHNUNG_DRUCK_STATUS")->AsInteger == 1) {
// Spalte, Zeile
kundenverwaltung->DBAdvGrid1->AddDataImage(8, i + 1, 0,
haCenter, vaTop);
}
// Pruefen ob Abrechnung versendet wurde
if (datenbankkomponenten->Q_abrechnungen_uebersicht->FieldByName
("ABRECHNUNG_VERSAND_STATUS")->AsInteger == 0) {
// Spalte, Zeile
kundenverwaltung->DBAdvGrid1->AddDataImage(9, i + 1, 2,
haCenter, vaTop);
}
if (datenbankkomponenten->Q_abrechnungen_uebersicht->FieldByName
("ABRECHNUNG_VERSAND_STATUS")->AsInteger == 1) {
// Spalte, Zeile
kundenverwaltung->DBAdvGrid1->AddDataImage(9, i + 1, 1,
haCenter, vaTop);
}
Q_abrechnungen_uebersicht->Next();
}
Q_abrechnungen_uebersicht->First();
Ich wollte das eigentlich 'OnDrawCell' machen, aber ich muss bei 'AddDataImage' irgendwie die Zeile übergeben, das klappt irgendwie nicht richtig.
Falls jemand einen Vorschlag hat wie ich das besser lösen kann immer her damit.
Viele Grüße
Maik