2 Stimmen

wie man jeden Wert einer Spalte in einer Tabelle liest

Wie kann ich mit x++ einen Auftrag erstellen, um jeden Wert einer Spalte in einer Tabelle in Microsoft Dynamics AX 2009 zu lesen?

2voto

Babar Punkte 2766

Mit diesem Code werden alle Spaltenwerte für einen Datensatz angezeigt.

static void Job1(Args _args)
{
    DictTable   dictTable = new DictTable(tableNum(CustTable));
    DictField   dictField;
    int         counter, fieldId;

    CustTable   custTable;
    anytype     value; 

    select firstonly custTable;

    for (counter = 1; counter <= dictTable.fieldCnt(); counter++)
    {
        fieldId = dictTable.fieldCnt2Id(counter);
        dictField = new DictField(tableNum(CustTable), fieldId);

        if (!dictField.isSystem())
        {
            value = custTable.(fieldId);
            if(value)
            {
                info(strFmt('%1 = %2', 
                            dictField.label(),
                            any2str(value)));
            }
        }
    }
}

Um alle Werte für eine bestimmte Spalte zu erhalten, verwenden Sie bitte den Code von Carlos Heuberger.

1voto

user85421 Punkte 28350

Eine Möglichkeit: im AOT (Strg-D) mit der rechten Maustaste auf Jobs und wählen Sie New Job . Geben Sie in das neue Fenster etwas ein wie (unter Verwendung der korrekten Tabellen- und Spaltennamen, die Sie lesen möchten):

static void Job()
{
    YourTable  yourTable;
    ;
    while select TheColumn from yourTable
    {
        // process yourTable.TheColumn
        info(strFmt("value: %1", yourTable.TheColumn));
    }
}

aber es gibt auch andere Möglichkeiten: Aussagen auswählen

-1voto

phoenixdaxguy Punkte 1

Nur eine kleine Änderung, ich habe die any2str um meinen Tisch zum Laufen zu bringen:

strFmt('%1 = %2 \r\n', dictField.label(), value);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X