
# 【应用场景】
单据审核成功后,自动调用打印操作;无法通过在设计器中配置菜单绑定两个操作(无法获取审核的状态),只能通过插件处理。
# 【案例】
采购订单审核成功后自动打印
<0>利用插件调用表单操作案例参考:[调用表单操作](https://vip.kingdee.com/article/104242911042083584)
<1>配置关联的表单插件和列表插件

本帖提供python和c#两个案例供参考。
以下为python案例:
```python
from System import *
def AfterDoOperation(e):
##审核操作Audit
if (not e.Operation == None) and e.Operation.Operation.Equals("Audit",StringComparison.OrdinalIgnoreCase):
if e.OperationResult == None or (not e.OperationResult.IsSuccess):
return;##操作不成功不执行
if (not e.OperationResult.ValidationErrors == None) and e.OperationResult.ValidationErrors.Count>0:
return;##操作存在失败项不执行
##this.View.InvokeFormOperation("Print");##单据界面调用打印
this.View.InvokeFormOperation("PatchSelectedPrint");##列表调用连续套打
```
以下为c#案例:
```csharp
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Util;
namespace DynamicFormPlugIn.NotePrint
{
public class AutoPrintAfterAuditBillPlugIn : AbstractBillPlugIn
{
public override void AfterDoOperation(AfterDoOperationEventArgs e)
{
if(e.Operation !=null && e.Operation.Operation.EqualsIgnoreCase("Audit"))
{
if (e.OperationResult == null || !e.OperationResult.IsSuccess)
return;
if (e.OperationResult.ValidationErrors != null && e.OperationResult.ValidationErrors.Count > 0)
return;
//单据界面调用打印
this.View.InvokeFormOperation("Print");
}
}
}
public class AutoPrintAfterAuditListPlugIn : AbstractListPlugIn
{
public override void AfterDoOperation(AfterDoOperationEventArgs e)
{
if (e.Operation != null && e.Operation.Operation.EqualsIgnoreCase("Audit"))
{
if (e.OperationResult == null || !e.OperationResult.IsSuccess)
return;
if (e.OperationResult.ValidationErrors != null && e.OperationResult.ValidationErrors.Count > 0)
return;
//列表调用连续套打
this.View.InvokeFormOperation("PatchSelectedPrint");
}
}
}
}
```
# 【效果】
审核成功后自动弹出打印交互界面
