zoukankan      html  css  js  c++  java
  • ABAP如何实现合计字段分单位合计

    1、增加一个参量 在你所要合计的FIELD 中添加一个 CFIELDNAME或者qfieldname = 你的单位的FIELD
    2、Here is a simple example.
    1) Add a unit field "UNIT" for PCS and TON
    2) Refer to the unit measure field to the number field

    REPORT ztest NO STANDARD PAGE HEADING  LINE-SIZE 170.
    * ALV
    TYPE-POOLS: slis.

    TYPES: BEGIN OF typ_data,
           key(10),
           num  TYPE i,
           unit TYPE lvc_quan,
         END OF typ_data.
    *--------------------------------------------------------------------
    * g l o b a l   d a t a
    *--------------------------------------------------------------------
    DATA gt_outtab   TYPE TABLE OF typ_data WITH HEADER LINE.
    DATA gt_fieldcat TYPE slis_t_fieldcat_alv.
    DATA gt_sort     TYPE slis_t_sortinfo_alv.
    DATA gs_variant  TYPE disvariant.

    *--------------------------------------------------------------------
    * Program constructor.
    *--------------------------------------------------------------------
    LOAD-OF-PROGRAM.
    ** For Display Variant
     gs_variant-report = sy-repid.
     PERFORM layout_sort_build CHANGING gt_sort.
     PERFORM prepare_field_catalog changing gt_fieldcat.

    *--------------------------------------------------------------------
    * s t a r t - o f - s e l e c t i o n.
    *--------------------------------------------------------------------
    START-OF-SELECTION.
     PERFORM selection.

     CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
              i_callback_program      = gs_variant-report
              it_fieldcat             = gt_fieldcat[]
              it_sort                 = gt_sort[]
              is_variant              = gs_variant
           TABLES
              t_outtab                = gt_outtab[]
           EXCEPTIONS
              program_error  = 1
              OTHERS         = 2.

    *&---------------------------------------------------------------------*
    *&      Form  prepare_field_catalog
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM prepare_field_catalog changing lt_fieldcat TYPE slis_t_fieldcat_alv..
     DATA ls_fieldcat TYPE slis_fieldcat_alv.

    * Key
     CLEAR ls_fieldcat.
     ls_fieldcat-fieldname    = 'KEY'.            "#EC *
     ls_fieldcat-tabname      = 'gt_outtab'.
     ls_fieldcat-reptext_ddic = 'Key'(020).       "#EC *
     ls_fieldcat-outputlen    = 10.
     ls_fieldcat-no_sum       = 'X'.
     ls_fieldcat-key          = 'X'.
     APPEND ls_fieldcat TO lt_fieldcat.

    * Num
     CLEAR ls_fieldcat.
     ls_fieldcat-fieldname    = 'NUM'.            "#EC *
     ls_fieldcat-tabname      = 'gt_outtab'.
     ls_fieldcat-reptext_ddic = 'Field Num'(021). "#EC *
    * QFIELDNAME - unit measure field
     ls_fieldcat-qfieldname   = 'UNIT'.           "关键所在
     ls_fieldcat-outputlen    = 10.
     ls_fieldcat-do_sum       = 'X'.
     APPEND ls_fieldcat TO lt_fieldcat.

    * UNIT
     CLEAR ls_fieldcat.
     ls_fieldcat-fieldname    = 'UNIT'.            "#EC *
     ls_fieldcat-tabname      = 'gt_outtab'.
     ls_fieldcat-reptext_ddic = 'Field Unit'(022). "#EC *
     ls_fieldcat-outputlen    = 10.
     ls_fieldcat-do_sum       = 'X'.
     APPEND ls_fieldcat TO lt_fieldcat.
    ENDFORM.                    "prepare_field_catalog
    *---------------------------------------------------------------------*
    *       FORM LAYOUT_SORT_BUILD                                        *
    *---------------------------------------------------------------------*
    *       Sorting                                                       *
    *---------------------------------------------------------------------*
    *  -->  LT_SORT                                                       *
    *---------------------------------------------------------------------*
    FORM layout_sort_build CHANGING lt_sort TYPE slis_t_sortinfo_alv.
     DATA ls_sort TYPE slis_sortinfo_alv.
    * Key
     CLEAR ls_sort.
     ls_sort-fieldname = 'KEY'.  "#EC *
     ls_sort-spos      = 1.
     ls_sort-up        = 'X'.
     ls_sort-subtot    = 'X'.
     APPEND ls_sort TO lt_sort.
    ENDFORM.  " LAYOUT_sort_build
    *&---------------------------------------------------------------------*
    *&      Form  selection
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    *  -->  p1        text
    *  <--  p2        text
    *----------------------------------------------------------------------*
    FORM selection .
    * load the testing data
     gt_outtab-key = 'Group 1'. gt_outtab-num = 10. gt_outtab-unit = 'PCS'.
     APPEND gt_outtab.
     gt_outtab-key = 'Group 1'. gt_outtab-num = 10. gt_outtab-unit = 'TON'.
     APPEND gt_outtab.
     gt_outtab-key = 'Group 1'. gt_outtab-num = 20. gt_outtab-unit = 'PCS'.
     APPEND gt_outtab.

     gt_outtab-key = 'Group 2'. gt_outtab-num = 20. gt_outtab-unit = 'TON'.
     APPEND gt_outtab.
     gt_outtab-key = 'Group 2'. gt_outtab-num = 40. gt_outtab-unit = 'PCS'.
     APPEND gt_outtab.
     gt_outtab-key = 'Group 2'. gt_outtab-num = 10. gt_outtab-unit = 'TON'.
     APPEND gt_outtab.
    ENDFORM.                    " selection 

    url:http://www.erphome.net/wdb/wdbread.php?forumid=14&filename=f_3206

  • 相关阅读:
    C#删除一个字符串数组中的空字符串
    .Net后台获取客户端信息
    Java Script
    ECMAScript闭包,ECMAScript对象
    Java Script函数、变量、对象
    JavaScript3
    JavaScript-2
    变量
    8.22收获
    html
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157260.html
Copyright © 2011-2022 走看看