Zoeken…


Invoering

In dit onderwerp onderzoekt u twee benaderingen voor het voorwaardelijk verbergen van tabbladen op gegevensinvoerschermen in Acumatica.

VisibleExp-eigenschap van het PXTab-besturingselement in Aspx

De eigenschap VisibleExp is een booleaanse uitdrukking die bepaalt of het opgegeven tabblad zichtbaar is (wanneer de logische uitdrukking WAAR is) of verborgen. U geeft de eigenschap VisibleExp op voor PXTab-besturingselementen op de Aspx-pagina:

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

VisibleExp bestaat uit controlelementen geplaatst in de houder met ID in eigendom BindingContext van PXTab controle vermeld. U mag geen invoerbesturingselementen van meer dan één container gebruiken. Toegang tot een specifiek invoerbesturingselement wordt verschaft via het DataControls woordenboek door zijn ID, niet de naam van een DAC-veld.

Meestal wordt de eigenschap VisibleExp gebruikt om vrij eenvoudige Booleaanse expressies samen te stellen met hardgecodeerde invoerbesturingswaarden, die waarschijnlijk niet met de tijd zullen veranderen. De volgende expressie wordt bijvoorbeeld gebruikt op het scherm Verkooporders (SO.30.10.00) om het tabblad Betalingsinstelling te verbergen voor orders van het type Overboeking :

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

Het tabblad Activiteiten verbergen voor leads met nieuwe status

Als u het tabblad Activiteiten van het scherm Leads wilt verbergen (CR.30.10.00), stelt u de eigenschap BindingContext in op formulier ( formulier voor hoofdoverzicht Lead bevat formulier- ID) en definieert u VisibleExp om FALSE terug te geven als leadstatus Open is (vervolgkeuzelijst Status bevat edStatus ID) :

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

voer hier de afbeeldingsbeschrijving in

AllowSelect Property on Data Views

In tegenstelling tot de VisibleExp- eigenschap, gedefinieerd in Aspx, manipuleert u de eigenschap AllowSelect van een gegevensweergave via BLC of BLC-extensiecode. De eigenschap AllowSelect maakt het mogelijk om complexere booleaanse expressies te gebruiken (in vergelijking met de eigenschap VisibleExp ) en, indien nodig, extra informatie op te halen uit de database of andere bronnen die niet beschikbaar zijn op een webpagina.

Hieronder staan 3 meest voorkomende scenario's om te werken met de eigenschap AllowSelect :

  • RowSelected event handler voor entiteit op het hoogste niveau om het tabblad Toepassingen te verbergen voor facturen van Cash Sale en Cash Return types:

     public class SOInvoiceEntry : ARInvoiceEntry
     {
         ...
         protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
         {
             ...
    
             Adjustments.AllowSelect =
                 doc.DocType != ARDocType.CashSale &&
                 doc.DocType != ARDocType.CashReturn;
         }
         ...
     }
    
  • BLC aannemer naar het tabblad Deelpost Aanvulling Info op het Punt magazijn Details scherm alleen wanneer zowel voorraadaanvulling en Inventory Subitems functies worden geactiveerd tonen:

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • RowSelected- handler voor entiteit op het hoogste niveau om het tabblad Afschrijvingsgeschiedenis te verbergen, tenzij het huidige activum kan worden afgeschreven en de weergave Afschrijvingsgeschiedenis is ingesteld op Zij aan zij in de voorkeuren voor vaste activa:

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

Telkens wanneer de eigenschap AllowSelect wordt gebruikt om de zichtbaarheid van tabbladen voorwaardelijk te wijzigen via BLC- of BLC-extensiecode, moet u de eigenschap RepaintOnDemand in Aspx op false instellen voor de bijbehorende PXTab-container:

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

De eigenschap RepaintOnDemand is standaard true . Deze eigenschap bepaalt de initialisatie van de PXTab-container: wanneer ingesteld op true , wordt PXTab niet geïnitialiseerd totdat het door een gebruiker is geselecteerd. Het is duidelijk dat u RepaintOnDemand moet instellen op false om correct gedrag van de gegeven PXTab-container te garanderen, ongeacht of deze is geselecteerd of niet.

Het tabblad Kruisverwijzing verbergen voor voorraadartikelen die niet kunnen worden verkocht

Ga als volgt te werk om het tabblad Kruisverwijzing te verbergen in het scherm Voorraaditems (IN.20.25.00) voor artikelen zonder verkoopstatus :

  1. implementeer InventoryItem_RowSelected- handler in de InventoryItemMaint BLC-extensie om de eigenschap AllowSelect in te stellen op false voor de gegevensweergave itemxrefrecords als Item Status was ingesteld op Geen verkoop :

    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. stel in Customization Manager de eigenschap RepaintOnDemand in op false voor het tabblad Kruisverwijzing en publiceer de aanpassing: voer hier de afbeeldingsbeschrijving in

Nadat u 2 vrij eenvoudige stappen hierboven hebt voltooid, is het tabblad Kruisverwijzing niet toegankelijk voor voorraadartikelen zonder verkoopstatus :

voer hier de afbeeldingsbeschrijving in

Het tabblad Kenmerken verbergen voor inactieve voorraaditems

Ga als volgt te werk om het tabblad ** Kenmerken ** voorwaardelijk te verbergen in het scherm Voorraaditems (IN.20.25.00):

  1. implementeer InventoryItem_RowSelected handler in de InventoryItemMaint BLC-extensie om de eigenschap AllowSelect in te stellen op false voor de gegevensweergaven Answers en Category als Item Status was ingesteld op Inactief . Let ook op de eigenschap Visible ingesteld op false voor PXUIFieldAttribute toegevoegd aan het veld InventoryItem.ImageUrl door CacheAttached handler:

    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. stel in Customization Manager de eigenschap RepaintOnDemand in op false voor het tabblad Attributen en publiceer de aanpassing: voer hier de afbeeldingsbeschrijving in

Nadat u 2 bovenstaande stappen hebt voltooid, is het tabblad Kenmerken niet toegankelijk voor voorraadartikelen met inactieve status:

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow