4D View v16PV ADD DYNAMIC FIELDS |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v16
PV ADD DYNAMIC FIELDS
|
PV ADD DYNAMIC FIELDS ( Bereich ; Haupttabelle ; Tabellen ; Felder ; Methoden ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Bereich | Lange Ganzzahl |
![]() |
4D View Bereich | |||||
Haupttabelle | Ganzzahl |
![]() |
Nummer Haupttabelle | |||||
Tabellen | Array Ganzzahl |
![]() |
Array mit Tabellennummern | |||||
Felder | Array Ganzzahl |
![]() |
Array mit Feldnummern | |||||
Methoden | Array String |
![]() |
Array mit Callback Methoden | |||||
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:
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 TEXT($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 des 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
PV ADD DYNAMIC ARRAYS
PV CLEAR DYNAMIC COLUMNS
PV FIELD TO CELLS
PV SET CELL FIELD
Produkt: 4D View
Thema: PV Zellenwerte
Nummer:
15900
Erstellt: 4D View 6.8
4D View Programmiersprache ( 4D View v16)