zoukankan      html  css  js  c++  java
  • FBL3N Layout 及增强

    转自:https://www.cnblogs.com/sodacc/archive/2012/12/05/2802677.html


    形如FBL3N,FBL1N,FBL5N显示总账,供应商,客户账户行项目,其Layout所提供的内容往往不能满足用户千奇百怪的需求,现以FBL3N为例展现对其LAYOUT做变更的两种方式。

    进入FBL3N设置LAYOUT的方式,如下图,可将HIDDEN FIELDS选入即可。

    image

    image

    现如果需要显示Material,标准的layout中没有此项内容,该如何新增。

    方法一、通过Special Fiels选项添加

    进入FBL3N中,菜单settings-special fields,即进入配置layout的界面

    亦可通过SPRO进入(此处演示的是总账行项目的layout设置),其Tcode为 VBOU

    image

    进入如有权限配置,可新增field,注意此处只可从表 BESG BKPF中选择field,加入MATNR保存。

    image

    再进入LAYOUT在hidden field中即可看到MATERIAL。

    到此处问题出现了,既然VBOU中限制了表,那如果需要添加此表中不存在的field该如何操作,这个要求太自然不过了。

    如现在需要看到 在途科目的billing quantity,但此值存于表VBRP-FKIMG中,又该如何呢?

    OK,现在给出第二种解决方法,也是扩展性最强的方式。

    方法二、采用FI BTE(1650) 来实现

    业务背景:在FBL3N中显示在途科目的billing quantity

    上面已经说明找到此field存在于表VBRP-FKIMG中。

    依以下步骤执行:

    1.FIBF > Settings > Products > of a Customer

    添加所需的field,此处称为product,同时需要激活勾选Active

    image

    2.FIBF > Settings > P/S Mod > of a Customer

    添加内容

    Event:00001650

    Product:SEDUNM

    Ctr:SE

    Function Module:Z_FIxxxxxx

    注此处所写入的Function Module需在后续的步骤中去创建。

    image

    *****************************************************************************

    此处需要注意一点的是,在product 项 必须使用上面创建的product

    event:00001650

    product:ZFKIMNG(上面创建的field,用第一个就可以)

    fm:Z_FI_INTERFACE_00001650FM

    泣血提醒,如果这个地方设置错误,在进入FBL3N时将不会进入自定义的FM,谨记。

    *****************************************************************************

    3.Se11:Append Structure to RFPOS

    在Append Structure中写入你需要添加的field,保存激活。

    4.Se11:Append Structure to RFPOSX

    在RFPOSX中加入和RFPOS同样的field,保存激活。

    此处这两个structure则是控制layout的数据。

    5.Se37 Creating a Z Function Group.

    then Copy Function SAMPLE_INTERFACE_00001650 into ZSAMPLE_INTERFACE_00001650

    此处的ZSAMPLE_INTERFACE_00001650请与step2中的名称一致。

    此处需要加入code才能实现:

    给出示例代码,来自SCN sample,其作用是加入物料群组

    另说明在function model中务必将第一行注释取消掉。

    image

    复制代码
    E_POSTAB = I_POSTAB.
      data:
      ZMATNR type MATNR,
      ZMATKL type MATKL.
    
      select single MATNR from BSEG
              into  ZMATNR
          where MATNR <> ''
        AND BELNR = I_POSTAB-BELNR.
    
      select single MATKL from MARA
        into ZMATKL
        where MATNR = ZMATNR.
    
      E_POSTAB-ZZMATKL = ZMATKL.
    复制代码

    具体代码因人而异,此代码正确性不予置评,仅供参考。

    6.Se38 Run Report RFPOSXEXTEND  then click Yes

    此处执行的这个pm,是用来激活前面的两个structure 。

    在执行的时候,会提示如下页面

    image

    点击yes执行。

    如遇此种报错image

    请找Basis查看系统中是否有安装note 947573

    此Note控制这个设置。

    **********************************************************************

    此处修正一点,这个NOTE是不可以解决这个问题的,究竟为什么,因为这个NOTE解决的是报错 003

    至于这个原因是什么,我追究了好久,没有结果,有的人说是T021S这个表的问题,有的人说是别的NOTE,

    反正不管了,我给出我的解决方案。

    为什么要执行 RFPOSXEXTEND这个程序,其实就是为了将在RFPOS中新增的field加入到结构RFPOSXEXT中

    那不能执行这个程序难道就不能添加到这个结构中了吗,当然有更直白的方法,

    既然在RFPOS和RFPOSX中是采用Append Structure新增field,那么就直接采用Append Structure将

    field添加到RFPOSXEXT中不久可以了吗,就这么简单!

    所以最终的结果是在RFPOS、RFPOSX、RFPOSXEXT三个结构中Append Structure 新增的field,保存激活,OK!

    此处给我的教训就是,要弄清楚每一个步骤的意义是什么,否则还是没有真正学会它。

    ***********************************************************************

    到此为止,已经可以实现对layout的任意设置,任意TABLE,任意field。

    可尝试之,多测试,多实践,才能领悟更深。

  • 相关阅读:
    开源资源大汇总(C#)
    javascript必知必会之this关键字及scope(转)
    MSMQ 消息队列 安装MSMQ 创建发送接收队例消息
    精确获取页面元素的位置(转)
    javascript无缝滚动(转)
    C#多线程
    javascript十个最常用的自定义函数(转)
    ASP.NET——ASP.NET 数据库缓存依赖
    jQuery三维展示插件(转)
    Action和Func的区别
  • 原文地址:https://www.cnblogs.com/rainysblog/p/14184627.html
Copyright © 2011-2022 走看看