Aller au contenu principal

Règles de pages

Gestion dynamique de l'affichage des pages de formulaires.

Vue d'ensemble

Les règles de pages permettent de contrôler quelle page d'un formulaire est affichée en fonction :

  • Du mode (création, édition, lecture, impression)
  • De l'étape du workflow
  • De conditions personnalisées

Modes d'affichage

public enum FormPageMode : short
{
All = 0, // Tous les modes
Reading = 1, // Lecture seule
Edition = 2, // Édition
Creation = 3, // Création
Printing = 4, // Impression
Preview = 5 // Prévisualisation
}

Configuration des pages

Accès à la configuration

Dans Process Studio :

  1. Ouvrir le formulaire
  2. Menu FormulairesDistribution des pages
  3. Liste des pages configurées

Propriétés d'une page

public class FormularView
{
public string IdFormular { get; set; } // ID du formulaire
public string PageName { get; set; } // Nom de la page .aspx
public FormPageMode Mode { get; set; } // Mode d'affichage
public string ProcessName { get; set; } // Nom du workflow
public string ActivityName { get; set; } // Nom de l'étape
public int Priority { get; set; } // Priorité (ordre)
}

Règles d'affichage

Par mode

Page de création :

Mode = FormPageMode.Creation
ProcessName = "*" // Tous les workflows
ActivityName = "*" // Toutes les étapes

Page d'édition :

Mode = FormPageMode.Edition
ProcessName = "*"
ActivityName = "*"

Page de lecture :

Mode = FormPageMode.Reading
ProcessName = "*"
ActivityName = "*"

Par étape de workflow

Page spécifique à une étape :

Mode = FormPageMode.Edition
ProcessName = "Workflow_Validation"
ActivityName = "Etape_Approbation"
Priority = 1

Fin de workflow :

Mode = FormPageMode.Reading
ProcessName = "*"
ActivityName = "-Fin-" // Workflow terminé

Sans workflow :

Mode = FormPageMode.All
ProcessName = "-Aucun-" // Pas de workflow actif
ActivityName = "-Aucun-"

Priorité

La priorité détermine quelle page afficher si plusieurs correspondent :

  • Priorité 1 : Affichée en premier
  • Priorité 2 : Si priorité 1 non applicable
  • etc.

Gestion programmatique

Charger les pages d'un formulaire

var formDataSource = new FormularManagerWrapper(applicationProfile);
var formViews = formDataSource.GetFormularViews(idFormular);

var allViews = formViews.GetAllViews();
foreach (var view in allViews)
{
Console.WriteLine($"Page: {view.PageName}, Mode: {view.Mode}");
}

Ajouter une page

var newView = new FormularView(idFormular)
{
PageName = "Page_Validation.aspx",
Mode = FormPageMode.Edition,
ProcessName = "Workflow_Principal",
ActivityName = "Validation_Manager",
Priority = 1
};

formViews.AddFormularView(newView);
formDataSource.SaveFormularViews(formViews);

Supprimer une page

formViews.RemoveFormularView(viewId);
formDataSource.SaveFormularViews(formViews);

Cas d'usage

Page simplifiée en création

N'afficher que les champs essentiels lors de la création :

Mode : Creation
Page : Page_Creation_Simple.aspx
Champs : Titre, Type, Demandeur

Page complète en édition

Afficher tous les champs en édition :

Mode : Edition
Page : Page_Edition_Complete.aspx
Champs : Tous les champs du formulaire

Page spécifique par étape

Page différente pour chaque étape de validation :

Étape 1 (Rédaction) : Page_Redaction.aspx
Étape 2 (Validation) : Page_Validation.aspx
Étape 3 (Approbation) : Page_Approbation.aspx

Page d'impression

Mise en page optimisée pour l'impression :

Mode : Printing
Page : Page_Print.aspx
Format : PDF, A4, sans boutons

Bonnes pratiques

  • Simplicité : Ne pas multiplier les pages inutilement
  • Cohérence : Conserver une structure similaire entre pages
  • Performance : Charger uniquement les composants nécessaires
  • Tests : Vérifier toutes les combinaisons mode/workflow
  • Documentation : Documenter la logique des règles

Références

Classes principales

  • FormularView : Définition d'une page
  • FormularViewsHelper : Gestionnaire de pages
  • FormPageMode : Énumération des modes

Tables

  • FormularViews : Configuration des pages

Documentation associée