2016-04-14 7 views
0

Ich möchte die Attribute für meine Inventarsuche im Kundenauftrag und der Bestellung hinzufügen, weiß jemand wie? oder irgendwelche Ideen?Hinzufügen von Attributfeldern in Inventory Lookup

+1

Was hast du schon versucht? –

+0

Ich habe versucht, auf Kundenauftrag zu arbeiten und versuchte, die SOSiteFilterStatus DAC-Einstellung auf konstanten Werten zu ändern, aber nicht, wo ich dynamisch auf den von der Elementklasse erforderlichen Attributen abhängig hinzufügen würde – xxxAcuGeekxxx

+0

u die Attributwerte in Lagern lieferbar bedeuten? – Hybridzz

Antwort

3

Bitte beachten Sie das folgende Codebeispiel, um Attributsspalten in Selector und Grid Control unter Verwendung von zu verwenden.

Deklarieren Sie eine Klasse PXAddAtttributeColumns geerbt von CRAttributesFieldAttribute.

public class PXAddAtttributeColumns : CRAttributesFieldAttribute 
{ 
    string[] _names; 
    bool _IsForSelector; 

    public PXAddAtttributeColumns(string[] names, Type entityType, Type entityIDField, Type classIDField, bool IsForSelector = true) 
     : base(entityType, entityIDField, classIDField) 
    { 
     _names = names; 
     _IsForSelector = IsForSelector; 
    } 

    public override void CacheAttached(PXCache sender) 
    { 
     this._IsActive = true; 
     base.CacheAttached(sender); 
    } 

    protected override void AttributeFieldSelecting(PXCache sender, PXFieldSelectingEventArgs e, PXFieldState state, string attributeName, int idx) 
    { 
     if (_names.Any(attributeName.Equals)) 
     { 
      //Out-of-box DisplayName is prefixed with "$Attributes$-" - if you need to take that off. 
      state.DisplayName = (!String.IsNullOrEmpty(state.DisplayName)) ? (state.DisplayName.Replace("$Attributes$-", "")) : attributeName; 
      state.Visible = true; 
      //Requires AutoGenerateColumns="AppendDynamic" for PXGrid Control for dynamic Attribute columns creation 
      state.Visibility = (_IsForSelector) ? PXUIVisibility.SelectorVisible : PXUIVisibility.Dynamic; 
     } 
     base.AttributeFieldSelecting(sender, e, state, attributeName, idx); 
    } 

    public override void CommandPreparing(PXCache sender, PXCommandPreparingEventArgs e) 
    { 
     base.CommandPreparing(sender, e); 

     if (e.BqlTable == null && aggregateAttributes && sender.GetItemType().IsDefined(typeof(PXProjectionAttribute), true)) 
     { 
      e.BqlTable = _BqlTable; 
     } 
    } 
} 

Um Attribute wie Spalten in Inventory Look up zu umfassen, erklären DAC-Erweiterung wie folgt:

public class InventoryItemPXExt : PXCacheExtension<PX.Objects.IN.InventoryItem> 
{ 
    #region Attributes 

    public abstract class attributes : IBqlField { } 

    [PXAddAtttributeColumns(new[] { "ASSETID", "HWMODEL" }, 
      typeof(CSAnswerType.inventoryAnswerType), 
      typeof(InventoryItem.inventoryID), 
      typeof(InventoryItem.itemClassID))] 
    public virtual string[] Attributes { get; set; } 

    #endregion 
} 

Felder wie unten angezeigt wird:

enter image description here

Suche auf Attribut aktiviert werden kann Spalten nach Einstellung FilterByAllFields bis True

enter image description here

Um Attribute wie Spalten in Sales Order Details Grid zu umfassen, erklären DAC-Erweiterung wie folgt:

public class SOLineExtension : PXCacheExtension<SOLine> 
{ 
    public abstract class itemAttributes : IBqlField { } 

    [PXAddAtttributeColumns(new[] { "ASSETID", "HWMODEL" }, 
      typeof(CSAnswerType.inventoryAnswerType), 
      typeof(SOLine.inventoryID), 
      typeof(InventoryItem.itemClassID), false)] 
    public virtual string[] ItemAttributes { get; set; } 
} 

Stellen Sie sicher, AutoGenerateColumns="AppendDynamic" für PXGrid Steuerung dynamische Attributspalten Schaffung

enter image description here

angeben Felder werden wie folgt angezeigt:

enter image description here

Um Attribute wie Spalten im Raster von Add Stock Item Dialog gehören, erklären DAC-Erweiterung wie folgt:

public class SOSiteStatusSelectedExtension : PXCacheExtension<SOSiteStatusSelected> 
{ 
    public abstract class itemAttributes : IBqlField { } 

    [PXAddAtttributeColumns(new[] { "ASSETID", "HWMODEL" }, 
      typeof(CSAnswerType.inventoryAnswerType), 
      typeof(InventoryItem.inventoryID), 
      typeof(InventoryItem.itemClassID), false)] 
    public virtual string[] ItemAttributes { get; set; } 
} 

Stellen Sie sicher,

enter image description here

AutoGenerateColumns="AppendDynamic" für PXGrid Steuerung dynamische Attributspalten Erstellung angeben

Felder werden wie folgt angezeigt:

enter image description here

Hinweis: Dieses Beispiel ist auf 5,3 Serie anwendbar - 1367.05.30 ab bauen.

+0

Vielen Dank! Das hat das Problem gelöst !! – xxxAcuGeekxxx