4D View v14PV ADD DYNAMIC FIELDS |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v14
PV ADD DYNAMIC FIELDS
|
PV ADD DYNAMIC FIELDS ( area ; master ; tables ; fields ; methods ) | ||||||||
Parameter | Type | Description | ||||||
area | Longint |
![]() |
4D View area | |||||
master | Integer |
![]() |
Master table number | |||||
tables | Integer array |
![]() |
Table numbers array | |||||
fields | Integer array |
![]() |
Field numbers array | |||||
methods | String array |
![]() |
Callback methods array | |||||
The PV ADD DYNAMIC FIELDS command adds, in area, a block of rows corresponding to the values of fields defined by tables and fields for the current selection of the table defined by master, starting from the A1 cell. If dynamic columns have already been defined in area, the new block will be inserted starting from row 1 of the first available column. Values of fields can be modified directly from 4D View using the corresponding cells.
The result is always vertically present (as columns as well as tables,fields and methods array elements).
Note: If a dynamic arrays area was already inserted in the 4D View area using the PV ADD DYNAMIC ARRAYS command, it is deleted and replaced by the dynamic fields.
For any column, the operation can concern an array related to a master table by a relation. The latter must be an automatic type and go from the master array to the array of the field to display. In the traditional example of invoices and invoice rows, you can recuperate and modify the content of a field of the rows array, but also of the invoice table compared to a selection from the invoice rows array (master table).
Each callback method receives six parameters:
$1: Area
$2: Column number
$3: Array type
$4: Pointer to this array
$5: Number of the first row to (re)draw
$6: Number of rows to (re)draw in the area
Note: If you intend to compile your database, you must declare these parameters, even if you do not use them all.
$5 and $6: When the user scrolls the rows (records) in area, only new displayed rows are (re)drawn. $5 and $6 parameters allow you to know which rows are concerned.
The developer should fill in the callback methods array. 4D View will then use that array to fill in the calculated column. There is no returned value ($0).
PV ADD DYNAMIC FIELDS keeps a dynamic link with fields passed as parameters. As a result, modifications of values executed in the 4D View area are reflected in field(s) and vice-versa.
Notes:
This example illustrates an enterable table included in an input form (with 4D View, this is rather easy). We will then modify fields in the contact table related to the current client, with their functions (linked table) and initials of each contact (calculated column).
ARRAY INTEGER($TablesArray;4) `Table numbers
ARRAY INTEGER($FieldsArray;4) `Field numbers
ARRAY STRING(30;$MethodsArray;4) `Callback method names
`Column 1: contact name
$TablesArray{1}:=Table(->[Contacts])
$FieldsArray{1}:=Field(->[Contacts]ContactName)
$MethodsArray{1}:=""
`Column 2: contact first name
$TablesArray{2}:=Table(->[Contacts])
$FieldsArray{2}:=Field(->[Contacts]ContactFirstname)
$MethodsArray{2}:=""
`Column 3: contact title (linked table)
$TablesArray{3}:=Table(->[Titles])
$FieldsArray{3}:=Field(->[Titles]Label)
$MethodsArray{3}:=""
`Column 4: order number/ total (calculated column)
$TablesArray{4}:=0
$FieldsArray{4}:=Is text `Result
$MethodsArray{4}:="CallMethod"
RELATE MANY([Clients]Code) `Get contacts
PV ADD DYNAMIC FIELDS(Area;Table(->[Contacts]);$TablesArray;$FieldsArray;$MethodsArray)
The code for the CallMethod project method is as follows:
C_LONGINT($1) `4D View area
C_LONGINT($2) `Column number
C_LONGINT($3) `Type of array
C_POINTER($4) `Pointer to this array
C_LONGINT($5) `First row of the dynamic area
C_LONGINT($6) `Number of lines that can be displayed in the area
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
Product: 4D View
Theme: PV Cell value
Number:
15900
Created: 4D View 6.8
PV ADD DYNAMIC ARRAYS
PV CLEAR DYNAMIC COLUMNS
PV FIELD TO CELLS
PV SET CELL FIELD
4D View Language ( 4D View v11.4)
4D View Language ( 4D View v12)
4D View Language ( 4D v13)
4D View Language ( 4D View v14 R2)
4D View Language ( 4D View v14)
4D View Language ( 4D View v14 R3)
4D View Language ( 4D View v14 R4)