2016-09-26 45 views
1

我在我的DAC中有一个字段,我想要放置一个查找SalesPersons的选择器。我知道如何做到这一点:PXSelector中的BQL过滤开始于

 [PXSelector(typeof(SalesPerson.salesPersonCD) 
       ,typeof(SalesPerson.salesPersonCD) 
       ,typeof(SalesPerson.descr))] 

我的问题是,我想根据营业员CD,即StartsWith“SSR”或类似的东西的前三个字符此选择过滤。我知道你可以在选择器中使用BQL,使用Search <>命令,并且我知道如何设置一个常量类,但是我不确定用起始字符过滤的语法。

回答

3

创建自定义BQL运算符的缺点是,您可以通过使用LIKE运算符(最后使用%通配符)实现“开始”。您正在筛选上BQL领域可能是一个DAC性能与get访问自定义代码,这需要用户输入的字段,并增加了通配符末,这样的:

 public abstract class myFieldWildcard : PX.Data.IBqlField { }; 
     [PXString(30, IsUnicode = true)] 
     public virtual String MyFieldWildcard 
     { 
      [PXDependsOnFields(typeof(myField)] 
      get 
      { 
       return MyField + PXDatabase.Provider.SqlDialect.WildcardAnything; 
      } 
     } 

你那么能够使用该字段作为您的PXSelector属性的一部分:

[PXSelector(typeof(Search<SomeTable.someField, Where<SomeTable.someField,Like<Current<MyFilter.myFieldWildcard>>>>))] 
+1

非常感谢,伙计们! ; d – pmfith