2009-09-02 10 views

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é!

+0

"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, –

+0

Réponse avait été mise à jour. –

+0

Merci à un million - je l'ai eu en travaillant en hacker un peu avec toute l'aide que vous avez fournie. –