2016-10-13 1 views
0

Ich versuche, den OrderType.POOrderType auf POOrderType.DropShip voreinzustellen. Ich habe versucht, zur Änderung der Attribute in der Anpassungs Manager folgende Möglichkeiten:Standard-PO-Typ zu 'Drop Ship' funktioniert nicht richtig

[PXDBString(2, IsKey = true, IsFixed = true)] 
[PXDefault(POOrderType.DropShip)] 
[POOrderType.List()] 
[PXUIField(DisplayName = "Type", Visibility = PXUIVisibility.SelectorVisible, Enabled = true)] 
[PX.Data.EP.PXFieldDescription] 

Aber beim Einfügen eines neuen Datensatzes, es tut nichts. Ich habe auch versucht, in einem Diagramm Erweiterung von POOrderEntry die CacheAttached Ereignis wie folgt verwendet:

public class POOrderEntryExt : PXGraphExtension<POOrderEntry> 
    { 
    [PXDBString(2, IsKey = true, IsFixed = true)] 
    [PXDefault(POOrderType.DropShip)] 
    [POOrderType.List()] 
    [PXUIField(DisplayName = "Type", Visibility = PXUIVisibility.SelectorVisible, Enabled = true)] 
    [PX.Data.EP.PXFieldDescription] 
    protected virtual void POOrder_OrderType_CacheAttached(PXCache sender) { } 

} 

auch dies nicht funktioniert. Dies gilt standardmäßig DropShip jedoch

Ich habe versucht, schließlich habe das RowInserting Ereignis mit als

protected virtual void POOrder_RowInserting(PXCache sender, PXRowInsertingEventArgs e) 
{ 
    POOrder poorder = (POOrder)e.Row; 
    if (poorder == null) return; 
    poorder.OrderType = POOrderType.DropShip; 
} 

folge, wenn ich die Drop-down auf dem Bildschirm verwenden, um ‚Normal‘ zu ändern zurück, es leert alle Felder und der Typ ist ebenfalls leer. Wenn ich wieder Normal wähle, werden die Daten in den Feldern korrekt angezeigt. Ich kann nicht herausfinden, was hier vor sich geht. Ich muss den Typ immer zweimal auswählen, um etwas anzuzeigen. Ich kann nicht sehen, warum das RowInserting-Ereignis dieses Verhalten verursachen würde ...

Antwort

0

Es gibt POOrder_OrderType_FieldDefaulting -Ereignis im POOrderEntry, wo Standardauftragstyp festgelegt ist.

protected virtual void POOrder_OrderType_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e) 
{ 
    e.NewValue = POOrderType.RegularOrder; 
} 

Es hat 'höhere Priorität' als PXDefault-Attribut (überprüfen Sie T200 Training für weitere Informationen). Sie müssen diesen Event-Handler also überschreiben.

+0

Versucht, dass - es funktioniert nicht. – pmfith

Verwandte Themen