K3Cloud BOS设计 Python 插件 弹出列表
K3Cloud BOS设计 Python 插件 弹出列表并筛选
C#插件参照
下载
添加文本控件
添加一个 【文本】控件,属性中勾选 【显示编辑按钮】,输入【标识】、【字段名】、【绑定实体属性】
表单插件
- 点击【注册Python脚本/编辑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);