php控制打印次数,单据打印次数控制

本帖最后由 JohnnyDing 于 2016-5-26 11:20 编辑

弹出子界面,是异步进行的,也就是说,子界面还没有显示出来,外面的代码就跑完了。如果需要部分功能,在子界面关闭后,才进行处理,必须通过回调函数实现。

楼主的需求,建议按下面的步骤实现:

1. 重载 BarItemClick 事件,直接设置 e.Cancel,取消掉后续系统调用打印的处理;

2. 显示子页面,同时定义ShowForm函数的回调函数;

3. 在ShowForm回调函数中,接收返回的密码,进行用户校验

4. 用户校验通过,则通过this.View.InvokeFormOperation方法,调用打印操作;

如下示例代码,演示了如何打开一个子界面,并接收子界面返回值,如何直接调用打印操作;

//*****************************************************

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ComponentModel;

using Kingdee.BOS;

using Kingdee.BOS.Util;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

namespace JDSample.FormPlugIn.DynamicForm

{

///

/// 演示如何从子界面返回数据

///

///

/// 案例说明:

/// 1. 需要有两个界面,父界面通过按钮弹出子界面;

/// 2. 用户在子界面上编辑数据,确定后返回父界面;

///

[Description("演示如何从子界面返回数据 - 父界面插件")]

public class S150804ReturnInfoParentEdit : AbstractDynamicFormPlugIn

{

///

/// 菜单点击:

/// 如果调用的是打印菜单,则弹出子页面,供用户输入密码;

/// 只有密码正确,才继续调用打印操作

///

///

public override void BarItemClick(BarItemClickEventArgs e)

{

if (e.BarItemKey.EqualsIgnoreCase("tbPrint")

|| e.BarItemKey.EqualsIgnoreCase("tbPreview"))

{

// 禁止系统自动调用打印、预览操作:必须由插件在通过校验后,自行调用这两个操作

e.Cancel = true;

// 显示密码录入界面

DynamicFormShowParameter showParam = new DynamicFormShowParameter();

showParam.FormId = "1606a9d2-fd34-4616-8582-6e4f732664a9";

this.View.ShowForm(showParam,

new Action((formResult) =>

{// 回调函数:只有子界面关闭后,代码才会走到这里

if (formResult != null)

{

string password = ((S150804ReturnInfo)formResult.ReturnData).JD_Text;

// 校验密码:示例代码略

bool pass = true;

if (pass == false)

{

this.View.ShowMessage("密码错误!");

}

else

{

// 通过校验,主动调用打印、预览操作

if (e.BarItemKey.EqualsIgnoreCase("tbPrint"))

{

this.View.InvokeFormOperation("Print");

}

else if (e.BarItemKey.EqualsIgnoreCase("tbPreview"))

{

this.View.InvokeFormOperation("PrintPreview");

}

}

}

}));

}

}

}

[Description("演示如何从子界面返回数据 - 子界面插件")]

public class S150804ReturnInfoChildEdit : AbstractDynamicFormPlugIn

{

public override void ButtonClick(ButtonClickEventArgs e)

{

// 用户点击确定按钮

if (e.Key.EqualsIgnoreCase("F_JD_OK"))

{

// 构建返回数据对象

S150804ReturnInfo returnInfo = new S150804ReturnInfo();

returnInfo.JD_Text = Convert.ToString(this.Model.GetValue("F_JD_Text"));

// 把数据对象,返回给父界面

this.View.ReturnToParentWindow(new FormResult(returnInfo));

this.View.Close();

}

}

}

///

/// 由子窗体返回给父窗体的数据对象

///

class S150804ReturnInfo

{

public string JD_Text { get; set; }

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值