电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

#使用技巧# K3Cloud BOS 设计 Python & C# 表单、列表插件查看单据

来源:金蝶云社区作者:金蝶2024-09-163

#使用技巧# K3Cloud  BOS 设计 Python & C# 表单、列表插件查看单据

@[TOC](K3Cloud BOS 设计 Python & C# 表单、列表插件查看单据) > > ***强调:*** ==`C#`中使用`this`关键字的,在C#语法中,是可以省略的,但是在 `Python`中,`this`一定要加上!!!== > > > >**知识点:** > 1. 在表单中,查看源单、基础资料、或者其他单据 > 2. 在表单分录中,基础资料显示链接,只有在列表中可以显示链接 > 3. 在表单分录中,文本显示链接实现 [官方文章有说明](https://wenku.my7c.com/article/89775201851601408?productLineId=1&isKnowledge=2) > # 1.场景 > 1. 不喜欢用 【上查】【下查】功能,比较麻烦 > 2. 二开单据中,使用文本存储单据编号、物料编码等 > 3. 在表单分录中,物料无法直接查看内容(只能在列表点开链接、或者编辑时打开链接) > 4. 在列表中,使用文本存储单据编号、物料编码等 # 2.方案 ==方案中,我写的formId不符合开发规则,大家不要学我哈== > 1. 单据头中:文本字段,附近增加按钮,可以点击查看单据或者资料信息 > 2. 单据体中:使用双击事件,查看信息 > 3. 列表界面:设置文本显示链接,点击链接查看表单 ## 1.单据头,增加按钮 打开表单 ![image.webp](/download/0100f5245cb3366d4e09acaedb854e57ef84.webp)![Alt text](./1669281009283.webp) ### C# 实现 ```csharp /// <summary> /// 查看表单 /// </summary> /// <param name="view">this.View</param> /// <param name="form_id">单据唯一标识</param> /// <param name="pkId">单据主键Id值</param> public static void Show_BillFrm(IDynamicFormView view, string form_id, string pkId) { var showParam = new BillShowParameter() { Context = view.Context, FormId = form_id, Status = OperationStatus.VIEW, // VIEW 查看模式 EDIT 编辑模式 PermissionItemId = PermissionConst.View, PKey = pkId, PageId = Guid.NewGuid().ToString(), ParentPageId = view.PageId }; view.ShowForm(showParam); } public override void ButtonClick(ButtonClickEventArgs e) { base.ButtonClick(e); if (e.Key == "F_VBMP_BUTTON")// F_VBMP_BUTTON,按钮标识 { var billNo = this.Model.GetValue("FJFBILLNO"); if (!billNo.IsNullOrEmptyOrWhiteSpace()) { var formId = "k50abce840fe94c8a853cb6787c071d99";// 单据标识,我这写的不标准。。 var requisitionMetadata = (FormMetadata)MetaDataServiceHelper.Load(this.Context, formId); var select_Infos = new List<SelectorItemInfo>(); select_Infos.Add(new SelectorItemInfo("FID"));// var oqFilter = OQLFilter.CreateHeadEntityFilter(string.Format("FBillNo = '{0}'", billNo));// 过滤器,按 sql 语法即可 var objs = BusinessDataServiceHelper.Load(this.Context, requisitionMetadata.BusinessInfo, select_Infos,oqFilter); if (objs != null && objs.Count() > 0) { var pkId = objs[0]["Id"].ToString(); Show_BillFrm(this.View, formId, pkId.ToString()); } } } } ``` ### Python 实现 ```Python def Show_BillFrm(form_id, pkId): showParam = BillShowParameter() # 打开表单 showParam.Context = this.Context showParam.FormId = form_id showParam.Status = OperationStatus.VIEW # VIEW 查看模式 EDIT 编辑模式 showParam.PKey = pkId showParam.PageId = Guid.NewGuid().ToString() showParam.ParentPageId = this.View.PageId this.View.ShowForm(showParam) def ButtonClick(e): if (e.Key == "F_VBMP_BUTTON"): billNo = this.Model.GetValue('FJFBILLNO') if billNo != '': formId = "k50abce840fe94c8a853cb6787c071d99" requisitionMetadata = MetaDataServiceHelper.Load(this.Context, formId) select_Infos = List[SelectorItemInfo]() select_Infos.Add(SelectorItemInfo("FID")) oqFilter = OQLFilter.CreateHeadEntityFilter("FBillNo='{0}'".format(billNo)) objs = BusinessDataServiceHelper.Load(this.Context, requisitionMetadata.BusinessInfo, select_Infos, oqFilter) pkId = objs[0]["Id"].ToString() Show_BillFrm(formId, pkId) ``` ## 2.单据体,明细增加双击 打开表单 > 1. 基础资料,在表单分录中,无法显示链接 ### C# 实现 ```csharp public override void EntityRowDoubleClick(EntityRowClickEventArgs e) { base.EntityRowDoubleClick(e); if (Model.OpenParameter.Status != OperationStatus.EDIT) // 根据单据状态 设置允许双击 { if (e.ColKey == "FMATID") { var formId = "PLM_PDM_1010000000000000000"; var requisitionMetadata = (FormMetadata)MetaDataServiceHelper.Load(this.Context, formId); var pkId = (this.Model.GetValue(e.ColKey, 0) as King

#使用技巧# K3Cloud BOS 设计 Python & C# 表单、列表插件查看单据

@[TOC](K3Cloud BOS 设计 Python & C# 表单、列表插件查看单据)> > ***强调:*** ==`C#`中使用`this`关键字的,在C#语法中,...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信