K3 新单到老单关联字段的添加

新单到老单字段的添加分为两种:

       一种为文本字段信息的关联,新单与老单字段的信息均为文本字段;

       另一种为基础资料信息的关联,新单与老单均为基础资料字段信息。

      K3 WISE 11.0中存储老单关联字段信息的表为 ICSelbills ,该表的内部结构为:

         FID:表示下推目标单据的类型,其值主要关联在表ICTransActionType中的FID,该表内主要是各种单据的缩写类型;

        FFieldName:原单据在VB层面的标识单据编号的名称,在数据库中一般根据需要变更单据的内容来制定;

       FDstCtlField:目标单据中需要下推过去的目标字段数据库的名称;

       FSelType:目标字段的类型;0表示单据分录字段,2表示单据头字段,1表示该目标字段的当前值将会作为选单序时簿的过滤条件;

        FDK:用于表头控件,对于同一个目标字段,回填值用于区分基础资料与普通文本的方式;基础资料时 0-代表基础资料表中的内码FINTERID 或 FID,1-代表基础资料表中的名称FNAME ,2-代表基础资料中标的FNUMBER字段;

        FColName:源字段的别名,该名称一般为自己定义,对于字段的下推并没有什么太大意义,因为在软件内部的查询结果集中会给它们重新定义临时标准名称;

        FName:源字段的数据库字段名称,该名称需要查询BOS或者数据库找到该值;

        FTableName:源字段所在的表名称;

        FTableAlias:原表别名,在跟踪中并未发现实质性作用,一般根据原有表明进行定义,若没有的自己可定义;

        FAction:用于处理一些简单的字段值判断,或者是字段之间的运算,最为重要的是:基础资料中的查询信息,对应上面的FDK,基础资料的字段需要三类语句:

                   SELECT FINTERID FROM t_submessage WHERE FinterID=v1.FBase5

                   SELECT FNAME FROM t_submessage WHERE FinterID=v1.FBase5

                   SELECT FNUMBER FROM t_submessage WHERE FinterID=v1.FBase5

                   普通文本无该语句的要求,直接定义字段关系即可;

        FROB:目前为止并未发现实质性作用;

        FAllowEdited:猜想为应该是控制下推目标单据显示后,字段的可编辑性,目前还未进行求证;

 

     

文本关联信息的下推实例      

insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0142'    ,2    ,0    ,'FText10',    'FText1',    't_RPContract',    'v1',    '',    0,    0)
insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0142'    ,2    ,1    ,'FText11',    'FText1',    't_RPContract',    'v1',    '',    0,    0)
insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0142'    ,2    ,2    ,'FText12',    'FText1',    't_RPContract',    'v1',    '',    0,    0)

基础资料关联的实例

insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0179'    ,2    ,0    ,'FBase30',    'FBase3',    't_RPContract',    'v1',    '(SELECT FName FROM t_submessage WHERE FinterID=v1.FBase3)',    0,    0)
insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0179'    ,2    ,1    ,'FBase31',    'FBase3',    't_RPContract',    'v1',    '(SELECT FName FROM t_submessage WHERE FinterID=v1.FBase3)',    0,    0)
insert into ICSelbills 
(FID,    FFieldName,    FDstCtlField,    FSelType,    FDK,FColName,    FName    ,FTableName,    FTableAlias,    FAction,    FROB,    FAllowEdited)
values
('S01',    'FContractID',    'FHeadSelfS0179'    ,2    ,2    ,'FBase32',    'FBase3',    't_RPContract',    'v1',    '(SELECT FName FROM t_submessage WHERE FinterID=v1.FBase3)',    0,    0)

总述:变更的方式均为相同,区别在于是否要添加查询语句;

转载于:https://www.cnblogs.com/caipanlong123/p/11065784.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值