如何在Opportunity Products Grid页脚中显示产品可用性?

时间:2017-07-11 04:41:15

标签: acumatica

在销售订单文档中,网格页脚。它显示产品的可用性。

enter image description here

如何在Opportunity产品网格中执行相同的操作? 更重要的是,如何强制它在页脚显示 而不是简单的网格列?有这样的属性吗?

感谢您的回复。

enter image description here

1 个答案:

答案 0 :(得分:5)

如果我们与销售订单进行比较,则销售订单行会在Availabilty_FieldSelecting期间从LSSOLine获取其值。页面上的电子报告位于选项卡上StatusField="Availability"。我们可以通过添加未绑定的扩展字段来执行类似的操作,然后在字段中选择填充值。另一种方法是实现LSCROpportunityProducts类继承LSSelect类似于LSSoLine(更好的首选解决方案)。为了保持这个简单并专注于让字段显示文本,我将使用扩展字段和简单字段选择扩展图中的机会。

(1)在dac扩展中,创建一个未绑定的字段(MyAvailability是示例字段):

[PXTable(typeof(CROpportunityProducts.cROpportunityID), typeof(CROpportunityProducts.cROpportunityProductID), IsOptional = true)]
[Serializable]
public class CROpportunityProductsMyExtension : PXCacheExtension<CROpportunityProducts>
{
    #region MyAvailability
    public abstract class myAvailability : PX.Data.IBqlField
    {
    }
    protected string _MyAvailability;
    [PXString(IsUnicode = true)]
    [PXUIField(DisplayName = "Product Availability", Enabled = false)]
    public virtual string MyAvailability
    {
        get
        {
            return this._MyAvailability;
        }
        set
        {
            this._MyAvailability = value;
        }
    }
    #endregion
}

(2)在商机产品标签上,通过设置属性StatusField将新字段连接为网格状态值。页面需要修改以添加此值,并且在添加时应该看起来像这样(需要在项目中进行屏幕自定义 - &gt;操作编辑ASPX并找到ProductsGrid以粘贴到StatusField和值中)

<px:PXGrid ID="ProductsGrid" SkinID="Details" runat="server" Width="100%" 
Height="500px" DataSourceID="ds" ActionsPosition="Top" BorderWidth="0px" 
SyncPosition="true" StatusField="MyAvailability">

(3)现在,在图表扩展中填充字段:

修改Current<>的使用并不总是包含UI中当前突出显示的正确行。根据{{​​1}}切换到Required<>,产品标签中的多行结果都是正确的。

PXFieldSelectingEventArgs.Row

结果:

enter image description here