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 :
- Ouvrir le formulaire
- Menu Formulaires → Distribution des pages
- 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 pageFormularViewsHelper: Gestionnaire de pagesFormPageMode: Énumération des modes
Tables
FormularViews: Configuration des pages