2009-11-11 15 views
0

Lorsque AX génère des formulaires et des grilles, toutes les recherches sont remplies correctement, mais l'ID de l'élément de recherche est affiché dans le formulaire. La seule façon de voir les valeurs qui ont du sens est de cliquer sur le champ - pas vraiment idéal. Est-il possible d'afficher la valeur de recherche dans le formulaire au lieu du numéro d'ID derrière elle?Axapta: Champ de recherche afficher la valeur de la chaîne au lieu de l'ID?

Je voudrais que le formulaire "tableB" affiche la tableA_value au lieu de la tableA_id.

tableA

  • tableA_id (int - Unique)
  • tableA_value (string - non unique)

tableB

  • tableB_id (int - Unique)
  • tableA_id (int - relation à tableA)
  • tableB_datafields (MISC)

Merci

Répondre

1

Impossible de trouver un moyen de changer la valeur de la recherche elle-même, donc je mettre un champ statique à côté qui met à jour chaque fois que la recherche est modifiée. Voici comment je fini par le faire:

Méthode d'affichage sur le tableau A:

display [datatype] lookupName(tableA _tableA) 
{ 
    ; 
    return tableB::find(_tableA.[tableA id column]).[tableB string column]; 
} 

Trouver Méthode dans le tableau B:

static tableB find([datatype] [lookup variable], boolean _forUpdate = false, 
ConcurrencyModel _concurrencyModel = ConcurrencyModel::Auto) 
{ 
[TableB] [tableB]; 

if ([lookup variable]) 
{ 
    if (_forUpdate) 
    { 
     tableB.selectForUpdate(_forUpdate); 
     if (_concurrencyModel != ConcurrencyModel::Auto) 
     { 
      tableB.concurrencyModel(_concurrencyModel); 
     } 
    } 

    select firstonly tableB 
     where tableB.[lookup column] == [lookup variable]; 
} 
return tableB; 

}

Ajouté à la fois le tableau A et B sources de données pour le formulaire.

Ajout d'un champ de type chaîne au formulaire.

Définissez la table A en tant que DataSource pour le champ et lookupName en tant que DataMethod.

Ajout d'une méthode modifiée dans le champ de recherche pour amener le champ statique mise à jour:

element.redraw(); 

Hope this helps quelqu'un.