2017-04-12 103 views
-1

我是X ++开发新手。我正在尝试在供应商老化报告中添加一个字段。这是作为例外。如何在运行时更新临时表数据AX 2012

我的问题是在运行时更新字段值。

情景, 我们有一个发票字段包含“AA_BBBBBB”。我需要做的是我需要将值分为AA,BBBBBB和更新BBBBBB发票字段和AA到新字段(发票类型)。

问题, 一旦我得到的值不是Temptable VendAgingReportTmp的方法VendAgingReportDP \ insertVendAgingReportTmp,我尝试更新上面的场景,但code is not selecting the records from VendAgingReportTmp。有人可以帮助我完成这件事。

+1

你可以发布你的工作是不工作的代码? –

+0

另外看看如何创建[mcve]。 –

回答

0

我由下面添加了一个解决方案,

  • 新增InvoiceType场to temptable VendTmpAccountSum因为这被声明为全局变量。
  • 将我们的自定义发票类型更新为InvoiceType字段VendTmpAccountSum
  • 然后,整个数据从VendTmpAccountSum表通过使用insert_recordset以增加性能插入到VendAgingReportTmp

感谢,

1

VendAgingReportDPinsertVendAgingReportTmp的标准代码的最后一行是vendAgingReportTmp.insert();

如果你的代码是vendAgingReportTmp.insert();之前,您不需要进行更新。如果您在vendAgingReportTmp.insert();之前放入vendAgingReportTmp.update();,则会出现该错误。

把你的代码中//YourCode//YourCode END withhout vendAgingReportTmp.update();

例子:

/// <summary> 
/// Inserts records into the temporary <c>VendAgingReportTmp</c> table. 
/// </summary> 
/// <param name="_reverseAmountsAndHeadings"> 
/// A boolean value which indicates whether the column values should be  reversed. 
/// </param> 
private void insertVendAgingReportTmp(boolean _reverseAmountsAndHeadings) 
{ 
    vendAgingReportTmp.AsOfDate = strFmt("@SYS84682",  date2StrUsr(contract.parmZeroDate(), DateFlags::FormatAll),  contract.parmDateTransactionDuedate()); 
    vendAgingReportTmp.HeadingAccount = strFmt("@SYS24500"); 
    vendAgingReportTmp.HeadingName = strFmt("@SYS7399"); 

    switch (contract.parmDateTransactionDuedate()) 
    { 
     case DateTransactionDuedate::DocumentDate : vendAgingReportTmp.HeadingDate = "@SYS2587"; 
               break; 
     case DateTransactionDuedate::TransactionDate : vendAgingReportTmp.HeadingDate = "@SYS67"; 
               break; 
     case DateTransactionDuedate::DueDate : vendAgingReportTmp.HeadingDate =  "@SYS14588"; 
                break; 
     default : vendAgingReportTmp.HeadingDate = "@SYS14588"; 
                break; 
    } 

    if (_reverseAmountsAndHeadings) 
    { 
     this.setVendAgingReportTmpInReverse(); 
    } 
    else 
    { 
     this.setVendAgingReportTmp(); 
    } 

    vendAgingReportTmp.TransDate = tmpAccountSum.TransDate; 
    vendAgingReportTmp.InvoiceId = tmpAccountSum.InvoiceId; 
    vendAgingReportTmp.Voucher = tmpAccountSum.Voucher; 
    vendAgingReportTmp.AccountNum = tmpAccountSum.AccountNum; 
    vendAgingReportTmp.Name = vendTable.name(); 
    vendAgingReportTmp.VendAccount = tmpAccountSum.AccountNum; 
    vendAgingReportTmp.Txt = tmpAccountSum.Txt; 
    vendAgingReportTmp.Balance = 100; 
    vendAgingReportTmp.CurrencyCode = tmpAccountSum.CurrencyCode; 
    vendAgingReportTmp.VendGroup = vendTable.VendGroup; 

    //YourCode 
    //... 
    //... 
    //... 
    //YourCode END 

    vendAgingReportTmp.insert(); 
} 
+0

其实我们正在使用insert_recordset –

+1

@SankarR:请将这些信息加入您的问题中,以增加您回答的机会。 –

+0

@SankarR请加上你的代码,给你一个正确的答案。 –