我有三个 DAC:People(PeopleID, Name)、Skills(SkillID, Name) 和 SkillValues(PeopleID, SkillID, Value)。当我将记录添加到技能时,它应该在我的图表上的网格中显示为一列,显示人员列表。这是我现在拥有的代码,但它没有向网格添加任何列。然而,它在我打开页面时运行,所以我乐观地认为这是可能的。
public class MyGraph: PXGraph<MyGraph>
{
public MyGraph()
{
AddSkillColumns(MasterView.Cache);
}
private void AddSkillColumns(PXCache sender)
{
PXResultset<Skills> rows = SelectFrom<Skills>.View.Select(this);
foreach (Skills row in rows)
{
String key = String.Format("Comp_{0}",row.SkillID.ToString());
if(!sender.Fields.Contains(key))
{
sender.Fields.Add(key);
this.FieldSelecting.AddHandler("MasterView", key, (PXCache cache, PXFieldSelectingEventArgs args) =>
{
});
this.FieldUpdating.AddHandler("MasterView", key, (PXCache cache, PXFieldUpdatingEventArgs args) =>
{
});
}
}
}
public SelectFrom<People>.View.ReadOnly MasterView;
}
您需要将列添加到自定义编辑器中的网格,并根据需要在 RowSelected 事件中显示/隐藏它们。