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
Antwort
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:
Suche auf Attribut aktiviert werden kann Spalten nach Einstellung FilterByAllFields
bis True
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
angeben Felder werden wie folgt angezeigt:
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,
AutoGenerateColumns="AppendDynamic"
für
PXGrid
Steuerung dynamische Attributspalten Erstellung angeben
Felder werden wie folgt angezeigt:
Hinweis: Dieses Beispiel ist auf 5,3 Serie anwendbar - 1367.05.30 ab bauen.
Vielen Dank! Das hat das Problem gelöst !! – xxxAcuGeekxxx
Was hast du schon versucht? –
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
u die Attributwerte in Lagern lieferbar bedeuten? – Hybridzz