筛选数据,将结果保存在自定义单据里
需求:
从某个单据中按指定条件筛选,并将结果放在自定义单据明细体内,且保存在数据库中。
分享下思路:
① 绘制带分录的单据,表头, 表体。
② 表头中添加过滤条件
③ 表体绘制需要的明细信息
④ 以下是python 说明
1. 对条件进行判断,是否有值。 转换成sql 需要的数据类型。
2. 编写查询sql,
3. 判断sql执行的结果对象,是否为空及有数据条数
4. 从结果对象中取值
5. 清空表体,迭代将数据插入表体对应字段中。每次都新建一行
6. 插入完成后, 刷新表体。 一开始没有刷新,前台页面只有一条记录,而且死活没值 。然后点新增,序号又是一个很大的值,说明插入成功了。
import clr clr.AddReference("System") clr.AddReference("System.Core") clr.AddReference("Kingdee.BOS") #clr.AddReference("Kingdee.BOS.Log") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.DataEntity") clr.AddReference("Kingdee.BOS.Contracts") clr.AddReference('Kingdee.BOS.ServiceHelper') from Kingdee.BOS import * from Kingdee.BOS.JSON import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Const import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.List import * #from Kingdee.BOS.Log import * from System import * from System.Collections.Generic import * from System.Linq import * from Kingdee.BOS.ServiceHelper import * #from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * from Kingdee.BOS.Core.DynamicForm import * def ButtonClick(e): if(e.Key=="F_XXX_BUTTON"): # 生成按钮 fdate =this.View.Model.GetValue("F_XXX_Date") # 日期 if fdate is not None: fdate =str(this.View.Model.GetValue("F_XXX_Date"))[0:10] fstockorgid =this.View.Model.GetValue("F_XXX_OrgId") # 组织 fmaterialid =this.View.Model.GetValue("F_XXX_Material") #物料 fproduceLine = this.View.Model.GetValue('F_XXX_SCX') if fdate is None or fstockorgid is None or fstockorgid==0 or fmaterialid is None or fmaterialid==0 or fproduceLine is None or fproduceLine ==0 : this.View.ShowMessage("请输入日期、组织、物料、生产线") return #简单生生产领料单 sqltext ='''select FDATE, FSTOCKORGID , F_XXX_SCX , FMATERIALID ,FAUXPROPID,FACTUALQTY from T_SP_PICKMTRL a inner join T_SP_PICKMTRLDATA b on a.fid=b.fid where a.FDOCUMENTSTATUS='C' and F_XXX_SCCP>0 and F_XXX_LLLX ='1' and F_XXX_SCX > 0 and FSTOCKORGID ={0} and FDATE=to_date('{1}','yyyy-mm-dd') and F_XXX_SCCP={2} and F_XXX_SCX={3} '''.format(fstockorgid['Id'],fdate,fmaterialid['Id'],fproduceLine['Id']) dyObjes = DBServiceHelper.ExecuteDynamicObject(this.Context, sqltext) if dyObjes is not None and dyObjes.Count>0: this.View.Model.DeleteEntryData("FEntity") # 删除单据体 rowid=0 for item in dyObjes: this.View.Model.CreateNewEntryRow("FEntity") this.View.Model.SetItemValueByID('F_XXX_RawMaterial',item["FMATERIALID"],rowid) this.View.Model.SetItemValueByID('F_XXX_Flex',item["FAUXPROPID"],rowid) this.View.Model.SetValue('F_XXX_Quantity',item["FACTUALQTY"],rowid) rowid=rowid+1 this.View.UpdateView("FEntity") else: this.View.ShowMessage("没有查询到数据") return
筛选数据,将结果保存在自定义单据里
需求: 从某个单据中按指定条件筛选,并将结果放在自定义单据明细体内,且保存在数据库中。分享下思路: ① 绘制带分录的单据,表头, ...
点击下载文档
上一篇:库存对应在库序列号查询SQL下一篇:SCM供应链/01基础资料
本文2024-09-16 18:07:38发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-20118.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章