向项目添加自定义字段但不能使用 PMProjectExt
Added custom field to projects but can't use PMProjectExt
我正在制作一个按钮来从项目中创建一个 SOOrder。我想将新创建的数字写回到项目中,因此我为此添加了一个自定义字段。它在表格上,整个过程都很好。
就是说,最后当我尝试写回项目时,每当我尝试引用 PMProjectExt 时都会收到以下错误:
error CS0246: The type or namespace name 'PMProjectExt' could not be found (are you missing a using directive or an assembly reference?)
理想情况下,我的更新行如下所示Base.Caches[typeof(PMProject)].SetValue<PMProjectExt.usrTEKSOOrderNbr>(TheRow, header.OrderNbr);
但即使像声明变量这样简单的事情(例如 PMProjectExt testExt;
使用 PMProjectExt 也会得到相同的错误。
我确定我正在做一些非常愚蠢的事情,但我似乎无法解决它。
如果要更新项目,我建议实例化 PMProject 图,分配当前记录并更新用户字段值。最后将更改保存到图表中。像这样。
ProjectEntry graph = PXGraph.CreateInstance<ProjectEntry>();
PMProject currentProject = graph.Project.Search<PMProject.contractCD>(Base,[your project nbr])
if (currentProject!=null)
{
graph.Project.Current = currentProject;
PMProjectExt projectExtension = PXCache<PMProject>.GetExtension<PMProjectExt>(currentProject);
projectExtension.usrTEKSOOrderNbr = "ABC123";
graph.Actions.PressSave();
graph.Clear();
}
原来项目曾经是合同。因此,要获得项目的延期,您需要使用这样的合同:
PMProject TheRow = (PMProject)e.Row;
ContractExt TheExt = PXCache<Contract>.GetExtension<CT.ContractExt>(TheRow);
string refNbr = TheExt.UsrTEKSOOrderNbr;
我正在制作一个按钮来从项目中创建一个 SOOrder。我想将新创建的数字写回到项目中,因此我为此添加了一个自定义字段。它在表格上,整个过程都很好。
就是说,最后当我尝试写回项目时,每当我尝试引用 PMProjectExt 时都会收到以下错误:
error CS0246: The type or namespace name 'PMProjectExt' could not be found (are you missing a using directive or an assembly reference?)
理想情况下,我的更新行如下所示Base.Caches[typeof(PMProject)].SetValue<PMProjectExt.usrTEKSOOrderNbr>(TheRow, header.OrderNbr);
但即使像声明变量这样简单的事情(例如 PMProjectExt testExt;
使用 PMProjectExt 也会得到相同的错误。
我确定我正在做一些非常愚蠢的事情,但我似乎无法解决它。
如果要更新项目,我建议实例化 PMProject 图,分配当前记录并更新用户字段值。最后将更改保存到图表中。像这样。
ProjectEntry graph = PXGraph.CreateInstance<ProjectEntry>();
PMProject currentProject = graph.Project.Search<PMProject.contractCD>(Base,[your project nbr])
if (currentProject!=null)
{
graph.Project.Current = currentProject;
PMProjectExt projectExtension = PXCache<PMProject>.GetExtension<PMProjectExt>(currentProject);
projectExtension.usrTEKSOOrderNbr = "ABC123";
graph.Actions.PressSave();
graph.Clear();
}
原来项目曾经是合同。因此,要获得项目的延期,您需要使用这样的合同:
PMProject TheRow = (PMProject)e.Row;
ContractExt TheExt = PXCache<Contract>.GetExtension<CT.ContractExt>(TheRow);
string refNbr = TheExt.UsrTEKSOOrderNbr;