Axapta: Comment le nom de table, pas l'ID de table, être utilisé comme une sélection dans la boîte de dialogue Sélection de la base de données journal de rapport?

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

  •  21-09-2019
  •  | 
  •  

Question

Actuellement, seul le tableau Id peut être utilisé qui n'a pas de sens car il est un nombre. Un peu d'exemple de code serait vraiment grand.

Était-ce utile?

La solution

Créer une nouvelle classe RunBaseReport et souvenez-vous de nommer le rapport de SysDatabaseLog dans la méthode lastValueElementName.

Invite le nom de table dans le procédé de dialog; utiliser le type de données étendue de TableName pour activer la recherche.

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

Mettre à jour l'ID de table de la gamme queryRun.query() dans la méthode getFromDialog après avoir appelé super(). Utilisez la fonction tableName2Id pour convertir en table id.

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

Dans le procédé de validate, de valider ce nom de tableau est valide (id de table pas 0, table pas température, etc.).

Enfin, vous modifiez l'élément de menu de sortie pour pointer vers la classe plutôt que le rapport.

Attention: le code n'a pas été testé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top