Autor |
Beitrag |
The_Tremendous
      
Beiträge: 47
Win XP SP2
Borland Delphi 6
|
Verfasst: Do 30.12.04 14:14
Ich möchte jedes mal, wenn das dbgrind im edit modus gesetzt wird, das aktuelle Datum in das Feld Datum im Grid automatisch einfügen.
Wie kann ich das machen??
The_Tremendous
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 30.12.04 14:23
Hallo!
Wo liegt genau das Problem? Weist du nicht wie du genau darauf regagieren kannst wenn sich der Status Edit vom DBGrid ändert oder weißt du nicht wie man das aktuelle Datum in die Spalte einer DB-Tabelle einfügt?
Gruß
Tino
|
|
The_Tremendous 
      
Beiträge: 47
Win XP SP2
Borland Delphi 6
|
Verfasst: Do 30.12.04 14:48
Also in dem moment, indem die Form mit dem Grid geöffnet wird setzte ich das grid in den edit modus. Dann kann der Nutzer nen neuen Datensatz in die Tabelle Speichern, in dem er, wenn er die Daten in die Felder Des Grids eingegeben hat auf den Butten Speichern klickt. Das funktioniert auch.
Ich möchte aber nun, das der Nutzer das Datum im Grid nicht eingeben kann (also die Eingabe für das Feld gesperrt ist) und das das Datum da schon Drinne steht.
Gruß
The_Tremendous
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Do 30.12.04 16:07
hallo tremendous!
Zitat: | setzte ich das grid in den edit modus |
ist es nicht eher so, dass du das dataset in den edit-modus setzt, welches dem dbgrid dahinterliegt? daher brauchst du lediglich zum eintragen es datums das betreffende feld im dataset zu befüllen
zb:
Delphi-Quelltext 1:
| DeinDataSet.FieldByName('Datum').asTDateTime:= Date |
und somit wird das aktuelle tagesdatum im dbgrid angezeigt
mfg, stefan
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 30.12.04 18:56
Und das passende Ereignis ist OnStateChange der TDataSource.
Dort kannst du dann sogar prüfen, ob eine Datensatz erfasst oder geändert wird.
|
|
The_Tremendous 
      
Beiträge: 47
Win XP SP2
Borland Delphi 6
|
Verfasst: Do 30.12.04 20:04
Hi.
Das mit dem Datum einfügen Klappt soweit. Ich wollte nun noch die Sache so gestalten, das der Nutzer auch nichts in das Feld Datum eintragen kann.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.FormCreate(Sender: TObject); begin Table1.Active := True; DBGrid1.DataSource.DataSet.Edit;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Table1.Active := False; end;
procedure TForm1.BitBtn2Click(Sender: TObject); begin
DBGrid1.DataSource.DataSet.Delete; end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin DBGrid1.DataSource.DataSet.Insert; end;
procedure TForm1.Table1NewRecord(DataSet: TDataSet); begin DataSet.FieldByName('Datum').AsDatetime := Now; DataSet.FieldByName('Datum').ReadOnly := true; end;
end. |
Nun bekomme ich immer beim Speichern die Fehlermeldung:
Im Projekt Project1.exe ist eine Exception der Klasse EDatabaseError aufgetreten.
Meldung: 'Feld 'Datum' kann nicht verändert werden'.
Was stimmt da nicht?? und Was könnte ich noch ändern oder so um Fehler abzufangen??
The_Tremendous
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Do 30.12.04 20:16
was spricht eigentlich dagegen, DBGrid1.DataSource.DataSet durch table1 zu ersetzen? oder machst du gerne solche verrenkungen?
die fehlermeldung könnte daher stammen, dass du ReadOnly auf true setzt.
mfg, stefan
|
|
The_Tremendous 
      
Beiträge: 47
Win XP SP2
Borland Delphi 6
|
Verfasst: Do 30.12.04 20:22
Das mit Table1 schreiben ist akzeptiert
Ich habe das read only doch extra reingesetzt, damit der user das Datum welches ich automatisch erzeuge net ändern kann. Deshalb ja meine Frage, wie ich den Fehler verhindern kann.
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: Do 30.12.04 21:22
dann setz das datumsfeld im spalteneditor des dbgrid auf 'read-only', das sollte helfen.
btw: macht es überhaupt sinn, ein feld im dbgrid anzuzeigen, auf dessen inhalt der user keinen zugriff haben soll?
mfg, stefan
|
|