2017-09-27 4 views
0

Ich arbeite an einem Formular in Acumatica, ich versuche InventoryID aus der Bestellung, speziell von POLine auszuwählen. Hier ist mein CodeFehler: 'Inventory ID' kann nicht im System gefunden werden

[PXDBInt()] 
[PXUIField(DisplayName = "Inventory ID")] 
[PXDefault()] 
[PXParent(typeof(Select<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<POInspectionDetail.inventoryID>>>>))] 
[PXSelector(typeof(Search2<POLine.inventoryID, 
     LeftJoin<POInspectionDetail, On<POLine.inventoryID, Equal<POInspectionDetail.inventoryID>>>, 
     Where<POLine.orderNbr, Equal<Current<POInspection.orderNbr>>, 
     And<POLineExt.qControl, Equal<True>>>>), 
      typeof(POLine.siteID), 
      typeof(POLine.orderQty), 
      typeof(POLineExt.qControl))] 
public int? InventoryID { get; set; } 

public class inventoryID : IBqlField{} 

ich die ID wie in diesem Bild sehen kann Selector, aber wenn ich es aus, es zeigt mir den Fehler.

Können Sie mir helfen, dies zu lösen? Vielen Dank im Voraus

EDIT

protected void POInspectionDetail_RowSelected(PXCache cache, PXRowSelectedEventArgs e) 
{ 
    POInspectionDetail poInspectiondetail = e.Row as POInspectionDetail; 



    if(poInspectiondetail.InventoryID != null) 
    { 
     POLine polines = (POLine)PXSelectorAttribute.Select<POInspectionDetail.inventoryID>(cache, poInspectiondetail); 

     poInspectiondetail.WarehouseID = polines.SiteID; 
     poInspectiondetail.OpenQty = polines.OrderQty; 
     poInspectiondetail.QtyonReceipts = polines.ReceivedQty; 
    }  
} 

Error

+0

die Linie in dem entsandten Code hinzufügen, Zeile 30 (wie der Fehler weist darauf hin)? Außerdem sollten Sie die Felder in RowSelecting festlegen - nicht Zeile ausgewählt. Zeilenauswahl würde für ungebundene Felder sein. Zeile ausgewählt ist für UI-Logik wie sichtbar oder aktiviert. – Brendan

+0

diese Zeile, POLine polines = (POLine) PXSelectorAttribute.Wählen Sie (cache, poInspectiondetail); Ich habe versucht, Row Selecting und es tat nichts unglücklicherweise –

+0

sollten Sie cache.setvalueext <> in Rowselecting aufrufen, anstatt die Zeilenwerte wie in Ihrem Beispiel zu setzen. Erbt der POInspectionDetail-Dac von einem anderen DAC? Es könnte ein Konflikt mit Ihrem PXParent sein, der auf InventoryItem verweist. Versuchen Sie, dieses Attribut zu entfernen, und versuchen Sie es erneut. – Brendan

Antwort

0

ID Inventar des Benutzer angezeigt ist der CD-Wert - nicht der int-ID-Wert.

Das Problem, das Sie möglicherweise haben, ist die Auswahl oder Verwendung der ID vs CD-Wert?

In Ihrem Beispiel würde ich auf InventoryItem suchen und die 2 Tabellen, die Sie haben, beitreten.

Dann in Ihrem Selektor SubstituteKey = typeof(InventoryItem.InventoryCD), DescriptionField = typeof(InventoryItem.descr)

+0

Ich habe versucht, das, aber ich habe diesen Fehler, weil ich ein Ereignis hinzufügen möchten, die dieses Feld enthalten. Das Ereignis und der Fehler werden in der Frage aktualisiert –

Verwandte Themen