> 文档中心 > K3Cloud BOS设计 Python 插件 弹出列表

K3Cloud BOS设计 Python 插件 弹出列表

K3Cloud BOS设计 Python 插件 弹出列表并筛选

  • C#插件参照
  • 下载
  • 添加文本控件
  • 表单插件
  • 1.Python 插件脚本
    • 1. 写窗体回调函数
    • 2. 封装弹出窗体函数
    • 3. 重写BeforeF7Select

C#插件参照

下载

添加文本控件

添加一个 【文本】控件,属性中勾选 【显示编辑按钮】,输入【标识】、【字段名】、【绑定实体属性】
K3Cloud BOS设计 Python 插件 弹出列表

表单插件

  1. 点击【注册Python脚本/编辑Python脚本】
  2. 输入【脚本名称】

K3Cloud BOS设计 Python 插件 弹出列表

1.Python 插件脚本

1. 写窗体回调函数

def SetModel(results):    if  results.ReturnData is None:  # 验证 返回内容是否为空 return;    m = results.ReturnData[0]    row = m.DataRow  # 获取选中行  前提是 单选,多选还未测试    this.View.Model.SetValue("FRECIPIENT_TEL", row["FMOBILE"]);  # row[""] 是取选中行中的字段值    this.View.Model.SetValue("FReveiceName", m.Name);  # m.Name 直接取官方字段属性

2. 封装弹出窗体函数

def Show_FrmList(form_id, filter_str):    showParam = ListShowParameter();  # 打开列表    showParam.Context = this.Context;    showParam.FormId = form_id;  # 填写需要打开窗体的唯一标识    showParam.IsShowApproved = True;  # 只显示已审核单据    showParam.IsLookUp = True;    showParam.MultiSelect = False;  # 单选    showParam.PermissionItemId = PermissionConst.View;    showParam.OpenStyle.ShowType = ShowType.Modal;    showParam.PageId = Guid.NewGuid().ToString();    showParam.ParentPageId = this.View.PageId;  # 当前窗体的Id         if filter_str != '':  # 判断筛选脚本是否为空,为空就跳过 showParam.ListFilterParameter.Filter = filter_str;    this.View.ShowForm(showParam, lambda x: SetModel(x));  # 打开窗体,并用lambda调用回调函数

3. 重写BeforeF7Select

def BeforeF7Select(e):  # 重写事件    if e.FieldKey.lower() == "freveicename":  # 判断    cusid = this.View.Model.DataObject["FCustomerID_Id"];    if  cusid != 0:  # 判断父级是否选择,是  执行下一步filter_str = "  FCustId = '%s'" % cusid;  # 拼写筛选脚本   Show_FrmList("BD_CustContact", filter_str);  # 调用 弹出窗体函数(封装后的)else:  # 否 弹出提示框 this.View.ShowMessage('请先选择开票客户或者选择合同号!', MessageBoxOptions.OK);