Acumatica 如何将新筛选器字段添加到“按项目运行分配”屏幕
我正在自定义“按项目运行分配”屏幕,以便将另一个字段添加到标题/过滤器部分,并使用该字段过滤网格数据。我已使用项目状态字段作为模板,为“状态”添加了一个PXString字段:Acumatica 如何将新筛选器字段添加到“按项目运行分配”屏幕,acumatica,Acumatica,我正在自定义“按项目运行分配”屏幕,以便将另一个字段添加到标题/过滤器部分,并使用该字段过滤网格数据。我已使用项目状态字段作为模板,为“状态”添加了一个PXString字段: public class AllocationFilterExt : PXCacheExtension<AllocationFilter> { #region UsrStatus [PXString(1, IsFixed = true)] [ProjectStatus.List()]
public class AllocationFilterExt : PXCacheExtension<AllocationFilter>
{
#region UsrStatus
[PXString(1, IsFixed = true)]
[ProjectStatus.List()]
[PXDefault(ProjectStatus.Active)]
[PXUIField(DisplayName = "Status", Required = true, Visibility = PXUIVisibility.SelectorVisible)]
public virtual string UsrStatus { get; set; }
public abstract class usrStatus : IBqlField { }
#endregion
}
公共类分配过滤器ext:PXCacheExtension
有没有想过为什么会发生这种情况?为了使用用户字段,是否需要向业务逻辑中添加一些内容
非常感谢…在您的aspx
页面检查中,您的CommitChanges
设置为true。
using PX.Objects.PM;
using static PX.Objects.PM.AllocationProcessByProject;
namespace ExampleDB.DAC
{
public sealed class AllocationFilterExt : PXCacheExtension<AllocationFilter>
{
#region UsrStatus
[PXString(1, IsFixed = true)]
[ProjectStatus.List()]
[PXDefault(ProjectStatus.Active, PersistingCheck = PXPersistingCheck.Nothing)]
[PXUIField(DisplayName = "Status", Required = true, Visibility = PXUIVisibility.SelectorVisible)]
public string UsrStatus { get; set; }
public abstract class usrStatus : IBqlField { }
#endregion
}
}
使用PX.Objects.PM;
使用静态PX.Objects.PM.AllocationProcessByProject;
命名空间ExampleDB.DAC
{
公共密封类AllocationFilterText:PXCacheExtension
{
#乌斯塔特斯地区
[PXString(1,IsFixed=true)]
[ProjectStatus.List()]
[PXDefault(ProjectStatus.Active,PersistingCheck=PXPersistingCheck.Nothing)]
[PXUIField(DisplayName=“Status”,必需=true,可见性=PXUIVisibility.SelectorVisible)]
公共字符串UsrStatus{get;set;}
公共抽象类usrStatus:IBqlField{}
#端区
}
}
在图的扩展中
using ExampleDB.DAC;
using PX.Data;
using PX.Objects.CT;
using PX.Objects.PM;
namespace ExampleDB
{
public class AllocationProcessByProjectExt : PXGraphExtension<AllocationProcessByProject>
{
public PXFilteredProcessingJoin<PMProject, AllocationProcessByProject.AllocationFilter, LeftJoin<AllocationProcessByProject.Customer, On<AllocationProcessByProject.Customer.bAccountID, Equal<PMProject.customerID>>>
, Where2<Where<Current<AllocationProcessByProject.AllocationFilter.allocationID>, IsNull, Or<PMProject.allocationID, Equal<Current<AllocationProcessByProject.AllocationFilter.allocationID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.projectID>, IsNull, Or<PMProject.contractID, Equal<Current<AllocationProcessByProject.AllocationFilter.projectID>>>>
,And2<Where<Current<AllocationFilterExt.usrStatus>, IsNull, Or<PMProject.status, Equal<Current<AllocationFilterExt.usrStatus>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerID>, IsNull, Or<PMProject.customerID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerClassID>, IsNull, Or<AllocationProcessByProject.Customer.customerClassID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerClassID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerClassID>, IsNull, Or<AllocationProcessByProject.Customer.customerClassID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerClassID>>>>
, And2<Match<Current<AccessInfo.userName>>, And<PMProject.nonProject, Equal<False>, And<PMProject.baseType, Equal<CTPRType.project>>>>>>>>>>> Items;
}
}
使用ExampleDB.DAC;
使用PX数据;
使用PX.Objects.CT;
使用PX.Objects.PM;
名称空间示例数据库
{
公共类分配ProcessByProjectExt:PXGrapherExtension
{
公共PXFilteredProcessingJoin项;
}
}
Sorry-在BQL视图的最后一行:“和>>>>>>>>>>项目;”-什么是CTPRType?我根本找不到任何关于这方面的参考资料…你的Acumatica版本是什么?这段代码在19R2版本17.209.0028中工作-尽管我已经让它工作了。我的错误是使用引用“使用静态PX.Objects.PM.AllocationProcess;”而不是“使用静态PX.Objects.PM.AllocationProcessByProject;”。一旦我修好了,它就工作得很好。谢谢你的帮助!
using ExampleDB.DAC;
using PX.Data;
using PX.Objects.CT;
using PX.Objects.PM;
namespace ExampleDB
{
public class AllocationProcessByProjectExt : PXGraphExtension<AllocationProcessByProject>
{
public PXFilteredProcessingJoin<PMProject, AllocationProcessByProject.AllocationFilter, LeftJoin<AllocationProcessByProject.Customer, On<AllocationProcessByProject.Customer.bAccountID, Equal<PMProject.customerID>>>
, Where2<Where<Current<AllocationProcessByProject.AllocationFilter.allocationID>, IsNull, Or<PMProject.allocationID, Equal<Current<AllocationProcessByProject.AllocationFilter.allocationID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.projectID>, IsNull, Or<PMProject.contractID, Equal<Current<AllocationProcessByProject.AllocationFilter.projectID>>>>
,And2<Where<Current<AllocationFilterExt.usrStatus>, IsNull, Or<PMProject.status, Equal<Current<AllocationFilterExt.usrStatus>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerID>, IsNull, Or<PMProject.customerID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerClassID>, IsNull, Or<AllocationProcessByProject.Customer.customerClassID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerClassID>>>>
, And2<Where<Current<AllocationProcessByProject.AllocationFilter.customerClassID>, IsNull, Or<AllocationProcessByProject.Customer.customerClassID, Equal<Current<AllocationProcessByProject.AllocationFilter.customerClassID>>>>
, And2<Match<Current<AccessInfo.userName>>, And<PMProject.nonProject, Equal<False>, And<PMProject.baseType, Equal<CTPRType.project>>>>>>>>>>> Items;
}
}