zoukankan      html  css  js  c++  java
  • FI:Customize FBL3N Layout

    形如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。

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

    2012.12.05

  • 相关阅读:
    关于返回上一页功能
    Mybatis Update statement Date null
    SQLite reset password
    Bootstrap Validator使用特性,动态(Dynamic)添加的input的验证问题
    Eclipse使用Maven2的一次环境清理记录
    Server Tomcat v7.0 Server at localhost failed to start
    PowerShell一例
    Server Tomcat v7.0 Server at libra failed to start
    商标注册英语
    A glance for agile method
  • 原文地址:https://www.cnblogs.com/sodacc/p/2802677.html
Copyright © 2011-2022 走看看