Zweidimensionale Arrays

4D - Documentation   Français   English   German   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:

      ` Erstelle zu Beginn soviele leere Reihen wie Tabellen vorhanden sind
   ARRAY POINTER (<>apFields;Count tables;0)
      ` Für jede Tabelle
   For ($vlTable;1;Size of array(<>apFields))
         ` Passe die Reihe mit sovielen Spalten an, wie Datenfelder in der Tabelle 
           vorhanden sind
      INSERT ELEMENT (<>apFields{$vlTable};1;Count fields($vlTable))
         ` Setze die Werte der Elemente
      For ($vlField;1;Size of array(<>apFields{$vlTable}))
         <>apFields{$vlTable}{$vlField}:=Field($vlTable;$vlField)
      End for
   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   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next