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

二开--老单序时簿添加自定义字段显示/过滤

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

二开--老单序时簿添加自定义字段显示/过滤

K3Wise老单指select * from ICTransactionType查询结果中的单据类型:比如销售订单、生产任务单等;


实际案例:

客户希望在 生产任务单汇报/请检 单序时簿上增加 2个字段显示

一个是物料的产品检验方式(物料基础资料的一个属性),

一个是分录是否完全检验(实作数量>检验数量)

然后品管部门能够再序时簿中过滤 全检、抽检的物料哪些单据还没有完成检验,提高系统的易用性。


分析可知他只需要再序时簿上做处理,单据界面中并不要求显示这些东西;

首先查找出单据的模板

select FTemplateID,* from ICListTemplate where FName = '任务单汇报/请检单'

image.webpFTemplateID = 603

然后添加字段:

delete ICChatbillTitle

where FTypeID = 603 and FColName = 'FCheckStatusName'

go

INSERT INTO ICChatbillTitle(FInterID, FTypeID, FColCaption, FHeadSecond, FColName, FTableName, FColType, FColWidth, FVisible, FItemClassID, FVisForQuest, FReturnDataType, FCountPriceType, FCtlIndex, FName, FTableAlias, FAction, FNeedCount, FIsPrimary, FLogicAction, FStatistical, FMergeable, FVisForOrder, FColCaption_CHT, FColCaption_EN, FControl, FMode, FControlType, FPrecisionField, FAlign, FEditable, FFormat, FFormatType, FMustSelected, FViseForTDC) 

VALUES(1102,603,'是否完全检验$','','FCheckStatusName','ICMORptEntry',1,1000,1,-1,1,0,0,70,'FCheckStatus','u1','CASE WHEN u1.FAuxQtyFinish>u1.FInspectionAuxQty THEN ''否'' ELSE ''是'' END',0,0,'',1,0,1,'检验状态$','Check status$',0,0,5,'',0,0,'',0,0,0)

go

image.webp

FinterID : 随意填写,但不要重复

可以通过脚本获取Select max(FinterID) + 1 from ICChatbillTitle where FTypeID = 603 and FColName = 'FCheckStatusName'

FTypeID:603 序时簿模板templateid

FColCaption:显示名必须以$字符结尾

FColName:由于是自定义的计算列字段,这个值可以随便填写,但必须保证唯一

FTableName:填写单据分录物理表

FItemClassID:-1,表示过滤时手工输入文本

FReturnDataType:0表示过滤时手工输入文本 与FItemClassID配合使用

FAction:当不为空时标识改字段是计算列,计算公式即FAction内容,本例中

CASE WHEN u1.FAuxQtyFinish>u1.FInspectionAuxQty THEN '否' ELSE '是';文本中的内容可以根据自己的需要来填写,

只要是能够再select 中正常输入的sql表达式即可(可以是值函数)

image.webp

效果图,过滤条件输入文本'是'能正确过滤出结果,文本内容是Action中的输出内容;


功能刚上线时,如果没有操作说明的情况下,操作者不知道到底该填什么值来过滤,可能会习惯性的按F7来选择值,

那如何能让计算列通过F7来选择,并返回是/否?

首先要找到一个辅助资料

image.webp

系统中正好存在一个辅助资料包含了这两个文本,并且两条记录FtypeID是完全一致的(244)

如果系统中没有能够匹配的,请自行去创建一个新的辅助资料类型;


然后执行脚本:

update ICChatbillTitle

set FReturnDataType = 2,FItemClassID = 244

where FTypeID = 603 and FInterID = 1102

--1102,刚才插入的序时簿列字段的FinterID

image.webp

这样就能F7选择标准值了;


如何把物料基础资料中的产品检验方式放到序时簿上去显示?

二开人员可能会习惯性的去打开bos设计器,或单据自定义到表体上去添加一个字段,然后搞携带,这种方式对于模板生效后的单据是有效的,但是模板生效前的单据是无效的。

image.webp

可以看到他后台,FNeedSave字段为1.所以不要去改单据模板;

image.webp

如果你已经添加这个字段,执行这段脚本调整他的序时簿显示,这样历史单据字段也能正常显示

nsert into ICTableRelation(FTypeID,FInterID,FTableName,FTableNameAlias,FFieldName,FTableName11,FTableNameAlias11,FFieldName11,FLogic,FBillID,FFieldID,FMode,FIndex,FCondition,FLeftParentheses,FRightParentheses,FLogicOperator,FISConst,FConstType,FSubFilter)

values(603,35,'t_ICItem','t5','FProChkMde','t_submessage','tChkMde','FInterID','=','','',0,0,'','','','=',0,0,'')

go

update ICChatBillTitle

set FTableName='t_subMessage',FItemClassID=171,FReturnDataType=2,FName='FName',FTableAlias='tChkMde'

wh

二开--老单序时簿添加自定义字段显示/过滤

K3Wise老单指select * from ICTransactionType查询结果中的单据类型:比如销售订单、生产任务单等;实际案例:客户希望在 生产任务单汇...
点击下载文档文档为doc格式

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

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