Показать сообщение отдельно
Старый 14.11.2010, 10:18   #2  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
Preston.Larimer: Ledger Journal Import, General Journal
Источник: http://palarimer.greenlight2go.com/2...rnal_7802.html
==============

Importing from a CSV file to create a Ledger journal, we make use of the aX classes here and they simplify our work a lot compared to managing the tables directly. The data being imported below is minimal; but the code should give you a good example of how to work with additional fields.

X++:
//Job Start -->
static void GL_GJImport(Args _args)
{
    textBuffer tb = new textBuffer();
    int cnt;
    int numLines;
    int c;
    container inLine;
    boolean first = true;
    Dimension finDim;
    amount amount;
    LedgerJournalACType LedgerJournalACType;
    ledgerJournalName ledgerJournalName;
    journalID JournalID;
    axLedgerJournalTable axLedgerJournalTable;
    axledgerJournalTrans axLedgerJournalTrans;
    LedgerJournalType JournalType = ledgerJournalType::Daily;
    ;
    tb.fromFile('C:\\sampleGLImport.csv');  //File name  with Path ...
    numLines = tb.numLines();
    if(numLines)
    {
        ttsBegin;
        for(cnt = 0; cnt < numLines; ++cnt)
        {
            inLine = str2Con(tb.nextToken(true));
            if(conpeek(inLine, 1) && !first)  //first field don’t do anything if blank
            {
                if(!JournalID) //Create Journal Haader
                {
                    select firstonly ledgerJournalName
                        where ledgerJournalName.JournalType == JournalType;
                    axLedgerJournalTable = new axLedgerJournalTable();
                    axLedgerJournalTable.parmJournalName(ledgerJournalName.JournalName);
                    axLedgerJournalTable.parmJournalType(JournalType);
                    axLedgerJournalTable.parmName("Journal Description");
                    axLedgerJournalTable.save();
                    JournalID = axLedgerJournalTable.parmJournalNum();
                }
                //Create Trans ...
                axLedgerJournalTrans = new axLedgerJournalTrans();
                axLedgerJournalTrans.parmJournalNum(JournalID);
                axLedgerJournalTrans.parmAccountType(  str2Enum(LedgerJournalACType, conPeek(inLine, 1)));
                axLedgerJournalTrans.parmAccountNum(conpeek(inLine, 2));
                axLedgerJournalTrans.parmOffsetAccountType(  str2Enum(LedgerJournalACType, conpeek(inLine, 3)));
                axLedgerJournalTrans.parmOffsetAccount(conpeek(inLine, 4));
                finDim[1] = conPeek(inLine, 6);
                finDim[2] = conPeek(inLine, 7);
                axLedgerJournalTrans.parmDimension(finDim);
                amount = conpeek(inLine, 5);
                axLedgerJournalTrans.parmAmountCurCredit((amount > 0 ? abs(amount) : 0));
                axLedgerJournalTrans.parmAmountCurDebit((amount < 0 ? abs(amount) : 0));
                axLedgerJournalTrans.save();
                ++c;
            }
            first = false;
        }
        ttsCommit;
        info(strFmt('Imported %1 Items', c));
    }
}
// Job End <--
==============
Источник: http://palarimer.greenlight2go.com/2...rnal_7802.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.