Announcement

Collapse
No announcement yet.

Formatierung Datum/Zeit im DBGrid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formatierung Datum/Zeit im DBGrid

    Hallo,

    ich hab eine Tabelle die ein TDateTime-Feld hat. Nun möchte ich in meiner "DBGrid" aber nur das Datum anzeigen. Wie kann ich eine DBGrid-Datenfeld formatieren bei der Anzeige ?

  • #2
    Hallo,

    schaue einmal in der Delphi-Hilfe unter dem Stichwort <b>TDateTimeField.DisplayFormat</b> nach. Wenn für die TTable-Instanz <i>persistente TFields</i> angelegt werden (Doppelklick auf TTable, Kontextmenüeintrag "Alle Felder hinzufügen"), kann für das TDataTime-Feld das DisplayFormat im Objektinspektor konfiguriert werden

    Comment


    • #3
      Hallo Andreas,

      ich hab das ganze zu ungenau formuliert. Also, ich hab da eine Tabelle mit einem DateTime-Feld. Nun möchte ich eine DBGrid, das in einer Spalte das Datum anzeigt und in einer anderen Spalte die Zeit. Wenn ich nun das Display-Format ändere wie unten ausgeführt, hab ich eine Endlosanzeige im DBGrid. Wie kann ich das noch anders lösen, ausser mit zwei getrennten Feldern in der Tabelle ?

      procedure THauptbild.DateGridDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
      begin
      if DataCol = 0 then
      Daten.TEinDate.DisplayFormat := 'dd.mm.yy';
      if DataCol = 1 then
      Daten.TEinDate.DisplayFormat := 'hh.nn';
      end

      Comment


      • #4
        Hallo Markus,

        nein - das Manipulieren über <b>OnDrawColumnCell</b> ist der falsche Ansatz. Ein TDBGrid stellt nur die Daten einer vorhandenen Datenmenge dar, daher muss man dafür sorgen, das bereits die Datenmenge die erwartete Formatierung besitzt. Wenn eine Tabellenspalte in zwei TDBGrid-Spalten angezeigt werden soll, sind die folgenden Arbeitschritte notwendig: <br>
        1. Für die TTable/TQuery-Instanz (die für die Datenmenge zuständig ist) werden im <b>Feld-Editor</b> persistente TField-Instanzen angelegt (Dialog <i>Felder hinzufügen</i>. Somit kann für die erste anzuzeigende Spalte im Objektinspektor die Eigenschaft <b>DisplayFormat</b> auf das Datum konfiguriert werden. <br>
        2. Für die TTable/TQuery-Instanz wird im <b>Feld-Editor</b> ein neues, berechnetes Feld über den Dialog <b>Neues Feld</b> hinzugefügt. Für dieses Feld wird im Objektinspektor die Eigenschaft <b>DisplayFormat</b> auf die Uhrzeit gesetzt.<br>
        Im Ergebnis dieser Arbeitsschritte sind in der Datenmenge nun zwei getrennte Spalten vorhanden, so das auch TDBGrid zwei getrennte Spalten verwendet

        Comment

        Working...
        X