我想在所有用户的费用收据屏幕 (EP301020) 上的“费用项目”查找屏幕中隐藏列(库存 ID 和描述除外)。
我如何在“列配置”的“可用列”部分中为所有用户设置一些列(不需要),默认情况下,查找屏幕中只有所需的列。默认情况下,所有列都是列配置中的选定列列表中。请指教。谢谢
我想在所有用户的费用收据屏幕 (EP301020) 上的“费用项目”查找屏幕中隐藏列(库存 ID 和描述除外)。
我如何在“列配置”的“可用列”部分中为所有用户设置一些列(不需要),默认情况下,查找屏幕中只有所需的列。默认情况下,所有列都是列配置中的选定列列表中。请指教。谢谢
下面是隐藏可用和选定列表框中的列的代码。如果您只需要初始化可用和选定列表框中的列,请考虑使用 Acumatica默认表格布局功能。请注意,列配置是用户配置,因此您可以初始化列,但不能在初始化后覆盖用户选择。
要从选择器中完全删除列,您需要重新定义 InventoryID 选择器并在 PXSelector 的第二个参数中显式声明要查看的列。
您可以通过创建图形扩展ExpenseClaimDetailEntry
并使用CacheAttached
方法重新定义选择器来做到这一点:
using PX.Data;
using PX.Objects.IN;
namespace PX.Objects.EP
{
public class ExpenseClaimDetailEntry_Extension : PXGraphExtension<ExpenseClaimDetailEntry>
{
[PXMergeAttributes(Method = MergeMethod.Replace)]
[PXDefault]
[PXUIField(DisplayName = "Expense Item")]
[PXSelector(typeof(InventoryItem.inventoryID),
/* List of available/visible columns go here */
new Type[] { typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr) },
SubstituteKey = typeof(InventoryItem.inventoryCD),
DescriptionField = typeof(InventoryItem.descr))]
[PXRestrictor(typeof(Where<InventoryItem.itemType, Equal<INItemTypes.expenseItem>>), Messages.InventoryItemIsNotAnExpenseType)]
protected virtual void EPExpenseClaimDetails_InventoryID_CacheAttached(PXCache sender)
{
}
}
}