Можно было бы создать пользовательское представление, представляющее таблицу INVENTORYITEM с приведением ITEMCLASSID. Однако пользовательские представления не рекомендуются. Вместо этого попробуйте создать PXProjection, чтобы представить таблицу INVENTORYITEM как usrINVENTORYITEM. Затем используйте PXString для преобразования Int? в строку. Разобравшись, вы можете отработать свой BQL, как показано ниже.
#region InventoryItem - projection
[PXProjection(typeof(Select<InventoryItem>), Persistent = false)]
public partial class usrInventoryItem : InventoryItem
{
#region ItemClassIDStr
[PXString(10, IsUnicode = true)]
[PXUIField(DisplayName = "ItemClassIDStr", Visibility = PXUIVisibility.SelectorVisible)]
public virtual string ItemClassIDStr
{
get
{
return $"{ItemClassID}";
}
set
{
this.ItemClassIDStr = value;
}
}
public abstract class itemClassIDStr : IBqlField { }
#endregion
}
#endregion
затем оператор BQL:
// basic example of your join.
public PXSelectJoin<CSAttributeGroup, LeftJoin<usrInventoryItem,
On<usrInventoryItem.itemClassIDStr, Equal<CSAttributeGroup.entityClassID>>>> ExampleJoin;