Axapta: Wie kann der Tabellenname, nicht die Tabelle ID, als Auswahl im Select-Dialog des Datenbank-Protokollbericht verwendet werden?

StackOverflow https://stackoverflow.com/questions/1366333

  •  21-09-2019
  •  | 
  •  

Frage

Derzeit ist nur die Tabelle Id verwendet werden kann, die sinnlos ist, da es eine Zahl ist. Ein wenig Codebeispiel wäre wirklich groß sein.

War es hilfreich?

Lösung

Erstellen Sie eine neue Klasse RunBaseReport und erinnere mich an den SysDatabaseLog Bericht in der lastValueElementName Methode zu nennen.

Prompt der Tabellenname in der dialog Methode; Verwenden Sie die TableName erweiterten Datentyp zu ermöglichen Lookup.

Object dialog() 
{
    DialogRunbase dlg = super();
    ;
    dialogTableName = dlg.addFieldValue(typeId(TableName),tableId2Name(tableId));      
    return dlg;  
}

Aktualisieren der Tabellen-ID-Bereich des queryRun.query() im getFromDialog Verfahren nach super() Aufruf. Verwenden Sie die tableName2Id Funktion Tabellen-ID zu konvertieren.

boolean getFromDialog()
{
    boolean ret = super();
    ;
    tableId = tableName2Id(dialogTableName.value());
    this.queryrun().dataSourceNo(1).findRange(fieldNum(SysDatabaseLog,Table)).value(queryValue(tableId));
    return ret;
}

In der validate Methode bestätigen, dass Tabellennamen gültig ist (Tabelle id nicht 0, Tabelle nicht Temp usw.).

Sie schließlich das Ausgangsmenüpunkt in die Klasse zu Punkt ändern, anstatt der Bericht.

Achtung: Code wurde nicht getestet

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top