套件装配中的库存属性列

时间:2018-05-21 17:48:42

标签: c# acumatica

我需要在Stock Components网格的Kit Assembly屏幕(IN307000)中将InventoryItem属性作为列。

我能够在网格上获取属性列,但不能获取其值。任何人都可以建议下面的代码中缺少什么。

这是我写的代码 -



public class PXAddAtttributeColumns : CRAttributesFieldAttribute
{
	string[] _names;

	public PXAddAtttributeColumns(string[] names, Type classID, Type noteID)
		: base(classID, noteID)
	{
		_names = names;
	}

	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))
		{
			state.DisplayName = (!String.IsNullOrEmpty(state.DisplayName)) ? (state.DisplayName.Replace("$Attributes$-", "")) : attributeName;
			state.Visible = true;
			state.Visibility = PXUIVisibility.Dynamic;
		}

		base.AttributeFieldSelecting(sender, e, state, attributeName, idx);
	}
}

public class INComponentTranExtension : PXCacheExtension<INComponentTran>
{
	public abstract class itemAttributes : IBqlField { }

	[PXAddAtttributeColumns(new[] { "Attrib101" }, typeof(InventoryItem.itemClassID), typeof(INComponentTran.noteID))]
	public virtual string[] ItemAttributes { get; set; }
}
&#13;
&#13;
&#13;

注意:我使用的是Acumatica ver 6.10.0956

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要在ItemAttributes DAC的缓存扩展中声明PXAddAtttributeColumns字段InventoryItem属性。

这些属性与InventoryItem实体相关,因此您需要引用NoteID DAC的ClassIDInventoryItem。只要与网格绑定的视图与InventoryItem DAC一起使用(在您的情况下,数据视图为Components并且内部联接为InventoryItem DAC),就会获取属性信息。

public class InventoryItemDemoPXExt : PXCacheExtension<InventoryItem>
{
    public abstract class itemAttributes : IBqlField { }

    [PXAddAtttributeColumns(new[] { "COLOR", "CONFIGURAB", "PIXELSIZE", "WIDEANGLE" },
                                    typeof(InventoryItem.itemClassID),
                                    typeof(InventoryItem.noteID))]
    public virtual string[] ItemAttributes { get; set; }
}

确保为Framework AutoGenerateColumns="AppendDynamic"控件指定PXGrid以动态生成属性列。

字段将显示如下:

enter image description here 注意:此示例适用于6.1系列之后。