【问题标题】:Acumatica Adding a column to a existing gridAcumatica 将列添加到现有网格
【发布时间】:2018-10-25 19:52:47
【问题描述】:

客户需要在 Acumatica 上进行自定义以将发票参考号添加到“运行识别”图表的网格中,数据视图是项目。 我已将该列添加到网格中并将委托定义为自定义数据视图:但是 Ref。 Nbr 没有被填充,有人可以协助将新数据视图绑定到现有网格吗? 这是我的代码扩展。

   namespace PX.Objects.DR
{
  public class ScheduledTranExt :          PXCacheExtension<PX.Objects.DR.DRRecognition.ScheduledTran>
    {
    #region UsrRefNbr

        [PXString]
        [PXUIField(DisplayName = "Ref. Nbr.")]
    public virtual string UsrRefNbr { get; set; }
    public abstract class usrRefNbr : IBqlField { }
    #endregion

   }
  public class DRRecognitionPXExt : PXGraphExtension<DRRecognition>
  {
    #region Event Handlers
    public PXFilteredProcessing<DRRecognition.ScheduledTran,DRRecognition.ScheduleRecognitionFilter> ItemsCustom;
    public PXSelectJoin<ARInvoice,
      InnerJoin<DRSchedule, On<DRSchedule.docType, Equal<ARInvoice.docType>,
      And<DRSchedule.refNbr, Equal<ARInvoice.refNbr>>>>,
      Where<DRSchedule.scheduleNbr, Equal<Required<DRSchedule.scheduleNbr>>>> Invoices;
    protected
    virtual IEnumerable itemsCustom()
    {
      foreach (DRRecognition.ScheduledTran result
      in Base.Items.Select())
      {
      ARInvoice invoice = Invoices.Select(result.ScheduleNbr);
      var cache = Base.Caches[typeof(DRRecognition.ScheduledTran)];
      var tranExt = cache.GetExtension<ScheduledTranExt>(result);
        tranExt.UsrRefNbr = invoice.RefNbr;`enter code here`
      cache.Update(result);
      yield return result;
      }
    }


     #endregion
  }
} 

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    避免重新定义 DataView 并在视图委托中分配值。 还有其他不那么繁琐的方法来实现这一点。

    使用 PXFormula/PXDBScalar 或 RowSelected/FieldSelecting 应该是可行的。 示例:

    using PX.Data;
    using PX.Objects.AR;
    
    namespace PX.Objects.DR
    {
      public class DRRecognition_Extension:PXGraphExtension<DRRecognition>
      {
         public void ScheduledTran_UsrRefNbr_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
         {
            DRRecognition.ScheduledTran tran = e.Row as DRRecognition.ScheduledTran;
    
            if (tran != null)
            {
              ARInvoice invoice = PXSelectJoin<ARInvoice,
                                  InnerJoin<DRSchedule, On<DRSchedule.scheduleNbr, Equal<Required<DRRecognition.ScheduledTran.scheduleNbr>>>>,
                                  Where<ARInvoice.docType, Equal<DRSchedule.docType>,
                                  And<ARInvoice.refNbr, Equal<DRSchedule.refNbr>>>>.Select(Base, tran.ScheduleNbr);
    
              if (invoice != null)
              {
                e.ReturnValue = invoice.RefNbr;
              }
            }
         }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2017-10-19
      • 2021-11-07
      相关资源
      最近更新 更多