PV ADD DYNAMIC FIELDS

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

Version 6.8


PV ADD DYNAMIC FIELDS (Bereich; Haupttabelle; Tabellen; Felder; Methoden)

ParameterTypBeschreibung
BereichLange Ganzzahl4D View Bereich
HaupttabelleGanzzahlNummer Haupttabelle
TabellenArray ZahlArray mit Tabellennummern
FelderArray ZahlArray mit Feldnummern
MethodenArray StringArray mit Callback Methoden

Beschreibung

Der Befehl PV ADD DYNAMIC FIELDS fügt in Bereich eine Anzahl von Zeilen ein mit den Werten der Felder der aktuellen Auswahl, definiert durch Tabellen und Felder für die Tabelle Haupttabelle, beginnend mit Zelle A1. Wurden in Bereich bereits dynamische Spalten definiert, wird der neue Block eingefügt ab Zeile 1 der ersten verfügbaren Spalte. Werte der Felder lassen sich direkt in den entsprechenden Zellen von 4D View verändern.

Das Ergebnis wird immer vertikal angezeigt. Das gilt für Spalten und die Array Elemente Tabellen, Felder und Methoden.

Hinweis: Wurde mit dem Befehl PV ADD DYNAMIC FIELDS bereits ein dynamisches Feld in den 4D View Bereich eingefügt, wird es gelöscht und durch die dynamischen Felder ersetzt.

Sie können pro 4D View Bereich immer nur einen dynamischen Teil setzen.

Die Operation kann für jede Spalte ein Array betreffen, das mit einer Haupttabelle verknüpft ist. Die Verknüpfung muss automatisch sein und von der in Haupttabelle definierten Tabelle zum Array mit dem anzuzeigenden Feld gehen. So können Sie im gängigen Beispiel mit Rechnungen und Rechnungszeilen den Inhalt eines Feldes aus einer Tabelle mit Zeilen entnehmen, aber auch ebenso aus einer Tabelle [Rechnungen], die mit einer Auswahl aus der Haupttabelle Rechnungszeilen verknüpft ist.

Jede Callback Methode empfängt sechs Parameter:

$1: Bereich

$2: Spaltennummer

$3: Arraytyp

$4: Zeiger auf dieses Array

$5: Erste Zeile des dynamischen Bereichs

$6: Anzahl Zeilen, die im Bereich angezeigt werden können

Hinweis: Wollen Sie Ihre Datenbank kompilieren, müssen Sie diese Parameter deklarieren, auch wenn Sie nicht alle davon verwenden.

Der Entwickler füllt das Array mit den Callback Methoden aus. 4D View verwendet dann dieses Array zum Füllen der berechneten Spalte. Es gibt keinen zurückgegebenen Wert ($0).

PV ADD DYNAMIC FIELDS bewahrt eine dynamische Verbindung mit den als Parameter übergebenen Feldern. Folglich werden Änderungen der ausgeführten Werte im 4D View Bereich in Feldern wiedergegeben und umgekehrt.

Hinweise:

4D Methoden und Werte von Feldern müssen im gleichen Prozess wie der 4D View Bereich definiert werden.

Die dynamische Datenanpassung ist nicht möglich zwischen Datensätzen, die in 4D Formularen angezeigt werden und dem externem Fenster von 4D View. Dazu müssen Sie das Fenster über den Befehl PV REDRAW neu aufbauen. Über 4D Befehle ausgeführte Änderungen werden automatisch in 4D View Bereichen wiedergegeben.

Beispiel

Dieses Beispiel zeigt eine eingebbare Tabelle innerhalb eines Eingabeformulars. Wir verändern Felder in der Tabelle [Kontakte], die mit dem aktuellen Kunden verknüpft ist mit den dazugehörigen Funktionen (verknüpfte Tabelle) und durch Initialisieren jedes Kontakts (berechnete Spalte).

   ARRAY INTEGER($TablesArray;4)  `Tabellennummern
   ARRAY INTEGER($FieldsArray;4)  `Feldnummern
   ARRAY STRING(30;$MethodsArray;4)  `Namen Callback Methoden

       `Spalte 1: Kontakt Name
   $TablesArray{1}:=Table(->[Contacts])
   $FieldsArray{1}:=Field(->[Contacts]ContactName)
   $MethodsArray{1}:=""

      `Spalte 2: Kontakt Vorname
   $TablesArray{2}:=Table(->[Contacts])
   $FieldsArray{2}:=Field(->[Contacts]ContactFirstname)
   $MethodsArray{2}:=""

      `Spalte 3: Kontakt Titel (verknüpfte Tabelle)
   $TablesArray{3}:=Table(->[Titles])
   $FieldsArray{3}:=Field(->[Titles]Label)
   $MethodsArray{3}:=""

      `Spalte 4: Codenummer/ Gesamt (berechnete Spalte)
   $TablesArray{4}:=0
   $FieldsArray{4}:=Is text   `Ergebnis
   $MethodsArray{4}:="CallMethod"

   RELATE MANY([Clients]Code)  `Erhalte Kontakte
   PV ADD DYNAMIC FIELDS (Bereich;Table(->[Contacts]);$TablesArray;$FieldsArray;$MethodsArray)

Der Code für die Projektmethode CallMethod lautet:

   C_LONGINT($1)  `4D View Bereich
   C_LONGINT($2)  `Spaltennummer
   C_LONGINT($3)  `Typ Array
   C_POINTER($4)  `Zeiger auf dieses Array
   C_LONGINT($5)  `Erste Zeile des dynamischen Bereichs
   C_LONGINT($6)  `Anzahl zugelassener Zeilen im Bereich

   GOTO SELECTED RECORD([Contacts];$5)
   For($i;1;$6)
      $4->{$i}:=Substring([Contacts]ContactFirstname;1;1)+Substring([Contacts]ContactName;1;1)
      NEXT RECORD([Contacts])
   End for


Referenz

PV ADD DYNAMIC ARRAYS, PV CLEAR DYNAMIC COLUMNS, PV FIELD TO CELLS, PV SET CELL FIELD.


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