我可以动态设置 PXDataFieldParam 对象的 PXDataFieldAssign 参数吗?

Can I dynamically set a PXDataFieldAssign parameter of a PXDataFieldParam object?

我有如下设置 PXDataFieldAssign 值的代码:

pf = new PXDataFieldAssign<xTACProjectTask.dueDate>(someValue);

我还有一个table,保存着DAC的字段名,比如“xTACProjectTask.dueDate”。这个table还有一个checkbox字段来决定是否使用这个DAC字段作为参数。

有没有办法不对 DAC 字段名进行硬编码,而是(可能使用 'typeof' 调用?)使用 table 查询的结果来设置该字段名 -喜欢以下内容吗?

pf = new PXDataFieldAssign<typeof("xTACProjectTask.dueDate")>(someValue);

或者,使用我的查询结果:

pf = new PXDataFieldAssign<typeof(query.value)>(someValue); 

其中 query.value 是 table 中包含 DAC 字段名称的值?

您可以使用 Type.GetTypeActivator.CreateInstance 创建它。请看下面的例子:

string typeName = "PX.Objects.IN.InventoryItem+descr,PX.Objects";
Type typeArgument = Type.GetType(typeName);
Type genericClass = typeof(PXDataFieldAssign<>);
Type constructedClass = genericClass.MakeGenericType(typeArgument);
object created = Activator.CreateInstance(constructedClass,new object[] { "Test Description" });

您将在 created

中将以下内容包裹到 object