销售订单确认报告 - SalesConfirmDP

时间:2016-04-27 16:47:45

标签: sql axapta business-intelligence microsoft-dynamics x++

我正在修改SalesConfirmDP类并尝试将CustVendExternalItem.ExternalItemTxt字段添加到我创建的新字段中。 我尝试了一些事情,但我不认为我的语法是正确的,即我在类声明中声明CustVendExternalItem表。但是当我尝试将CustVendExternalItem.ExternalItemTxt插入到我的新字段中时,它不会填充,我想必须有一个我需要包含的方法?

如果有人有任何建议,将非常感谢。 提前谢谢。

private void setSalesConfirmDetailsTmp(NoYes _confirmTransOrTaxTrans)
{
DocuRefSearch                           docuRefSearch;
// Body
salesConfirmTmp.JournalRecId                = custConfirmJour.RecId;

if(_confirmTransOrTaxTrans == NoYes::Yes)
{
    if (printLineHeader)
    {
        salesConfirmTmp.LineHeader          = custConfirmTrans.LineHeader;
    }
    else
    {
        salesConfirmTmp.LineHeader          = '';
    }
    salesConfirmTmp.ItemId                  = this.itemId();
    salesConfirmTmp.Name                    = custConfirmTrans.Name;
    salesConfirmTmp.Qty                     = custConfirmTrans.Qty;
    salesConfirmTmp.SalesUnitTxt     =      custConfirmTrans.salesUnitTxt();
    salesConfirmTmp.SalesPrice              = custConfirmTrans.SalesPrice;
    salesConfirmTmp.DlvDate                 = custConfirmTrans.DlvDate;
    salesConfirmTmp.DiscPercent             = custConfirmTrans.DiscPercent;
    salesConfirmTmp.DiscAmount              = custConfirmTrans.DiscAmount;
    salesConfirmTmp.LineAmount              = custConfirmTrans.LineAmount;
    salesConfirmTmp.CurrencyCode            = custConfirmJour.CurrencyCode;
    salesConfirmTmp.PrintCode               = custConfirmTrans.TaxWriteCode;

    if (pdsCWEnabled)
    {
        salesConfirmTmp.PdsCWUnitId         = custConfirmTrans.pdsCWUnitId();
        salesConfirmTmp.PdsCWQty            = custConfirmTrans.PdsCWQty;
    }

    **salesConfirmTmp.ExternalItemText          = CustVendExternalItem.ExternalItemTxt;**

    if ((custFormletterDocument.DocuOnConfirm == DocuOnFormular::Line)
     || (custFormletterDocument.DocuOnConfirm == DocuOnFormular::All))
    {
        docuRefSearch = DocuRefSearch::newTypeIdAndRestriction(custConfirmTrans,
                                                               custFormletterDocument.DocuTypeConfirm,
                                                               DocuRestriction::External);
        salesConfirmTmp.Notes               = Docu::concatDocuRefNotes(docuRefSearch);
    }

    salesConfirmTmp.InventDimPrint          = this.printDimHistory();

2 个答案:

答案 0 :(得分:0)

嗯,AX无法猜出你需要哪条记录,还有一个助手类CustVendExternalItemDescription来处理它:

boolean found;
str externalItemId;
...
[found, externalItemId, salesConfirmTmp.ExternalItemText] = CustVendExternalItemDescription::findExternalItemDescription(
                   ModuleCustVend::Cust,
                   custConfirmTrans.ItemId,
                   custConfirmTrans.inventDim(),
                   custConfirmJour.OrderAccount,
                   CustTable::find(custConfirmJour.OrderAccount).CustItemGroupId);

findExternalItemDescription方法返回的信息比您需要的信息多,但您必须定义变量来存储它。

答案 1 :(得分:0)

嗯,解决这个问题的步骤相当简单,我会尝试一步一步地解决这个问题。

1)您是否正确初始化CustVendExternalItem?记录相同的内容并将其初始化为Jan上面显示的内容,然后调试代码并查看该值是否在DP类中初始化。

2)如果您的值正确初始化,但报告设计中没有显示,则可能存在多个问题,例如:

  • 文本框重叠。

  • 给定字段的空间不足

  • 某些报告参数/属性未正确设置导致
    你的价值不会出现在报告上。

    逐个检查这些,你最终应该找到解决方案