二开案例.表单插件.表格单元格显示提示信息(Tips)
【应用场景】
在单据或动态表单的表格中的文本字段的单元格上,设置提示信息(鼠标靠近后显示)。
注意:提示信息仅能在锁定状态的文本字段上使用。
【案例演示】
采购订单,明细信息单据体,在物料名称字段上设置提示信息。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.JSON; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System.ComponentModel; using System.Text; namespace Jac.XkDemo.BOS.Business.PlugIn { /// <summary> /// 【表单插件】表格单元格显示提示信息 /// </summary> [Description("【表单插件】表格单元格显示提示信息"), HotUpdate] public class ShowTipsFormPlugIn : AbstractDynamicFormPlugIn { public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey == "test") { SetTips(); } } private void SetTips() { var entityKey = "FPOOrderEntry"; // 单据体标识 var fieldKey = "FMaterialName"; // 需要显示tips的文本字段标识,不需要大写 var jsonArray = new JSONArray(); var objs = this.Model.GetEntityDataObject(this.View.BillBusinessInfo.GetEntity(entityKey)); for (var i = 0; i < objs.Count; ++i) { var rowIndex = i; // 行号索引从0开始 var materiaObj = objs[i]["MaterialId"] as DynamicObject; if (materiaObj == null) { continue; } // 生成tips文本 var tipsInfo = new StringBuilder(); tipsInfo.Append("物料编码:").Append(materiaObj["Number"]).Append(";"); tipsInfo.Append("物料名称:").Append(materiaObj["Name"]); var tipValues = new JSONObject(); tipValues["E"] = true; tipValues["T"] = tipsInfo.ToString(); // var tip = new JSONObject(); tip[rowIndex.ToString()] = tipValues; // var jsonObj = new JSONObject(); jsonObj["key"] = fieldKey; jsonObj["row"] = rowIndex; jsonObj["Tooltip"] = tip; jsonArray.Add(jsonObj); } this.View.GetControl(entityKey).InvokeControlMethod("UpdateFieldStates", jsonArray); } private void SetTips2() { var entityKey = "FPOOrderEntry"; // 单据体标识 var fieldKey = "FMaterialName"; // 需要显示tips的文本字段标识,不需要大写 var entryGrid = this.View.GetControl<EntryGrid>(entityKey); var objs = this.Model.GetEntityDataObject(this.View.BillBusinessInfo.GetEntity(entityKey)); for (var i = 0; i < objs.Count; ++i) { var rowIndex = i; // 行号索引从0开始 var materiaObj = objs[i]["MaterialId"] as DynamicObject; if (materiaObj == null) { continue; } // 生成tips文本 var tipsInfo = new StringBuilder(); tipsInfo.Append("物料编码:").Append(materiaObj["Number"]).Append(";"); tipsInfo.Append("物料名称:").Append(materiaObj["Name"]); var tip = new TooltipEntity(); tip.E = true; tip.T = tipsInfo.ToString(); entryGrid.SetCellTooltip(fieldKey, tip, rowIndex); } } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展采购订单,菜单集合新增一个test菜单,注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开采购订单编辑界面,录入订单明细数据,点击菜单test,再将鼠标移动到物料名称列的单元格上,就可看到提示信息啦。
---------------------------------------------------------------------------------------------------------
【参考资料】
【设置单据体只读单元格的显示隐藏,掩码,Tooltips与指定Tooltips内容】https://vip.kingdee.com/article/10180
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表单插件.表格单元格显示提示信息(Tips)
【应用场景】在单据或动态表单的表格中的文本字段的单元格上,设置提示信息(鼠标靠近后显示)。注意:提示信息仅能在锁定状态的文本字段上...
点击下载文档
本文2024-09-23 03:58:08发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162254.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章