Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/12/2007, 14h05   #1
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Par défaut [BO 5.1.9] Problème indicateur / Dimension et tableau

Bonjour à tous,

Après avoir réglé un petit soucis grace à l'aide de Bruno2r, j'abuse encore de ce forum en vous posant une question qui va peut être vous parraître un peu stupide peut être, mais je galère vraiment...

Voila, j'ai ramené des données à partir d'une requête sql afin de calculer une date d'échéance à partir de donnée numériques et de dates.

Ces dates d'échéances, qui maintenant grace à Bruno2r sont au format mm/aaaa je voudrais pouvoir la regrouper par mois, car actuellement dans mon tableau elles sont de type indicateur et il m'est impossible de les regrouper entre elles (j'ai par exemple plusieurs 12/05).
Dès que j'essai de changer le type pour les mettre en Dimension j'ai l'erreur #ERR.

Dans ce tableau, j'ai trois éléments :

Les dates d'échéances (<calcul_echeance>) de type indicateur (calculées)
Une date (<dat>) de type dimension utilisée par (<calcul_echeance>).
Les montants (<PRIXCDE>) de type indicateur qui sont calculés.

J'ai supprimé toutes les données du tableau sauf les deux que je veux utilisées (<calcul_echeance>) et (<PRIXCDE>). Mais je suis contraint aussi de garder <dat> sinon <calcul_echeance> se met en erreur -> #CALCUL

Actuellement mon tableau ressemble à :

http://webeko.free.fr/images/echeance.jpg

Comment puis-je trier par mois la somme des montants ?

Je sèche sérieusement...

Voici à quoi ressemble le format du tableau :

http://webeko.free.fr/images/format.jpg

Avez vous une idée s'il vous plaît ?

Merci
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 16h26   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Salut, alors on travaille le dimanche ....
Bon sérieusement ...
Tout d'abord une question :
Pourrquoi dans ta première image trouve-t-on en face de l'échéance 08/2005 la dat 12/105/2005 ? peut être est ce normal si il s'agit de mois/Année de la dernière échéance et date de la prochaine ...

Sinon, pour en revenir à ta question, l'objet Echéance doit être un objet Dimension.
Vas dans Données/Variables
Choisis là
Clic sur Editer
Change le type d'objet.

Et dis toi bien que l'on n'abuse jamais de ce forum ... il est fait pour ça !!!
A +
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 18h54   #3
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Bonjour Bruno2r,

Tu as raison pour le dimanche, c'est pas cool mais je ne suis pas de nature très tranquile....

La dat corespondant à l'échéance 08/2005 est dans le tableau 12/05/2005. C'est normal, tant que la date est inférieure à l'échéance.
Il y a plus de 70 types d'échéances (assez galère car elle ne sont pas stokées dans la base mais calculées).

Je calcule donc les 70 types d'échéances dans la formule de <calcul_echeance>, cette variable me ramène les dates d'échéances de type date. C'est celles-là que je converti au format mm/aaaa.

Le problème est que dès que je désire passer cette variable en Dimension cela ne fonctionne plus, j'ai un #VALEURMULTI, si j'ajoute la fonction Max, ma variable rebascule automatiquement en indicateur et la j'ai bien les dates au bon format mais je ne peut plus traiter mes variables correctement, c'est à dire mettre les échéances comme maître du tableau afin de regrouper tous les montants par mois.

De plus je ne peux plus changer pour le remettre en dimension car le choix reste grisé sur indicateur sans laisser la possibilité de rebasculer en dimension.

As-tu une idée ?

Merci encore.
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 19h25   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Ne désespérons pas nous allons finir l'année en beauté !
ton calcul <calcul_echeance>) de type indicateur (calculées) il est fait où ?
  • Dans BO
  • Dans un sql à la carte
  • Dans l'univers
Comment se fait il qu'une Date soit en indicateur ça n'a pas de sens
BO met en indicateur les valeurs numériques
Fais moi passer ta formule de calcul que j'essaie d'y voir clair.
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 19h40   #5
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Je ramène tous les éléments à partir d'une requête sql, puis les calculs sont fait dans les formules de BO.

Voici la formule ci-dessous ...

Ok, bon courage ... Lol ...

Début de formule de <calcul_echeance> :

----------------------------------------------------------------------
=Si <nbj1>=1 Et <nbj2>=1 Et <fdm>=1 Alors <dat>
Sinon Si <nbj1>=1 Et <nbj2>=1 Et <fdm>=2 Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=1 Et <nbj2>=2 Et <fdm>=1 Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=2 Et <fdm>=2 Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors <dat>
Sinon Si <nbj1>=1 Et <nbj2>=3 Et <fdm>=1 Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=3 Et <fdm>=2 Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors <dat>
Sinon Si <nbj1>=1 Et <nbj2>=4 Et <fdm>=1 Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=4 Et <fdm>=2 Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DateRelative(DernierJourDuMois(<dat>) , <j2>)
Sinon Si <nbj1>=1 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<j2>)
Sinon Si <nbj1>=1 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors <dat>
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=1 Et <j2> = 0 Alors <dat>-1
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) < DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<nj2>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > DernierJourDuMois(<dat>) Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) = DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<nj2>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=2 Et ((DernierJourDuMois(<dat>))+<nj2>) < DernierJourDuMois(((DernierJourDuMois(<dat>)+1))) Alors ((DernierJourDuMois(<dat>))+<nj2>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=2 Et ((DernierJourDuMois(<dat>))+<nj2>) > DernierJourDuMois(((DernierJourDuMois(<dat>)+1))) Alors DernierJourDuMois(((DernierJourDuMois(<dat>)+1)))
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=2 Et ((DernierJourDuMois(<dat>))+<nj2>) = DernierJourDuMois(((DernierJourDuMois(<dat>)+1))) Alors DernierJourDuMois(((DernierJourDuMois(<dat>)+1)))
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) < <dat> Alors ((DernierJourDuMois(<dat>))+<nj2>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > DernierJourDuMois(<dat>) Alors ((DernierJourDuMois(<dat>)))
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > (<dat>) Alors ((DateRelative(<dat> ,-(<cjm>)))+<nj2>)
Sinon Si <nbj1>=1 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) = <dat> Alors ((DateRelative(<dat> ,-(<cjm>)))+<nj2>)
Sinon Si <nbj1>=2 Et <nbj2>=1 Et <fdm>=1 Et <dat>+<j1> >= DernierJourDuMois(<DebMoisSui>) Alors DernierJourDuMois(<DebMoisSui>)
Sinon Si <nbj1>=2 Et <nbj2>=1 Et <fdm>=1 Et <dat>+<j1> < DernierJourDuMois(<DebMoisSui>) Alors <DebMoisSui> + (<cjm> -1)
Sinon Si <nbj1>=2 Et <nbj2>=1 Et <fdm>=2 Alors <FinMoisSui>
Sinon Si <nbj1>=2 Et <nbj2>=2 Et <fdm>=1 Alors (<DebMoisSui>+<j2>-1)
Sinon Si <nbj1>=2 Et <nbj2>=2 Et <fdm>=2 Alors (<FinMoisSui>+1)+(<j2>-1)
Sinon Si <nbj1>=2 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<FinMoisSui>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) <((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=3 Et <fdm>=1 Alors DernierJourDuMois(<dat>) + <j2>
Sinon Si <nbj1>=2 Et <nbj2>=3 Et <fdm>=2 Alors (DernierJourDuMois(<FinMoisSui>))+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=4 Et <fdm>=1 Alors DernierJourDuMois(<dat>)+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=4 Et <fdm>=2 Alors DernierJourDuMois(<FinMoisSui>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<FinMoisSui>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors DernierJourDuMois(<dat>)+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>)= 1 Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) < NuméroDuJourDuMois(<FinSecMois>) Alors DateRelative(<FinSecMois> ,-(NuméroDuJourDuMois(<FinSecMois>)))+ NuméroDuJourDuMois(<dat>)-1
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) >= NuméroDuJourDuMois(<FinSecMois>) Alors DernierJourDuMois(<FinSecMois>)-1
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) < DernierJourDuMois(<dat>) Alors ((DateRelative(<FinSecMois> ,-(NuméroDuJourDuMois(<FinSecMois>)))+<nj2>))
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > DernierJourDuMois(<dat>) Alors DernierJourDuMois(<FinSecMois>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) = DernierJourDuMois(<dat>) Alors ((DateRelative(<FinSecMois> ,-(NuméroDuJourDuMois(<FinSecMois>))))+<nj2>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=2 Et <j2>=0 Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <DebTroMois> Alors <DebTroMois>
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<DebTroMois>) Alors <DebSecMois>+<j2>
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<DebTroMois> ,-(<cjm>)))+<j2>) >= <DebTroMois> Alors <DebTroMois>
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=3 Et <j2>=0 Alors DernierJourDuMois(<DebSecMois>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) < NuméroDuJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>)+1)) Alors <DebSecMois>+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) >= NuméroDuJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>)+1)) Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebMoisSui> ,-(<cjm>)))+<j2>) <= DernierJourDuMois(<DebMoisSui>) Alors DernierJourDuMois(<dat>)+(<j2>)
Sinon Si <nbj1>=2 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebMoisSui> ,-(<cjm>)))+<j2>) >= DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=3 Et <nbj2>=1 Et <fdm>=1 Et ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<cjm>)) <= <FinTroMois> Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<cjm>))
Sinon Si <nbj1>=3 Et <nbj2>=1 Et <fdm>=1 Et ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<cjm>)) > <FinTroMois> Alors <FinTroMois>
Sinon Si <nbj1>=3 Et <nbj2>=1 Et <fdm>=2 Alors <FinTroMois>
Sinon Si <nbj1>=3 Et <nbj2>=2 Et <fdm>=1 Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=2 Et <fdm>=2 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=3 Et <fdm>=1 Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=3 Et <fdm>=2 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=4 Et <fdm>=1 Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=4 Et <fdm>=2 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+(<j2>))
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>)= 1 Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) < NuméroDuJourDuMois(<FinTroMois>) Alors DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>)))+ NuméroDuJourDuMois(<dat>)-1
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) >= NuméroDuJourDuMois(<FinTroMois>) Alors DernierJourDuMois(<FinTroMois>)-1
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) < DernierJourDuMois(<dat>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>)))+<nj2>))
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > DernierJourDuMois(<dat>) Alors DernierJourDuMois(<FinTroMois>)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) = DernierJourDuMois(<dat>) Alors ((DateRelative(<FinTroMois> ,-(NuméroDuJourDuMois(<FinTroMois>))))+<nj2>)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=2 Et <j2>=0 Alors <FinTroMois>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) <= <FinQuaMois> Alors <FinQuaMois>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <DebQuaMois> Alors <DebQuaMois>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<DebQuaMois>) Alors <DebTroMois>+<j2>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=2 Et ((DateRelative(<DebQuaMois> ,-(<cjm>)))+<j2>) >= <DebQuaMois> Alors <DebQuaMois>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=3 Et <j2>=0 Alors DernierJourDuMois(<DebTroMois>)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) < NuméroDuJourDuMois(<FinTroMois>) Alors <DebTroMois>+(<j2>)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) >= NuméroDuJourDuMois(<FinTroMois>) Alors <FinTroMois>
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebSecMois> ,-(<cjm>)))+<j2>) <= <FinTroMois> Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)+(<j2>)
Sinon Si <nbj1>=3 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebSecMois> ,-(<cjm>)))+<j2>) >= <FinTroMois> Alors <FinTroMois>
Sinon Si <nbj1>=4 Et <nbj2>=1 Et <fdm>=1 Et ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<cjm>)) <= <FinQuaMois> Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<cjm>))
Sinon Si <nbj1>=4 Et <nbj2>=1 Et <fdm>=1 Et ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<cjm>)) > <FinQuaMois> Alors <FinQuaMois>
Sinon Si <nbj1>=4 Et <nbj2>=1 Et <fdm>=2 Alors <FinQuaMois>
Sinon Si <nbj1>=4 Et <nbj2>=2 Et <fdm>=1 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=2 Et <fdm>=2 Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=2 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=3 Et <fdm>=1 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=3 Et <fdm>=2 Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=3 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=4 Et <fdm>=1 Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=4 Et <fdm>=2 Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) < ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) > ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinCinMois> ,-(NuméroDuJourDuMois(<FinCinMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=4 Et <fdm>=3 Et (<dat>) = ((DateRelative(<dat> ,-(<cjm>)))+<j2>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+(<j2>))
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>)= 1 Alors <FinTroMois>
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) < NuméroDuJourDuMois(<FinQuaMois>) Alors DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>)))+ NuméroDuJourDuMois(<dat>)-1
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et <j2>=0 Et NuméroDuJourDuMois(<dat>) > 1 Et NuméroDuJourDuMois(<dat>) >= NuméroDuJourDuMois(<FinQuaMois>) Alors DernierJourDuMois(<FinQuaMois>)-1
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) < DernierJourDuMois(<dat>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>)))+<nj2>))
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) > DernierJourDuMois(<dat>) Alors DernierJourDuMois(<FinQuaMois>)
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=1 Et ((DateRelative(<dat> ,-(<cjm>)))+<nj2>) = DernierJourDuMois(<dat>) Alors ((DateRelative(<FinQuaMois> ,-(NuméroDuJourDuMois(<FinQuaMois>))))+<nj2>)
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=2 Et <j2>=0 Alors <FinQuaMois>
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=2 Et <j2> >0 Et <DebQuaMois>+<j2> <= <DebCinMois> Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) <= <FinCinMois> Alors <DebQuaMois>+<j2>
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=2 Et <j2> >0 Et <DebQuaMois>+<j2> > <DebCinMois> Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) <= <FinCinMois> Alors <DebCinMois>
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=3 Et <j2>=0 Alors DernierJourDuMois(<DebQuaMois>)
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) < NuméroDuJourDuMois(<FinQuaMois>) Alors <DebQuaMois>+(<j2>)
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) < (<dat>) Et (<j2>) >= NuméroDuJourDuMois(<FinQuaMois>) Alors <FinQuaMois>
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebTroMois> ,-(<cjm>)))+<j2>) <= <FinQuaMois> Alors DernierJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>)+1)+1)+(<j2>)
Sinon Si <nbj1>=4 Et <nbj2>=5 Et <fdm>=3 Et ((DateRelative(<dat> ,-(<cjm>)))+<j2>) >= <dat> Et ((DateRelative(<DebTroMois> ,-(<cjm>)))+<j2>) >= <FinQuaMois> Alors <FinQuaMois>
Sinon Si <nbj1>=5 Et <nbj2>=1 Et <fdm>=1 Et <j1>=0 Alors <dat>
Sinon Si <nbj1>=5 Et <nbj2>=1 Et <fdm>=1 Et <j1> >0 Alors <dat>+<j1>
Sinon Si <nbj1>=5 Et <nbj2>=1 Et <fdm>=2 Et <j1>=0 Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=1 Et <fdm>=2 Et <j1> >0 Alors DernierJourDuMois(<dat>+<j1>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=1 Et <j1>=0 Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(<dat>+<j1> , -(NuméroDuJourDuMois(<dat>+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=2 Et <j1>=0 Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(DernierJourDuMois(<DebMoisSui>-1)+<j1> , -(NuméroDuJourDuMois(DernierJourDuMois(<DebMoisSui>-1)+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1>=0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1>=0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>) ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=2 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=1 Et <j1>=0 Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(<dat>+<j1> , -(NuméroDuJourDuMois(<dat>+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=2 Et <j1>=0 Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(DernierJourDuMois(<DebMoisSui>-1)+<j1> , -(NuméroDuJourDuMois(DernierJourDuMois(<DebMoisSui>-1)+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1>=0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1>=0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>) ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=3 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=1 Et <j1>=0 Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors (DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=1 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(<dat>+<j1> , -(NuméroDuJourDuMois(<dat>+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=2 Et <j1>=0 Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) <= DernierJourDuMois(<dat>) Alors <DebMoisSui>+<j2>-1
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=2 Et <j1> >0 Et (<dat>+<j1>) > DernierJourDuMois(<dat>) Alors (DateRelative(DernierJourDuMois(<DebMoisSui>-1)+<j1> , -(NuméroDuJourDuMois(DernierJourDuMois(<DebMoisSui>-1)+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1>=0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1>=0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1> >0 Et <dat> <= ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>) ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=4 Et <fdm>=3 Et <j1> >0 Et <dat> > ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors ((DateRelative(DernierJourDuMois(<dat>+<j1>)+1 ,-(NuméroDuJourDuMois(DernierJourDuMois(<dat>+<j1>)+1))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=1 Et <j1>=0 Et <j2>=0 Alors (<dat>-1)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=1 Et <j1> >0 Et <j2>=0 Alors (<dat>+<j1>-1)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=1 Et <j1>=0 Et <j2> >0 Et ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) <= DernierJourDuMois(<dat>) Alors ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=1 Et <j1>=0 Et <j2> >0 Et ((DateRelative(<dat> ,-(NuméroDuJourDuMois(<dat>))))+<j2>) > DernierJourDuMois(<dat>) Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1>=0 Et <j2> =0 Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2>=0 Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2>=0 Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors DernierJourDuMois(DernierJourDuMois(<dat>+<j1>))
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1>=0 Et <j2> >0 Et DernierJourDuMois(<dat>)+<j2> < DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DateRelative(DernierJourDuMois(DernierJourDuMois(<dat>)+1) , -(NuméroDuJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1>=0 Et <j2> >0 Et DernierJourDuMois(<dat>)+<j2> >= DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2> >0 Et <dat>+<j1> <= DernierJourDuMois(<dat>) Et DernierJourDuMois(<dat>)+<j2> < DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DateRelative(DernierJourDuMois(DernierJourDuMois(<dat>)+1) , -(NuméroDuJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>)+1))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2> >0 Et <dat>+<j1> <= DernierJourDuMois(<dat>) Et DernierJourDuMois(<dat>)+<j2> >= DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DernierJourDuMois(DernierJourDuMois(<dat>)+1)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2> >0 Et <dat>+<j1> > DernierJourDuMois(<dat>) Et DernierJourDuMois(<dat>)+<j2> <= DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DateRelative(DernierJourDuMois(DernierJourDuMois(<dat>+1)+<j1>) , -(NuméroDuJourDuMois(DernierJourDuMois(DernierJourDuMois(<dat>+1)+<j1>))))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=2 Et <j1> >0 Et <j2> >0 Et <dat>+<j1> > DernierJourDuMois(<dat>) Et DernierJourDuMois(<dat>)+<j2> > DernierJourDuMois(DernierJourDuMois(<dat>)+1) Alors DernierJourDuMois(DernierJourDuMois(<dat>+<j1>)+1)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1>=0 Et <j2>=0 Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1> >0 Et <j2>=0 Et <dat>+<j1> <= DernierJourDuMois(<dat>) Alors DernierJourDuMois(<dat>)
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1> >0 Et <j2>=0 Et <dat>+<j1> > DernierJourDuMois(<dat>) Alors DernierJourDuMois(DernierJourDuMois(<dat>+<j1>))
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1>=0 Et <j2> >0 Et <dat> <= DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>)))+<j2> Alors DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>)))+<j2>
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1>=0 Et <j2> >0 Et <dat> > DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>)))+<j2> Alors DateRelative(DernierJourDuMois(<dat>)+1 , -(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1)))+<j2>

--------------------------------------------------------------------------
Fin de formule
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 19h54   #6
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
J'en ai pour jusqu'à l'année prochaine à lire tout ça !
Bon je m'y remets ... A +
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 20h03   #7
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Oui c'est assez volumineux...
Chaque enregistrement ramené par la requête sql parcours cette variable pour afficher selon la condition la date d'échéance dans le tableau.

C'est plutôt tordu mais les gars qui gèrent la base de données hyperfile ne stokent pas les dates d'échéances ! Du coup il faut les calculer ...

Penses-tu que le code puisse influer ?
Cela renvoie toujours à une date au final ?

Encore merci pour ton aide.
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 20h29   #8
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Citation:
Envoyé par LOPEZ Voir le message
Je ramène tous les éléments à partir d'une requête sql, puis les calculs sont fait dans les formules de BO.
tu parles bien d'un sql à la carte sans passer par un univers mais en pointant directement sur ta base ?
C'est quoi ta base ? Et quelle version ?
Ton objet <dat> il pointe sur un champ Date apparemment, et tu me dis qu'il est bien en Dimension
C'est pas normal que tu récupères un objet Indicateur
Je me demande si c'est pas parceque certaine fois tu n'utilises pas DateRelative et que tu additionnes les jours directement aux <dat>
Exemple les deux dernières lignes :
Code :
1
2
3
4
5
Sinon Si <nbj1>=5 Et <nbj2>=5 Et <fdm>=3 Et <j1>=0 Et <j2> >0 
Et <dat> > DateRelative(<dat> , -(NuméroDuJourDuMois(<dat>)))+<j2> ...pas dans DateRelative...
Alors 
DateRelative(DernierJourDuMois(<dat>)+1 , -(NuméroDuJourDuMois(DernierJourDuMois(<dat>)+1)))+<j2>
+<j2> APRES la dernière parenthèse !
C'est quoi comme type ce <j2> ?
Du numérique peut-être ?

Très franchement Amigo mio, tout ce calcul devrait être dans le sql .....
Qu'en dis tu ?
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 20h48   #9
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Ah ah de retour..

C'est une base hyperfile (windev) et je lance ma requête à travers des pilotes ODBC hyperfile7. Le language sql est assez limité avec ce type d'approche (du moins c'est ce que j'ai pu constater => pas plus d'une jointure, pas de requête imbriquée ...).

Effectivement <j2> est bien un numérique calculé de type indicateur.

Je teste au sujet de DateRelative et je te donne des nouvelles.

Merci Amigo.
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h00   #10
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Je restes à l'affut ...
SQL Pôôôvre tu peux pas tester tes conditions sur
nbj1
nbj2
nbj3
fdm
????
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h20   #11
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Voici ma requête SQL, je récupère les infos sur 3 tables distinctes, j'ai déjà essayé les requêtes imbriquées mais cela ne passe pas.
Tester les valeurs à partir du sql afin de calculer la date d'échéance cela me semble assez complexe.

nbj1, nbj2 sont les valeurs d'une combo, ces valeurs sont donc recalculées par les variables <j1> et <j2>.
Il faudrait que je me penche dessus.


SELECT t1.naf, t1.cocde, t1.qteafrest, t1.prixaf, t1.dateaf, t1.delai, t2.coder, t2.dat, t3.nbj1, t3.nj1, t3.nbj2, t3.nj2, t3.fdm
FROM affaire t1, echeanc t2
LEFT JOIN reglem t3 ON t2.coder = t3.coder
WHERE cocde = t2.cocde and t1.qteafrest > 0 AND t1.etataf <> 'S'

Je teste et je reviens dessuite.
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h32   #12
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Hé hé

Cela fonctionne !!!

C'est bien ça !
Le <j2> en dehors de DateRelative bousille tout !
Tu es muy bueno !

Je te souhaite de très bonnes fêtes.

Mille remerciements !!!

On va finir l'année en beauté ! Grace à toi Amigo !!!!!

PS : Je vais essayé de voir pour faire le calcul dans le SQL mais cela me semble très difficilement réalisable (du moins à mon niveau ).
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h47   #13
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Youpie ! Je le savais !!!
Pour le sql c'est faisable si tu as l'équivalent d'un select case ou decode (si sinon )
A l'année prochaine
et penses à
__________________
Précisez la VERSION ! Règles du forum Business Objects et FAQ BO
"A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h51   #14
Futur Membre du Club
 
Inscription : mars 2002
Messages : 46
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 46
Points : 18
Points : 18
Merci encore.
Je vais voir pour le sql.

@ l'année prochaine .....
LOPEZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h58.


 
 
 
 
Partenaires

Hébergement Web