向项目添加自定义字段但不能使用 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;