Suche…


Einführung

In diesem Thema werden zwei Ansätze zum bedingten Ausblenden von Registerkarten auf den Dateneingabebildschirmen in Acumatica erläutert.

VisibleExp-Eigenschaft des PXTab-Steuerelements in Aspx

Die VisibleExp- Eigenschaft ist ein boolescher Ausdruck, der bestimmt, ob die angegebene Registerkarte sichtbar ist (wenn der logische Ausdruck TRUE ist) oder ausgeblendet ist. Sie geben die VisibleExp- Eigenschaft für PXTab-Steuerelemente auf der Aspx-Seite an:

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

VisibleExp besteht aus Eingabesteuerelementen, die innerhalb des Containers platziert werden und deren ID in der BindingContext- Eigenschaft des PXTab-Steuerelements angegeben ist. Sie dürfen Eingabesteuerelemente nicht aus mehr als einem Container verwenden. Der Zugriff auf eine bestimmte Eingabesteuerung erfolgt über das DataControls Wörterbuch über seine ID und nicht über den Namen eines DAC-Felds.

Normalerweise wird die VisibleExp- Eigenschaft verwendet, um relativ einfache boolesche Ausdrücke mit fest codierten Eingabesteuerungswerten zu erstellen , die sich mit der Zeit unwahrscheinlich ändern. Zum Beispiel wird der folgende Ausdruck auf den Kundenaufträge Bildschirm (SO.30.10.00) verwendet , um Zahlungs Registerkarte Einstellung für Aufträge der Übertragungsart zu verstecken:

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

So blenden Sie die Registerkarte Aktivitäten für Status mit Leads mit Neu aus

So blenden Registerkarte Aktivitäten aus der Leads Bildschirm (CR.30.10.00), stellen Binding Eigenschaft bilden (Top-Level - Blei Zusammenfassung Formular Formular - ID hält) und definieren VisibleExp FALSE zurück , wenn Lead - Status Offen ist (Stand Dropdown hält edStatus ID) :

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

Geben Sie hier die Bildbeschreibung ein

AllowSelect-Eigenschaft in Datenansichten

Im Gegensatz zu der in Aspx definierten Eigenschaft VisibleExp bearbeiten Sie die AllowSelect- Eigenschaft einer Datenansicht mit BLC- oder BLC-Erweiterungscode. Die AllowSelect- Eigenschaft ermöglicht die Verwendung komplexerer boolescher Ausdrücke (im Vergleich zur VisibleExp- Eigenschaft) und ruft gegebenenfalls zusätzliche Informationen aus der Datenbank oder anderen Quellen ab, die auf einer Webseite nicht verfügbar sind.

Im Folgenden sind die drei häufigsten Szenarien aufgeführt, in denen Sie mit der AllowSelect- Eigenschaft arbeiten können:

  • RowSelected Ereignishandler für Top-Level - Einheit Registerkarte Anwendungen für Rechnungen von Barverkauf und Cash - Return - Typ zu verstecken:

     public class SOInvoiceEntry : ARInvoiceEntry
     {
         ...
         protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
         {
             ...
    
             Adjustments.AllowSelect =
                 doc.DocType != ARDocType.CashSale &&
                 doc.DocType != ARDocType.CashReturn;
         }
         ...
     }
    
  • BLC Konstruktor Unterposten Replenishment Info auf der Registerkarte Artikellager Detailansicht nur den Bildschirm zu übertragen, wenn beide Bestandsauffüllung und Bestandsunteroptionen Funktionen aktiviert sind:

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • RowSelected- Handler für eine Entität auf oberster Ebene, um die Registerkarte " Abschreibungsverlauf" auszublenden, sofern das aktuelle Asset nicht abschreibbar ist und die Ansicht "Abschreibungsverlauf" in den Voreinstellungen für festgelegte Anlagen auf " Nebeneinander" gesetzt ist :

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

Jedes Mal, wenn die AllowSelect- Eigenschaft verwendet wird, um die Sichtbarkeit der Registerkarten durch BLC- oder BLC-Erweiterungscode bedingt zu ändern, müssen Sie die RepaintOnDemand- Eigenschaft in Aspx für den entsprechenden PXTab-Container auf false setzen:

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

Die RepaintOnDemand- Eigenschaft ist standardmäßig true . Diese Eigenschaft steuert die Initialisierung des PXTab-Containers: Wenn diese Eigenschaft auf true festgelegt ist , wird PXTab erst initialisiert, wenn es von einem Benutzer ausgewählt wurde. Offensichtlich muss RepaintOnDemand auf false gesetzt sein , um das korrekte Verhalten des angegebenen PXTab-Containers zu gewährleisten, auch wenn er ausgewählt wurde oder nicht.

So blenden Sie die Registerkarte "Querverweis" für Lagerartikel aus, die nicht verkauft werden können

So blenden Querverweis Registerkarte aus dem Stock Items Bildschirm (IN.20.25.00) für Artikel ohne Verkaufsstand, gehen Sie wie folgt vor :

  1. Implementieren Sie InventoryItem_RowSelected- Handler in der BLC-Erweiterung InventoryItemMaint, um die AllowSelect- Eigenschaft für die itemxrefrecords itemxrefrecords auf false zu itemxrefrecords , wenn für Artikelstatus No Sales festgelegt wurde .

    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. in Customization Managern, RepaintOnDemand Eigenschaft auf False für den Querverweis Registerkarte und veröffentlicht personalisierbar: Geben Sie hier die Bildbeschreibung ein

Nachdem Sie zwei ganz einfache Schritte oben abgeschlossen ist , sollte der Querverweis Registerkarte nicht für Lagerware ohne Verkaufsstand zugänglich sein:

Geben Sie hier die Bildbeschreibung ein

Registerkarte "Attribute" für inaktive Bestandsartikel ausblenden

Gehen Sie wie folgt vor, um die Registerkarte ** Attribute ** im Bildschirm mit den Bestandspositionen (IN.20.25.00) bedingt auszublenden:

  1. InventoryItem_RowSelected Handler in der Verlängerung InventoryItemMaint BLC implementieren AllowSelect Eigenschaft auf False für die festlegen Answers und Category Datenansichten , wenn Einzelteil - Status auf Inaktiv gesetzt wurde. PXUIFieldAttribute auch, dass die Eigenschaft Visible für PXUIFieldAttribute auf false gesetzt ist, die vom CacheAttached- Handler im Feld InventoryItem.ImageUrl hinzugefügt wurde :

    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. Setzen Sie im Anpassungsmanager die RepaintOnDemand- Eigenschaft für die Registerkarte Attribute auf false und veröffentlichen Sie die Anpassung: Geben Sie hier die Bildbeschreibung ein

Nachdem Sie die beiden obigen Schritte ausgeführt haben, sollte die Registerkarte " Attribute" für Bestandsartikel mit inaktivem Status nicht verfügbar sein :

Geben Sie hier die Bildbeschreibung ein



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow