2009-04-29 14 views
1

Edit: L'objectif est de rendre les documents de devis qui ont été fixés d'achat Réquisitions disposition du personnel qui traite l'achat Les commandes directement un de manière simple, sans avoir à revenir sur le document de demande lui-même.Dynamics AX: Comment puis-je ouvrir un document docuview joint à une demande d'achat à partir d'un bon de commande?

Je souhaite utiliser la méthode DocuRef::openDocHandling dans l'écran Bon de commande sans dupliquer le document lié à la demande d'achat. Je voudrais faire cela à partir d'un bouton que je vais ajouter à l'écran de commande d'achat; Je sais quel est le numéro de demande lié au bon de commande.

Merci beaucoup à l'avance.

Répondre

3

Dans le formulaire PurchTable, ajoutez une source de données VendPurchOrderJour avec la demande d'achat (active). Vous n'avez pas besoin d'afficher les champs de la source de données, vous pouvez donc utiliser la propriété OnlyFetchActive. Créez ensuite la méthode de formulaire "docCursor", pour indiquer au formulaire DocuView quel enregistrement est actif.

public Common docCursor() 
{ 
    return reqDoc ? vendPurchOrderJour : purchTable; 
} 

Créer le bouton avec une méthode "cliqué":

void clicked() 
{ 
    reqDoc = true; 
    if (!infolog.docu().isDocuViewSet()) 
     infolog.docu().note(element); 
    else 
     infolog.docu().setActive(); 
} 

Effacer la "reqDoc" dans la méthode "active" de PurchTable.

Cette solution ne permet pas de documents sur les lignes d'achat, vous devrez peut-être étendre la solution comme celui-ci (la ligne est un groupe de forme):

public Common docCursor() 
{ 
    return reqDoc ? vendPurchOrderJour : 
        line.contains(element.selectedControl()) ? purchLine : 
        purchTable; 
} 
+0

Bonjour Jan, Je reçois le problème suivant: 1. reqDoc n'est pas déclaré. 2. Tapez conflict si je le déclare comme type common ou boolean dans la déclaration de classe car il est en conflit avec la méthode cliquée où il est défini sur true. Je ne suis pas encore expierienced - merci pour votre aide. –

+0

Salut Jan, Je l'ai fait pour travailler grâce à votre aide: J'ai ajouté les modifications suivantes: 1. Déclaré reqDoc comme déclaration booléenne dans la classe. 2. déclaration ajoutée: Common docCursor; à la méthode docCursor. 3. Source de données modifiée de VendPurchOrderJour à PurchReqTable et références ci-dessus. Maintenant, il fonctionne parfaitement - grâce à une pile –

1

Si vous voulez un bouton pour ouvrir la vue du document, sinon ouvert et activer si elle est ouverte, votre méthode cliqué devrait ressembler à ceci:

void clicked() 
{ 
    if (!infolog.docu().isDocuViewSet()) 
     infolog.docu().note(element); 
    else 
     infolog.docu().setActive(); 
} 

Votre question ne sait pas sur votre objectif. Que voulez-vous? Veuillez développer.

+0

Merci Jan - J'ai ajouté un commentaire ci-dessus. –