Question sur langage de formules

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Question sur langage de formules

Messagepar Eric SIVOA » 27 Nov 2012 à 17:32

Bonjour,

Je dois faire évoluer une petite application qui permet de lister pour un mois donné quels sont les personnes qui sont absentes dans un service donné.
Aujourd'hui, cela ne fonctionne que pour les mois à venir.

J'ai une vue PREVCONGES qui liste les informations suivantes :
- nom de l'agent (champ catégorisé, prise en compte des accents, afficher valeurs multiples comme entrées distinctes )
- date début congé
- toutes les dates de congés, avec la formule @Implode(DATES;" ")
(ainsi en regard d'une date de début congé au 19/10/2012 j'ai dans la colonne suivante 19/10/2012 20/10/2012 21/10/2012 etc.
- un champ form (non exploité à ce jour, sauf pour le debug)

J'avais comme formule de sélection de vue ce qui suit :
SELECT (Form="Congés" & @ToTime(DATE_DEBUT) > @Today )
| (Form="Ordre de mission" & @ToTime(DATE_DEBUT) > @Today)

Pour avoir les absences des mois précédents (par exemple il y a 3 mois) il faut que je modifie la formule précédente, et que cela devienne :
SELECT (Form="Congés" ) | (Form="Ordre de mission")


J'ai ensuite un masque 'Prévisions d'absence"
Je sélectionne le service, le mois, les agents éventuellement, je clique sur Actualiser.
Si la personne est absente, j'indique "ABS", sinon j'indique "-"
Tout le mécanisme de calcul dépend de plusieurs champs qui n'apparaissent pas à l'utilisateur, mais dont les résultats sont essentiels pour remplir les listes.

Dans le document, j'ai besoin de calculer les champs masqués date_debut (= la date de début du mois), liste_feries (= tous les jours fériés recensés), agents (= donne tous les agents du service), dates_agents (= donne toutes les absences des agents), present, absent.

Lorsque j'exécute le masque (en affichant les champs masqués à l'utilisateur), tous les résultats sont cohérents, à l'exception d'un seul.
Le champ qui me pose problème au calcul est le champ Dates_Agent dont voici le code actuel (le résultat que j'obtiens à l'affichage est @ERROR) :

Code : Tout sélectionner
n:= 1;
@While ( n <= @Elements ( AGENTS ) ;
   Agent := AGENTS [ n ]  ;
   RESULT := @Unique(@DbLookup( "" : "NoCache" ; @DbName; "PREVCONGES" ; Agent  ; 3 ; [FailSilent] )) ;
   @If (RESULT = "" ; RESULT := "NEANT"; @Nothing ) ;
   Element := (Agent + ";") : @Implode(RESULT );
   Liste  := Liste : Element ;
   n := n + 1
   ) ;
@Trim(Liste)


Je fais appel, pour générer mon document, à la vue précédente PREVCONGES.
Chaque personne a pris au moins une dizaine de congés, donc peut être pour éviter l'erreur, il faut que j'effectue une boucle imbriquée sur chaque agent pour prendre en compte tous ses congés et générer une feuille d'absence mensuelle correcte.
Comment feriez vous svp pour régler le souci sur DATES_AGENTS ?
Je suis dessus depuis quelques temps et je sèche.
Merci d'avance !
Eric SIVOA
Premier posts
Premier posts
 
Message(s) : 17
Inscrit(e) le : 09 Juil 2012 à 10:52

Re: Question sur langage de formules

Messagepar Michael DELIQUE » 28 Nov 2012 à 09:09

Salut

pour ma part je ne ferais pas ça en formule mais en Lotus Script.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Développement

cron