Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
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 v20 R7)