SELECTION RANGE TO ARRAY

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

Version 2004 (Geändert)


SELECTION RANGE TO ARRAY (Start; Ende; Feld | Tabelle; Array{; Feld2 | Tabelle2; Array2; ...; FeldN | TabelleN; ArrayN})

ParameterTypBeschreibung
StartNumerischDatensatznummer, ab der Daten geholt werden
EndeNumerischDatensatznummer, bis zu der Daten geholt werden
Feld | TabelleFeld/TabelleFeld zum Daten holen oder Tabelle
zum Holen von Datensatznummern
ArrayArrayArray, das Datenfelder bzw. Datensatznr. erhält

Beschreibung

Der Befehl SELECTION RANGE TO ARRAY erstellt ein oder mehrere Arrays und kopiert Daten aus Feldern oder Datensatznummern aus der aktuellen Auswahl in die Arrays.

SELECTION RANGE TO ARRAY gilt, im Gegensatz zu SELECTION TO ARRAY, die für die gesamte aktuelle Auswahl gilt, nur für den durch die Parameter Start und Ende festgelegten Bereich.

Sie müssen für diesen Befehl in Start und Ende Datensatznummern übergeben. Verwenden Sie dafür die Formel 1 <= start <= end <= Records in selection ([...]).

Übergeben Sie 1 <= start = end < Records in selection ([...]), werden Datenfelder bzw. die Datensatznummer des Datensatzes geladen, für den gilt Start = End.

Übergeben Sie falsche Datensatznummern, führt der Befehl folgendes aus:

Ist Ende > Records in selection ([...]), gibt er Werte zurück vom in Start festgelegten Datensatz bis zum letzten ausgewählen Datensatz.

Ist Start > Ende, gibt er nur Werte aus dem in Start festgelegten Datensatz zurück.

Passen beide Parameter nicht zur Größe der Auswahl, gibt er leere Arrays zurück.

SELECTION RANGE TO ARRAY gilt wie SELECTION TO ARRAY für die Auswahl der Tabelle, die im ersten Parameter festgelegt wurde.

Mit SELECTION RANGE TO ARRAY können Sie wie mit SELECTION TO ARRAY:

Werte aus einem oder mehreren Datenfeldern laden.

Mit der Syntax ...;[table];Array;... Datensatznummern laden.

Werte aus verknüpften Datenfeldern laden, wenn zwischen den Tabellen eine automatische Viele-zu-Eine Verknüpfung besteht oder zuvor SET AUTOMATIC RELATIONS aufgerufen wurde, um manuelle Viele-zu-Eine Verknüpfung zu automatisieren. In beiden Fällen werden Werte aus Tabellen mit mehrstufigen Viele-zu-Eine Verknüpfungen geladen.

Jedes Array erhält den Typ des Datenfelds, bis auf zwei Ausnahmen:

Wird ein Datenfeld vom Typ Text in ein Array vom Typ Alphanumerisch kopiert, bleibt das Array Alphanumerisch.

Ein Datenfeld vom Typ Zeit wird in ein Array vom Typ Lange Ganzzahl kopiert.

Hinweis: Sie können keine Datenfelder vom Typ Untertabelle oder Unterdatenfeld verwenden.

Datensatznummern werden in ein Array vom Typ Lange Ganzzahl geladen.

4D Server: SELECTION RANGE TO ARRAY wurde für 4D Server optimiert. Jedes Array wird auf dem Server erstellt und dann komplett auf den Client-Rechner übertragen.

WARNUNG: SELECTION RANGE TO ARRAY erstellt u.U. umfangreiche Arrays, je nach dem in Start und End festgelegten Bereich bzw. Typ und Umfang der zu ladenden Daten. Da Arrays im Speicher bleiben, empfehlen wir, das Ergebnis nach Ende des Befehls zu testen. Prüfen Sie die Größe jedes resultierenden Array oder sichern Sie den Aufruf dieses Befehls mit einer Projektmethode ON ERR CALL.

War der Befehl erfolgreich, ist die Größe jedes resultierenden Array gleich (Ende-Start)+1, außer der Parameter End ist größer als die Anzahl der Datensätze in der Auswahl. In diesem Fall enthält jedes resultierende Array (Records in selection([...])-Start)+1 Elemente.

Beispiele

1. Folgender Code berücksichtigt die ersten 50 Datensätze aus der aktuellen Auswahl für die Tabelle [Invoices]. Er lädt die Werte aus dem Datenfeld [Invoices]Invoice ID und dem verknüpften Datenfeld [Customers]Customer ID.

   SELECTION RANGE TO ARRAY(1;50;[Invoices]Invoice ID;alInvoID;
                                 [Customers]Customer ID;alCustID)

2. Folgender Code berücksichtigt die letzten 50 Datensätze aus der aktuellen Auswahl für die Tabelle [Invoices]. Er lädt die Datensatznummern aus [Invoices] sowie aus der Verknüpfung zu [Customers]:

   lSelSize := Records in selection ([Invoices])
   SELECTION RANGE TO ARRAY (lSelSize-49;lSelSize;[Invoices];alInvRecN;
                                       [Customers];alCustRecN)

3. Folgender Code erstellt, in Segmenten zu je 1000 Datensätzen, eine umfangreiche Auswahl, die nicht als ein Ganzes in Arrays geladen werden kann:

   lMaxPage := 1000
   lSelSize := Records in selection ([Phone Directory])
   For ($lPage ; 1; 1+((lSelSize-1)\lMaxPage) )
         ` Lade Werte und/oderDatensatznummern
      SELECTION RANGE TO ARRAY (1+(lMaxPage*($lPage-1));
                                 lMaxPage*$lPage;...;...;...;...;...;...)
         ` Führe etwas aus mit den Arrays
   End for

Referenz

ON ERR CALL, SELECTION TO ARRAY, SET AUTOMATIC RELATIONS.


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