Wie kann ich mit x++ einen Auftrag erstellen, um jeden Wert einer Spalte in einer Tabelle in Microsoft Dynamics AX 2009 zu lesen?
Antworten
Zu viele Anzeigen?
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.
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
phoenixdaxguy
Punkte
1