Axapta: Come può il Nome tabella, non l'ID tabella, essere utilizzato come selezionare nella finestra di dialogo Seleziona del Database Log Report?

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

  •  21-09-2019
  •  | 
  •  

Domanda

Attualmente solo la tabella Id può essere usato che è privo di significato in quanto è un numero. Un po 'di codice di esempio sarebbe davvero grande.

È stato utile?

Soluzione

Creare una nuova classe RunBaseReport e ricordarsi di assegnare un nome al rapporto SysDatabaseLog nel metodo lastValueElementName.

Prompt il nome della tabella nel metodo dialog; utilizzare il tipo di dati TableName esteso per attivare la ricerca.

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

Aggiorna l'intervallo tabella ID del queryRun.query() nel metodo getFromDialog dopo aver chiamato super(). Utilizzare la funzione tableName2Id per convertire in tabella id.

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

Nel metodo validate, convalidare quel nome tabella è valida (tabella ID non 0, tabella non temporanea, ecc.).

Infine si modifica la voce di menu di uscita per puntare alla classe piuttosto che il rapporto.

Attenzione: il codice non è stato testato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top