Chinaunix首页 | 论坛 | 博客
  • 博客访问: 235022
  • 博文数量: 90
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-04 15:21
文章分类

全部博文(90)

文章存档

2010年(7)

2009年(83)

我的朋友

分类:

2009-03-30 18:10:32

*&      Form  f_get_prodh
*&---------------------------------------------------------------------*
*       Form to get value request for Product Hierarchy components
*----------------------------------------------------------------------*
*      -->FP_C_PRODH   Constant for product Hiararchy
*----------------------------------------------------------------------*
FORM F_GET_PRODH  USING    FP_C_PRODH  TYPE ANY
                  CHANGING FP_PRODH    TYPE ANY.
  DATA: L_I_PRODHSINFO    TYPE STANDARD TABLE OF DD03P,
        L_WA_PRODHSINFO   TYPE DD03P,
        L_WA_PRODHS TYPE PRODHS.
  DATA: L_ROOT     TYPE T179-PRODH,
        L_STUFE    TYPE T179-STUFE VALUE 1,
        L_KP_PRODH TYPE T179-PRODH,
        L_PRODHS_NAME1 TYPE CHAR30,
        L_PRODHS_NAME2 TYPE CHAR30.
  FIELD-SYMBOLS: TYPE ANY.

  CALL FUNCTION 'RV_PRODUKTHIERARCHIE_INFO'                 "#EC *
  TABLES
    FPRODHSINFO    = L_I_PRODHSINFO
  EXCEPTIONS
    TOO_MANY_LEVEL = 1
    OTHERS         = 2.
  IF SY-SUBRC <> 0.                                         "#EC NEEDED
  ENDIF.
 
  CONCATENATE 'L_WA_PRODHS' '-' FP_C_PRODH   INTO L_PRODHS_NAME1.

  LOOP AT L_I_PRODHSINFO  INTO L_WA_PRODHSINFO.
    CONCATENATE 'L_WA_' L_WA_PRODHSINFO-TABNAME '-'
    L_WA_PRODHSINFO-FIELDNAME INTO L_PRODHS_NAME2.
    IF L_PRODHS_NAME1 = L_PRODHS_NAME2.
      EXIT.
    ELSE.
      ASSIGN (L_PRODHS_NAME2) TO .
    ENDIF.
    IF IS ASSIGNED.
      TRANSLATE USING ' +'.
      CONCATENATE L_ROOT INTO L_ROOT.
      L_STUFE = L_STUFE + 1.
    ENDIF.
  ENDLOOP.
  CALL FUNCTION 'RV_PRODUKTHIERARCHIE_SHOW'                 "#EC *
  EXPORTING
    ROOT           = L_ROOT
    SELMODE        = '2'
    STUFE          = L_STUFE
    DISPLAY        = 'X'
    SHOW_ONLY      = ' '
  IMPORTING
    NODE_PICKED    = L_KP_PRODH
  EXCEPTIONS
    ROOT_NOT_EXIST = 1
    TOO_MANY_LEVEL = 2
    OTHERS         = 3.
 
  IF ( SY-SUBRC = 0 ) AND ( NOT L_KP_PRODH IS INITIAL ).
    MOVE L_KP_PRODH TO L_WA_PRODHS .
    ASSIGN (L_PRODHS_NAME1) TO .
    IF IS ASSIGNED.
      FP_PRODH = .
    ENDIF.
  ENDIF.

ENDFORM.                    " f_get_prodh
 
 
----------------------------------------------------------------------------
*               Product Hierachy tree details                              *
----------------------------------------------------------------------------
    IF NOT -PRODH+0(2) EQ SPACE.
      -LINE    = -PRODH+0(2).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(2).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
    IF NOT -PRODH+2(2) EQ SPACE.
      -BRDGRP   = -PRODH+2(2).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(4).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
*End of Change by MOD-004.
    IF NOT -PRODH+4(3) EQ SPACE.
      -BRAND    = -PRODH+4(3).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(7).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
    IF NOT -PRODH+13(2) EQ SPACE.
      -PACKAGE  = -PRODH+13(2).
      L_WA_PRODH_LINE-SIGN = 'I'.
      L_WA_PRODH_LINE-OPTION = 'EQ'.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(15).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
    IF NOT -PRODH+7(3) EQ SPACE.
      -SBRAND    = -PRODH+7(3).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(10).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
    IF NOT -PRODH+10(3) EQ SPACE.
      -FLAVOR    = -PRODH+10(3).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(13).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
    IF NOT -PRODH+15(3) EQ SPACE.
      -SIZE    = -PRODH+15(3).
      L_WA_PRODH_LINE-SIGN = L_C_I.
      L_WA_PRODH_LINE-OPTION = L_C_EQ.
      L_WA_PRODH_LINE-LOW  = -PRODH+0(18).
      APPEND L_WA_PRODH_LINE TO L_R_PRODH.
    ENDIF.
阅读(546) | 评论(0) | 转发(0) |
0

上一篇:Client Copy

下一篇:Movement type concept

给主人留下些什么吧!~~