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
- 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