Aide pour code WINDEV
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Aide pour code WINDEV



  1. #1
    siuol

    Aide pour code WINDEV


    ------

    Bonjour,

    Je débute dans Windev et j'essaie d'écrire une "règle" qui automatiserait l'acquisition de CP (congés payés), sauf que j'ai trois entités différentes (du même Groupe) avec un nombre de jours mensuels de CP acquis différents, selon des cas spécifiques.

    J'ai écrit une règle Windev mais je pense que la syntaxe n'est pas bonne.

    Sachant que ::ArgReg_N(1)=2.0833 ; ::ArgReg_N(2)=2,5 et ::ArgReg_N(1)=3 (ceux sont les CP acquis/mois pour 3 différentes sociétés du même Groupe/3 cas particuliers).

    Mais ma règle ne foncitonne pas, dans tous les cas, cela me génère 2,0833 de CP/mois, mes conditions ne sont pas prises en compte. Je suis quasi sûr que ma syntaxe n'est pas bonne !!!

    Merci d'avance pour votre aide; si vous pouviez m'aider à corriger ce qui ne va pas ! MERCI

    Voici ma règle:

    Code:
    iNbJourOuvrMois, iNbJourOuvreDuSalarie est un entier
    //Stockage nbre jours ouvrés du mois
    iNbJourOuvrMois=::NombreJoursEntre2Dates(::InfoDate(4),::InfoDate(5),1,"1")
    //Calcul acquisition mensuelle fin de mois ou date sortie (::Date() filtrée dans la condition générique de la règle)
    //Formule=Acq. mens.*[nbre jrs ouvrés contrat sur mois/(nbre jrs ouvrés mois-absences ouvrées)/nbre jrs ouvrés mois]
    //L'acquisition de base mensuelle est renseignée dans ::ArgReg_N([1]
    iNbJourOuvreDuSalarie = ::NombreJoursEntre2Dates(Max(::InfoDate(4),::DateEntrée()),::Date(),1,"1")
    //Deduction des jours d'absences de la période
    iNbJourOuvreDuSalarie -= ::Compteur("ABS_N_CP","C")
    //Permet la prise en compte un prorata de date entrée/date sortie sur mois et abences sur mois, tout en base jrs ouvrés
    
    SI iNbJourOuvrMois>0 ET ::InfoContrat (18)=102 OU ::InfoContrat (18)=103 ou ::InfoSalarie(20)="SOP"... ALORS 
        ou ::InfoSalarie(20)="SOD"
        ::VarExec=::ArgReg_N(1) * (iNbJourOuvreDuSalarie / iNbJourOuvrMois)
        RENVOYER(::VarExec>0)
    FIN
    
    SI iNbJourOuvrMois > 0 et ::InfoSalarie(20)="AIR" ou ::InfoSalarie(20)="AIW" ALORS 
        ::VarExec=::ArgReg_N(2)*(iNbJourOuvreDuSalarie/iNbJourOuvrMois)
        RENVOYER(::VarExec>0)
    FIN
    
    SI iNbJourOuvrMois > 0 et ::InfoContrat (18)=102 ou ::InfoContrat (18)=103 ALORS 
        ::VarExec=::ArgReg_N(3)*(iNbJourOuvreDuSalarie/iNbJourOuvrMois)
    FIN
    RENVOYER(::VarExec>0)

    -----
    Dernière modification par JPL ; 24/04/2024 à 00h44. Motif: ajout de la balise Code pour garder l’indentation

  2. #2
    umfred

    Re : Aide pour code WINDEV

    vérifie la priorité des opérateurs logiques (a priori ils ont la même), donc mets des parenthèses pour grouper les conditions qui vont ensembles pour être sûr de celles-ci

Discussions similaires

  1. Imprimer code barre sur ticket de caisse avec windev mobile 20
    Par LTECH dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 19/05/2021, 10h15
  2. [Programmation] Aide pour Code VHDL
    Par MER6SME dans le forum Électronique
    Réponses: 10
    Dernier message: 03/01/2018, 23h09
  3. [Programmation] Aide pour code arduino
    Par Sylsam dans le forum Électronique
    Réponses: 5
    Dernier message: 13/03/2016, 15h12
  4. Aide pour message codé
    Par Shenlong532 dans le forum Science ludique : la science en s'amusant
    Réponses: 6
    Dernier message: 30/09/2015, 18h19
  5. aide pour un code
    Par RezCray1 dans le forum Programmation et langages, Algorithmique
    Réponses: 19
    Dernier message: 06/07/2014, 17h36