Liste aller Felder einer Tabelle ausgeben

Unlängst benötigte ich eine Liste aller Felder einer Tabelle mit deren Datentypen. Dafür habe ich mir den folgenden Job - im Beispiel für die Tabelle custGroup - geschrieben:

static void listAllFields4Table(Args _args)
{
    dictTable   dictTable = new dictTable(tableNum(custGroup));
    int         currFieldId = 0;
    counter     c = 0;
    dictField   dictField;
    counter     a = 0;
    common      common;
    str         enumName;
    ;

    common = DictTable.makeRecord();
    setPrefix(strFmt("Fields of table %1",  tableId2name(common.TableId)));

    currFieldId = 0;
    c = 0; 
    do
    {
        currFieldId = dictTable.fieldNext(currFieldId); 
        if(currFieldId != 0)
        {
            dictField = new dictField(common.TableId, currFieldId); 
            if(dictField.arraySize() == 1)
            {
                info(   strFmt("%1: %2 [%3%4]",
                        dictTable.fieldName(currFieldId),
                        dictField.label(),
                        dictField.baseType(),
                        dictField.enumId() ? strFmt(" %1", enumId2Name(dictField.enumId())) : "")
                     );
            }
            else if(dictField.arraySize() > 1)
            {
                for(a=1;a<=dictField.arraySize();a++)
                {
                    info(   strFmt("%1 [%2]: %3 [%4]",
                            dictTable.fieldName(currFieldId),
                            a,
                            dictField.label(),
                            dictField.baseType())
                         );
                }
            }
        }
        c++;
    }
    while (c < dictTable.fieldCnt());
}

Das Ergebnis dieses Jobs sieht wie folgt aus:

List of table fields

Dieser Beitrag bezieht sich auf die Versionen:
Dynamics AX 2009, Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
Mai 2024
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
2728293031 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu