Zweidimensionale Arrays

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 6.0


Jeder Befehl zum Erstellen von Arrays kann ein- oder zweidimensionale Arrays erstellen bzw. in der Größe anpassen. Beispiel:

   ARRAY TEXT (atTopics;100;50) ` Erstellt ein Array vom Typ Text mit 100 Reihen in 50 Spalten

Zweidimensionale Arrays sind Objekte der Programmiersprache; von daher lassen sie sich weder anzeigen noch ausdrucken.

Im oben angezeigten Beispiel gilt:

atTopics ist ein zweidimensionales Array

atTopics{8}{5} ist das 5. Element (5. Spalte...) der 8. Reihe

atTopics{20} ist die 20. Reihe und selbst ein eindimenisonales Array

Size of array(atTopics) gibt 100 zurück, das ist die Anzahl der Reihen

Size of array(atTopics{17}) gibt 50 zurück, das ist die Anzahl der Spalten für die 17. Reihe

Folgendes Beispiel speichert für jedes Datenfeld jeder Tabelle einen Zeiger in einem zweidimensionalen Array:

   C_LONGINT($vlLastTable;$vlLastField)
   C_LONGINT($vlFieldNumber)
      `Erstelle zu Beginn soviele leere Reihen wie Tabellen vorhanden sind
   $vlLastTable:=Get last table number
   ARRAY POINTER (<>apFields;$vlLastTable;0)  `2D Array mit X Zeilen und Null Spalten
      `Für jede Tabelle
   For ($vlTable;1;$vlLastTable)
      If(Is table number valid($vlTable))
         $vlLastField:=Get last field number($vlTable) 
            ` Setze den Wert der Elemente
         $vlColumnNumber:=0
         For ($vlField;1;$vlLastField)
            If(Is field number valid($vlTable;$vlField))
               $vlColumnNumber:=$vlColumnNumber+1
                  `Füge eine Spalte in einer Zeile der Tabelle in Bearbeitung ein.
               INSERT IN ARRAY(<>apFields{$vlTable};$vlColumnNumber;1)
                  `Weise die "Zelle" mit dem Zeiger zu
               <>apFields{$vlTable}{$vlColumnNumber}:=Field($vlTable;$vlField)
            End if 
         End for
      End if 
   End for

Unter der Voraussetzung, dass dieses zweidimensionale Array initialisiert wurde, erhalten Sie nun die Zeiger auf die Datenfelder für eine bestimmte Tabelle:


      ` Erhalte Zeiger auf die Datenfelder für die gerade angezeigte Tabelle:
   COPY ARRAY (<>apFields{Table(Current form table)};$apTheFieldsIamWorkingOn)
      ` Initialisiere Datenfelder vom Typ Boolean und Datum
   For ($vlElem;1;Size of array($apTheFieldsIamWorkingOn))
      Case of
         : (Type($apTheFieldsIamWorkingOn{$vlElem}->)=Is Date)
            $apTheFieldsIamWorkingOn{$vlElem}->:=Current date
         : (Type($apTheFieldsIamWorkingOn{$vlElem}->)=Is Boolean)
            $apTheFieldsIamWorkingOn{$vlElem}->:=True
      End case
   End for

Hinweis: Wie Sie in diesem Beispiel sehen, können Reihen in zweidimensionalen Arrays dieselbe oder verschiedene Größen haben.

Referenz

Einführung in Arrays.


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