| 4D v18REDUCE SELECTION | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 REDUCE SELECTION 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| REDUCE SELECTION ( {Tabellenname ;} AnzDatensätze ) | ||||||||
| Parameter | Typ | Beschreibung | ||||||
| Tabellenname | Tabelle |   | Tabelle zum Bearbeiten oder Haupttabelle ohne Angabe | |||||
| AnzDatensätze | Lange Ganzzahl |   | Anzahl der gewünschten Datensätze | |||||
Der Befehl REDUCE SELECTION erstellt eine neue Auswahl der Datensätze für Tabellenname. Er verringert die Anzahl der Datensätze in der aktuellen Auswahl von Tabellenname auf die in AnzDatensätze angegebene Anzahl. REDUCE SELECTION wird auf die aktuelle Auswahl von Tabellenname im aktuellen Prozess angewendet. 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.
Hinweis:
Nach Ausführen der Anweisung REDUCE SELECTION(Tabellenname ;0) gibt es in Tabellenname keine Auswahl mehr und auch keinen aktuellen Datensatz.
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
	Produkt: 4D
	Thema: Auswahl
	Nummer: 
        351
        
        
        
	
	Erstellt: < 4D v6
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	4D Programmiersprache ( 4D v18)
	
	
	
	
	
 Fehler melden
Fehler melden