• 小技巧-如何在服务端插件中实现交互式的提示


    在单据进行保存、审核等操作时,常常需要把检查结果反馈给用户确认,甚至是多步骤确认,这种交互,暂时用BOS IDE难以实现,需要编写操作的服务端插件完成。

    如何编写操作的服务端插件,与主题无关,我们先略过,直奔主题:在插件代码中实现交互提示;
    1. 检查用户的确认信息,如果用户已经确认,则跳过检查,直接执行主功能:
    [code]// 定义交互来源标示,与其他检查区分,互不干扰
    string spensorKey = "???";
    bool ignore = false; // 用户是否已经确认过
    this.Option.TryGetVariableValue(spensorKey, out ignore);
    if (ignore || this.Option.HasInteractionFlag(spensorKey))
    {
    // TODO : 业务逻辑主代码
    return;
    }[/code]
    2. 定义提示信息显示模型。提示信息可能有多列、多行。通过信息显示模型可以自定义列、不断增加行:[code]// 提示信息的列标题,以“~|~”分开两列
    string titleMsg = "行号~|~物料编码~|~物料名称~|~单据数量~|~序列号数量~|~错误消息";
    // 对应的提示信息格式,以"~|~"分开两列,以{n}进行占位
    string errMsg = "{0}~|~{1}~|~{2}~|~{3}~|~{4}~|~{5}";
    K3DisplayerModel model = K3DisplayerModel.Create(Context, titleMsg);
    [/code]3. 向提示信息显示模型中,增加新的提示行:
    [code]string rowMsg = string.Format(errMsg, "msg1","msg2","msg3","msg4","msg5","msg6");
    ((K3DisplayerModel)model).AddMessage(rowMsg);[/code]

    4. 设置交互信息的整体属性,如整体提示,显示的按钮等:

    [code]// 设置一个整体的提示信息,提醒用户是否继续
    model.Option.SetVariableValue(K3DisplayerModel.CST_FormTitle, "有多条信息需要您确认,是否继续?");
    model.OKButton.Visible = true;
    model.OKButton.Caption = new BOS.LocaleValue("是", Context.UserLocale.LCID);
    model.CancelButton.Visible = true;
    model.CancelButton.Caption = new BOS.LocaleValue("否", Context.UserLocale.LCID);[/code]

    5. 给出错误提示,终止流程:[code]// 创建一个交互提示错误对象,并设置错误来源,相互隔离
    KDInteractionException ie = new KDInteractionException(spensorKey);
    ie.InteractionContext.InteractionFormId = FormIdConst.BOS_K3Displayer; // 提示信息显示界面
    ie.InteractionContext.K3DisplayerModel = model; // 提示内容
    ie.InteractionContext.IsInteractive = true; // 是否需要交互

    throw ie; // 抛出错误,终止流程[/code]

  • 相关阅读:
    关于工作中Git相关的总结
    浅谈MySQL的优化
    由内搜推送思考Kafka 的原理
    SOA和微服务架构
    Centos7.2 搭建Lamp服务器以及迁移WordPress个人博客详细过程
    MyISAM和InnoDB索引实现区别
    图解高内聚与低耦合
    图解Java常用数据结构(一)
    Java源码安全审查
    Java高并发之锁优化
  • 原文地址:https://www.cnblogs.com/liangyuwen/p/13272839.html
Copyright © 2020-2023  润新知