静的メソッドなので、オーバーライドできません。また、グラフを処理中で、自分でリリースボタンを上書きすることができないため、T300のようにすることはできません。私は、処理された各AR文書のコールバックを渡すことでそれを達成することができました。
ARDocumentRelease
グラフのInitialize
メソッドを呼び出して、あなたが言ったようなロジックを無効にすることができます。コールバックパラメータを使用するReleaseDoc
を呼び出すだけで、デフォルトのコールバックパラメータを使用する必要があります。
ここで私は付属のコードです:あなたは、グラフの拡張機能を使用して、静的な関数をオーバーライドすることはできません
public class ARDocumentRelease_Extension : PXGraphExtension<ARDocumentRelease>
{
public override void Initialize()
{
ARSetup setup = Base.arsetup.Current;
Base.ARDocumentList.SetProcessDelegate(
delegate (List<BalancedARDocument> list)
{
List<ARRegister> newlist = new List<ARRegister>(list.Count);
foreach (BalancedARDocument doc in list)
{
newlist.Add(doc);
}
AddAdditionalLogicToRelease(newlist);
}
);
Base.ARDocumentList.SetProcessCaption("Release");
Base.ARDocumentList.SetProcessAllCaption("Release All");
}
public delegate void PostPorcessing(ARRegister ardoc, bool isAborted);
private void AddAdditionalLogicToRelease(List<ARRegister> newlist)
{
ARDocumentRelease.ReleaseDoc(newlist, true, null, delegate(ARRegister ardoc, bool isAborted) {
//Add your logic to handle each document
//Test to check if it was not aborted
});
}
}
が。私は、T300のトレーニングでAlexanderが記述したアプローチに従うことを強くお勧めします。 – Gabriel
私は、基本的なコンストラクタ呼び出しをオーバーライドし、静的なreleaseDocメソッド( 'conditionalReleaseDoc(...)'を呼び出す)を書き直し、mainメソッドに条件付きロジックを置くサンプルを実際に見つけました。これは期待どおりに動作します。 – pmfith