2009-04-29 7 views
1

Edit: Das Ziel ist es, Zitat Dokumente zu machen, die für den Kauf Anforderungen zur Verfügung Personal angebracht waren, dass der Kauf Orders direkt eine auf einfache Weise verarbeitet, ohne sich selbst zurück zu dem Anforderungsdokument navigieren zu müssen.Dynamics AX: Wie kann ich ein Dokuview-Dokument öffnen, das einer Bestellanforderung aus einer Bestellung zugeordnet ist?

Ich möchte die DocuRef::openDocHandling Methode aus dem Bestellungsbild verwenden, ohne das Dokument zu duplizieren, das mit der Bestellanforderung verknüpft war. Ich möchte dies über einen Button tun, den ich dem Bestellungsbildschirm hinzufügen werde. Ich weiß, welche Bestellnummer mit der Bestellung verknüpft ist.

Vielen Dank im Voraus.

Antwort

3

Fügen Sie im Formular PurchTable eine Datenquelle VendPurchOrderJour mit der (aktiven) Bestellanforderung hinzu. Sie müssen keines der Felder der Datenquelle anzeigen, daher können Sie die Eigenschaft OnlyFetchActive verwenden. Erstellen Sie dann die Formularmethode "docCursor", um dem DocuView-Formular mitzuteilen, welcher Datensatz der aktive ist.

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

Erstellen Sie die Schaltfläche mit einem "angeklickt" Methode:

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

Deaktivieren Sie das "reqDoc" in der "aktiven" Methode der PurchTable. Ich habe einen Kommentar über -

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

Hallo Jan, Ich bekomme das folgende Problem: 1. ReqDoc ist nicht deklariert. 2. Geben Sie einen Konflikt ein, wenn ich ihn in der Klassendeklaration als Typ common oder boolean deklariere, da er mit der angeklickten Methode kollidiert, für die er als wahr definiert ist. Ich bin noch nicht so erfahren - danke für Ihre Hilfe. –

+0

Hallo Jan, Bekam es dank Ihrer Hilfe zu arbeiten: Ich habe die folgenden Änderungen hinzugefügt: 1. Deklarierte reqDoc als Boolean in der Klassendeklaration. 2. hinzugefügte Deklaration: Common docCursor; nach docCursor Methode. 3. Geänderte Datenquelle von VendPurchOrderJour zu PurchReqTable und Referenzen darüber. Jetzt funktioniert es perfekt - dank einem Stapel –

1

Wenn Sie eine Schaltfläche will, sollte die Dokumentansicht öffnen, wenn sich nicht öffnen und aktivieren, wenn geöffnet, dann geklickt Methode wie folgt aussehen:

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

Ihre Frage auf Ihr Ziel ist unklar. Was willst du? Bitte erweitern.

+0

Dank Jan:

Diese Lösung erlaubt keine Dokumente über den Kauf Linien, können Sie die Lösung wie folgt aus (Linie ist eine Form Gruppe) erweitern müssen. –