在acumatica中添加自定义按钮
问题描述:
我是Acumatica的新手,尝试探索一些自定义功能。在acumatica中添加自定义按钮
我已经创建了2个标签销售订单屏幕上 - CstLabeltotal和CstLabelqty
我试图找出一种方法,其中除了总的标签会显示从文档详细信息选项卡和数量总数交易(第1列)标签显示来自“文档详细信息”选项卡(第9列)的总数量
任何人都可以帮助我吗?
答
使用自定义未绑定字段(NonPersistedField)作为占位符来显示总计。
添加自定义字段,以销售订单屏幕上,无需使用标签控件,DAC DisplayName属性将作为字段标签:
找到基本图交易数据视图含有所需的(仅用于信息)计算总计详细数据:
在你SOOrderEntry分机使用交易数据视图从基本图来计算总计:
namespace PX.Objects.SO
{
public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry>
{
// Initialize unbound values in FieldSelecting events
public void SOOrder_UsrTotalQty_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
e.ReturnValue = GetTotalQty(sender);
}
public void SOOrder_UsrTotalTransactions_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
e.ReturnValue = GetTotalTransactions(sender);
}
// Update values
public void SOLine_RowDeleted(PXCache sender, PXRowDeletedEventArgs e)
{
UpdateTotals(sender, e.Row as SOOrder, true, true);
}
public void SOLine_RowInserted(PXCache sender, PXRowInsertedEventArgs e)
{
UpdateTotals(sender, e.Row as SOOrder, true, true);
}
public void SOLine_OrderQty_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
{
UpdateTotals(sender, e.Row as SOOrder, true, false);
}
public void UpdateTotals(PXCache sender, SOOrder soOrder, bool isUpdateQty, bool isUpdateTranCount)
{
// Get SOOrder DAC extension
if (soOrder != null)
{
SOOrderExt soOrderExt = sender.GetExtension<SOOrderExt>(soOrder);
if (soOrderExt != null)
{
// Update values
if (isUpdateQty)
{
soOrderExt.UsrTotalQty = GetTotalQty(sender);
}
if (isUpdateTranCount)
{
soOrderExt.UsrTotalTransactions= GetTotalTransactions(sender);
}
}
}
}
// Compute totals
public decimal? GetTotalQty(PXCache sender)
{
decimal? totalQty = 0M;
// Compute quantity from SOOrderEntry base graph Transactions DataView
foreach (SOLine soLine in Base.Transactions.Select())
{
totalQty += soLine.OrderQty;
}
return totalQty;
}
public int? GetTotalTransactions(PXCache sender)
{
return Base.Transactions.Select().Count();
}
}
}
如果由于分页(仅事务网格的第一页结果)总计仅显示屏幕上的内容,则必须在自定义中复制事务数据视图。 –