Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Axapta 如何在运行时AX 2012期间更新临时表数据_Axapta_Dynamics Ax 2012_X++_Dynamics Ax 2012 R2 - Fatal编程技术网

Axapta 如何在运行时AX 2012期间更新临时表数据

Axapta 如何在运行时AX 2012期间更新临时表数据,axapta,dynamics-ax-2012,x++,dynamics-ax-2012-r2,Axapta,Dynamics Ax 2012,X++,Dynamics Ax 2012 R2,我是X++开发新手。我正在尝试在供应商账龄报告中添加一个字段。这件事是按例外情况做的 我的问题是在运行时更新字段值 情景, 我们有一个包含AA_BBBBBB的发票字段。我需要做的是将值拆分为AA、BBBBBB,并将BBBBBB更新为发票字段,将AA更新为新字段发票类型 问题,, 在方法vendagingreeportdp\insertvendagingreeporttmp中获得了可诱惑的vendagingreeporttmp的值后,我尝试更新上述场景,但代码没有从vendagingreeport

我是X++开发新手。我正在尝试在供应商账龄报告中添加一个字段。这件事是按例外情况做的

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

情景, 我们有一个包含AA_BBBBBB的发票字段。我需要做的是将值拆分为AA、BBBBBB,并将BBBBBB更新为发票字段,将AA更新为新字段发票类型

问题,, 在方法vendagingreeportdp\insertvendagingreeporttmp中获得了可诱惑的vendagingreeporttmp的值后,我尝试更新上述场景,但代码没有从vendagingreeporttmp中选择记录。有人能帮我完成这件事吗。

在VendAgingReportDP类insertVendAgingReportTmp中,标准代码的最后一行是vendAgingReportTmp.insert

如果您的代码在vendAgingReportTmp.insert之前;您不需要执行更新。如果您将vendAgingReportTmp.update;在销售报告之前插入TMP;你会得到那个错误

将代码放入//YourCode中,//YourCode结束,而不使用vendAgingReportTmp.update

例如:


我通过在下面添加

将InvoiceType字段添加到可诱惑的VendTmpAccountSum,因为该字段声明为全局变量。 已将我们的自定义发票类型更新为VendTmpAccountSum中的InvoiceType字段。 然后使用insert_记录集将整个数据从VendTmpAccountSum表插入到VENDAGINGREPORTMP,以提高性能。
谢谢,

您能发布您正在工作但不工作的代码吗?另外,请看一下如何创建。实际上我们正在使用insert_recordset@SankarR:请将此信息添加到您的问题中,以增加您获得答案的机会。@SankarR请添加您的代码,以给出正确答案。最后,我得到了Jon的解决方案,并在此处更新。感谢您的帮助:
/// <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();
}