2017-09-19 10 views
0

今のところ私は次の要件を持っています:番号を持つことができますが、最初の入力中にも表示する必要があります自動入力フィールドを作る。この要件を実装している間、私は以下のことに気付きました:数字だけのために、 '0'、 '9'または '#'の入力マスクとして使用でき、 'C'では使用できません。しかし、私が '0'、 '9'または '#'を使用すると、そのフィールドに表示することはできません。しかし、入力マスクに 'C'を使用すると、非数値記号も入力する可能性があります。この問題を解決するには?表示<New>デフォルトの場合のみAcumaticaの番号

答えて

1

PXFieldStateクラスは入力マスクをカプセル化します。 FieldSelectingイベントハンドラは、入力マスクを動的に設定するのに適しています。 AutoNumberAttributeクラスをコピーし、FieldSelectingイベントハンドラに入力マスクを動的に設定することで、ニーズに合わせて変更することができます。

void IPXFieldSelectingSubscriber.FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e) 
{ 
    if (_AttributeLevel == PXAttributeLevel.Item || e.IsAltered) 
    { 
     string inputMask = e.ReturnValue == null || (e.ReturnValue is string && ((string)e.ReturnValue) == "<NEW>") ? "CCCCCCCC" : "########"; 
     e.ReturnState = PXStringState.CreateInstance(e.ReturnState, null, null, _FieldName, null, -1, inputMask, null, null, null, null); 
    } 
} 
関連する問題