2017-02-08 2 views
0

zur Zeit mache ich einige Anpassung in "fügen Lager Artikel" von Kundenauftrag und Bestellung in Acumatica, in dieser Anpassung ich hinzugefügt "Markiert für" Spalte, aber es ist nicht editierbar, obwohl es schon da, wie kann ich es für die Benutzer editierbar machen?Anpassen Hinzufügen Lager Artikel in SO und PO

Anbei hier ist der Screenshot des benutzerdefinierten "Add stock item".

getan Dinge:

  • Erweiterte SoSiteStatusSelected DAC.
  • Herausgegeben aspx und fügte hinzu SO Marked For Für Spalte markiert Ihre SOOrderStatusSelected DAC Erweiterung

Antwort

1

Fügen Sie Ihr Feld. Es muss ein ungebundenes Feld sein, da der DAC nicht an eine Tabelle gebunden ist. Sie können weitere Logik in Ereignishandlern hinzufügen, um in der Datenbank zu bleiben.

public class SOSiteStatusSelectedExt : PXCacheExtension<PX.Objects.SO.SOSiteStatusSelected> 
{ 
    [PXString] 
    [PXUIField(DisplayName="Marked For")] 
    public virtual string UsrMarkedFor { get; set; } 
    public abstract class usrMarkedFor : IBqlField { } 
} 

das Feld in dem Ereignisse RowSelected SOOrderEntry Graph Erweiterung aktivieren:

public class SOOrderEntryExtension : PXGraphExtension<SOOrderEntry> 
{ 
    protected virtual void SOSiteStatusSelected_RowSelected(PXCache sender, PXRowSelectedEventArgs e) 
    { 
      PXUIFieldAttribute.SetEnabled<PX.Objects.SO.SOSiteStatusSelectedExt.usrMarkedFor>(sender, e.Row, true); 
    } 

Getestete in Acumatica v6.10.0010 für Salesorder Bildschirm:

enter image description here

+0

Ich erhalte einen Fehler "Objekt muss Art von Zeichenfolge sein", das ist, nachdem ich für einen Selektor von markierten für Bildschirm markiert. Ich habe versucht, den Datentyp in String zu ändern, aber der Fehler tritt immer noch auf. – JeffreyDRL

1

in SOSiteStatusLookup Graben ist, der Von INSiteStatusLookup geerbt, werden Sie feststellen, dass 'OnRowSelected' alle Felder mit Ausnahme von 'Selected' und 'QtyS' deaktiviert Gewählte Spalten. Außer Kraft setzen diese, versuchen Sie das Hinzufügen von folgenden zu einer SOOrderEntry Graph Erweiterung für jedes Feld, das Sie dieser Ansicht als editierbare hinzufügen möchten Ihre Neben ...

protected virtual void SOSiteStatusSelected_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected del) 
{ 
    del?.Invoke(sender, e);   

    PXUIFieldAttribute.SetEnabled<MyExtension.MyField>(sender, e.Row, true); 
} 

Ersetzen ‚My Extension‘ mit dem Klassenerweiterung Namen und ‚MyField 'mit der Markierung für den Feldnamen.

Verwandte Themen