Actuellement, seul l'identificateur de table peut être utilisé, car il s'agit d'un nombre. Un petit exemple de code serait vraiment génial.Axapta: Comment le nom de la table, et non l'ID de la table, peut-il être utilisé comme sélection dans la boîte de dialogue Sélectionner du rapport du journal de la base de données?
1
A
Répondre
3
Créez une nouvelle classe RunBaseReport
et n'oubliez pas de nommer le rapport SysDatabaseLog
dans la méthode lastValueElementName
.
Demande le nom de la table dans la méthode dialog
; utilisez le type de données étendu TableName
pour activer la recherche.
Object dialog()
{
DialogRunbase dlg = super();
;
dialogTableName = dlg.addFieldValue(typeId(TableName),tableId2Name(tableId));
return dlg;
}
Mise à jour de la gamme identifiant de table du queryRun.query()
dans la méthode getFromDialog
après avoir appelé super()
. Utilisez la fonction tableName2Id
pour convertir en ID de table.
boolean getFromDialog()
{
boolean ret = super();
;
tableId = tableName2Id(dialogTableName.value());
this.queryrun().dataSourceNo(1).findRange(fieldNum(SysDatabaseLog,Table)).value(queryValue(tableId));
return ret;
}
Dans la méthode validate
, vérifier que le nom de la table est valide (id de table 0, table non température etc.).
Enfin, vous modifiez l'élément de menu de sortie pour qu'il pointe vers la classe plutôt que vers le rapport.
Attention: le code n'a pas été testé!
"Mettez à jour la plage d'ID de la table queryRun.query() dans la méthode getFromDialog après avoir appelé super(). Utilisez la fonction tableName2Id pour la convertir en ID de table." Je suis un peu coincé avec ce qui précède - pourriez-vous clarifier un peu plus pour moi? - Merci beaucoup pour votre aide, –
Réponse avait été mise à jour. –
Merci à un million - je l'ai eu en travaillant en hacker un peu avec toute l'aide que vous avez fournie. –