2016-10-13 5 views
0

OrderType.POOrderTypeをPOOrderType.DropShipにデフォルト設定しようとしています。カスタマイズマネージャの属性を次のように変更しようとしました。デフォルトのPOタイプを 'Ship'が正しく動作しない

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

ただし、新しいレコードを挿入すると何も起こりません。私はまた、次のようにPOOrderEntryのグラフ拡張でCacheAttachedイベントを使用しようとしました:

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) { } 

} 

これも機能しません。私は戻って「標準」に変更するには、画面上のドロップダウンを使用した場合

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

これは降下船にデフォルトをDOESを次のように

は私が最終的にRowInsertingイベントを使用してみました、しかし、それはすべて空にまた、Typeも空です。もう一度Normalを選択すると、フィールドにデータが正しく表示されます。私はここで何が起こっているのか分かりません。私はいつも表示する何かを得るためにタイプを2回選択する必要があります。 RowInsertingイベントがこの動作を引き起こす原因がわかりません...

答えて

0

POOrderEntryには、デフォルトのオーダータイプが設定されていますが、POOrder_OrderType_FieldDefaultingイベントがあります。

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

PXDefault属性(詳細については、T200トレーニングを確認してください)よりも優先度が高くなっています。 このイベントハンドラをオーバーライドする必要があります。

+0

試してみるとうまくいかない。 – pmfith

関連する問題