Kolekce a objekt HDI 4DVP ve vlastních funkcích
Vlastní funkce jsou výkonnou funkcí programu 4D View Pro, která vám umožňuje rozšířit jeho funkčnost a provádět vlastní výpočty nebo operace přizpůsobené vašim specifickým potřebám. Nyní můžete jako parametry vlastních funkcí přijímat kolekce obsahující hodnoty z uživatelem zadaných rozsahů buněk.
Správa kolekcí
Vytvoření vlastní funkce
Nejprve vytvoříme funkci volanou programem 4D View Pro. Tato funkce s názvem _averageNonZeroValues() přijímá jeden parametr kolekce a je definována takto:
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
Povolte vlastní funkci v aplikaci 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
Správa objektů
- Vytvoření funkce určené k provedení programem 4D View Pro, která provede výpočet.
- Vytvoření objektu pro zadání možností vlastní funkce.
Pro tento příklad doplníme třídu CustomFunctionCreator .
Vytvoření vlastní funkce
Nejprve vytvoříme funkci volanou programem 4D View Pro. Tato funkce s názvem _modifiedProperties() přijímá jeden parametr objektu a je definována takto:
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 ""
Povolení vlastní funkce v aplikaci 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
Deklarace vlastní funkce
Posledním krokem je zavolání VP SET CUSTOM FUNCTIONS na událost„on Load“ formuláře pomocí funkcí averageNonZeroValues() a 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
Nyní máte 2 nové funkce použitelné v oblasti 4D View Pro:
- „MY_AVERAGENONZEROVALUES:
- „MY_MODIFICATIONS“:
Závěrem lze říci, že používání vlastních funkcí v aplikaci 4D View Pro povyšuje funkčnost tabulkového procesoru na novou úroveň a umožňuje provádět výpočty a operace na míru. Další informace naleznete v naší dokumentaci.