|
Letzte Änderung 01.02.2010
Daten in einem Zeitraum
Für dieses Beispiel benötigen Sie das Beispiel-Projekt fahrzeuge.xdev.
Für die Suche nach Daten die in einem bestimmten Zeitraum liegen, benötigen Sie lediglich ein Datum für den Beginn sowie ein Datum für das Ende des Zeitraums. Beide Daten müssen so formatiert werden, dass deren Schreibweise mit den Datums-Objekten in der Datenbank übereinstimmt. In der Abfrage-Bedingung wird der Zeitraum dann mit Hilfe der Operatoren > und < sowie durch eine logisch UND Verknüpfung von Start- und Ende-Datum definiert.
Aufbau der Filter-Bedingung:
|
#VirtuelleTabelle.Datenfeld > datum_VON && #VirtuelleTabelle.Datenfeld < datum_BIS
|
Fortsetzung des Beispiels Abfrage mehrerer Datenbank-Tabellen (Joins):
| 7. | Wechseln Sie in den GUI-Builder, verschieben Sie den Button nach rechts, fügen Sie links zwei Text-Container untereinander ein und beschriften Sie diese mit EZ von: und EZ bis:, fügen Sie daneben jeweils ein Textfield ein, selektieren Sie beide mit gedrückter Shift Taste (Mehrfachauswahl), klicken Sie in den Eigenschaften bei Format auf , klicken Sie im folgenden Dialog auf Datum / Zeit und klicken Sie auf Übernehmen. |

Ermittlung von Datum 1 und 2:
| 8. | Selektieren Sie den Button, wechseln Sie in die Code-Ansicht und fügen Sie vor die Datenbankabfrage die Anweisung Variable: Definition ein. Geben Sie im folgenden Dialog EZ_von bei Name ein, wählen Sie bei Typ Datentyp Xdev-Objekt aus, wählen Sie in der folgenden Liste XdevDate | XDEV NLS: XdevDatum aus und klicken Sie auf OK. Weisen Sie der neuen Variable das im Textfield bei EZ von: ausgewählte Datum zu. Geben Sie dazu nach der Variablen-Definition = ein, klicken Sie das Textfield bei EZ von: an, um alle Methoden des Textfields in der Bibliothek anzuzeigen und ziehen Sie die Methode getDate( ) | XDEV NLS: holeDatum( ) in den Code-Editor ein. |
| 9. | Fügen Sie eine zweite Variablen-Definition vor die Datenbankabfrage ein. Geben Sie im folgenden Dialog EZ_bis bei Name ein, wählen Sie bei Typ Datentyp Xdev-Objekt aus, wählen Sie in der folgenden Liste XdevDate | XDEV NLS: XdevDatum aus und klicken Sie auf OK. Weisen Sie der neuen Variable das im Textfield bei EZ bis: ausgewählte Datum zu. Geben Sie dazu nach der Variablen-Definition = ein, klicken Sie das Textfield bei EZ bis: an, um alle Methoden des Textfields in der Bibliothek anzuzeigen und ziehen Sie die Methode getDate( ) | XDEV NLS: holeDatum( ) in den Code-Editor ein. |
Formatierung von Datum 1 und 2:
| 10. | Fügen Sie eine dritte Variablen-Definition vor die Datenbankabfrage ein, mit der Sie das Datum EZ_von formatieren. Fügen Sie dazu die Anweisung Variable: Definition ein. Geben Sie im folgenden Dialog EZ_von_formatiert bei Name ein, wählen Sie bei Typ den Datentyp String | XDEV NLS: Zeichenkette aus und klicken Sie auf OK. Fügen Sie nach der Variablen-Definition = ein, geben Sie danach die Variable EZ_von und unmittelbar dahinter einen Punkt . | XDEV NLS: Backslash \ ein und wählen Sie aus der erscheinenden Liste die Methode format( ) | XDEV NLS: formatiere( ) aus. Klicken Sie die Anweisung format( ) | XDEV NLS: formatiere( ) an und legen Sie im folgenden Dialog die Formatierung des Datums so fest, wie das Datum von Ihrer Datenbank abgespeichert wird. Geben Sie dabei für jede Stelle des Datums das entsprechende Symbol oder Trennzeichen an. Geben Sie also "yyyy-MM-dd" ein und klicken Sie abschließend auf OK. |
| 11. | Fügen Sie schließlich eine letzte Variablen-Definition vor die Datenbankabfrage ein, mit der Sie das Datum EZ_bis formatieren. Fügen Sie dazu die Anweisung Variable: Definition ein. Geben Sie im folgenden Dialog EZ_bis_formatiert bei Name ein, wählen Sie bei Typ den Datentyp String | XDEV NLS: Zeichenkette aus und klicken Sie auf OK. Fügen Sie nach der Variablen-Definition = ein, geben Sie danach die Variable EZ_bis und unmittelbar dahinter einen Punkt . | XDEV NLS: Backslash \ ein und wählen Sie aus der erscheinenden Liste die Methode format( ) | XDEV NLS: formatiere( ) aus. Klicken Sie die Anweisung format( ) | XDEV NLS: formatiere( ) an, geben Sie "yyyy-MM-dd" ein und klicken Sie abschließend auf OK. |
Überarbeitung der Datenbankabfrage:
| 12. | Klicken Sie die Datenbankabfrage an, um den SQL-Assistenten aufzurufen und klicken Sie dann im SQL-Assistenten auf Schritt 3: Filter festlegen. |
| 13. | Geben Sie bei Bedingung das Datenfeld #FAHRZEUGE.ERSTZULASSUNG als VT-Konstante an, geben Sie danach den SQL-Operator > und danach die Variable EZ_von_formatiert ein, um den Beginn des Zeitraums festzulegen. Geben Sie dann den Logisch UND Operator && ein. Geben Sie danach erneut das Datenfeld #FAHRZEUGE.ERSTZULASSUNG an, geben Sie dann den SQL-Operator < und danach die Variable EZ_bis_formatiert ein, um das Ende des Zeitraums festzulegen. |

| 14. | Klicken Sie auf OK, um den SQL-Assistenten zu schließen. |
1
2
3
4
5
6
7
8
9
10
|
ACTION_PERFORMED ( )
{
XdevDate EZ_von = Textfield.getDate();
XdevDate EZ_bis = Textfield2.getDate();
String EZ_von_formatiert = EZ_von.format("yyyy-MM-dd");
String EZ_bis_formatiert = EZ_bis.format("yyyy-MM-dd");
XDEV Query #FAHRZEUGE_JOIN << FAHRZEUGE;
}
|
ACTION_PERFORMED ( )
Der nachfolgende Code wird bei Mausklick auf den Button ausgeführt.
XdevDate EZ_von = Textfield.getDate();
Definiert eine Variable mit dem Namen EZ_von vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield zu.
XdevDate EZ_bisn = Textfield.getDate();
Definiert eine Variable mit dem Namen EZ_bis vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield2 zu.
String EZ_von_formatiert = EZ_von.format("yyyy-MM-dd");
Definiert eine Variable mit dem Namen EZ_von_formatiert vom Typ String (Zeichenkette) und weist dieser das Datum EZ_von zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
String EZ_bis_formatiert = EZ_bis.format("yyyy-MM-dd");
Definiert eine Variable mit dem Namen EZ_bis_formatiert vom Typ String (Zeichenkette) und weist dieser das Datum EZ_bis zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
XDEV Query #FAHRZEUGE_JOIN << FAHRZEUGE;
Datenbankabfrage über mehrere Tabellen, u.a. FAHRZEUGE. Liefert alle Datensätze bei denen die Erstzulassung zwischen dem formatierten Daten EZ_von_formatiert und EZ_bis_formatiert liegt.
Abfragebedingung: #FAHRZEUGE.ERSTZULASSUNG > EZ_von_formatiert && #FAHRZEUGE.ERSTZULASSUNG < EZ_bis_formatiert
|
|
1
2
3
4
5
6
7
8
|
ACTION_PERFORMED ( )
XdevDate EZ_von = Textfield.getDate()
XdevDate EZ_bis = Textfield2.getDate()
String EZ_von_formatiert = EZ_von.format("yyyy-MM-dd")
String EZ_bis_formatiert = EZ_bis.format("yyyy-MM-dd")
XDEV Query #FAHRZEUGE_JOIN << FAHRZEUGE
|
ACTION_PERFORMED ( )
Der nachfolgende Code wird bei Mausklick auf den Button ausgeführt.
XdevDate EZ_von = Textfield.getDate()
Definiert eine Variable mit dem Namen EZ_von vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield zu.
XdevDate EZ_bisn = Textfield.getDate()
Definiert eine Variable mit dem Namen EZ_bis vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield2 zu.
String EZ_von_formatiert = EZ_von.format("yyyy-MM-dd")
Definiert eine Variable mit dem Namen EZ_von_formatiert vom Typ String (Zeichenkette) und weist dieser das Datum EZ_von zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
String EZ_bis_formatiert = EZ_bis.format("yyyy-MM-dd")
Definiert eine Variable mit dem Namen EZ_bis_formatiert vom Typ String (Zeichenkette) und weist dieser das Datum EZ_bis zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
XDEV Query #FAHRZEUGE_JOIN << FAHRZEUGE
Datenbankabfrage über mehrere Tabellen, u.a. FAHRZEUGE. Liefert alle Datensätze bei denen die Erstzulassung zwischen dem formatierten Daten EZ_von_formatiert und EZ_bis_formatiert liegt.
Abfragebedingung: #FAHRZEUGE.ERSTZULASSUNG > EZ_von_formatiert && #FAHRZEUGE.ERSTZULASSUNG < EZ_bis_formatiert
|
|
1
2
3
4
5
6
7
8
|
Bei Mausklick ( )
XdevDatum EZ_von = Textfield\holeDatum ( )
XdevDatum EZ_bis = Textfield2\holeDatum ( )
Zeichenkette EZ_von_formatiert = EZ_von\formatiere ( "yyyy-MM-dd" )
Zeichenkette EZ_bis_formatiert = EZ_bis\formatiere ( "yyyy-MM-dd" )
XDEV Datenbankabfrage #FAHRZEUGE_JOIN << FAHRZEUGE
|
Bei Mausklick ( )
Der nachfolgende Code wird bei Mausklick auf den Button ausgeführt.
XdevDatum EZ_von = Textfield\holeDatum ( )
Definiert eine Variable mit dem Namen EZ_von vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield zu.
XdevDatum EZ_bis = Textfield2\holeDatum ( )
Definiert eine Variable mit dem Namen EZ_bis vom Typ XdevDate (Datums-Objekt) und weist dieser das ausgewählte Datum im Textfield2 zu.
Zeichenkette EZ_von_formatiert = EZ_von\formatiere ( "yyyy-MM-dd" )
Definiert eine Variable mit dem Namen EZ_von_formatiert vom Typ Zeichenkette und weist dieser das Datum EZ_von zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
Zeichenkette EZ_bis_formatiert = EZ_bis\formatiere ( "yyyy-MM-dd" )
Definiert eine Variable mit dem Namen EZ_bis_formatiert vom Typ Zeichenkette) und weist dieser das Datum EZ_bis zu, welches auf die Schreibweise yyyy-MM-dd formatiert und in eine Zeichenkette umgewandelt wurde.
XDEV Datenbankabfrage #FAHRZEUGE_JOIN << FAHRZEUGE
Datenbankabfrage über mehrere Tabellen, u.a. FAHRZEUGE. Liefert alle Datensätze bei denen die Erstzulassung zwischen dem formatierten Daten EZ_von_formatiert und EZ_bis_formatiert liegt.
Abfragebedingung: #FAHRZEUGE.ERSTZULASSUNG > EZ_von_formatiert && #FAHRZEUGE.ERSTZULASSUNG < EZ_bis_formatiert
|
|
Hinweis: Für die Suche nach einem Datum müssen Sie das Datum immer so formatieren, wie Ihre Datenbank ein Datum abspeichert. Sie können dies über Ihr Datenbank-Administrations-Frontend überprüfen.
|
Basiswissen: Virtuelle Tabellen, Datenbankabfragen
|