Sök…


Introduktion

I det här ämnet kommer du att utforska två metoder för att villkorligt dölja flikar på datainmatningsskärmar i Acumatica.

VisibleExp-egenskap för PXTab-kontrollen i Aspx

Egenskapen VisibleExp är ett booleskt uttryck som avgör om en given flik är synlig (när det logiska uttrycket är SANT) eller dold. Du anger egenskapen VisibleExp för PXTab-kontroller på Aspx-sidan:

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

VisibleExp består av inmatningskontroller placerade inuti behållaren med ID anges i egenskapen BindingContext av PXTab kontroll. Du får inte använda ingångskontroller från mer än en behållare. Tillgång till en specifik ingångskontroll tillhandahålls via DataControls ordboken med dess ID, inte namnet på ett DAC-fält.

Vanligtvis används VisibleExp- egenskapen för att komponera ganska enkla booleska uttryck med hårkodade ingångsstyrvärden, som troligen inte kommer att förändras med tiden. Följande uttryck används till exempel på skärmen Försäljningsorder (SO.30.10.00) för att dölja fliken Betalningsinställning för order av överföringstypen :

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

För att dölja fliken Aktiviteter för potentiella kunder med ny status

För att dölja Aktiviteter fliken från Leads skärmen (CR.30.10.00) ställer egendom BindingContext att bilda (toppnivå Lead sammanfattad form håller formen ID) och definiera VisibleExp att returnera false om bly status är öppen (Status dropdown håller edStatus ID) :

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

ange bildbeskrivning här

TillåtVälj egendom för datavyer

Till skillnad från egenskapen VisibleExp , definierad i Aspx, manipulerar du AllowSelect- egenskapen för en datavy genom BLC- eller BLC-förlängningskod. Egenskapen AllowSelect gör det möjligt att använda mer komplexa booleska uttryck (i jämförelse med egenskapen VisibleExp ) och vid behov hämta ytterligare information från databasen eller andra källor som inte finns tillgängliga på en webbsida.

Nedan finns tre vanligaste scenarier att arbeta med egenskapen AllowSelect :

  • RowSelected event handler för toppnivåenhet för att dölja fliken Applications för fakturor av Cash Sale och Cash Return typer:

     public class SOInvoiceEntry : ARInvoiceEntry
     {
         ...
         protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
         {
             ...
    
             Adjustments.AllowSelect =
                 doc.DocType != ARDocType.CashSale &&
                 doc.DocType != ARDocType.CashReturn;
         }
         ...
     }
    
  • BLC konstruktören att visa Avsnitt Påfyllning Info fliken på objekt lagret Details skärmen endast när båda lagerpåfyllning och Inventory subitems funktioner aktiveras:

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • RowSelected hanterare för toppnivåenhet för att dölja fliken Avskrivningshistorik såvida inte nuvarande tillgång är avskrivbar och Visning av avskrivningshistorik är inställd till sida vid sida i inställningarna för anläggningstillgångar:

     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;
         }
         ...
     }
    

Varje gång AllowSelect- egenskapen används för att villkorligt ändra flikens synlighet med BLC- eller BLC-tilläggskod, måste du ställa in egenskapen RepaintOnDemand till falsk i Aspx för motsvarande PXTab-behållare:

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

Egenskapen RepaintOnDemand gäller som standard. Den här egenskapen styr initieringen av PXTab-behållaren: när den är satt till sant , kommer PXTab inte att initialiseras förrän den valdes av en användare. Uppenbarligen behöver du RepaintOnDemand vara inställd på falskt för att garantera korrekt beteende hos den givna PXTab-behållaren trots att den valt eller inte.

För att dölja korsreferensfliken för lagerartiklar som inte kan säljas

För att dölja Korsreferens flik från beståndet Items skärmen (IN.20.25.00) för objekt med någon försäljning status på följande sätt:

  1. implementera InventoryItem_RowSelected hanterare i tillägget InventoryItemMaint BLC för att ställa in AllowSelect- egenskapen till falsk för itemxrefrecords för itemxrefrecords om artikelstatus sattes till No Sales :

    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. i anpassning manager, set RepaintOnDemand egenskapen till false för fliken Korsreferens och publicera anpassning: ange bildbeskrivning här

När du slutfört 2 ganska enkla stegen ovan, bör fliken Korsreferens inte vara tillgängliga för lager Objekt med någon försäljning status:

ange bildbeskrivning här

För att dölja fliken Attribut för inaktiva lagerartiklar

Till villkorligt hide ** Egenskaper ** flik från beståndet Items skärmen (IN.20.25.00) Gör så här:

  1. implementera InventoryItem_RowSelected hanterare i tillägget InventoryItemMaint BLC för att ställa in AllowSelect- egenskapen till falsk för vyerna för Answers and Category data om objektstatus ställdes inaktiv . Observera också Synlig egenskap inställd på falsk för PXUIFieldAttribute tillagd i fältet InventoryItem.ImageUrl av CacheAttached- hanterare:

    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. i Anpassningsansvarig, ställ in RepaintOnDemand- egenskapen till falsk för fliken Attribut och publicera anpassning: ange bildbeskrivning här

När du har genomfört två steg ovan bör fliken Attribut inte vara tillgängliga för lagerobjekt med inaktiv status:

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow