Recherche…


Introduction

Dans cette rubrique, vous explorerez deux approches pour masquer de manière conditionnelle les onglets sur les écrans de saisie de données dans Acumatica.

Propriété VisibleExp du contrôle PXTab dans Aspx

La propriété VisibleExp est une expression booléenne qui détermine si l'onglet donné est visible (lorsque l'expression logique est VRAI) ou masquée. Vous spécifiez la propriété VisibleExp pour les contrôles PXTab dans la page Aspx:

<px:PXTabItem Text="Credit Card Processing Info" BindingContext="form" 
    VisibleExp="DataControls[&quot;chkIsCCPayment&quot;].Value = 1">

VisibleExp est composée de commandes d'entrée placées dans le récipient avec l' ID spécifié dans la propriété BindingContext de contrôle PXTab. Vous n'êtes pas autorisé à utiliser les contrôles d'entrée de plusieurs conteneurs. L'accès à un contrôle d'entrée spécifique est fourni via le dictionnaire DataControls par son ID et non par le nom d'un champ DAC.

Habituellement, la propriété VisibleExp est utilisée pour composer des expressions booléennes assez simples avec des valeurs de contrôle des entrées codées en dur, qui sont peu susceptibles de changer avec le temps. Par exemple, l'expression suivante est utilisée sur l'écran Commandes clients (SO.30.10.00) pour masquer l'onglet Paramétrage du paiement pour les commandes du type Transfert :

<px:PXTabItem Text="Payment Settings" 
    VisibleExp="DataControls[&quot;edOrderType&quot;].Value!=TR" BindingContext="form">

Pour masquer l'onglet Activités pour les pistes avec le nouveau statut

Pour masquer l' onglet Activités de l'écran Leads (CR.30.10.00), définissez la propriété BindingContext pour former (haut niveau de plomb sous forme de synthèse contient sous forme ID) et définir VisibleExp retourner FALSE si le statut de plomb est ouverte (menu déroulant Statut détient ID edStatus) :

<px:PXTabItem Text="Activities" LoadOnDemand="True" 
    BindingContext="form" VisibleExp="DataControls[&quot;edStatus&quot;].Value != H">

entrer la description de l'image ici

Propriété AllowSelect sur les vues de données

Contrairement à la propriété VisibleExp , définie dans Aspx, vous manipulez la propriété AllowSelect d'une vue de données par le biais du code d'extension BLC ou BLC. La propriété AllowSelect permet d'utiliser des expressions booléennes plus complexes (par rapport à la propriété VisibleExp ) et, si nécessaire, d'extraire des informations supplémentaires de la base de données ou d'autres sources non disponibles sur une page Web.

Vous trouverez ci-dessous trois scénarios les plus courants à utiliser avec la propriété AllowSelect :

  • Gestionnaire d' événements RowSelected pour l'entité de niveau supérieur afin de masquer l'onglet Applications pour les factures de types Cash Sale et Cash Return :

     public class SOInvoiceEntry : ARInvoiceEntry
     {
         ...
         protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
         {
             ...
    
             Adjustments.AllowSelect =
                 doc.DocType != ARDocType.CashSale &&
                 doc.DocType != ARDocType.CashReturn;
         }
         ...
     }
    
  • Constructeur BLC pour afficher l'onglet Informations de réapprovisionnement des sous- éléments sur l'écran Détails de l'entrepôt d'articles uniquement lorsque les fonctionnalités de réapprovisionnement des stocks et de sous- éléments Inventaire sont activées:

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • Gestionnaire RowSelected pour l'entité de niveau supérieur afin de masquer l'onglet Historique d'amortissement, sauf si l'actif actuel est amortissable et que la vue Historique d'amortissement est définie sur Côte à côte dans les Préférences des immobilisations:

     public class AssetMaint : PXGraph<AssetMaint, FixedAsset>
     {
         ...
         protected virtual void FixedAsset_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
         {
             ...
    
             AssetHistory.AllowSelect = asset.Depreciable == true && fasetup.Current.DeprHistoryView == FASetup.deprHistoryView.SideBySide;
         }
         ...
     }
    

Chaque fois que la propriété AllowSelect est utilisée pour modifier conditionnellement la visibilité de l'onglet par le code d'extension BLC ou BLC, vous devez définir la propriété RepaintOnDemand sur false dans Aspx pour le conteneur PXTab correspondant:

<px:PXTabItem Text="Depreciation History" RepaintOnDemand="false">

La propriété RepaintOnDemand est true par défaut. Cette propriété contrôle l'initialisation du conteneur PXTab: lorsqu'elle est définie sur true , PXTab ne sera pas initialisé tant qu'il n'aura pas été sélectionné par un utilisateur. De toute évidence, RepaintOnDemand doit être défini sur false pour garantir un comportement correct du conteneur PXTab donné, qu'il ait été sélectionné ou non.

Pour masquer l'onglet Référence croisée pour les articles en stock qui ne peuvent pas être vendus

Pour masquer l'onglet Référence croisée à partir de l'écran Articles en stock (IN.20.25.00) pour les éléments sans statut de vente , procédez comme suit:

  1. implémenter le gestionnaire InventoryItem_RowSelected dans l'extension InventoryItemMaint BLC pour définir la propriété AllowSelect sur false pour la vue de données itemxrefrecords si le statut de l'élément a été défini sur Aucune vente :

    public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
    {
        protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            InventoryItem item = (InventoryItem)e.Row;
            if (item == null) return;
    
            Base.itemxrefrecords.AllowSelect = (item.ItemStatus != InventoryItemStatus.NoSales);
        }
    }
    
  2. Dans le gestionnaire de personnalisation, définissez la propriété RepaintOnDemand sur false pour l'onglet Référence croisée et publiez la personnalisation: entrer la description de l'image ici

Une fois que vous avez effectué 2 étapes assez simples ci-dessus, l'onglet Références croisées ne doit pas être accessible pour les articles en stock sans statut de vente :

entrer la description de l'image ici

Pour masquer l'onglet Attributs pour les articles en stock inactifs

Pour masquer conditionnellement ** l'onglet Attributs ** de l'écran Stock d'articles (IN.20.25.00), procédez comme suit:

  1. implémenter le gestionnaire InventoryItem_RowSelected dans l'extension InventoryItemMaint BLC pour définir la propriété AllowSelect sur false pour les vues de données Answers et Category si État de l'élément défini sur Inactif . Notez également que la propriété Visible a la valeur false pour PXUIFieldAttribute ajouté dans le champ InventoryItem.ImageUrl par le gestionnaire CacheAttached :

    public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
    {
        protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            InventoryItem item = (InventoryItem)e.Row;
            if (item == null) return;
    
            bool showAttributesTab = item.ItemStatus != InventoryItemStatus.Inactive;
            Base.Answers.AllowSelect = Base.Category.AllowSelect = showAttributesTab;
            PXUIFieldAttribute.SetVisible<InventoryItem.imageUrl>(sender, item, showAttributesTab);
        }
    
        [PXMergeAttributes(Method = MergeMethod.Append)]
        [PXUIField(DisplayName = "Image")]
        protected void InventoryItem_ImageURL_CacheAttached(PXCache sender)
        { }
    }
    
  2. Dans le gestionnaire de personnalisation, définissez la propriété RepaintOnDemand sur false pour l'onglet Attributs et publiez la personnalisation: entrer la description de l'image ici

Une fois que vous avez terminé 2 étapes ci-dessus, l'onglet Attributs ne doit pas être accessible pour les articles en stock avec le statut Inactif :

entrer la description de l'image ici



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow