REDUCE SELECTION

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 3


REDUCE SELECTION ({Tabellenname; }AnzDatensätze)

ParameterTypBeschreibung
TabellennameTabelleZu bearbeitende Tabelle oder
Haupttabelle ohne Angabe
AnzDatensätzeNumerischAnzahl der gewünschten Datensätze

Beschreibung

Der Befehl REDUCE SELECTION lässt sich nur auf die aktuelle Auswahl des laufenden Prozesses anwenden. Er verringert die Anzahl der Datensätze in der aktuellen Auswahl von Tabellenname auf die in AnzDatensätze angegebene Anzahl. Der erste Datensatz der neuen Auswahl wird in den Hauptspeicher geladen. Er wird der aktuelle Datensatz.

Tabellenname ist optional. Wird der Parameter nicht angegeben, wird der Befehl auf die Haupttabelle angewandt.

Hinweise:

- Nach Ausführen der Anweisung REDUCE SELECTION(0) gibt es in Tabelle keine Auswahl mehr udn auch keinen aktuellen Datensatz.

- Der Befehl darf nicht in Transaktionen verwendet werden, die beim Erstellen eines Datensatzes ausgeführt werden (siehe Abschnitt Transaktionen verwenden).

Beispiel

Folgendes Beispiel findet zuerst die richtige Statistik zu einer weltweiten Umfrage unter den Händlern in über 20 Ländern. Unter den ersten 100 besten Händlern der Welt werden jeweils die 3 besten Händler jedes Landes mit einem Umsatz über $50.000 mit einem Preis ausgezeichnet. Diese komplexe Anfrage können Sie mit indizierten Suchläufen in wenigen Zeilen Code ausführen:

   CREATE EMPTY SET([Dealers];"Gewinner")  ` Erstelle leere Menge
   SCAN INDEX([Dealers]Sales amount;100;<)  ` Wähle vom Ende des Index aus 
   CREATE SET([Dealers];"100 beste Händler")  ` Setze ausgewählte Datensätze in Menge
   For ($Country;1;Records in table([Countries]))  ` Suche für jedes Land die Händler
      QUERY([Dealers];[Dealers]Country=[Countries]Name;*)  ` ...mit Umsatz über $50.000
      QUERY(&;[Dealers];[Dealers]Sales amount>=50000) 
      CREATE SET([Dealers];"GewinnerHändler")  ` Setze diese in eine Menge
         ` Sie sollten in der Gruppe der 100 besten Händler sein
      INTERSECTION("GewinnerHändler";"100 beste Händler";"GewinnerHändler") 
      USE SET("GewinnerHändler") ` Potentielle Gewinner des Landes
         ` Sortiere sie nach Umsatz in absteigender Reihenfolge
      ORDER BY([Dealers];[Dealers]Sales amount;<) 
      REDUCE SELECTION([Dealers];3)  ` Nimm die 3 besten Händler 
      CREATE SET([Dealers];"GewinnerHändler")  ` Gewinner des Landes
      ` Lege Sie in die Liste der weltweiten Gewinner
      UNION("GewinnerHändler";"DieGewinner";"DieGewinner") 
   End for 
   CLEAR SET("100 beste Händler")  ` Diese Menge wird nicht mehr benötigt
   CLEAR SET("GewinnerHändler")  ` Diese Menge wird nicht mehr benötigt
   USE SET("DieGewinner")  ` Hier sind die Gewinner 
   CLEAR SET("DieGewinner")  ` Diese Menge wird nicht mehr benötigt
   OUTPUT FORM([Dealers];"Brief für Preis")  ` Wähle den Brief
   PRINT SELECTION([Dealers]) ` Drucke die Briefe

Referenz

Einführung in Mengen, ORDER BY, QUERY, SCAN INDEX.

Anwendung des Befehls

Highlight Selection


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next