• Bienvenue sur la nouvelle version du forum Guide de généalogie,

    Si vous avez du mal à vous connecter, faites une demande de réinitialisation de mot de passe : Réinitialiser mon mot de passe
  • Découvrez la nouvelle section du forum : Réalisations dans Généatique. Montrez et partagez vos créations d'arbres dans Généatique !
    Et participez au concours !

TUTO Création de conditions logiques avancées

Nous allons voir comment Généatique permet de créer des conditions complexes, par exemple pour la mise en valeurs dans les cases de l'arbre et aussi nous verons comment une condition qui semble compliquée peut être réduite à quelque chose de très simple.
Le problème :
Dans le modèle "mode1-2018.grf" nous voulons modifier la couleur des événements affichés selon les critères suivants :
- L'événement est en caractère noirs si il à une source ET une illustration
- L'événement est en caractères bleus si il a une source OU une illustration mais pas les deux
- L'événement est en rouge si il n'a ni source ni illustration.
Là ou ça se complique c'est que la condition doit pouvoir tenir compte de l'équivalence définie pour les événements, Ainsi, par exemple, on considèrera l'événement complet si le baptême à une source mais pas d'illustration et que la naissance à une illustration et pas de source. Dans ce qui suit nous ne traiterons que l'événement Naissance / Baptême mais le traitement est le même pour les autres événements.
Si l'on ne veut pas oublier de cas, le plus simple est de faire une "Table de vérité" qui décrit tous les cas possibles. Nous adopterons la convention suivante :
- Ni=0 pas d'illustration naissance
- Ni=1 illustration naissance présente
- Ns idem pour source naissance
- Bi ; Bs idem pour illustration et source baptême

Pour la couleur Rouge, c'est très simple ; si on n'a ni illustration ni source pour Naissance ou Baptême on met en rouge :
Ni vide ET Ns vide ET Bi vide ET Bs vide ---> Rouge c'est notre première condition de mise en valeur, sachant qu'au départ les caractère sont noir dans les conditions de présentation.
Pour mettre en bleu, c'est plus compliqué

On peut donc définir notre table de vérité des 16 cas possibles, "So" étant la sortie (1 = bleu)
Ni 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Ns 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Bi 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0
Bs 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
So 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0


Une fois les 4 premières lignes remplies mécaniquement (c'est juste une alternance de 1 et de 0), on regarde pour chaque colonne si la combinaison doit mettre en bleu l'affichage de l'événement Naissance/Baptême ; si oui, on met 1, si non on met 0. Exemple, la deuxième colonne 0001 il n'y a qu'une source au baptême ---> Bleu ---> 1

On voit que on peut avec cette table définir notre condition de mise en valeur qui fera passer la naissance/baptême en couleur bleue, mais c'est très lourd puisqu'il que l'on a 6 combinaisons qui donnent la couleur bleue. La condition sera du genre :
(Ni vide ET Ns vide ET Bi vide ET Bs non vide) OU (Ni vide ET Ns vide ET Bi non vide ET Bs vide) OU (....) OU (....) OU (....) OU (....)
C'est lourd mais tout y est.
Peut-on simplifier cette condition ? OUI, par deux moyens : En utilisant les propriétés de l'algèbre de Bool ou en utilisant la méthode graphique (beaucoup plus simple) de la "Table de Karnaugh". Si par hasard vous avez oublié cette intéressante méthode je conseille fortement la page suivante :

Avec cette méthode, notre table de Karnaugh sera : (en notant a=Ni ; b=Ns ; c=Bi ; d=Bs)

Karnaugh.png


On remarque que la case 00/00 devait être à zéro mais ce cas est traité par la condition de mise en valeur située après (celle qui met en rouge) on peut donc mettre n'importe quelle valeur de sortie pour le cas 00/00. Mettre 1 simplifie l'équation finale obtenue cat il permet de n'avoir que deux groupes de 4.

D'où on déduit (voir la vidéo) la condition simplifiée :
_ _ _ _
a.c+b.d ou encore (
Ni vide ET Bi vide) OU (Ns vide ET Bs vide) ce qui est infiniment plus simple que l'équation initiale.
Et dans Généatique on aura la condition pour mettre en bleu Naissance :

Cond-bleu.png


Cette condition n'était pas du tout évidente au départ.
Dans les conditions de mise en valeur on est rarement confronté à des conditions aussi complexes et le simple bon sens suffit généralement à éditer directement les conditions mais souvent on pourrait les simplifier ; ce n'est pas toujours utile et il vaut mieux une condition avec plus de lignes mais qui reste facilement compréhensible. Les simplifications comme celle décrite ici conduisent à des conditions optimales mais pas évidente à interpréter si il faut y revenir.
 
Dernière édition:
Et le modèle issu de "mode1-2018.grf" sur lequel ces conditions de mise en valeur ont été appliquées.
G2023 seulement.
Ne pas oublier de définir les équivalences d'événements (événements associés) suivantes :
- Naissance==Baptême
- Union==Contrat de mariage
- Décès==Inhumation
 
Fichiers joints
  • mode1-2018-src-illustration.zip
    8.2 KB · Affichages: 10
TUTO-2

Dans ce deuxième tuto nous expliquerons la démarche pour créer un modèle d'arbre qui affiche à droite le Blason (illustration du nom issu d'une Notice Patronyme) et qui affiche à gauche soit le "Portrait" (événement Image) soit la signature (événement Image_signature).

Portrait-et-Blason.png

Ce modèle est basé sur le classique modèle "mode1-2018.grf" et uniquement sur les conditions de présentation que portera notre travail.
Première étape : Combien y a-t-il de présentations différentes des données (hors images) ?
Il y en a trois :
- Les cases de l'ascendance dans lesquelles figurent l'événement Union
- Les cases de la descendance dans lesquelles il n'y a pas d'événement Union
- Les cases des conjoints de la descendances dans lesquelles l'union est placée au-dessus de la case.
Deuxième étape : Combien y-a-t-il de configurations pour les images ?
Si l'on représente par "P" l'image d'un portrait, pas "S" l'image d'une signature, par "B" l'image d'un blason et par "Texte "les texte des événement on aura les 6 types de cases suivants :
- Texte (case ne comportant aucune image)
- P Texte (case ne contenant qu'un portrait)
- S Texte
- Texte B
- P Texte B
- S Texte B
Chacune des présentations de la première étape pouvant avoir les 6 cas de la deuxième étape ; on aura donc au total 3 x 6 conditions de présentation différentes et à chacune de ces conditions sera associée une case maquette différente.
La première case maquette pourrait par exemple correspondre à :
- Case de l'ascendance et texte (c'est à dire aucune image, juste les événements. La condition sera alors :
Case de l'ascendance
ET Image : Illustration vide
ET Image Signature : Illustration vide

Et Nom : Illustration du nom
Rappelons que les conditions de présentations sont examinées de haut en bas de la liste et que dès qu'une condition est "Vraie" (match) on ne vas pas plus loin dans l'examen des autres conditions et on passe à l'examen des conditions de mise en valeur (qui elles, sont toutes analysées avec effet cumulatif des diverses mises en valeur). Cette caractéristique permet souvent de simplifier un peu les conditions de présentation mais dans notre exemple nous ne simplifierons pas afin de rendre plus compréhensibles chaque condition. De toute façon il n'y aurait eu que peu de simplifications. Un autre avantage des conditions complètes c'est que l'ordre de ces conditions n'a plus d'importance. On a cependant intérêt à les mettre dans un ordre régulier pour faciliter la compréhension. Cependant, dans un autre tuto (Tuto-3 nous verrons comment on peut simplifier les conditions ; voir : TUTO Création de conditions logiques avancées
Nos 18 conditions de présentation comprendront donc 4 données, sauf dans les cas ou un "portrait" est présent car celui-ci est prioritaire sur l'image de la signature donc si "portrait", pas la peine d'aller contrôler l'état de l'image signature.
Reste le cas de la "case par défaut" ; elle pourrait être utilisée à la place d'une des 18 conditions de présentation mais nous ne l'utiliseront pas et elle correspondra à une case "anormale". Si cette case s'affiche dans l'arbre c'est qu'aucune des conditions précédentes n'a été "vraie" et donc qu'il y a un problème quelque part dans les conditions précédentes.
Je ne vais pas détailler chacune des 17 autres conditions de présentation, vous trouverez ces conditions ci-dessous et encore plus détaillées dans le paramétrage avancé du modèle ci-joint.
Comme détail supplémentaire vous pourrez constater que l'affichage du blason est de plus conditionné par une donnée "Blason" (j'aurais mieux fait de l'appeler Affiche-Blason) qui prend les valeurs Oui/Non/? (case à cocher) et qui permet d'afficher/cacher le blason quand la fiche a un patronyme qui possède un blason mais qui n'a pas droit à cette "honneur".

les-conditions.png

Remarque : Je n'en ai pas parlé plus haut, mais il y a une option dans le paramétrage avancé des modèles d'arbre qui permet de diminuer le nombre de conditions de présentation ; c'est l'option qui fait que la taille des cases s'ajuste aux données ; Il n'y a alors plus besoin de définir systématique les cases "avec Blason" et les cases "sans blason", la largeur de la case s'adapte si il n'y a pas de blason. Mais cette options présente un certain nombre de problèmes et je ne l'utilise généralement pas; Il faudrait une option où seule la largeur des cases s'adapterait mais pas la hauteur.
Le modèle (G2023 seulement) :
 
Fichiers joints
  • mode1-2018-Portrait-ou-Sign-et-Blason-O-N-vert.zip
    10.4 KB · Affichages: 5
Dernière édition:
Sur le même principe avec une rubrique Image BLASON

modele double image.jpg
 
Fichiers joints
  • mode1-2018-Double Image.zip
    10.8 KB · Affichages: 4
Sur le même principe avec une rubrique Image BLASON
...
Je rappelle que la rubrique "Image blason est une nouveauté de G2024 mais rien n'empêche de la créer dans G2023. Ce modèle a-t-il été fait sous G2023 ou G2024 ?
Contrairement à la donnée Nom : Illustration du nom, L'utilisation de Image blason suppose que cet événement avec son illustration ait été mise dans chaque fiche concernée. On n'a donc plus besoin de la validation de l'affichage du blason.
 
Dernière édition:
Oui mais si Image-Blason est un évènement partagé, alors l'image se retrouvera sur toutes les fiches des personnes mises en personnes citées.
C'est peut-être une piste à explorer......
 
TUTO-3

Simplification des conditions vues au Tuto-2 (voir : TUTO Création de conditions logiques avancées)

Dans le Tuto-2 nous avons vu comment on pouvait définir les 18 cas de présentation des cases maquettes ; par un raisonnement "de bon sens" nous allons voir que l'on peut simplifier ces conditions.
Considérons le premier groupe de 6 condition qui porte sur le cas des cases des conjoints de la descendance : ces 6 cas envisagent de façon complète les 6 possibilités de disposition des images , ces conditions sont examinées de haut en bas de la liste jusqu'à ce qu'un condition soit "Vraie", donc quand on arrive à la sixième c'est que les 5 premières étaient "Fausses" et que donc la sixième est forcément vraie si l'on a bien la condition "Conjoint de la descendance" qui est vraie. On peut donc pour la 6ème ligne n'avoir que la condition "Conjoint de la descendance" et on peut supprimer les conditions sur la présence ou l'absence des images. Le même raisonnement peut être tenu pour la deuxième groupe de 6 conditions (les cases de la descendance) ; de même pour le 3ème groupe et la 18ème ligne se réduira à "Case de l'ascendance".
Peut-on aller plus loin ? Oui ! Quand on arrive à la 18ème ligne c'est que toutes les conditions précédentes on été "fausses" et comme nos 18 conditions explorent toutes les possibilités, il n'est même pas besoin de faire le moindre test pour cette 18 ème ligne, c'est à dire qu'elle peut être la "case par défaut". On supprime alors la ligne 18 et la case par défaut prend la disposition des images qu'avait la cas correspondante à la ligne 18.
On obtient donc des conditions plus simples mais maintenant il ne faut plus changer l'ordre des lignes :

les-conditions-simplifiées.png

Peut-on aller plus loin ? sans doute un peu car il y a encore un peu de redondance dans les conditions de chacun des trois groupes de 6 conditions mais la simplification sera faible et la compréhension des conditions deviendra difficile ; il vaut donc mieux ne pas aller plus loin si l'on ne veut pas avoir des migraines.
 
Dernière édition:

gratuit

Retour
Haut