Permettre de liée une venue a un formulaire

1 – Création des évènements

Dans votre module, crée deux évènements :

  • SelectVenue composer d’un seul paramètre Index (nombre réel). Cet évènement servira à empêcher l’utilisateur de sélectionner plusieurs venues.
  • EvenementFemerture permettant de récupérer la venue dans le formulaire principal lorsque celle-ci sera sélectionner.

2 – Crée une inclusion pour stocker les différentes venues

Cette inclusion ne doit pas contenir de vue. Elle ne doit contenir que 3 variables et une fonction dans le modèle de donner.

3 – Crée une nouvelle inclusion avec deux vues pour afficher les différentes venues

a – Dans le modèle de donner de cette inclusion

Crée une variable inclusion multiple, qui référera l’inclusion créée à l’étape 2 et une variable texte qui permettra de récupérer la méthode de fermeture de la pop-up que nous allons créer ensuite.

Dans l’onglet Logique, crée deux fonctions ‘AfficherVenue’ et ‘RecupererFermeture’ comme suit

Lorsque vous paramétrez ‘Action sur fermeture’ de la fonction ‘AfficherVenue’, n’oubliez pas de passer en paramètre ‘$contexte.$mode_de_fermeture’ (trouvable dans l’onglet ‘Contexte’ de l’éditeur) et de passer dans les propriétés de ‘Afficher une vue’ la propriété ‘Mode’ à ‘Oui / Non’

b – Dans la première vue

Cette première vue contiendra un texte indiquant à l’utilisateur de sélectionner une venue et un bouton qui fera appel à la fonction ‘AfficherVenue’.

c – Dans la deuxième vue

La deuxième vue contiendra uniquement une inclusion multiple en tableau lié à la variable d’inclusion créé à l’étape 3-a. Créé 3 colonnes au tableau ‘Numéro de venue’ , ‘Date d’admission’ et une colonne sans entête. A l’intérieur des deux premières colonnes, mettez un libellé généré qui pointera sur ‘numéro_venue’ et ‘date_admission’ et dans la troisième colonne, mettez une case à cocher qui pointera sur ‘select_venue’.

Dans la propriété ‘OnCheck’ de la case à cocher, indiqué la fonction ‘SelectionVenue’

4 – Dans votre formulaire principal

a – Crée deux variables dans le modèle de donner

Une première variables de type inclusion simple qui pointera sur l’inclusion créée à l’étape 3 (celle contenant des vues) et une variable de type texte. Dans les propriété du modèle de donné, lié la propriété ‘Numéro venue’ a cette variable texte.

b – Créé deux fonctions distantes

i – RecupererNumero (affecter le numéro de la venue sélectionné dans la variable du formulaire)

protected override void RecupererVenue(IExecutionContext context)
{
if (this.incl_affichage_venue.Item.type_fermeture.Value == “Yes”)
{
var selectedSejour = this.incl_affichage_venue.Item.incl_stockage_venue.Items.FirstOrDefault(i => i.select_venue.Value == true);
if (selectedSejour != null)
{
this.numero_venue.Value = selectedSejour.numero_venue.Value;
}
}
}

ii – SelectionnerNumero (lors de la sélection d’une venue, désélectionne les autres pour empêcher la multi-sélection de venue)

protected override void SelectionnerVenue(IExecutionContext context, int? index)
{
if (this.incl_affichage_venue.Item.incl_stockage_venue != null)
{
foreach (var item in this.incl_affichage_venue.Item.incl_stockage_venue.Items)
{
if (item.select_venue.Value == true && this.incl_affichage_venue.Item.incl_stockage_venue.Items.IndexOf(item) != index)
item.select_venue.Value = false;
}
}
}

c – Crée les gestionnaires d’évènement

i – AppelSelectionnerVenue qui est appelé par l’évènement ‘SelectVenue’ et qui appelle la fonction ‘SelectionnerVenue’ en passant en paramètre, le paramètre ‘index’ de l’évènement

ii – AppelSelectionnerVenue qui est appelé par l’évènement ‘SelectVenue’ et qui appelle la fonction ‘SelectionnerVenue’ en passant en paramètre, le paramètre ‘index’ de l’évènement

d – Ajouter un champs Inclusion simple dans votre formulaire principale liée a la variable d’inclusion simple créée à l’étape 4-a et lié à la vue 1 crée à l’étape 3-b

e – Dans le ‘OnCreate’ de votre formulaire principal, ajouter le code suivant, permettant de récupérer les venues (même fermée) liée au patient, et de les ajouter dans l’inclusion de stockage créé à l’étape 2.

Venue[] listeDesVenue = ModuleAPI.EasilyService.GetVenues(EditionContext.ContextData.UniteFonctionnelleCode, new VenueLoadSettings { InclureSupprimee = true });
if (listeDesVenue != null)
{
foreach (var venue in listeDesVenue)
{
var inclusion = new FomrmulaireSelectionVenue.Formulaire_Principale.Inclusion.Model_Stockage_Venue(null);
inclusion.numero_venue.Value = venue.Numero;
inclusion.date_admission.Value = venue.DateAdmission;
this.incl_affichage_venue.Item.incl_stockage_venue.Items.Add(inclusion);
}
}

Was this article helpful?

Related Articles

Poster un commentaire

Vous devez être connecté pour pouvoir poster un commentaire.