9.2、表单插件,BeforeSave点击事件,询问,备注信息没有填写,是否继续原创
17人赞赏了该文章
8,447次浏览
编辑于2020年07月02日 15:27:04
摘要由AI智能服务提供
该文本描述了在软件开发过程中,对一个表单插件的BeforeSave点击事件进行校验的过程。目的是在保存表单前检查是否填写了备注信息,如果没有填写,则通过对话框询问用户是否继续保存。文本中包括了对之前代码的注释、引用提示对话框、条件判断及执行保存或取消操作的逻辑。通过多次尝试和调整代码,解决了弹窗重复出现的问题,并实现了在备注为空时弹出对话框,用户选择是否保存的功能。最终,通过重新生成dll并测试,验证了代码的有效性。
续
9.1、表单插件,BeforeSave点击事件,校验,不填备注,不让保存
1、注释,上一节代码
2、
//引用提示对话框 using Kingdee.BOS.Core.DynamicForm;
3、
//询问式,对话框 this.View.ShowMessage("备注信息没有填写,是否继续保存?", //提示信息:是、否 MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) => { if (result == MessageBoxResult.No) { //如果选择的否, e.Cancel = true; } }));
4、重新生成dll
5、重新打开销售订单,先填写必录信息,不填写备注,点保存,2个弹框同时出现,没有达到预期效果
6、注释,上面代码
7、
//不往下继续 e.Cancel = true; if (Convert.ToString(this.View.Model.GetValue("FNote")) == "") { //询问式,对话框 this.View.ShowMessage("备注信息没有填写,是否继续保存?", //提示信息:是、否 MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) => { if (result == MessageBoxResult.Yes) { //当点是的时候,调用保存操作 this.View.InvokeFormOperation("Save"); } })); }
8、重新生成dll
9、重新打开销售订单,先填写必录信息,不填写备注,点保存,只弹窗1个,但是点“是”,没有反应,死循环
10、注释,上面代码
11、
public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e) { base.BarItemClick(e); //如果是保存按钮 if (e.BarItemKey.Equals("tbSplitSave")) { //执行询问对话框 } }
//如果备注是空,弹出对话框,是否继续 //如果点击否,不保存 //如果点击是,保存 public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e) { base.BarItemClick(e); //如果是保存按钮 if (e.BarItemKey.Equals("tbSplitSave")) { //不往下继续 e.Cancel = true; //执行询问对话框 if (Convert.ToString(this.View.Model.GetValue("FNote")) == "") { //询问式,对话框 this.View.ShowMessage("备注信息没有填写,是否继续保存?", //提示信息:是、否 MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) => { if (result == MessageBoxResult.Yes) { //当点是的时候,调用保存操作 this.View.InvokeFormOperation("Save"); } })); } else { //如果备注不为空,直接调用保存操作 this.View.InvokeFormOperation("Save"); } } }
12、重新生成dll
13、重新打开销售订单,先填写必录信息,不填写备注,点保存,只弹窗1个
//如果备注是空,弹出对话框,是否继续 //如果点击否,不保存 //如果点击是,保存
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Kingdee.BOS; using Kingdee.BOS.Core.Bill.PlugIn; using System.ComponentModel; //引用提示对话框 using Kingdee.BOS.Core.DynamicForm; namespace Kingdee.Bos.ProJect.BillBeforeSave.Plugln { [Description("保存前事件BeforeSave")] [Kingdee.BOS.Util.HotUpdate] public class ClassName:AbstractBillPlugIn { //保存前事件 //public override void BeforeSave(BOS.Core.Bill.PlugIn.Args.BeforeSaveEventArgs e) //{ //base.BeforeSave(e); //保存的时候,校验,备注,必须填写,弹框提示 //获取备注的值,当备注等于空的时候 //if(Convert.ToString(this.View.Model.GetValue("FNote"))=="") //{ // //取消 // e.Cancel = true; // //弹框 // this.View.ShowMessage("请填写备注信息"); //} //if (Convert.ToString(this.View.Model.GetValue("FNote")) == "") //{ // //询问式,对话框 // this.View.ShowMessage("备注信息没有填写,是否继续保存?", // //提示信息:是、否 // MessageBoxOptions.YesNo, // new Action<MessageBoxResult>((result) => // { // if (result == MessageBoxResult.No) // { // //如果选择的否, // e.Cancel = true; // } // })); //} ////不往下继续 //e.Cancel = true; //if (Convert.ToString(this.View.Model.GetValue("FNote")) == "") //{ // //询问式,对话框 // this.View.ShowMessage("备注信息没有填写,是否继续保存?", // //提示信息:是、否 // MessageBoxOptions.YesNo, // new Action<MessageBoxResult>((result) => // { // if (result == MessageBoxResult.Yes) // { // //当点是的时候,调用保存操作 // this.View.InvokeFormOperation("Save"); // } // })); //} //} //如果备注是空,弹出对话框,是否继续 //如果点击否,不保存 //如果点击是,保存 public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e) { base.BarItemClick(e); //如果是保存按钮 if (e.BarItemKey.Equals("tbSplitSave")) { //不往下继续 e.Cancel = true; //执行询问对话框 if (Convert.ToString(this.View.Model.GetValue("FNote")) == "") { //询问式,对话框 this.View.ShowMessage("备注信息没有填写,是否继续保存?", //提示信息:是、否 MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) => { if (result == MessageBoxResult.Yes) { //当点是的时候,调用保存操作 this.View.InvokeFormOperation("Save"); } })); } else { //如果备注不为空,直接调用保存操作 this.View.InvokeFormOperation("Save"); } } } } }
总目录链接
https://vip.kingdee.com/article/64993872014591232
Kingdee.Bos.Test9.zip(16.73KB)
赞 17
17人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!