Suche in Zeiträumen |
Anfang Zurück Vor |
Letzte Änderung 26.10.2010
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. In der Abfrage-Bedingung wird der Zeitraum dann mit Hilfe der Operatoren >= und <= in Verbindung mit einer logisch UND Verknüpfung von kleinstem und größtem Datum definiert.
32.Wechseln Sie in den GUI-Builder und klonen Sie den TextPane Modell: zwei Mal und geben Sie im ersten geklonten TextPane EZ von: und im zweiten EZ bis: ein. Klicken Sie zum Klonen den TextPane an und wählen Sie im Menü Bearbeiten > Klonen. Fügen Sie daneben zwei DateTextFields ein. 33.Selektieren Sie den Button und wechseln Sie in die Code-Ansicht. Klicken Sie dazu auf {} Code. 34.Lesen Sie die Daten aus den beiden DateTextFields aus. Definieren Sie dazu zwei Variablen vom Typ XdevDate, benennen Sie diese mit erstzulassungVon bzw. erstzulassungBis und weisen Sie diesen jeweils die Methode getDate( ) zu, welche das Datum aus dem DateTextField ausliest.
35.Erweitern Sie nun die Datenbankabfrage mit zwei weiteren Filter-Bedingungen. Bewegen Sie dazu den Mauszeiger mit gedrückter Shift Taste auf die Datenbankabfrage XDEV.Query und klicken Sie diese dann an, um den Query-Assistenten aufzurufen. Klicken Sie auf 36.Wählen Sie im ersten Auswahlfeld das Datenfeld FAHRZEUG.ERSTZULASSUNG aus, welches durchsucht werden soll. Wählen Sie dann den SQL-Operator >= aus und geben Sie die Variable erstzulassungVon an, welche das ermittelte kleinste Datum enthält. 37.Klicken Sie auf 38.Klicken Sie im Query-Assistenten auf OK, um den Assistenten zu schließen.
try { XDEV.Query(new QueryFahrzeuge(suchbegriff,gesuchtesModell,erstzulassungVon,erstzulassungBis)) } catch(DBException e) { e.printStackTrace(); }
private static class QueryFahrzeuge extends Query { QueryFahrzeuge2(String suchbegriff, String gesuchtesModell, XdevDate erstzulassungVon, XdevDate erstzulassungBis) { setDataSource(fahrzeugeDB.DB);
select("FAHRZEUGE","ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_ID); select("FAHRZEUGE","BILDPFAD").into(JOIN_FAHRZEUGE.FAHRZEUGE_BILDPFAD); select("MODELLE","ID").into(JOIN_FAHRZEUGE.MODELLE_ID); select("MODELLE","MODELL").into(JOIN_FAHRZEUGE.MODELLE_MODELL); select("HERSTELLER","ID").into(JOIN_FAHRZEUGE.HERSTELLER_ID); select("HERSTELLER","MARKE").into(JOIN_FAHRZEUGE.HERSTELLER_MARKE); select("FAHRZEUGE","LEISTUNG").into(JOIN_FAHRZEUGE.FAHRZEUGE_LEISTUNG); select("FAHRZEUGE","ERSTZULASSUNG").into(JOIN_FAHRZEUGE.FAHRZEUGE_ERSTZULASSUNG); select("FAHRZEUGE","KILOMETERSTAND").into(JOIN_FAHRZEUGE.FAHRZEUGE_KILOMETERSTAND); select("FAHRZEUGE","FAHRZEUGTYP_ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_FAHRZEUGTYP_ID); select("FAHRZEUGE","FAHRZEUGART_ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_FAHRZEUGART_ID); select("FAHRZEUGE","KRAFTSTOFF_ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_KRAFTSTOFF_ID); select("FAHRZEUGE","GETRIEBE_ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_GETRIEBE_ID); select("FAHRZEUGE","FARBE_ID").into(JOIN_FAHRZEUGE.FAHRZEUGE_FARBE_ID); select("FAHRZEUGE","PREIS").into(JOIN_FAHRZEUGE.FAHRZEUGE_PREIS); from("FAHRZEUGE"); innerJoin("MODELLE",getColumn("MODELLE","ID").eq(getColumn("FAHRZEUGE","MODELL_ID"))); innerJoin("HERSTELLER",getColumn("HERSTELLER","ID").eq(getColumn("MODELLE","HERSTELLER_ID"))); where(getColumn("HERSTELLER","MARKE").eq("?").AND(getColumn("MODELLE","MODELL"). eq("?")).AND(getColumn("FAHRZEUGE","ERSTZULASSUNG").gte("?")). AND(getColumn("FAHRZEUGE","ERSTZULASSUNG"). lte("?")),suchbegriff,gesuchtesModell,erstzulassungVon ,erstzulassungBis );
setVirtualTable(JOIN_FAHRZEUGE.VT); setFillMethod(VirtualTableFillMethod.OVERWRITE); } } |