2016-04-27 8 views
1

Ich ändere die SalesConfirmDP-Klasse und versuche, das CustVendExternalItem.ExternalItemTxt-Feld in ein neues Feld, das ich erstellt habe, einzufügen. Ich habe ein paar Dinge ausprobiert, aber ich denke nicht, dass meine Syntax korrekt war, d. H. Ich deklariere die CustVendExternalItem-Tabelle in der Klassendeklaration. Aber wenn ich dann versuche, CustVendExternalItem.ExternalItemTxt in mein neues Feld einzufügen, füllt es sich nicht, ich denke, dass es eine Methode geben muss, die ich einschließen muss?Auftragsbestätigungsreport - SalesConfirmDP

Wenn jemand einen Vorschlag hat, würde es sehr geschätzt werden. Vielen Dank im Voraus.

private void setSalesConfirmDetailsTmp(NoYes _confirmTransOrTaxTrans) 
{ 
DocuRefSearch       docuRefSearch; 
// Body 
salesConfirmTmp.JournalRecId    = custConfirmJour.RecId; 

if(_confirmTransOrTaxTrans == NoYes::Yes) 
{ 
    if (printLineHeader) 
    { 
     salesConfirmTmp.LineHeader   = custConfirmTrans.LineHeader; 
    } 
    else 
    { 
     salesConfirmTmp.LineHeader   = ''; 
    } 
    salesConfirmTmp.ItemId     = this.itemId(); 
    salesConfirmTmp.Name     = custConfirmTrans.Name; 
    salesConfirmTmp.Qty      = custConfirmTrans.Qty; 
    salesConfirmTmp.SalesUnitTxt  =  custConfirmTrans.salesUnitTxt(); 
    salesConfirmTmp.SalesPrice    = custConfirmTrans.SalesPrice; 
    salesConfirmTmp.DlvDate     = custConfirmTrans.DlvDate; 
    salesConfirmTmp.DiscPercent    = custConfirmTrans.DiscPercent; 
    salesConfirmTmp.DiscAmount    = custConfirmTrans.DiscAmount; 
    salesConfirmTmp.LineAmount    = custConfirmTrans.LineAmount; 
    salesConfirmTmp.CurrencyCode   = custConfirmJour.CurrencyCode; 
    salesConfirmTmp.PrintCode    = custConfirmTrans.TaxWriteCode; 

    if (pdsCWEnabled) 
    { 
     salesConfirmTmp.PdsCWUnitId   = custConfirmTrans.pdsCWUnitId(); 
     salesConfirmTmp.PdsCWQty   = custConfirmTrans.PdsCWQty; 
    } 

    **salesConfirmTmp.ExternalItemText   = CustVendExternalItem.ExternalItemTxt;** 

    if ((custFormletterDocument.DocuOnConfirm == DocuOnFormular::Line) 
    || (custFormletterDocument.DocuOnConfirm == DocuOnFormular::All)) 
    { 
     docuRefSearch = DocuRefSearch::newTypeIdAndRestriction(custConfirmTrans, 
                   custFormletterDocument.DocuTypeConfirm, 
                   DocuRestriction::External); 
     salesConfirmTmp.Notes    = Docu::concatDocuRefNotes(docuRefSearch); 
    } 

    salesConfirmTmp.InventDimPrint   = this.printDimHistory(); 
+0

zu einer Lösung zu gelangen am Ende Könnten Sie bitte Ihren Code schreiben? Vielen Dank. – lrnzcig

+0

Es ist eine Standard-MS Dynamics AX-Klasse, das ** ist das Problemfeld –

+0

Können Sie hinzufügen, wo Sie CustVendExternalItem bevölkern? Haben Sie diesen Puffer in processReport() ausgewählt? –

Antwort

0

Nun, AX kann nicht erraten, welcher Datensatz Sie benötigen, ist eine Hilfsklasse CustVendExternalItemDescription damit umgehen:

boolean found; 
str externalItemId; 
... 
[found, externalItemId, salesConfirmTmp.ExternalItemText] = CustVendExternalItemDescription::findExternalItemDescription(
        ModuleCustVend::Cust, 
        custConfirmTrans.ItemId, 
        custConfirmTrans.inventDim(), 
        custConfirmJour.OrderAccount, 
        CustTable::find(custConfirmJour.OrderAccount).CustItemGroupId); 

Die findExternalItemDescription Methode liefert mehr Informationen als Sie hier benötigen, aber Sie müssen Definieren Sie Variablen, um sie trotzdem zu speichern.

+0

Danke, das hat super funktioniert –

0

Nun, die Schritte, um dieses Problem zu lösen, sind ziemlich einfach, und ich werde versuchen, Ihnen einen Schritt für Schritt Ansatz zu geben, wie Sie dieses Problem lösen können.

1) Initialisieren Sie CustVendExternalItem ordnungsgemäß? Machen Sie eine Aufzeichnung des gleichen und initialisieren Sie es, wie Jan oben gezeigt hat, debuggen Sie dann Ihren Code und sehen Sie, ob der Wert in Ihrer DP-Klasse initialisiert wird.

2) Wenn Ihr Wert korrekt initialisiert wird, aber es ist nicht im Report-Design dort zeigt, können mehrere Probleme sein, wie:

  • Overlapping von Textfeldern.

  • Zu wenig Platz für das Feld eines

  • Einige Berichtsparameter/Eigenschaft nicht korrekt, den
    Ihren Wert bewirkt gesetzt wird nicht zu dem Bericht zu zeigen.

    Schauen Sie sich diese eins nach dem anderen, und Sie sollten