二开案例.表单插件.表格单元格显示提示信息(Tips)

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.表格单元格显示提示信息(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)

【应用场景】在单据或动态表单的表格中的文本字段的单元格上,设置提示信息(鼠标靠近后显示)。注意:提示信息仅能在锁定状态的文本字段上...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息