我可以动态设置 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.GetType
和 Activator.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
中
我有如下设置 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.GetType
和 Activator.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
中