Ich hätte da nun ein weiteres Problem.
Das eintragen des Datums klappt soweit und mein Grid ist nun auch damit verbunden. Allerdings soll die Schicht für eine ganze Woche angezeigt werden, steht aber nur im Montag. Anfang und Ende der Woche (Mo bis Fr) sind in der Datenbank vorhanden, allerdings schaffe ich es nicht die Tage bis Freitag ausfüllen zu lassen, da schmiert das Programm immer ab.
Ich leg euch mal meinen Quelltext hier rein, vielleicht sieht jemand meinen Fehler und eine Lösung.
Code: Alles auswählen
procedure TfmSchicht.FormActivate(Sender: TObject);
var query:ansistring; x,y:integer;
begin
//Kopfzeile eintragen
sg.Cells[1,0]:='Mo'; sg.Cells[2,0]:='Di'; sg.Cells[3,0]:='Mi';
sg.Cells[4,0]:='Do'; sg.Cells[5,0]:='Fr'; sg.Cells[6,0]:='Sa'; sg.Cells[7,0]:='So';
sg.Cells[8,0]:='Mo'; sg.Cells[9,0]:='Di'; sg.Cells[10,0]:='Mi';
sg.Cells[11,0]:='Do'; sg.Cells[12,0]:='Fr'; sg.Cells[13,0]:='Sa'; sg.Cells[14,0]:='So';
//Schichtdaten und Mitarbeiternamen in ein Query speichern
dm.qPlan.Close;
dm.qPlan.SQL.Clear;
query:='select Mitarbeiter.MName, Abk from Schicht ';
query:=query+'inner join SPlan on SPlan.StID=Schicht.StID ';
query:=query+'inner join Mitarbeiter on Mitarbeiter.MNr=SPlan.MNr ';
query:=query+'where Anfang='+#39+dedStartD.Text+#39;
dm.qPlan.SQL.Add(query); dm.qPlan.Open;
//aus dem Query in das Grid
y:=1;
dm.qPlan.First;
sg.RowCount:=sg.RowCount+1;
while not dm.qPlan.EOF do
begin
for x:=0 to dm.qPlan.FieldCount-1 do
sg.Cells[x,y]:=dm.qPlan.Fields[x].AsString;
sg.RowCount:=sg.RowCount+1;
dm.qPlan.Next;
inc(y)
end;
dm.qPlan.ApplyUpdates;
update;
end;