Zeilen einer Tabelle prüfen

Fragen zum Thema Berichte
Antworten
Kuschel1234
Profi
Beiträge: 43
Registriert: So, 24 Okt, 2010 14:26

Zeilen einer Tabelle prüfen

Beitrag von Kuschel1234 » Do, 24 Feb, 2011 22:03

Guten Abend,

ist es möglich in einer Tabelle (die ich in einem Bericht eingefügt habe) alle Zeilen auf einen bestimmten Wert hin überprüfen zulassen?

Beispiel:
Ich habe eine Tabelle mit 3 Zeilen. Und ein Datumsfeld mit dem aktuellen Datum (z.B.: 24.02.2011). (Spalte 1 = Fälligkeit, Spalte 2 = Überprüfung)

Zeilen Spalte 1 Spalte 2
Zeile 1: 21.02.2011 Fällig
Zeile 2: 22.02.2011 Fällig
Zeile 3: 28.02.2011 noch nicht fällig

Ich möchte jetzt gern das mithilfe einer Funktion alle Zeilen der Tabelle überprüft werden ob eine Fälligkeit vorliegt und wenn ja in Spalte 2 der Text "Fällig" eingetragen wird. Ist dies irgendwie möglich das man Zeilen überprüft ohne diese konkret anzusprechen? Weil die Anzahl der Zeilen wird sich in meiner Tabelle ständig ändern.

Ich hoffe Ihr könnt mir helfen.

Vielen vielen Dank
Kuschel 1234

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Mo, 28 Feb, 2011 18:24

Hallo Kuschel1234,

da gibt es zwei Möglichkeiten:
entweder hinterlegst Du in jeder Zelle von Spalte 2 eine Zellformel oder Du setzt einen Button, der im Click-Ereignis die gesamte Tabelle in einem Rutsch ausrechnet.

Die Zellformel für Zeile 1, Spalte 2 lautet:

Code: Alles auswählen


Var ZahlungsZiel : Integer = 14

If IsDate(Tabelle1.Cell(0,0).Text)
  If DateDiff&#40;Tabelle1.Cell&#40;0,0&#41;.Text,Date&#41; <= ZahlungsZiel
    Tabelle1.Cell&#40;1,0&#41;.Text = "Noch nicht fällig"
  EndIf
  Else
    Tabelle1.Cell&#40;1,0&#41;.Text = "Fällig"
  EndElse
  Tabelle1.Refresh
EndIf
Und im Click-Ereignis könnte stehen:

Code: Alles auswählen


Procedure Schalter1_OnClick
  Var ZahlungsZiel &#58; Integer = 14
  Var I &#58; Integer

  For i = 0 To Tabelle1.RowCount - 1
    If IsDate&#40;Tabelle1.Cell&#40;0,i&#41;.Text&#41;
      If DateDiff&#40;Tabelle1.Cell&#40;0,i&#41;.Text,Date&#41; <= ZahlungsZiel
        Tabelle1.Cell&#40;1,i&#41;.Text = "Noch nicht fällig"
      EndIf
      Else
        Tabelle1.Cell&#40;1,i&#41;.Text = "Fällig"
      EndElse
      Tabelle1.Refresh
    EndIf
  Next
EndProcedure
Viele Grüße,
Dirk Schauries
Team Schauries

Antworten