Ricerca…


introduzione

In questo argomento esploreremo due approcci per nascondere in modo condizionale le schede sugli schermi di immissione dei dati in Acumatica.

VisibleExp Proprietà del controllo PXTab in Aspx

La proprietà VisibleExp è un'espressione booleana che determina se la scheda data è visibile (quando l'espressione logica è TRUE) o nascosta. Si specifica la proprietà VisibleExp per i controlli PXTab nella pagina Aspx:

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

VisibleExp è composto da controlli di input posizionati all'interno del contenitore con ID specificato nella proprietà BindingContext del controllo PXTab. Non sei autorizzato a utilizzare i controlli di input da più di un contenitore. L'accesso a un controllo specifico ingresso è fornita attraverso il DataControls dizionario dal suo ID, non è il nome di un campo DAC.

Solitamente la proprietà VisibleExp viene utilizzata per comporre espressioni booleane abbastanza semplici con valori di controllo di input codificati, che difficilmente cambieranno nel tempo. Ad esempio, la seguente espressione viene utilizzata nella schermata Ordini di vendita (SO.30.10.00) per nascondere la scheda Impostazioni di pagamento per gli ordini del tipo di trasferimento :

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

Per nascondere la scheda Attività per Leads con Nuovo stato

Per nascondere scheda dalla schermata Leads (CR.30.10.00) Attività, impostare la proprietà BindingContext per formare (primo livello di piombo sotto forma Sintesi detiene modulo ID) e definire VisibleExp a restituire FALSE se lo stato di piombo è Open (discesa Stato detiene edStatus ID) :

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

inserisci la descrizione dell'immagine qui

AllowSelect Proprietà su viste dati

A differenza della proprietà VisibleExp , definita in Aspx, si manipola la proprietà AllowSelect di una vista dati tramite codice di estensione BLC o BLC. La proprietà AllowSelect rende possibile l'uso di espressioni booleane più complesse (rispetto alla proprietà VisibleExp ) e, se necessario, recupera informazioni aggiuntive dal database o da altre fonti non disponibili su una pagina web.

Di seguito sono riportati 3 scenari più comuni per lavorare con la proprietà AllowSelect :

  • Gestore di eventi RowSelected per entità di primo livello per nascondere la scheda Applicazioni per le fatture dei tipi Cash Sale e 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;
         }
         ...
     }
    
  • Costruttore BLC per visualizzare la scheda Informazioni sul rifornimento di sottomemini nella schermata Dettagli magazzino articoli solo quando sono attivate le funzionalità di Rifornimento stock e Inventario sottovoci :

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • RowSelected gestore per l'entità di primo livello per nascondere la scheda Cronologia ammortamento a meno che l'asset corrente non sia ammortizzabile e Vista cronologia ammortamento sia impostata su Side by Side nelle Preferenze delle risorse fisse:

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

Ogni volta che la proprietà AllowSelect viene utilizzata per modificare in modo condizionale la visibilità delle schede tramite codice di estensione BLC o BLC, è necessario impostare la proprietà RepaintOnDemand su false in Aspx per il contenitore PXTab corrispondente:

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

La proprietà RepaintOnDemand è true per impostazione predefinita. Questa proprietà controlla l'inizializzazione del contenitore PXTab: se impostato su true , PXTab non verrà inizializzato finché non viene selezionato da un utente. Ovviamente hai bisogno di RepaintOnDemand impostato su false per garantire il corretto comportamento del contenitore PXTab dato nonostante sia stato selezionato o meno.

Per nascondere la scheda Riferimento incrociato per articoli in stock che non possono essere venduti

Per nascondere la scheda Riferimento incrociato dalla schermata Elementi di magazzino (IN.20.25.00) per gli articoli senza stato Vendite , procedere come segue:

  1. implementare gestore InventoryItem_RowSelected nell'estensione InventoryItemMaint BLC per impostare la proprietà AllowSelect false per i itemxrefrecords visualizzare i dati, se Stato Cod è stato fissato a nessuna vendita:

    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 Gestione personalizzazioni, imposta la proprietà RepaintOnDemand su false per la scheda Riferimenti incrociati e pubblica la personalizzazione: inserisci la descrizione dell'immagine qui

Dopo aver completato 2 semplici passaggi sopra, la scheda Riferimenti incrociati non dovrebbe essere accessibile per gli articoli di magazzino senza stato vendite :

inserisci la descrizione dell'immagine qui

Per nascondere la scheda Attributi per articoli inattivi

Per nascondere in modo condizionale la scheda ** Attributi ** dalla schermata Articoli di magazzino (IN.20.25.00), procedere come segue:

  1. implementare gestore InventoryItem_RowSelected nell'estensione InventoryItemMaint BLC per impostare la proprietà AllowSelect false per le Answers e Category di dati vista se Stato Cod è stato impostato su Inattivo. Notare anche la proprietà Visible impostata su false per PXUIFieldAttribute aggiunto nel campo InventoryItem.ImageUrl dal gestore 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. in Gestione personalizzazioni, imposta la proprietà RepaintOnDemand su false per la scheda Attributi e pubblica la personalizzazione: inserisci la descrizione dell'immagine qui

Dopo aver completato 2 passaggi sopra, la scheda Attributi non dovrebbe essere accessibile per gli articoli di magazzino con stato inattivo :

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow