Crésus Salaires

29L’éditeur de calculs

Des formules plus ou moins compliquées sont souvent employées, que ce soit pour calculer des montants, générer des phrases et pour toutes sortes d’informations.

Pour définir les calculs associés aux rubriques, utilisez le dialogue Entreprise – Rubriques (§17.7.4 Rubriques de type Indemnités et §17.7.7 Création de rubriques personnalisées).

L’éditeur de calculs est le même que vous travailliez dans les rubriques ou dans une présentation.

Dans une présentation, l’objet calcul vous permet de placer une valeur, une chaîne de caractères, une date autre que les rubriques prévues par défaut. Le résultat d’un calcul dans une présentation peut seulement être affiché, il ne peut pas non plus être mémorisé pour un autre usage. Pour modifier un calcul existant dans une présentation, sélectionnez l’objet et cliquez sur l’icône « calcul » de la barre d’outils, ou double-cliquez sur l’objet.

La première zone du dialogue vous sert à construire votre formule: vous pouvez y taper ce que vous voulez au clavier. Vous devez toutefois scrupuleusement respecter les noms des rubriques, plutôt complexes, y compris leur préfixe : pour vous faciliter la tâche, utilisez de préférence les listes. Indiquez les chaînes de caractères entre guillemets.

La liste Opération vous présente toutes les opérations du module de calcul. Elles sont réparties en six sous-groupes :

  • Opération : les quatre opérations de base et des totalisateurs
  • Tests : opérateurs conditionnels
  • Conversion : transformation des formats
  • % : calculs de pourcentages
  • Date : traitement des dates et heures
  • Chaîne : traitement des chaînes de caractères

Chaque fonction sélectionnée affiche un texte d’aide dans la partie droite du dialogue. Les opérations sont détaillées ci-après.

La liste Variable affiche toutes les rubriques utilisées par Crésus. Elle est dynamique : lorsque vous tapez une partie du libellé de la rubrique dans le calcul ou dans la case éditable au bas du dialogue, Crésus affiche les rubriques correspondantes.

Vous pouvez utiliser les cases à cocher de la partie de gauche pour affiner votre recherche.

La liste affiche en priorité les rubriques récemment utilisées, et regroupe si possible les déterminants, coefficients et valeurs d’une même rubrique.

Pour ajouter l’élément sélectionné dans la formule en édition, cliquez sur le bouton Insérer ou double-cliquez sur l’élément.

Les rubriques vides, sans contenu, sont traitées comme des nombres nuls dans la plupart des cas. Il peut être nécessaire d’utiliser la fonction DEFAUT dans certains cas particuliers. Par exemple : 3 * @Coef:Heures maladie CM est égal à zéro s’il n’y a pas d’heures d’absence pour maladie. Il en va de même pour CM 3 * DEFAUT (@Coef:Heures maladie CM ; 0), aussi égal à zéro en l’absence d’heures de congé maladie ; 3 * DEFAUT (@Coef:Heures maladie CM ; 2) donne 6 s’il n’y a pas d’heures d’absence pour maladie.

29.1Opération

Les quatre opérateurs de base (+, −, *, /) servent comme il se doit à additionner, soustraire, multiplier et diviser des nombres. Les multiplications et les divisions se font avant les additions et les soustractions.

Addition De plus, vous pouvez utiliser le + pour rassembler deux chaînes de caractères et n’en faire plus qu’une : « Bon »+ »jour » devient « Bonjour »
MIN() Cherche Valeur minimale dans une liste de nombres, exemple :
MIN(12;45;-3;28) résultat : -3
MAX() Cherche la valeur maximale dans une liste de nombres, exemple :
MAX(12;45;-3;28) résultat : 45
SOMME() Calcule la somme d’une liste de nombres, exemple :
SOMME(12;45;-3;28) résultat : 82
MOYENNE() Calcule la moyenne d’une liste de nombres, exemple :
MOYENNE(12;45;-3;28) résultat : 20.5

 

29.2Les totalisateurs

Les six fonctions suivantes font aussi partie des opérations.

Elles vous permettent d’obtenir non pas la valeur d’une rubrique pour un employé pour le mois courant, mais le cumul soit pour les employés, soit pour l’année soit encore pour le trimestre courant.

TOTEMPLOYES() Total pour tous les employés.
TOTEMPLOYES(@Brut:Salaire versé) Vous pouvez aussi procéder au cumul pour les employés décrit au §28.7.9 Cumul sur les employés pour l’objet Calcul dessiné dans la présentation.
TOTANNEE() Total pour toute l’année, limité aux périodes avec un salaire calculé.
TOTANNEE(@Déd:Cotisation AC) donne le total des cotisations AC pour les salaires versés.
Vous pouvez aussi procéder au cumul pour la période décrit au §28.7.8 Cumul sur l’année pour l’objet Calcul dessiné dans la présentation.
 TOUTANNEE() Total pour toute l’année courante, prend en compte aussi les mois sans salaire calculé.
TOUTANNEE(DEFAUT(@Déd:Cotisation AC ; 200)) vous donne le total des cotisations AC déjà calculées plus 200.– par période vide.
 TOTTRIMESTRE() Total pour le trimestre qui comprend le mois sélectionné
TOTTRIMESTRE(@Ind:Remboursement de km)
 PRECEDENT() Valeur d’une expression calculée pour la période précédente. PRECEDENT(@Brut:Salaire versé) vous donne le montant du salaire versé le mois passé. Au début de l’année, PRECEDENT() vous donne la valeur du dernier salaire de l’année précédente.
 TOTPRECEDENT() Total de l’ensemble des périodes précédentes.
TOTPRECEDENT(@Déd:Prime AANP) vous donne le montant total des primes AANP déjà prélevées les mois précédents.
Cette fonction accepte un second paramètre optionnel pour limiter les périodes additionnées à celles qui ont le même critère.
TOTPRECEDENT(@Coef:Jours de maternité
; @Déterm:Date de l’accouchement) vous donne le nombre de jours de maternité des périodes précédentes pour la même date d’accouchement.

Dans le calcul d’un salaire, ces opérations de total pour l’année ne dépassent pas le mois courant. Par exemple, un salaire calculé en février ignore les salaires de mars et des périodes suivantes.

CUMUL() Calcule la somme de toutes les indemnités selon qu’elles sont soumises ou non à divers bruts déterminants. Exemples :
CUMUL(« AVS ») vous donne le total des montants soumis à l’AVS
CUMUL(« 2.1 ») vous donne le total des montants affichés au point 2.1 du certificat de salaire

Les termes utilisables avec la fonction CUMUL() sont les suivants :

 

BRUT compris dans le salaire brut
NET compris dans le salaire net
VERSE compris dans le montant versé à l’employé
AVS soumis à l’AVS
AC soumis à l’assurance chômage
LAA soumis à l’assurance accidents
LAAC soumis à l’assurance accidents complémentaire
LPP pris en compte pour la prime LPP
FT soumis à l’assurance frais de traitement (ancienne)
IJM soumis à l’assurance indemnité journalière maladie
CPROF soumis à la contribution professionnelle
IMP soumis à l’impôt à la source
VAC pris en compte dans les indemnités vacances
FERIE pris en compte dans les indemnités pour jours fériés
13E pris en compte dans le calcul du 13ème salaire
FORFAIT pris en compte dans les frais AVS forfaitaires
ALLOC. ajouté aux allocations familiales
IJ. total des indemnités journalières
TIERS total des prestations de tiers
ACCMAL. total des indemnités accident et maladie
PTX. indemnités proportionnelles pour les IS (§30 Calcul des impôts à la source)

Vous pouvez aussi utiliser le code pour les accumulations des bases personnalisées (§17.7.6 Rubriques de type Bases).

La fonction CUMUL() peut également traiter les positions de 1. à 13.2.3 liées au certificat de salaire.

Vous pouvez aussi utiliser tous ces termes dans le filtre icone filtre associé à @Ind:* et @Déd:* (§28.7.10 Filtre)

Si vous créez vos propres bases (§17.7.6 Rubriques de type Bases), vous pouvez spécifier le Code pour les accumulations et utiliser ce code pour la fonction CUMUL().

Vous pouvez évaluer plusieurs critères en les séparant par le caractère & (fonction ET) qui s’obtient par Shift+6 ou le caractère « barre verticale » | (fonction OU) qui s’obtient sur un clavier Windows par AltGr+7.

AVS&LAA&LPP soumis à l’AVS et soumis à la LAA et soumis à la LPP
AVS|LAA|LPP soumis à l’AVS ou soumis à la LAA ou soumis à la LPP

Utiliser simultanément des & (ET) et des | (OU) n’est pas possible.

Vous pouvez cumuler des indemnités non soumises à un brut déterminant donné en utilisant le caractère point d’exclamation ! devant le code.

!AVS indemnités non soumises à l’AVS
BRUT&!LPP indemnités payées à l’employé, mais non soumises à la LPP

Vous pouvez enchâsser les fonctions les unes dans les autres. Exemple :
TOTEMPLOYES(TOTANNEE(@Brut:salaire AC))
vous donne le total pour tous les employés et pour toute l’année du salaire AC déterminant.

Vous pouvez associer cette procédure avec des tests (§29.3 Les tests) pour obtenir un total partiel sur une catégorie d’employés ou une période de dates. Par exemple pour avoir le total d’une valeur pour toutes les femmes :
TOTEMPLOYES(SI(@Sexe de l’employé=1 ; @Brut:salaire LAA ; 0))
Dans le cas où le sexe de l’employé est de 1 (c’est une femme), on additionne le salaire LAA, dans le cas contraire, on additionne zéro.

Autre exemple pour obtenir le montant d’une rubrique pour le mois précédent :
TOTANNEE(SI(@Mois courant=@Mois sélectionné-1 ; @Ind:salaire; 0))
Pour comprendre cette formule, il faut savoir que @Mois sélectionné correspond au mois où se trouve le curseur dans le tableau général. C’est donc le mois pour lequel on imprime le document. @Mois courant par contre passe de 1 à 12 (ou plus selon le nombre de périodes de paie) durant le calcul de TOTANNEE. La formule entre parenthèses sera donc calculée n fois, en changeant le mois courant à chaque fois. Lorsque le mois courant est égal au mois sélectionné moins un, on additionne l’indemnité voulue, sinon on ajoute zéro. Le résultat est donc la valeur de l’indemnité pour le mois précédent.

PRECEDENT(@Ind:salaire) est similaire, mais cherche la valeur précédemment payée en ignorant les mois sans salaires.

D’une manière similaire, on peut obtenir une valeur pour une période spécifique :
TOTANNEE(SI(@Mois courant=2; @Ind:salaire mensuel + @Ind:salaire horaire; 0))
vous donne le total des salaires pour février, quel que soit le mois actuellement sélectionné dans le tableau général.

 

29.3Les tests

Il vous est possible de comparer des éléments entre eux pour exécuter ensuite une opération ou une autre.

Le résultat d’un test est égal soit à 1 (auquel cas il est vrai) soit à 0 (auquel cas il est faux). Toute valeur supérieure à 0 est considérée comme vraie, et toute valeur nulle ou négative est considérée comme fausse.

SI(test; sivrai; sifaux)

Si le résultat de test est vrai, traite l’expression sivrai, sinon traite l’expression sifaux :
SI(@Brut:Salaire versé > 0; « à verser »; « à retenir »)
Signifie Si le salaire est supérieur à 0.–, il faut écrire « à verser », sinon il faut écrire « à retenir »

= Teste si deux nombres sont identiques.
<> Teste si deux nombres sont différents.
< Teste si le premier nombre est plus petit que le second.
<= Teste si le premier nombre est plus petit ou égal au second.
> Teste si le premier nombre est plus grand que le second.
>= Teste si le premier nombre est plus grand ou égal au second.
ET() Opère une addition, ou ET logique, entre plusieurs expressions : toutes doivent être vraies pour donner un résultat vrai.
ET(3 > 2 ; 4 < -1 ; 1 >= 0) donne 0 (« faux »), car 4 < -1 est faux.
OU() Opère une sélection, ou OU logique, entre plusieurs expressions : il suffit qu’une des expressions soit vraie pour donner un résultat vrai.
OU(3 > 2 ; 4 < -1 ; 1 >= 0) donne 1 (« vrai »),
car 3 > 2 et 1 >= 0 sont vrais.
NON() Inverse le résultat d’un test. NON(4<-1) donne 1 (vrai).
SEXE() Donne 0 ou 1 selon le sexe de l’employé :
0 = homme, 1 = femme.
Il est aussi possible d’utiliser @Donnée:Sexe de l’employé(e).
HOMME() Évalue l’expression entre parenthèses pour la valeur applicable aux hommes :
HOMME(@Donnée:Age retraité AVS)
Donne l’âge de la retraite AVS pour les hommes.
FEMME() Évalue l’expression entre parenthèses pour la valeur applicable aux femmes :
FEMME(@Donnée:Age retraité AVS)
Donne l’âge de la retraite AVS pour les femmes.
SISOUMIS() et SINONSOUMIS() Ces tests ne figurent pas dans la liste. Ils sont décrits au §29.8 Spécialités

29.4Les conversions

ARRONDI(nombre; arrondi; excès) Arrondit un nombre au multiple le plus proche, par excès ou par défaut. Si on omet le dernier paramètre, l’arrondi se fait par excès.
ARRONDI(12.775) donne 12.80.
ARRONDI(12.775; 0.05) donne 12.80
ARRONDI(12.775; 0.05; 0) donne 12.75

Attention : le format de la rubrique affichée ou imprimée entraîne également un arrondi (§28.7.6 Format des rubriques).

INT(nombre) Ne garde que la partie entière du nombre.
INT(12.775) donne 12.
FRAC(nombre) Ne garde que la partie fractionnaire du nombre.
FRAC(12.775) donne 0.775.
DEFAUT(rubrique ; valeur de substitution) Si la rubrique est vide, elle est substituée par la valeur spécifiée (voir la note au §29 L’éditeur de calculs).
DEFAUT(@Ind:Salaire mensuel;100) donne 100 s’il n’y a aucune valeur dans la rubrique Salaire mensuel.
VIDE() Donne un nombre vide (inexistant), peut être utile en relation avec la fonction DEFAUT() (voir la note au §29 L’éditeur de calculs).
SI(@Coef:Jours travaillés>0
; @Coef:Jours travaillés
; VIDE()
)
n’affiche rien au lieu de 0 si le nombre n’est pas plus grand que 0.
VIDE(rubrique) Donne la valeur 1 (vrai) si la rubrique est vide, 0 (faux) dans le cas contraire.
SI(VIDE(@Ind:Salaire mensuel)
; « à l’heure »
; « au mois »
)
affiche (imprime) « à l’heure » si le salaire mensuel est vide et « au mois » dans le cas contraire.
CHAINE(valeur ; décimales) Convertit un nombre ou une date en une chaîne de caractères.
Le paramètre optionnel des décimales vous permet de préciser le nombre de chiffres significatifs à afficher (imprimer).
« Montant :  » + CHAINE(@Ind:Salaire mensuel;2)
« Nous sommes le  » +CHAINE(AUJOURDHUI())
CHAINEMOIS(mois ; langue) Donne le nom du mois (1 à 12). Le second paramètre est optionnel et précise la langue voulue (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
CHAINEMOIS(2) donne « février »,
CHAINEMOIS(7;1) donne « Juli ».
CHAINEJDLS(jour ; langue) Donne le jour de la semaine (1 à 7). Le second paramètre est optionnel et précise la langue voulue (0 = français, 1 = allemand, 2 = anglais, 3 = italien). Par défaut, la fonction donne le nom dans la langue du document.
CHAINEJDLS(2) donne « mardi »,
CHAINEJDLS(1;2) donne « Monday ».
FINLIGNE() ou \n Crée une fin de ligne, ce qui vous permet de mettre une chaîne de caractères sur deux lignes.
@E.Donnée:Nom de l’entreprise + FINLIGNE() +
@E.Donnée:Adresse de l’entreprise
affiche (imprime)
« Espitec SA
Chemin du Fontenay »
@E.Donnée:Nom de l’entreprise + « \n « +
@E.Donnée:Adresse de l’entreprise
est équivalent.

29.5Les pourcentages

C%(montant ; taux) Calcule le pourcentage d’un montant.
C%(20;7) donne 1.40.
A%(montant ; taux) Ajoute un pourcentage à un montant.
A%(20;7) donne 21.40,
A%(20;-7) donne 18.60.
S%(montant ; taux) Calcule la valeur qu’avait un montant avant qu’on ne lui ajoute un pourcentage.
S%(21.4;7) donne 20,
S%(18.6;-7) donne 20.
M%(montant ; taux) Calcule la valeur ajoutée à un montant augmenté d’un pourcentage.
M%(21.4;7) donne 1.40,
M%(18.6;-7) donne 1.40.
T%(montant ; montant) Calcule le pourcentage entre deux montants.
T%(21.4;20) donne 7,
T%(18.6;20) donne -7.

29.6Les dates

Lorsque vous saisissez une année, si vous n’indiquez que la dizaine et l’unité de l’année, Crésus complète par le millénaire et le siècle, soit 19xx ou 20xx. Selon le type de date, le complément automatique n’est pas le même. Par exemple :

  • Pour une date de naissance, les indications d’années 00 à 19 sont transformées dans les années 2000 à 2019, alors que les indications 20 à 99 sont transformées dans les années 1920 à 1999.
  • Pour la date d’entrée, les indications d’années 40 à 99 sont transformées dans les années 1940 à 1999, alors que les indications 00 à 39 sont transformées dans les années 2000 à 2039.
  • S’il s’agit d’une date de calcul du salaire, toutes les années sont transformées en 20xx.

Vérifiez donc toujours que l’année complète soit correcte.

De manière interne, le programme convertit les dates en nombres de jours depuis le 1.1.1900.

Les fonctions suivantes s’appliquent aux dates.

AUJOURDHUI() Donne la date du jour. Il vous est également possible d’utiliser la rubrique @Donnée:Aujourd’hui qui est équivalente.
DATE(jour ; mois ; année) Donne le nombre représentant une date spécifiée (en jours depuis le 1.1.1900).
Si le calcul ne traite qu’une date, il affiche (imprime) la date spécifiée.
DATE(25;12;18) donne 25.12.2018,
DATE(25;12;18) – 15 donne 10.12.2018.
Dans un calcul qui comprend plusieurs dates, c’est bien le nombre représentant la date qui est utilisé, ce qui permet de calculer des intervalles entre des dates :
DATE(25;12;2018) – AUJOURDHUI()
donne le nombre de jours entre aujourd’hui et Noël 2018.
JOUR(date) Donne le jour du mois (1 à 31) de la date en question.
JOUR(DATE(3;2;2014)) donne 3.
MOIS(date) Donne le numéro du mois (de 1 à 12) de la date en question.
MOIS(DATE(3;2;2014)) donne 2.
Le résultat est affiché sous forme de texte, à moins que la fonction ne soit utilisée dans un calcul numérique.
« Nous sommes en « +MOIS(AUJOURDHUI()) donne « Nous sommes en mars ».
MOIS(DATE(3;2;2014)) + 3 donne 5.
Pour afficher le rang du mois, il faut utiliser la fonction NOMBRE(MOIS(DATE())).
ANNEE(date) Donne l’année (1900 à 2099) de la date en question.
Si l’année est saisie avec 2 chiffres uniquement,
00 à 49 donne 2000 à 2049,
50 à 99 donne 1950 à 1999.
ANNEE(DATE(5;6;51)) donne 1951,
ANNEE(DATE(25;12;2051)) donne 2051.
JDLS(date) Donne le jour de la semaine (1 = lundi à 7 = dimanche) de la date en question.
JDLS(DATE(28;3;14)) retourne 5 (vendredi).
SEMAINE(date) Convertit une date en numéro de semaine (0 à 53). La partie fractionnaire correspond au nombre de jours en centièmes depuis le début de la semaine.
Lundi = 0, mardi = 0.14, etc. jusqu’au dimanche = 0.86
SEMAINE(DATE(28;3;14))
donne 13.57 (c’est le vendredi de la 13ème semaine).
INT(SEMAINE(DATE(28;3;14))) donne 13.
ADDMOIS(date ; nombre) Ajoute un ou plusieurs mois à une date.
ADDMOIS(DATE(15;5;18);2) donne 15.07.18
ADDMOIS(DATE(31;12;17);2) donne 29.02.2018
Le paramètre nombre est optionnel. Si on ne le précise pas, ADDMOIS() ajoute 1 mois par défaut.
DEBUTMOIS(date) Donne la date du premier jour du mois.
DEBUTMOIS(DATE(3;2;18)) donne 01.02.2018.
FINMOIS(date Donne la date du dernier jour du mois.
FINMOIS(DATE(3;2;18)) donne 29.02.2018.
MAINTENANT() Donne le nombre de secondes écoulées depuis minuit.
TEMPS(heure ; minute ; seconde) Donne le nombre de secondes de l’heure exprimée en heures, minutes, secondes écoulées depuis minuit.
TEMPS(13;40;35) donne 49’235.
Les paramètres absents sont complétés par l’heure courante.
TEMPS(;0;0) correspond au début de l’heure courante.
HEURE(temps) Convertit un temps donné en nombre d’heures (0 à 23). La partie fractionnaire exprime les minutes en 1/100e d’heure.
HEURE(MAINTENANT())
HEURE(TEMPS(13;40;35)) donne 13.68.
MINUTE(temps) Donne le nombre de minutes (0 à 59) écoulées depuis l’heure pleine. La partie fractionnaire exprime les secondes en 1/100e de minute.
MINUTE(MAINTENANT())
MINUTE(TEMPS(13;40;35)) donne 40.58.
SECONDE(temps) Donne un temps en nombre de secondes (0 à 59) écoulées depuis la minute pleine. La partie fractionnaire est toujours nulle.
SECONDE(MAINTENANT())
SECONDE(TEMPS(13;40;35)) donne 35.00.
PERIODE(date) Limite une date à la période courante. Une date inférieure à la période prend la valeur du début de la période, une date supérieure à la période prend la valeur de la fin de la période.
PERIODE(AUJOURDHUI())
DEBUTPERIODE() Donne la date de début de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
DEBUTPERIODE(3) donne la date de début de la 3ème période.
FINPERIODE() Donne la date de fin de la période courante. Le paramètre optionnel permet de spécifier la période à évaluer.
FINPERIODE(11) donne la date de la fin de la 11ème période.
JFERIE(n) Donne le ne jour férié du mois courant, en fonction de la liste introduite dans Entreprise – Jours fériés (§17.14 Jours fériés). Attention : le 1er jour de la liste est le JFERIE(0)
JOURS360(date1 ; date2) Détermine le nombre de jours entre deux dates en se basant sur une année commerciale de 12 x 30 jours.
JOURS360(DATE(1;2);DATE(1;3)) donne 30, soit un mois commercial complet entre le 1er février et le 1er mars.

29.7Les chaînes de caractères

MAJUSCULE(chaîne) Transforme toute la chaîne de caractères en caractères majuscules.
MAJUSCULE(« BonJour ») donne « BONJOUR ».
MINUSCULE(chaîne) Transforme toute la chaîne de caractères en caractères minuscules.
MINUSCULE(« BonJour ») donne « bonjour ».
NOMPROPRE(chaîne) Met la première lettre de chaque mot de la chaîne de caractères en lettre majuscule et les autres lettres en minuscules.
NOMPROPRE(« BonJour mONsieur louis ») donne « Bonjour Monsieur Louis ».
GAUCHE(chaîne ; n) Extrait n caractères de la chaîne de caractères en partant depuis la gauche de la chaîne.
GAUCHE(« Bonjour »;3) donne « Bon ».
DROITE(chaîne ; n) Extrait n caractères de la chaîne de caractères en partant depuis la droite de la chaîne.
DROITE(« Bonjour »;4) donne « jour ».
MILIEU(chaîne ; position ; n) Extrait n caractères de la chaîne de caractères depuis la position (0 à n-1).
MILIEU(« Bonjour »;1;4) donne « onjo ».
LONGUEUR(chaîne) Donne le nombre de caractères que comporte la chaîne.
LONGUEUR(« Bonjour ») donne 7.
TROUVE(chaîne ; critère) Indique où dans la chaîne de caractères se trouve le critère recherché.
TROUVE(« Bonjour »; »jou ») donne 3.
Si le critère est au début, donne la valeur 0.
TROUVE(« Bonjour »; »Bon ») donne 0.
Si le critère n’est pas trouvé, la fonction donne la valeur -1.
TROUVE(« Bonjour »; »x ») donne -1.
REMPLACE(chaîne ; critère ; chaîne de substitution) Remplace les occurrences du paramètre critère par le paramètre chaîne de substitution.
REMPLACE(« Bonjour »; »jou »; »SOI ») retourne « BonSOIr ».
Il est possible de mettre plusieurs couples critère – chaîne de substitution, dans ce cas chaque critère trouvé dans la chaîne est remplacé par la chaîne de substitution correspondante.REMPLACE(« Bonjour Mme Bijou »; « jou » ; « soi »; « Mme » ; « M. »)donne « Bonsoir M. Bisoi ».

Le paramètre chaîne peut bien entendu être une rubrique.
REMPLACE(@Donnée:Nom de l’employé; »jou »; »soi »).

 NOMBRE(chaîne) Convertit une chaîne représentant un nombre, en nombre.
NOMBRE(« 1’123.45 ») donne 1123.45.
MOT(chaîne ; position ; séparateurs) Extrait le nème élément (selon sa position) d’une chaîne, en considérant le séparateur défini.
MOT(« aa/bb/cc/dd »;2; »/ ») donne « bb ».
Un séparateur ne peut pas être un mot ou une suite de caractères.
Si on spécifie plusieurs séparateurs, chaque séparateur est considéré individuellement. Cette fonction donne la première occurrence trouvée.
MOT(« aa+bb/cc/dd »;2; »/+& ») donne « bb ».
Si le séparateur à considérer est un caractère spécial, comme un tabulateur, il faut chercher son code ASCII avec la fonction CODECAR() décrite ci-dessous.
MOT(« aa<TAB>bb<TAB>cc/dd »;2;CODECAR(9)) retourne « bb ».
LIGNE(chaîne ; position) Extrait la nème ligne (selon le paramètre position) d’une rubrique de plusieurs lignes.
LIGNE(@Donnée:Adresse;2)
CODECAR(code_ascii) Donne un caractère en fonction de son code ASCII. On peut donner une liste de codes.
CODECAR(65;66;9;67) donne « AB<TAB>C ».
NOMRUBRIQUE() Donne le nom de la rubrique. Utile pour permettre la modification du nom de la rubrique par un calcul (§17.2 Lieux de travail).
NOMRUBRIQUE()+ » « +@Donnée:Code d’impôt à la source
Il est également possible de mettre une rubrique en paramètre, la fonction retourne alors le texte correspondant au nom de la rubrique.
NOMRUBRIQUE(@Ind:Salaire horaire)
donne le libellé de la rubrique tel qu’il a été modifié par l’utilisateur (§17.2 Lieux de travail).
TROUVEUNPARMI(chaîne ; caractères) Donne la position du premier caractère de la liste trouvé dans le texte. Le paramètre caractères est une chaîne donnant la liste des caractères à chercher.
TROUVEUNPARMI(« A B,C;D » ; « ;,. : ») donne 3, soit la position de la première virgule. L’espace n’est pas trouvé car on n’a pas mis d’espace dans la liste des séparateurs.
OTE(chaîne ; position ; critères) Enlève les espaces, tabulateurs ou fins de ligne d’une chaîne de caractères.
OTE( » Bonjour « ) donne «Bonjour».
Le paramètre position est optionnel :
S’il est omis, les caractères sont supprimés au début et à la fin de la chaîne.
S’il vaut 0, les caractères sont supprimés au début de la chaîne.
S’il vaut 1, les caractères sont supprimés à la fin de la chaîne. .
S’il vaut 2, les caractères sont supprimés au début et à la fin de la chaîne.
OTE( » Bonjour  » ; 0) donne «Bonjour » .
OTE( » Bonjour  » ; 1) donne « Bonjour».
OTE( » Bonjour  » ; 2) donne «Bonjour».
Le paramètre optionnel critères est une liste de caractères qui seront tous supprimés s’ils se trouvent au début ou à la fin du texte traité. Chaque caractère de critères est considéré individuellement. Dès que le caractère de la chaîne n’est pas un des caractères listés dans critère, le traitement s’arrête.
OTE( » Bonjour » ; 0 ; « jour ») donne «  Bonjour».
OTE( » Bonjour » ; 1 ; « jour ») donne «  Bon».
OTE( » Bonjour » ; 2 ; « ujro ») donne «  Bon».
OTE(« Bonjour  » ; 0 ; « ojur ») donne «Bonjour ».
OTE(« Bonjour  » ; 1 ; « ojru ») donne «Bonjour ».
OTE( » Bonjour  » ; 2 ; « jour ») donne «  Bonjour  » (le caractère espace n’est pas spécifié dans la liste caractères à supprimer.
OTE(« Bonjour  » ; 2 ; « jo ur ») donne «Bon».
OTE( » rujo Bonjour  » ; 2 ; « ur jo ») donne «Bon».

29.8Spécialités

Les fonctions décrites ci-dessous ne se trouvent pas dans les listes des opérations du dialogue. Vous les utilisez en les inscrivant directement dans la formule.

SISOUMIS(« mode » ; expression) Évalue l’expression en ne prenant en compte que les rubriques soumises aux bruts déterminants selon le mode (voir la fonction CUMUL §29.2 Les totalisateurs).
SISOUMIS(« LPP »
; @Ind:Prime ancienneté + @Ind:Salaire mensuel)
calcule la somme des valeurs trouvées dans les champs pour autant qu’elles soient soumises à la base LPP.
Si l’une des valeurs est soumise mais pas l’autre, la valeur soumise sera prise en compte. Il n’est pas nécessaire que les 2 rubriques soient soumises.
SISOUMIS(« AVS »
; @Ind:Prime ancienneté + @Ind:Salaire mensuel)
fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme zéro pour une addition (voir note §29 L’éditeur de calculs).
SIRUBSOUMISE(« mode » ; @rubrique) Rend 1 ou 0 selon que la rubrique donnée en second paramètre est soumise ou non selon le mode (voir la fonction CUMUL §29.2 Les totalisateurs).
SIRUBSOUMISE(« LPP »; @Ind:Prime ancienneté)
donne 1 si la prime d’ancienneté est soumise à la LPP.
SINONSOUMIS(« mode » ; expression) Évalue l’expression en ne prenant en compte que les rubriques non soumises aux bruts déterminants selon le mode (voir CUMUL §29.2 Les totalisateurs).
SINONSOUMIS(« LPP »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
calcule la somme des valeurs si elles ne sont pas soumises à la base LPP.
Si l’une des valeurs est soumise mais pas l’autre, la valeur soumise sera prise en compte. Il n’est pas nécessaire que les 2 rubriques soient soumises.
SINONSOUMIS(« AVS »
; @Ind:Prime ancienneté
; @Ind:Salaire mensuel)
fonctionnera également si l’une des deux rubriques est vide car vide est considéré comme égal à zéro pour une addition (voir note §29 L’éditeur de calculs).
AGELIMITE(limite ; mode) Détermine si l’âge de l’employé est inférieur à un âge limite.
AGELIMTE(18) donne zéro si l’employé a 18 ans (dans l’année courante) ou plus. Donne 1 s’il a 17 ans ou moins.
Le paramètre mode est optionnel. S’il vaut 1, la fonction tient compte du mois de naissance et donne la valeur zéro dès le mois suivant l’anniversaire de l’âge concerné.
AGELIMTE(65;1) donne zéro dès le mois suivant le 65ème anniversaire.
POURPERIODE(colonne ; expression) Donne la valeur de l’expression pour la période donnée.
La période peut être donnée par un nombre (n° de la colonne) ou une date.
POURPERIODE(DATE(15;3;2014);@Ind:Salaire mensuel)
donne le salaire mensuel du mois de mars 2014.
FANIONPERIODE(colonne ; paramètre) Donne 1 (=vrai) ou 0 (=faux) selon les réglages faits pour paramètre dans Entreprise – Périodes pour la colonne (1 à n) concernée.
paramètre = 1 : le 13ème salaire doit être payé.
paramètre = 2 : les vacances doivent être payées.
paramètre = 3 : les vacances incluent le mois courant.
FANIONPERIODE(6;1)
donne 1 si le 13ème doit être versé en juin.
MONTANTPERIODE(valeur) Ramène un montant mensuel au prorata de la période courante.
Par exemple, si on a fait un salaire du 1er février au 15 mars inclus, MONTANTPERIODE(1000) donne 1500 puisque la période correspond à un mois et demi.
NOMPERIODE(colonne) Donne le nom de la colonne (1 à n) du tableau général.
NOMPERIODE(1) donne habituellement « Janvier ».
POURLANGUE(langue ; expression) Évalue l’expression dans une langue donnée (0 = français, 1 = allemand, 2 = anglais, 3 = italien).
POURLANGUE(2;NOMPERIODE(1)) donne « January ».
ASSURANCE(rubrique ; type ; mode) Donne les valeurs en fonction de l’assurance de l’employé.
Le premier paramètre doit être la rubrique du nom de l’assurance attribué à l’employé (@Donnée:Assurance LPP, @Donnée:Assurance IJM, @Donnée:Assurance LAAC, …).
Le second paramètre (valeur 1 à 9) détermine le type d’information souhaitée :
1 : taux à appliquer (selon la tranche d’âge si LPP)
2 : plafond mensuel
3 : valeur de « soumis à partir de » pour la LPP, pour les assurances c’est la valeur de déduction fixe
4 : « montant à déduire » pour la LPP
5 : « montant minimum » pour le salaire coordonné de la LPP
8 : état du fanion « calcule sur base annuelle » pour la LPP
11 : taux de la cotisation employeur
31 : valeur fixe pour l’employeur
Toutes ces valeurs sont adaptées automatiquement à la période traitée et à l’âge de l’employé.
ASSURANCE(@Donnée:Assurance IJM;1)
donne le taux de cotisation à l’assurance IJM de l’employé.
Le troisième paramètre est facultatif et permet de spécifier si la valeur retournée est calculée en mode mensuel ou annuel. Par défaut, le mode est mensuel. Ajoutez le paramètre 1 pour forcer le mode annuel.
ASSURANCE(@Donnée:Assurance IJM ; 4 ; 1)
donne le montant à déduire, rapporté à la durée de la période le cas échéant.
IMPOT(code ; mode ; déterminant annuel) Donne le taux à appliquer pour l’imposition à la source.
Le paramètre code doit obligatoirement être la rubrique donnant le code de l’impôt (@Donnée:Code d’impôt à la source). Le paramètre mode détermine le type d’information souhaité, cela peut être :
1 : taux selon le montant déterminant en 3ème paramètre
2 : donne 1 si le calcul est annuel (0 pour mensuel)
3 : donne 1 si le calcul annuel ne doit se faire qu’en fin de l’année
4 : donne 1 si le calcul annuel n’est possible que si l’employé était présent toute l’année
5 : donne 1 si le calcul final doit se faire selon le code de la dernière période
6 : donne le nombre d’heures par mois à considérer
7 : donne l’adresse de l’office tel qu’introduit sous Entreprise – Impôt source
8 : donne le n° de contribuable de l’entreprise
9 : donne le taux de la commission de perception
0 : donne 1 si le calcul mensuel doit se faire rétroactivement.
ANNUEL(mode ; brut ; occasionnel ; prévision ; déduction) Procède à une estimation du salaire déterminant annuel.
Le paramètre mode peut être :
0 : estimation en cours d’année
1 : détermination lors du dernier salaire
2 : extrapolation à partir du mois courant uniquement
3 : comme 1 mais limité aux dates d’entrée et de sortie de l’employé.
Le paramètre brut doit être le montant cumulé des indemnités soumises à l’impôt à la source pour la période courante.
Le paramètre occasionnel doit être le cumul des indemnités exceptionnelles soumises. Ces montants ne seront donc pas ramenés proportionnellement à l’année.
Le paramètre prévision permet d’ajouter les montants non encore payés, mais qui devraient l’être à la fin de l’année (indemnités vacances, 13ème salaire).
Le paramètre déduction doit être les montants payés à l’avance sur les vacances et le 13ème salaire.
Le logiciel prend encore en compte les dates des périodes ainsi que les dates d’entrée et de sortie de l’employé.
LISTEDEF(nombre ; texte) S’utilise pour définir le contenu à choix d’une rubrique de type liste. Chaque élément de la liste se compose d’une valeur numérique et d’un texte associé. Voyez l’exemple au §6.3 Les bases.
VARTEMP(nom ; expression) Mémorise le résultat de expression dans l’une des 50 variables temporaires à disposition. La valeur mémorisée peut être reprise avec VARTEMP(nom) sans second paramètre.
VARTEMP(« essai » ; 250) met la valeur 250 dans la variable « essai ».
VARTEMP(« essai ») donne alors 250.
SI (VARTEMP(« essai » ; CUMUL (« AVS »)) > 0 ;
VARTEMP(« essai ») ;
VIDE())
Dans cet exemple, le calcul commence par mémoriser le total des montants soumis à l’AVS dans la variable temporaire « essai ».
Puis il teste si le cumul est > 0. Si oui, l’expression donne le contenu de la variable « essai » (=le montant cumulé), sinon elle est vide.
C’est l’équivalent de
SI (CUMUL (« AVS ») > 0 ;
CUMUL (« AVS ») ;
VIDE())
mais cela évite de calculer deux fois le cumul.
La variable temporaire (nom) est initialisée à VIDE() au début d’une impression ou au début de chaque calcul si elle est utilisée ailleurs que pour une impression.
VARTEMP(index ; expression) Mémorise le résultat de expression dans l’une des 10 variables temporaires à disposition (index = 0 .. 9). La valeur mémorisée peut être reprise avec VARTEMP(index) sans second paramètre.
SI (VARTEMP(7 ; CUMUL (« AVS »)) > 0 ;
VARTEMP(7) ;
VIDE())
Ce calcul mémorise le total des valeurs soumises à l’AVS dans la variable temporaire 7 et donne le contenu si le cumul est > 0.
La variable temporaire (index) est initialisée à VIDE() au début de chaque calcul, même lors d’une impression.
RECURSIF(rubriques) S’utilise pour forcer Crésus à faire un calcul itératif sur une valeur dépendante d’elle-même.
Exemple : pour déterminer la part employeur des charges sociales en partant d’un salaire brut-brut, qui inclut donc ces charges, il faut évaluer le total de ces charges, les déduire du salaire brut-brut, pour déterminer le salaire brut sur lequel on calculera les charges sociales, puis recommencer. Les charges sociales vont donc varier en fonction d’elles-mêmes.
RECURSIF(@Brut:Total des cotisations employeur)
DEBUG(expression) Affiche la formule et les étapes de son évaluation.
Expression peut être un calcul ou une rubrique.
DEBUG(C%(@Brut:Base AVS;@Coef:Taux AVS))
affiche
@Brut:Base AVS[Janvier] ==> 6500.
@Coef:Taux AVS[Janvier] ==> 5.15
C%(6500. ; 5.15) ==> 334.75

CACHE(expression)
Cache l’objet entier si le résultat de l’expression est nul.
CACHE(SI(@Donnée:Sexe de l’employé(e) = 0
; « Monsieur »))
S’il s’agit d’une employée, tout l’objet est caché, y compris son cadre et/ou fond.
COMPTE(chaîne ; critère) Compte le nombre d’occurrences du critère dans la chaîne.
COMPTE(@Donnée:Divers1 ;  » ! ») compte le nombre de points d’exclamation trouvé dans la rubrique Divers1.
SWITCH(condition 0 ; 0 ; condition 1 ; 1 ; condition 2 ; 2 ; … ; condition n ; n) Donne le résultat de l’expression 0 à n selon l’état de la dernière condition 0 à n évaluée.
Si la condition 0 est vraie, donne le résultat de l’expression 0, si la condition 1 est vraie, donne le résultat de l’expression 1, etc.
C’est le résultat de l’expression de la dernière condition vraie évaluée qui est donné.
SWITCH(@Donnée:Mois sélectionné >=1 ; « 1er trimestre »
; @Donnée:Mois sélectionné >=4 ; « 2e trimestre »
; @Donnée:Mois sélectionné >=7 ; « 3e trimestre »
; @Donnée:Mois sélectionné >=10 ; « 4e trimestre »)
Donne le 1er, le 2ème, le 3ème ou le 4ème trimestre selon le mois où se trouve le curseur.
CASE(condition ; 0 ; 1 ; .. ; n) Donne le résultat de l’opération 0 à n en fonction de la valeur de condition. Si la condition vaut 0, donne le résultat de l’opération 0, si la condition vaut 1, donne le résultat de l’opération 1, etc.
POURCHAQUE(objet ; expression) Répète l’expression pour toutes les occurrences de l’objet, par exemple pour chacune des assurances LAA définies ou pour chaque code d’impôt à la source.
POURCHAQUE(@Donnée:Assurance LPP ; expression)
L’objet doit être la rubrique qui fait référence à l’assurance, au code d’impôt à la source ou au lieu de travail.
LIEUTRAVAIL(expression) Les lieux de travail définis pour l’entreprise – anciennement « succursales » – sont référencés par un n° d’identification supérieur ou égal à 300.
@Donnée:Lieu de travail de l’employé affiche ou imprime ce n° d’identification.
LIEUTRAVAIL(@E.Donnée:Lieux de travail)
donne le nom du lieu de travail de l’employé.
Pour imprimer l’adresse et la localité du lieu de travail :
LIEUTRAVAIL(@E.Donnée:Adresse de l’entreprise)
+ « \n »
+ LIEUTRAVAIL(@E.Donnée:Localité de l’entreprise)
Cette expression peut également être formulée ainsi :
LIEUTRAVAIL(@E.Donnée:Adresse de l’entreprise
+ « \n »
+ @E.Donnée:Localité de l’entreprise)
Si le document concerne toute l’entreprise, la fonction LIEUTRAVAIL() donne les données du siège principal de l’entreprise.
LIMITEPERIODES(condition ; expression) Permet de ne traiter que les mois où l’employé garde la même condition.
LIMITEPERIODES(@Donnée:Date d’entrée de l’employé
; TOTANNEE(@Brut:Salaire versé))
donne le total du salaire versé pour la période d’engagement courante (jusqu’au mois courant).
COMPTA(rubrique ; paramètre) Donne les définitions comptables d’une rubrique (§17.11 Comptabilisation des rubriques).
La valeur donnée dépend du paramètre :
COMPTA(rubrique ; 1) : compte débit
COMPTA(rubrique ; 1.1) : compte débit de l’employeur
COMPTA(rubrique ; 2) : compte crédit
COMPTA(rubrique ; 2.1) : compte crédit de l’employeur
COMPTA(rubrique ; 3) : libellé
COMPTA(rubrique ; 3.1) : libellé de la part de l’employeur
COMPTA(rubrique ; 4) : mode
COMPTA(rubrique ; 5) : code analytique
COMPTA(rubrique ; 5.1) : code analytique de la part de l’employeur
COMPTA(rubrique ; 6) : code TVA
Dans un bloc d’exportation « pour toutes les indemnités » (§18.5 Exporter des données), si le critère rubrique est vide, la fonction traite la rubrique courante de la boucle :
COMPTA(; 1.1) donne le compte débit employeur de chaque rubrique traitée dans la boucle.
SPECIALOP(paramètre) Opérations particulières effectuées lors d’une impression ou lors d’une exportation. SPECIALOP() traite toutes les rubriques @Ind:* ou @Déd:*d’une ligne imprimée ou d’un bloc exporté « répété pour » (§18.5 Exporter des données).
SPECIALOP() s’applique à la rubrique courante, en fonction de la valeur de paramètre.
SPECIALOP(90)
donne le type du coefficient de la rubrique :
-1 : type vide
0 : jours
1 : heures
2 : %
3 : sans type (-)
SPECIALOP(91) donne la valeur de la rubrique.
SPECIALOP(92) donne le déterminant de la rubrique.
SPECIALOP(93) donne le coefficient de la rubrique.
SPECIALOP(94) donne le coefficient employeur de la rubrique.
SPECIALOP(95) donne la valeur employeur de la rubrique.

SPECIALOP() est une valeur positive, même pour les déductions. Pour imprimer un signe « + » devant une déduction négative (un remboursement), il faut faire un calcul commeREMPLACE(« + » + CHAINE(0 – SPECIALOP(91) ; 2) ; « +- » ; « – » ; « +0.00 » ; «  »)

INFOASSURANCE(donnée:assurance ; paramètre) Retourne les diverses informations associées à l’assurance.
Tous les éléments donnés sont des textes.
La donnée:assurance peut être l’une des rubriques
@Donnée:Code LAA de l’employé
@Donnée:Assurance LAAC
@Donnée:Assurance LAAC (2ème)
@Donnée:Assurance IJM
@Donnée:Assurance IJM (2ème)
@Donnée:Assurance FT (Frais de traitement)
@Donnée:Assurance LPP
@Donnée:Assurance LPP (2ème)
La valeur donnée dépend du paramètre. Dans les exemples ci-dessous, on teste l’assurance AA complémentaire d’un employé, dont le code est A et qui concerne le groupe Personnel du bureau.
0 : donne le nom complet avec le code.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 0)
donne A2 : Personnel du bureau, cat. 2
1 : donne le code seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 1)
donne A2
2 : donne le nom et la catégorie.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 2)
donne Personnel du bureau, cat. 2
3 : donne le code et le nom seul.
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 3)
donne A2 : Personnel du bureau
4 : donne la catégorie seulement, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 4)
donne cat. 2
5 : donne le nom seul, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 5)
donne Personnel de bureau
6 : donne le type, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 6)
donne A2
7 : donne le groupe de personnes, par exemple
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 7)
donne A
8 : donne la catégorie
INFOASSURANCE(@Donnée:Assurance LAAC (2ème) ; 8)
donne 2
11 : donne le numéro Swissdec de l’assureur
12 : donne le numéro de client
13 : donne le numéro de contrat
14 : donne le nom de l’assureur
15 : donne l’adresse de l’assureur
16 : donne le NPA de l’assureur
17 : donne la ville de l’assureur
TOTEMPLOYESCSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n) et
TOTANNEECSV(critère ; colonne 1 ; colonne 2 ; … ; colonne n)
S’utilisent lors d’une exportation pour produire un tableau indiquant le cumul des données qui répondent au critère (§18.5.2 Les opérateurs spéciaux TOTEMPLOYESCSV() et TOTANNEECSV())
ADRESSE(mode ; rubrique) Donne l’élément mode du champ rubrique de type NPA/Rue/Localité (§17.7.3 Rubriques de type Données).
La valeur donnée dépend de mode :
0 : NPA Localité
1 : Rue
2 : NPA
3 : Localité
4 : Canton
5 : Pays (code ISO)
6 : Pays (en toutes lettres)
ADRESSE(0 ; @Donnée:Adresse du mandataire)
donne le NPA et localité du mandataire.
SETDATA(rubrique ; expression ; paramètre) S’utilise pour affecter une valeur à une rubrique. Peut s’utiliser dans des expressions complexes.
Le paramètre est facultatif et spécifie la période de paie concernée. S’il est omis, l’expression est affectée à la valeur globale de la rubrique.
SETDATA(@Ind:Autres frais forfaitaires ; 200 ; 2)
met 200.– dans les frais forfaitaires de l’employé en février.
TOTEMPLOYES(SETDATA(@Donnée:Jours vacances par année;25))
met 25 jours dans la valeur globale de tous les employés.

Attention : aucun contrôle n’est fait lors d’un SETDATA(), il est possible de modifier des salaires existants, mais ils ne sont pas recalculés.

OP (expression 1 | expression 2 | … | expression n) S’utilise pour effectuer plusieurs calculs dans la même formule.
OP(VARTEMP(« base »
; DEFAUT(@Ind:Salaire mensuel
; @Ind:Salaire horaire))
| VARTEMP(« taux » ; 12)
| VARTEMP(« bonus » ; C%(VARTEMP(« base »)
; VARTEMP(« taux »)))
| SETDATA(@Ind:Bonus ; VARTEMP(« bonus »)))
MESSINFO(mode ; texte) S’utilise dans le calcul Obligatoire selon de la définition d’une rubrique pour affiche un message dans une bulle d’aide ou après avoir saisi une valeur lors de la saisie de données.
Le paramètre mode détermine l’icône affichée dans le champ et le niveau du message :
« INFO » : le message est une information.
« WARNING » : c’est un avertissement, mais il n’est pas impératif de s’y conformer pour quitter la saisie. Le point d’exclamation est rouge pâle, mais le champ de saisie est blanc.
« ERROR » : c’est un avertissement important, mais il n’est pas impératif de s’y conformer pour quitter la saisie. Le point d’exclamation et le champ de saisie sont rouge pâle.
« KO » : c’est un avertissement incontournable, tant que la valeur entrée ne répond pas au critère, il ne sera pas possible de valider la saisie. Le point d’exclamation est rouge vif.

 

POURFICHIER(fichier ; expression_debut ; expression_ligne ; expression_fin) Permet d’ouvrir un fichier de type texte et d’en traiter le contenu.
expression_début est évaluée une fois au début du traitement
expression_ligne est appliquée sur chaque ligne du fichier
expression_fin est évaluée à la fin du traitement.
La fonction n’est évaluée qu’une seule fois par fichier, ensuite elle retourne toujours le résultat évalué cette fois-là.
Si on souhaite plusieurs résultats, il faut mettre un critère à la suite du nom de fichier après l’un des caractères |;¦?*/ par exemple
« %EXEPATH%ListeCommunes.txt; » + @Donnée:NPA de l’employé
Dans ce cas POURFICHIER sera évalué pour chaque NPA différent rencontré dans le fichier Crésus.
expression_ligne est évaluée pour chaque ligne du fichier lu.
Le contenu de la ligne est donné dans VARTEMP(« #Line »).
On peut utiliser les fonctions habituelles sur la variable, comme
MOT(VARTEMP(« #Line »); 5 ; « ; ») dans un fichier CSV pour trouver le 5ème élément.
Le résultat de l’expression (toujours une chaîne de caractères) est ajouté à la chaîne donnée par la fonction.
Par exemple :
POURFICHIER
(« %EXEPATH%\\NuPost.TXT » ;
« villes:  » ;
SI(MOT(VARTEMP(« #Line ») ; 3 ; « \t ») = « 1400 » ;
MOT(VARTEMP(« #Line ») ; 5 ; « \t ») + « , « ) ;
« npa = 1400 »
)
ouvre le fichier NuPost.txt
met le texte villes: au début de la chaîne à donner
évalue chaque ligne du fichier : si le 3e mot de la ligne est 1400, ajoute le 5e mot de la ligne et une virgule à la chaîne à donner
ajoute le texte npa = 1400 à la fin de la chaîne à donner
ce calcul donne ceci
villes: Cheseaux-Noréaz, Yverdon-les-Bains, Yverdon 1, Yverdon 2, Yverdon 3, Yverdon car postal, Yverdon 1 Dist, Yverdon Caserne, npa = 1400
DONNEE(mode ; expression) Donne la valeur calculée par Crésus ou la valeur introduite par l’utilisateur en fonction de mode.
mode = 1 : donne la valeur calculée par Crésus
mode = 2 : donne la valeur saisie par l’utilisateur
La valeur donnée est vide si elle n’existe pas.
DONNEE (1 ; @Ind:Salaire mensuel) donne le salaire mensuel calculé pour le mois, même s’il a été modifié manuellement au moment de sa saisie.
POURLANGUE(paramètre ; expression) Donne l’expression dans la langue en fonction de paramètre.
paramètre peut être
0 : français
1 : allemand
2 : anglais
3 : italien
Suggest Edit

Recherche