【问题标题】:How to post document date and document number in general journal如何在普通日记帐中过帐单据日期和单据编号
【发布时间】:2015-01-08 22:35:43
【问题描述】:

我想知道是否有人可以帮助我弄清楚如何在发票标签下以编程方式设置普通日记帐中的文档编号和日期。我正在尝试使用 x++ 在 ax 2012 中发布到一般期刊。我目前有这个有效的代码,但在 ledgerjournal trans 下没有设置文档编号或日期的方法。事实上,很多 setter 都丢失了,只有 linenum 帐户类型、journal num 等。 我该如何设置这些字段?下面我有一些代码

static void TestLedgerJournalImport(Args _args)
{
// Set these variables.
LedgerJournalNameId                     journalName = 'GenJrn';
SelectableDataArea                      company = '019';
TransDate                               transactionDate = 30\6\2012;

str                                     line1MainAccount = '131310';
str                                     line1FullAccount = '131310--';

str                                     line2MainAccount = '131310';
str                                     line2FullAccount = '131310-10-';
str                                     line2Dimension1Name = 'Department';
str                                     line2Dimension1Value = 'ACCT';

LedgerGeneralJournalService             ledgerGeneralJournalService;
LedgerGeneralJournal                    ledgerGeneralJournal;

AfStronglyTypedDataContainerList        journalHeaderCollection;
LedgerGeneralJournal_LedgerJournalTable journalHeader;
AifEntityKeyList                        journalHeaderCollectionKeyList;
RecId                                   journalHeaderRecId;

AfStronglyTypedDataContainerList        journalLineCollection;
LedgerGeneralJournal_LedgerJournalTrans journalLine1;
AifMultiTypeAccount                     journalLine1LedgerDimension;
LedgerGeneralJournal_LedgerJournalTrans journalLine2;
AifMultiTypeAccount                     journalLine2LedgerDimension;
AifDimensionAttributeValue              journalLine2Dim1;
AfStronglyTypedDataContainerList        journalLine2DimensionCollection;
;

ledgerGeneralJournalService = LedgerGeneralJournalService::construct();
ledgerGeneralJournal = new LedgerGeneralJournal();

// Create journal header.
journalHeaderCollection = ledgerGeneralJournal.createLedgerJournalTable();
journalHeader = journalHeaderCollection.insertNew(1);
journalHeader.parmJournalName(journalName);

// Create journal lines.
journalLineCollection = journalHeader.createLedgerJournalTrans();

// Line 1
journalLine1 = journalLineCollection.insertNew(1);
journalLine1.parmLineNum(1.00);
journalLine1.parmCompany(company);
journalLine1.parmTransDate(transactionDate);
journalLine1.parmAccountType(LedgerJournalACType::Ledger);
journalLine1.parmTxt('Test journal transaction');
journalLine1.parmAmountCurDebit(100.00);
journalLine1LedgerDimension = journalLine1.createLedgerDimension();
journalLine1LedgerDimension.parmAccount(line1MainAccount);
journalLine1LedgerDimension.parmDisplayValue(line1FullAccount);
journalLine1.parmLedgerDimension(journalLine1LedgerDimension);

// Line 2
journalLine2 = journalLineCollection.insertNew(2);
journalLine2.parmLineNum(2.00);
journalLine2.parmCompany(company);
journalLine2.parmTransDate(transactionDate);
journalLine2.parmAccountType(LedgerJournalACType::Ledger);
journalLine2.parmTxt('Test journal transaction');
journalLine2.parmAmountCurCredit(100.00);
journalLine2LedgerDimension = journalLine2.createLedgerDimension();
journalLine2DimensionCollection = journalLine2LedgerDimension.createValues();
journalLine2Dim1 = new AifDimensionAttributeValue();
journalLine2Dim1.parmName(line2Dimension1Name);
journalLine2Dim1.parmValue(line2Dimension1Value);
journalLine2DimensionCollection.add(journalLine2Dim1);
journalLine2LedgerDimension.parmAccount(line2MainAccount);
journalLine2LedgerDimension.parmDisplayValue(line2FullAccount);
journalLine2LedgerDimension.parmValues(journalLine2DimensionCollection);
journalLine2.parmLedgerDimension(journalLine2LedgerDimension);

// Insert records.
journalHeader.parmLedgerJournalTrans(journalLineCollection);
ledgerGeneralJournal.parmLedgerJournalTable(journalHeaderCollection);
journalHeaderCollectionKeyList =
    LedgerGeneralJournalService.create(ledgerGeneralJournal);
journalHeaderRecId =
    journalHeaderCollectionKeyList.getEntityKey(1).parmRecId();

info(strFmt("LedgerJournalTable.Recid = %1", int642str(journalHeaderRecId)));

}

【问题讨论】:

    标签: axapta x++ dynamics-ax-2012


    【解决方案1】:

    不要那样做,你在为自己做更多的工作。我刚刚为你写了这个例子。我编写了一段更复杂的代码,所以我刚刚留下了一些示例代码的 offsetDefaultDimension。

    static void Job3(Args _args)
    {
        AxLedgerJournalTable                journalTable = AxLedgerJournalTable::construct();
        LedgerJournalTable                  ledgerJournalTable;
        LedgerJournalName                   ledgerJournalName = LedgerJournalName::find('GenJrn');
        AxLedgerJournalTrans                journalTrans = AxLedgerJournalTrans::construct();
        DimensionAttribute                  dimensionAttribute;
        DimensionAttributeValue             dimensionAttributeValue;
        DimensionAttributeValueSetStorage   dimStorage;
        LedgerDimensionAccount              ledgerDimension = DimensionDefaultingService::serviceCreateLedgerDimension(DimensionStorage::getDefaultAccountForMainAccountNum('131310'));
    
        journalTable.parmJournalName(ledgerJournalName.JournalName);
        journalTable.parmJournalType(ledgerJournalName.JournalType);
        journalTable.save();
    
        ttsBegin;
        ledgerJournalTable = LedgerJournalTable::findByRecId(journalTable.ledgerJournalTable().RecId, true);
    
        // The name gets reset if no journal number is provided, so we can just update afterwords
        ledgerJournalTable.Name = 'My Custom Journal Name/Description';
        ledgerJournalTable.update();
        ttsCommit;
    
        journalTrans.parmJournalNum(journalTable.ledgerJournalTable().JournalNum);
        journalTrans.parmTransDate(today());
        journalTrans.parmCurrencyCode('USD');
        journalTrans.parmTxt('AlexOnDAX.blogspot.com');
        journalTrans.parmDocumentNum('MyDocNumber');
        journalTrans.parmDocumentDate(today() - 1);
    
        journalTrans.parmAccountType(LedgerJournalACType::Ledger);
        journalTrans.parmLedgerDimension(DimensionAttributeValueCombination::find(ledgerDimension).RecId);
    
        journalTrans.parmAmountCurDebit(100.00);
        journalTrans.save();
    
        info("Done");
    }
    

    【讨论】:

    • 我试图运行它,但我得到了这个错误。函数 DimensionAttributeValueSetStorage.addItemValues 被错误调用。另外我只想要一段关于如何设置文档编号和文档名称的代码。
    • 当您说“文档名称”时,您指的是哪个字段?您收到的错误是因为我的主要帐户和业务部门可能不同。您只需要对我的代码进行微调,使其适用于您的环境。
    • 我刚刚对其进行了编辑,现在复制/粘贴该作业,我认为它可以在您的环境中使用。
    • 当您发布到普通日记帐并单击“行”时,会出现概览、一般、发票选项卡等。当您单击发票选项卡时,您如何填充文档:和文档日期:
    • 哦,我刚刚注意到您正在使用axydgerjournaltrans,而我只是在使用ledgerjournaltrans
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2014-05-24
    相关资源
    最近更新 更多