|
|
|
|
|
- Conditions d'ajout de la ligne contenant la formule de calcul personnalisée
- Recalcul des données
- Personnalisation de la ligne de calculs
<Table>.FormuleAjoute (Fonction) En anglais : <Table>.FormulaAdd Ajoute une ligne calculée dans un champ Table (ou Table hiérarchique) en fournissant des procédures de calculs personnalisées. TABLE_MaTable.FormuleSupprimeTout() nLigne est entier nLigne = TABLE_MaTable.COL_Num.FormuleAjoute("Moyenne positive", ProcInit, ProcAjout, ProcFin) // Changement de la couleur de fond de la ligne du calcul personnalisé COL_Num[nLigne].CouleurFond = RougeClair  nCompteur est entier PROCÉDURE INTERNE ProcInit() nCompteur = 0 RENVOYER 0 FIN  PROCÉDURE INTERNE ProcAjout(Accumulateur, ValeurCol) // Ignore les négatifs ou NULL SI (ValeurCol <= 0) RENVOYER Accumulateur nCompteur++ RENVOYER Accumulateur + ValeurCol FIN PROCÉDURE INTERNE ProcFin(Accumulateur) SI nCompteur = 0 ALORS RENVOYER 0 // Calcul de la moyenne RENVOYER  Accumulateur/nCompteur FIN nLigne2 est entier
nLigne2 = TABLE_ChampTable.COL_Heure.FormuleAjoute("Durée moyenne", Null, ...
DuréeMoyenne_Itération, DuréeMoyenne_Fin)
PROCÉDURE INTERNE DuréeMoyenne_Itération(Accumulateur, ValeurCol)
RENVOYER Accumulateur + [TAB] + ValeurCol
FIN
PROCÉDURE INTERNE DuréeMoyenne_Fin(Accumulateur)
nSomme est un entier sur 8 octets
nNbValides est un entier
POUR TOUTE CHAÎNE sValeur DE Accumulateur SÉPARÉE PAR TAB
SI HeureValide(sValeur) ALORS
nSomme += HeureVersEntier(sValeur)
nNbValides++
FIN
FIN
RENVOYER HeureVersChaîne(EntierVersHeure(nSomme/nNbValides), "HH:MM:SS")
FIN
Syntaxe
<Résultat> = <Colonne>.FormuleAjoute(<Libellé du calcul> , <Initialisation> , <Itération> , <Terminaison>)
<Résultat> : Entier Indice de la ligne contenant la formule. <Colonne> : Nom de champ Nom de la colonne dans laquelle la formule sera ajoutée. <Libellé du calcul> : Chaîne de caractères Libellé de la ligne supplémentaire dans laquelle le calcul sera affiché. Si ce libellé n'existe pas, la ligne sera créée. Si ce libellé existe, mais pas pour la colonne spécifiée, le calcul est affiché dans la ligne existante mais pour la colonne spécifiée. Si ce libellé existe pour la colonne spécifiée, une erreur WLangage est affichée. <Initialisation> : Chaîne de caractères - Nom de la procédure WLangage (également nommée "callback") appelée pour initialiser la formule. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> () // votre code
RENVOYER <Valeur d'initialisation Accumulateur> où <Valeur d'initialisation Accumulateur> est la valeur à renvoyer pour la première itération du calcul. - NULL si la formule ne nécessite pas de traitement d'initialisation.
<Itération> : Chaîne de caractères - Nom de la procédure WLangage (également nommée "callback") appelée pour chaque itération de la formule (chaque ligne du champ Table). Cette procédure a accès uniquement en lecture aux colonnes de la ligne. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> (<Accumulateur>, <Valeur de la colonne>) // Appelée pour chaque ligne du champ Table // Votre code
RENVOYER <Nouvelle valeur Accumulateur> où : - <Accumulateur> est la valeur provenant du précédent calcul (initialisation ou itération précédente).
- <Valeur de la colonne> est la valeur de la colonne en cours servant à faire le calcul de cette itération.
- <Nouvelle valeur Accumulateur> est la nouvelle valeur à renvoyer pour l'itération suivante ou la fin du calcul.
- NULL si la formule ne nécessite pas de traitement d'itération.
<Terminaison> : Chaîne de caractères - Nom de la procédure WLangage (également nommée "callback") appelée pour terminer la formule. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> (<Accumulateur>) // votre code
RENVOYER <Valeur de fin Accumulateur> où : - <Accumulateur> est la valeur provenant du précédent calcul (initialisation ou itération précédente).
- <Valeur de fin Accumulateur> est la valeur à renvoyer correspondant à la valeur de fin du calcul.
- NULL si la formule ne nécessite pas de traitement de terminaison.
Remarques Conditions d'ajout de la ligne contenant la formule de calcul personnalisée - Si le calcul nommé <Libellé du calcul> n'existe pas dans le champ Table, une nouvelle ligne de calcul est ajoutée sous le champ Table (à la suite des calculs existants).
- Si un calcul nommé <Libellé du calcul> a déjà été défini pour une autre colonne, le calcul est affiché pour la colonne spécifiée dans la ligne de calcul existante.
- Si un calcul nommé <Libellé du calcul> a déjà été défini pour la même colonne, une erreur WLangage est affichée.
- Seules 5 lignes de calcul personnalisé peuvent être ajoutées.
Remarque : Cette fonction peut être utilisée : - sur les colonnes d'un champ Table ou Table hiérarchique fichier.
- sur les colonnes d'un champ Table ou Table hiérarchique par programmation.
Recalcul des données Les lignes de calculs personnalisés sont automatiquement recalculées dès que le contenu du champ Table change. Conseil : La procédure d'itération est appelée pour chaque ligne : il est recommandé de ne pas faire de calculs trop lents (par exemple, éviter les accès à la base de données). Personnalisation de la ligne de calculs Il est possible de personnaliser la ligne ajoutée (libellé, couleur, police, hauteur, ...) avec cette syntaxe : <Champ Table>[Numéro ligne].<Propriété> = <Nouvelle valeur> où <Propriété> peut correspondre à une des propriétés utilisable sur une colonne d'un champ Table. Pour plus de détails, consultez Programmation de calculs personnalisés dans les champs Table. Composante : wd300obj.dll
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|