HDI 4DVP Sammlung und Objekt in benutzerdefinierten Funktionen
Benutzerdefinierte Funktionen sind eine leistungsstarke Funktion von 4D View Pro, mit der Sie die Funktionalität erweitern und benutzerdefinierte Berechnungen oder Operationen durchführen können, die auf Ihre speziellen Bedürfnisse zugeschnitten sind. Sie können jetzt Sammlungen als Parameter für benutzerdefinierte Funktionen akzeptieren, die Werte aus benutzerdefinierten Zellbereichen enthalten.
Verwaltung von Sammlungen
Erstellung einer benutzerdefinierten Funktion
Zunächst erstellen wir die Funktion, die von 4D View Pro aufgerufen wird. Diese Funktion mit der Bezeichnung _averageNonZeroValues() benötigt einen Parameter für die Sammlung und ist wie folgt definiert:
Function _averageNonZeroValues($values : Collection) : Real
// Average of the non zero and non null values in the range
// Sum of all the collection values
var $total:=$values.flat().sum()
// Calculates the number of cells containing a value other than 0 or NUll
var $NonZeroValueNumber : Integer:=$values.flat().count()-$values.flat().countValues(0)
// Returns the calculation result to be displayed in the cell
return $NonZeroValueNumber>0 ? $total/$NonZeroValueNumber : 0
Aktivieren Sie die benutzerdefinierte Funktion in 4D View Pro
Function averageNonZeroValues()->$customFunction : Object
var $this : Object
$customFunction:={}
$this:=This // Capture This for the formula
// formula that will be called when the custom function is used in the spreadsheet
$customFunction.formula:=Formula($this._averageNonZeroValues($1))
// If a parameter is of collection type, the declaration of the custom function parameters is mandatory
$customFunction.parameters:=[{name: "Values"; type: Is collection}]
// Summary of the custom function using in the autocomplete popup
$customFunction.summary:="Returns the average of non zero values"
// Expected number of parameters
$customFunction.minParams:=1
$customFunction.maxParams:=1
Objektverwaltung
- Erstellen Sie eine Funktion, die von 4D View Pro ausgeführt werden soll, um die Berechnung durchzuführen.
- Formulieren Sie ein Objekt, um die Optionen der benutzerdefinierten Funktion festzulegen.
Für dieses Beispiel werden wir die Klasse CustomFunctionCreator erstellen.
Erstellung einer benutzerdefinierten Funktion
Zunächst erstellen wir die Funktion, die von 4D View Pro aufgerufen wird. Diese Funktion mit der Bezeichnung _modifiedProperties() benötigt einen Objektparameter und ist wie folgt definiert:
Function _modifiedProperties($object: Object) : Text
// Comparison between the properties in the Form.people object and the properties in the spreadsheet
var $myObject : Object:=$object.value
// Search the object attributes modified between the people data and the data in the spreadsheet
For each ($property; $myObject)
// comparison between the object returned by the spreadsheet and the Form.people object
If ($myObject[$property]#Form.people[$property])
return "Data modified."
End if
End for each
return ""
Aktivieren Sie die benutzerdefinierte Funktion in 4D View Pro
Function modifiedProperties()->$customFunction : Object
var $this : Object
$customFunction:={}
$this:=This // Capture This for the formula
// formula that will be called when the custom function is used in the spreadsheet
$customFunction.formula:=Formula($this._modifiedProperties($1))
// If a parameter is of collection type, the declaration of the custom function parameters is mandatory
$customFunction.parameters:=[{name: "Values"; type: Is object}]
// Summary of the custom function using in the autocomplete popup
$customFunction.summary:="Returns a message when the object is modified by the user"
// Expected number of parameters
$customFunction.minParams:=1
$customFunction.maxParams:=1
Deklaration der benutzerdefinierten Funktion
Der letzte Schritt ist der Aufruf VP SET CUSTOM FUNCTIONS auf das Ereignis„on Load“ des Formulars mit den Funktionen averageNonZeroValues() und modifiedProperties():
Case of
: (FORM Event.code=On Load)
var $customFunctions:={}
// Declaration of authorized custom functions in the 4D View Pro area
var $creator:=cs.CustomFunctionsCreator.new()
$customFunctions.MY_AVERAGENONZEROVALUES:=$creator.averageNonZeroValues()
$customFunctions.MY_MODIFICATIONS:=$creator.modifiedProperties()
VP SET CUSTOM FUNCTIONS("ViewProArea"; $customFunctions)
End case
Jetzt haben Sie 2 neue Funktionen, die Sie in Ihrem 4D View Pro Bereich verwenden können:
- „MY_AVERAGENONZEROVALUES“::
- „MEINE_ÄNDERUNGEN“:
Zusammenfassend lässt sich sagen, dass die Verwendung von benutzerdefinierten Funktionen in 4D View Pro die Funktionalität der Tabellenkalkulation auf ein neues Niveau hebt und maßgeschneiderte Berechnungen und Operationen ermöglicht. Weitere Informationen entnehmen Sie bitte unserer Dokumentation.