通过列表插件控制引出原创
10人赞赏了该文章
1,237次浏览
编辑于2021年11月04日 17:11:47
由于各种原因,可能需要对列表引出进行控制
1)防止资源消耗太多,禁止引出数据太多
2)安全原因,禁止外网引出
3)特定用户,禁止引出数据等等等
下面示例通过列表插件,引出菜单点击事件,对引出进行控制
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Text.RegularExpressions; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Util; using Kingdee.BOS.Model.List; namespace Kingdee.BOS.TestPlugIn.ListPlugIn { [HotUpdate] [Description("列表引出点击事件")] public class ControlExportListPlugIn : AbstractListPlugIn { /// <summary> /// 控制列表引出 /// </summary> /// <param name="e"></param> public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (!StringUtils.EqualsIgnoreCase(e.BarItemKey, "btnExport"))//列表引出按钮key return; var isForbid = this. ForbidExportAtOver() var isForbid = this. IsOuterIp() e.Cancel = isForbid ; } //数据太多禁止引出 private bool ForbidExportAtOver() { var isForbid = false; int rowCount = 100000;// 比较阀值,自行定义 var listMode = this.Model as ListModel; // var rowCount = listMode.GetRowCount()["billrowcount"];//得到单据数 var listRowCount = listMode.GetRowCount(""); //得到列表行数 if (listRowCount > 100000) //超过阀值不允许引出 { isForbid = true; var msg = string.Format("列表行数超过了{0}行,不允许引出,请减少数据引出。", rowCount); this.View.ShowMessage(msg); } return isForbid ; } //是否为外网 public bool IsOuterIp(String ip) { //匹配10.0.0.0 - 10.255.255.255的网段 String pattern_10 = "^(\\D)*10(\\.([2][0-4]\\d|[2][5][0-5]|[01]?\\d?\\d)){3}"; //匹配172.16.0.0 - 172.31.255.255的网段 String pattern_172 = "172\\.([1][6-9]|[2]\\d|3[01])(\\.([2][0-4]\\d|[2][5][0-5]|[01]?\\d?\\d)){2}"; //匹配192.168.0.0 - 192.168.255.255的网段 String pattern_192 = "192\\.168(\\.([2][0-4]\\d|[2][5][0-5]|[01]?\\d?\\d)){2}"; //合起来写 String pattern = "((192\\.168|172\\.([1][6-9]|[2]\\d|3[01]))" + "(\\.([2][0-4]\\d|[2][5][0-5]|[01]?\\d?\\d)){2}|" + "^(\\D)*10(\\.([2][0-4]\\d|[2][5][0-5]|[01]?\\d?\\d)){3})"; Match matc = Regex.Match(this.Context.IpAddress, pattern); var isSucc = matc.Success; if (!isSucc ) //外网 { this.View.ShowWarnningMessage("外网不允许引出数据"); } return !isSucc; } } }
赞 10
10人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读