Das wird jetzt echt kompliziert
Was ich wissen möchte:
Wieviele Spalten liefert die
Query, wenn Du die manuell im Selectstatement nachzählst. Ebenfalls 28, mehr oder weniger?
Die Spalten des DBGrids sind im Spalteneditor definiert. Wieviele sind das? Stimmt die Reihenfolge mit der im Select überein?
Wenn nein, wäre es möglich, dass Select so umzuschreiben, dass die Spaltenreihenfolge des Selects mit der Spaltenreihenfolge des DBGrids übereinstimmt?
Column.Field.FieldNo gibt an, an welcher Position sich das zur Spalte Column gehörende Feld in der Datenmenge befindet und nicht die Position in der Spaltenreihenfolge im DBGrid. Hier ist das - 1 vermutlich falsch. Hier würde ich eher vermuten, dass das Feld der Spalte, bei der Du
i := Column.Field.FieldNo - 1; // 7
ermittelt hast, das achte Feld in der Datenmenge ist. Sollte es sich hierbei um das "letzte" Feld, also die rechts Spalte im DBGrid handeln, dann ändere doch bitte mal die Abfrage auf Monatsende auf
if (Column.Field.FieldNo = 8) then Monatswechsel := false;
Zugegeben, das ist jetzt auch nur reine Spekulation, aber man weiß ja nie
Eventuell könnte aber auch eine Abfrage auf
if (Column.Index = DBGRid1.Columns.Count - 1) then Monatswechsel := false;
zum Ziel führen oder alternativ "festverdrahtet":
if (Column.Index = 28) then Monatswechsel := false;