SynerGaïa
Me connecter
Accueil Accueil
  • Mode d'emploi, utilisation
  • Quelques exercices...
  • Toutes les pages
  • Messages d'erreur
  • Carte de proximité
  • L'installation
  • Le Dictionnaire
  • Tutoriel de la programmation
  • Rechercher
Consultation

Exemples de formules

  • Programmer avec SynerGaïa est très rapide et très simple !

    Voici des exemples pour vous en convaincre et vous aidez dans votre vie quotidienne.

    Ils sont classés par thématique.

    Création et maintenance dans le Dictionnaire

    • Définir une fiche Personne dont les champs sont Nom, Prenom, Ville, Email. Elle est immédiatement utilisable pour la saisie.
    @Dictionnaire.@DefinirObjet("Personne", "Nom", "Prenom", "Ville", 'Email,@Email")
    

     

    Saisie de documents

    • Saisie une nouvelle Personne dont on vient de décrire la définition
    @Nouveau("Personne").@Modifier
    

     

    Affichage de listes

    Aficher dans un calendrier des documents (ici Facture) qui ont une date et l'afficher quand on clique dessus :

    @Chercher("Facture").@AfficherCalendrier(.DateFacture,"",.NoFacture.@Concatener(" : ",.Titre,.Client.Titre)) > .@Afficher

    Supprimer l'affichage d'un bouton en fin de liste : il suffit de mettre une étiquette à vide : le chevron Le chevron > devient |> :

    @Chercher("Facture").@Afficher(.DateFacture,.NoFacture,.Titre,.Client.Titre)) Le chevron > .@Afficher

    Ouverture d'une section détaillée

    Dans une liste de factures, on souhaite afficher le détail d'une ligne en cliquant sur le mot "Détail":

    @Chercher("Facture").@Afficher(.DateFacture,.NoFacture,.Titre,.Client.Titre,@Bouton("Détail",.@Afficher).@VoirPLus)

     

    Gérer des documents

    Supprimer tous les documents du type "Document" archivés (DateArchivage) depuis plus de 5 ans :

    @Chercher("Document","",@Rien.@Aujourdhui.@Ajouter(0,0,-5).@SuperieurA.(.DateArchivage)).@PourChaque(.@Supprimer)

     

    Liens entre documents

    Lister tous les liens internes de cette documentation

    @Chercher("Document").@AfficherTableau(.Titre,.Texte.@LiensInternes)

    {*@Bouton(@Chercher("Document").@AfficherTableau(.Titre,.Texte.@LiensInternes))*}

    Créer un lien entre des groupes et des contacts

    On a un objet "Equipe" qui contient une propriété .Membres et celle-ci permet de choisir un ou plusieurs "Contact" dans notre annuaire.

    On souhaite créer une nouvelle équipe qui pointe vers tous les contacts qui ont une certaine propriété (par exemple ceux qui habitent la ville de Wambrechies)

    Comment, une fois la fiche Equipe créée, relier facimement ses membres ?

    C'est tout simple :

    membres=@Chercher("Contact","",.Ville.@Egale("Wambrechies"));
    @Chercher("Equipe","",.Nom.@Egale("Wambrechies")).@Premier.@MettreValeur("Membres",membres).@Enregistrer

    La première ligne consitue la collection des contacts qui habitent Wambrechies(... par exemple !). membres contient une @Collection des contacts concernés.

    La seconde cherche l'équipe à mpettre à jour, puis initialise la valeur de .Menbres avec la @Collection des contacts.

    Création automatique de documents

    Cette exemple provient du cas réel d'une gestion d'association.

    Cette formule permet à l'utilisateur de choisir une liste d'@Utilisateur (cases à cocher) et de lui créer un écriture comptable de 20 unités.

    @Chercher("@Utilisateur").@Choisir(.@Identifiant,.Nom,.Prenom) |Prélever>.@PourChaque( prel=@Nouveau("Cotisation"); prel.Cout=-20; prel.Demandeur=.Ceci; prel.Titre="cotisation mensuelle ".@Concatener(@Aujourdhui.@Mois," ",@Aujourdhui.@Annee); prel.TraiteeLe=@Aujourdhui; prel.@Enregistrer )

    Notes

    • Cotisation est le nom du document créé
    • |Prélever> crée un bouton avec ce libellé
    • .Ceci représente l'@Utilisateur en cours de l'opération @PourChaque

     

    Demander des paramètres

    On peut souhaiter demander des informations à l'utilisateur sans pour autant créer et enregistrer un document.

    Il suffit d'utiliser la méthode @Demander. Par exemple :

    @Demander("Titre,,Titre du livre", "DateParution,@Date,Date de parution", "Fichier,@Fichier,Fichier pdf de l'ouvrage")
    

    permettra de demander les informations et le fichier d'un ouvrage. Ainsi, avec ces informations, il est possible de classer le fichier sur le serveur et non dans la base (voir l'exemple à "Téléverser un fichier")

     

    Manipuler des fichiers

    Téléverser un fichier sur le serveur

    On cherche à stocker un fichier dans un répertoire du serveur.

    C'est tout simple :

    @Demander("Fichier,@Fichier,Choisir le fichier à téléverser")|Envoyer>.@DetacherFichier("Fichier")

    Comment ça marche ?

    • @Demander affiche un écran avec :
    • la phrase "Choisir le fichier à téléverser",
    • un bouton pour choisir sur son poste le fichier à envoyer
    • un bouton Envoyer (c'est la flèche |Envoyer> qui le fait)

    Notes

    1. Comme on n'a pas précisé de destination, le fichier sera téléversé dans le répertoire /tmp sous /synergaia.

    Importer un fichier CSV comme annuaire

    On a défini un objet Contact dont les propriétés sont .Nom, .Prenom, .Email, .Telephone, etc. On souhate l'initialiser à partir d'un fichier CSV extrait par exemple de Thunderbird.

    C'est tout simple également :

    @Demander("Fichier,@Fichier,Choisir le fichier")|Importer>@Import(.Fichier,"csv","Contact").@Importer

    Il faut juste prévoir que le fichier CSV contiennent bien les informations nécessaires (voir à la documentation de l'objet @Import)

    Gérer les opérations

    Marquer "terminée" d'un seul coup toutes mes opérations en attente (ne pas oublier le @PourChaque pour que la clôture s'exerce sur chaque opération de la @Collection:

    @MesOperationsEnAttente.@PourChaque(.@Terminer)

    Purger toutes les opérations anciennes de plus de 30 jours (dans la foulée, les opérations en cours depuis plus de 5 jours seront mises terminées)

    @SynerGaia.@PurgerOperations(30)

     

    Exploitation et maintenance

    • Compacter une base pour récupérer la place disponible (ici, les opérations après une purge) :
    @Base("synergaia_operations").@Compacter
  • Fichiers :