<!--4DIF (B_VDansGesprojet)--> : 4DENDIF attendu
  
ADMINISTRATION ET GESTION
administration : Aller plus loin avec les états persos (art 894)
ETATS PERSOS


Le tri sur le numéro d'opération est défectueux :
il faut mettre : num(chaine([table]Numéro opération))


Obtenir un message demandant de rentrer une date dans les états perso (à placer dans requête) :
Date(Gen_Messages(3;"Entrez une Date";"31/12/"+Chaine(année de (date du jour)-1)))


Obtenir le statut du projet (amont, en cours, etc.) :
Sous chaine([Projets]Qui a cliqué et quand;9;Position("-";[Projets]Qui a cliqué et quand)-9)
<>StadeProjet{[Projets]Stade}


Table de correspondance du statut du projet (amont, en cours, etc.) :
1- Amont
2- En cours
3- Terminé
4- Abandonné
5- A valider
6- En clôture
7-Libre 1
8-Libre 2


Obtenir (0 ou 1) :
Num(Non(C5=1))


Obtenir (1 ou -1) dans les états perso :
((2*Num([Budgets]Recette))-1)


Obtenir 2 libellés selon un booléen :
Chaine(Num([Budgets]Recette);"Cumul des recettes perçues;;Total dépenses engagées")


Trouver la xè position d'une chaine de caractères :
fonction gen_position

gen_position("aa";"raataayaa";3) -> 8

gen_position("aa";"raataayaa";-1) -> 3

gen_position("aa";"raataayaa") -> 2


Compléter à un certain nombre de caractères :
Chaine("100";"0000000000")
100 -> 0000000100


Sinon il existe la fonction Gen_rallongerTexte("texte";longueur à obtenir;Vrai ou Faux;";")
Si Vrai, complète après / Si Faux, complète avant
le dernier paramètre est optionnel il s'agit du dernier caractère rajouté (utile pour un fichier format CSV par exemple et si le ";" se trouve dans le texte, il est remplacé par un espace)


Supprimer les liens automatiques entre les tables :
Dans certains cas, les liens entre les tables sont activés et posent des problèmes sur les états persos (avec la table archives budgets notamment) il faut dans ce cas, dans les entetes et pieds de page, ajouter cette ligne :

Fixer liens automatiques(Faux;Faux)
et la mettre entre doubles chevrons


Obtenir la date de début réalisée si elle existe, la date de début sinon :
C1=Num([Gestion Evenementielle]Date début réalisée#!00/00/00!)*([Gestion Evenementielle]Date début réalisée-[Gestion Evenementielle]Date début)

[Gestion Evenementielle]Date début+C1


Options des entêtes dans les états persos :
1. #P indique le numéro de page,
2. #D indique la date d’impression,
3. #H indique l’heure d’impression.
4. #I Insère les Initiales de l'utilisateur courant
5. #O Insère le nom complet de l'opération
6. #N Insère le numéro de l'opération
7. [Table]Champ Insère la valeur du champ au moment de l'impression (utile pour les liens ascendants)


Gérer des colonnes en cumul de la ligne précédente avec des ruptures
Gen_CumulLignePrécédente (Un chiffre (un champ, une formule...);du texte (valeur de rupture);{1...20 numéro de sous total})

Les variables suivantes sont remises à jour :
soustotal1;totalgeneral1
soustotal2;totalgeneral2
...
soustotal19;totalgeneral19
soustotal20;totalgeneral20

Exemples :
Gen_CumulLignePrécédente([Engagements]Engagé HT;"")
soustotal1 ou totalgeneral1 seront égale à la somme cumulée des engagé HT (Il faut créer une colonne qui contient soustotal1)

Gen_CumulLignePrécédente([Engagements]Engagé HT;"";1)
Dans ce cas la fonction retourne directement la valeur de soustotal1

Soit un état des engagements triés par code budget :

Gen_CumulLignePrécédente([Engagements]Engagé HT;[Engagements]Code Budget;1)
soustotal1 sera égale à la somme cumulée des engagé HT par code budget et la fonction retournera la valeur de soustotal1

Gen_CumulLignePrécédente([Engagements]Facturé HT;[Engagements]Code Budget;2)
soustotal2 sera égale à la somme cumulée des facturés HT par code budget et la fonction retournera la valeur de soustotal2

Si je crée une colonne égale à 100*soustotal2/soustotal1 et que j'affiche la valeur de cette colonne lors de la rupture sur code budget, j'aurai l'avancement en pourcentage du code budget

Si je crée une colonne égale à 100* totalgeneral2/totalgeneral1 et que j'affiche la valeur de cette colonne en pied de page, j'aurai l'avancement en pourcentage de tous les engagements.

La commande ci-dessous permet de directement récupérer dans une colonne l'avancement en pourcentage d'un engagement avec une rupture par code budgets. En faisant une rupture par code budget et en affichant la valeur de la colonne, le pourcentage sera bien égale à l'avancement en pourcentage de la ligne budgétaire :

100*Gen_CumulLignePrécédente([Engagements]Facturé HT;[Engagements]Code Budget;2)/Gen_CumulLignePrécédente([Engagements]Engagé HT;[Engagements]Code Budget;1)


Obtenir la formule affichée en clair :
Bud_AnalyseFormule (->[Budgets]Formule)

Insérer des fenêtres de saisie lors d'états persos :
Il faut pour cela mettre l'un des codes suivant dans les entêtes ou pied de page des états perso puis faire appel aux variables(DateDébut, DateFin, Variable 1, etc.) dans l'état.
DateDébut:=Date(Gen_MessagesEtatsPerso("Entrer date début";Chaine(Date du jour)))
DateFin:=Date(Gen_MessagesEtatsPerso("Entrer date fin";Chaine(DateDébut)))
Variable 1:=Num(Gen_MessagesEtatsPerso("Entrer un montant 1";"0"))
Variable 2:=Num(Gen_MessagesEtatsPerso("Entrer un montant 2";"0"))
Texte Titre1:=Gen_MessagesEtatsPerso("Entrer un texte 1";""))
Texte Titre2:=Gen_MessagesEtatsPerso("Entrer un texte 2";""))

Attention : il convient d'insérer ces lignes entre doubles chevrons ! <<>>

Attention : ce sont des variables réservées de gesprojet. On ne peut pas utiliser d'autres noms.


Obtenir un délai entre 2 dates

Eng_DélaiEngagement (->[Engagements]Date_notification;->[Engagements]Date_fin_execution;->B39;->B40)


Récupérer le calcul des prévisions de trésorerie d'un projet compris entre date début et date fin :
Prév_RécupPrévision(Numéro opération;Date début;date fin)
ou
Prév_RécupPrévision ([Budgets]Code_Budget;!01/01/2011!;!31/12/2011!)


Obtenir un budget Agé :
Bud_budgetAgé(Code budget;2è paramètre;3è paramètre;[4ème paramètre];[5ème paramètre])

Variable DateDébut pour borne basse (par défaut 00/00/00)

Variable DateFin pour borne haute (par défaut date du jour)
ou
SI 4ème paramètre # !00/00/00! -> DateFin=4ème paramètre

Si 5ème paramètre=Vrai -> Le résultat de la fonction sera négatif pour les dépenses et positif pour les recettes

2è paramètre - options (Vous pouvez additionner les options)
1: TTC / sinon HT
2: Facture réglé
4: eng prev / sinon eng reel
8: à date de valeur
16: Facturé TTC inclus RG
32: date d'exécution
64: date de saisie
128: date comptabilisation
256: date réception
512: Fait la somme des lignes budgétaires (Quand la fonction est utilisé depuis le module synthèse)
1024: Elimine les lignes Hors bilan et Hors trésorerie si le paramètre 512 est utilisé


3è paramètre - colonne bilan
1: budget
2: engagement ou facturé
3: facturé ou réglé
4: Mouvements de l'année
5: révision HT



Récupérer les prévisions de trésorerie d'une période
Prév_RecupPrévision(Numéro projet,Date de début;Date de fin;[Option retour])
Si Option retour = 1 -> Prévision dépenses corrigées (option par défaut)
Si Option retour = 2 -> Prévision recettes corrigées
Si Option retour = 3 -> Prévision dépenses théoriques
Si Option retour = 4 -> Prévision recettes théoriques
Si Option retour = 5 -> Trésorerie


Retourner le cumul des assiettes sur une sélection de lignes budgétaires
Bud_CumulAssiettes(Année;0:HT 1:TTC;0:Dépenses 1:Recettes;0:Budgets 1:Archives budgets)
Si(Année=0)=>Pas de sélection par année
Si(Année>0)=>Recherche les assiettes dont année de(Date de début) = Année
Si(Année<0)=>Recherche les assiettes dont année de(Date de début) <= Année


Obtenir un cumul temps utilisateur par projet :
tem_CumulProjetUserAdate(numéro tache;initiales;!31/12/09!)


Exemple : chercher la somme du réglé TTC à partir d'une ligne budgétaire entre le 31/12/n-2 (exclus) et le 31/12/n-1 (inclus)
CHERCHER([Engagements];[Engagements]Raison sociale=[Adresses]Raison Sociale)

SELECTION RETOUR([Factures]Code engagement)

SELECTION RETOUR([Décaissement]Code facture)

CHERCHER DANS SELECTION([Décaissement];[Décaissement]Date décaissement<=Date("31/12/"+Chaine(Annee de(Date du jour)-1));*)

CHERCHER DANS SELECTION([Décaissement]; & ;[Décaissement]Date décaissement>Date("31/12/"+Chaine(Annee de(Date du jour)-2)))

Somme([Factures]Réglée TTC)