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.

 

Fortsetzung von: Logische verknüpfte Bedingungen

 

 

Tutorial Suche in Zeiträumen

 

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.

clip0036

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.

String suchbegriff="";

suchbegriff = textField.getText();

 

String gesuchtesModell="";

gesuchtesModell = textField2.getText();

 

XdevDate erstzulassungVon = dateTextField.getDate();

XdevDate erstzulassungBis = dateTextField.getDate();

 

try

{

   XDEV.Query(new QueryFahrzeuge(suchbegriff,gesuchtesModell));

}

catch(DBException e)

{

    e.printStackTrace();

}

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 new_guide, um eine weitere Bedingung anzulegen.

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 new_guide, um eine weitere Bedingung anzulegen. 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 erstzulassungBis an, welche das ermittelte größte Datum enthält.

clip0037

38.Klicken Sie im Query-Assistenten auf OK, um den Assistenten zu schließen.

 

 

Generierter Code

 

 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);

      }

   }