美文网首页
function alv程序(练习3)

function alv程序(练习3)

作者: 扇动蝴蝶的翅膀 | 来源:发表于2019-05-20 09:07 被阅读0次
  • 程序名 :ZABAP1903_07FUNCTIONALV
  • 主界面
*&---------------------------------------------------------------------*
*& Report  ZABAP1903_07FUNCTIONALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZABAP1903_07FUNCTIONALV.

INCLUDE ZLPJ_TOP.
INCLUDE ZLPJ_FORM.

*START-OF-SELECTION 下面是获取数据   END-OF-DEFINITION  下面是显示数据
START-OF-SELECTION .
  PERFORM GET_DATA.

END-OF-SELECTION.
  IF GT_STUDENT IS NOT INITIAL.      "在ZLPJ_TOP里面定义一个内表,用来对数据的输出
    PERFORM DISPLAY_DATA.
  ELSE.
    MESSAGE S000(LPJ) WITH 'NO DATA!' DISPLAY LIKE 'E'.
  ENDIF.
  • include top

*&---------------------------------------------------------------------*
*&  Include           ZLPJ_TOP
*&---------------------------------------------------------------------*

TYPE-POOLS SLIS.                             "所有的数据都来自于该类型池。


TYPES: BEGIN OF GTY_STUDENT.
TYPES: BOX TYPE C LENGTH 1.                   " 声明一个字段,功能:ALV报表的所有字段前面添加一个选中的按钮
        INCLUDE STRUCTURE ZSTUDENT_LPJ_01.
TYPES: ICON  TYPE C LENGTH 10.                "增加一个ICON的图标列
TYPES: CHECK TYPE C LENGTH 3.                 "增加一个复选框
TYPES: LINE_COLOR TYPE C LENGTH 4.            "增加颜色

TYPES: FIELD_COLOR TYPE LVC_T_SCOL.           "定义一个内表,用来存放不同字段的不同颜色值  设置单元格颜色  参照的类型记住
TYPES: END OF GTY_STUDENT.

DATA: GT_STUDENT TYPE TABLE OF GTY_STUDENT,
      GS_STUDENT TYPE GTY_STUDENT.

*FUNTION AVL
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,  "列属性
      GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

*LAYOUT是一个结构,存储整个b表单的全局设置****************************************************************************
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.        " 全局参数

DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV,      "排序
      GS_SORT TYPE SLIS_SORTINFO_ALV.

DATA: GT_FILTER TYPE SLIS_T_FIELDCAT_ALV,
      GS_FILTER TYPE SLIS_FIELDCAT_ALV.

DATA: GT_EVENTS TYPE SLIS_T_EVENT,           "CALLBACK事件
      GS_EVENTS  TYPE SLIS_ALV_EVENT.

*创建 宏                                     "宏里面传递的参数使用 & + 数字 :代表占位符;一个宏中最多可以定义9个参数
DEFINE %%APPEND_FIELDCAT.                    "&&开头,易于和其他变量区分
  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-COL_POS   = &1.
  GS_FIELDCAT-FIELDNAME = &2.
  GS_FIELDCAT-OUTPUTLEN = &3.
  GS_FIELDCAT-SELTEXT_M = &4.

  CASE &2.
    WHEN 'ZCODE'.
      GS_FIELDCAT-KEY  = 'X'.                 "设置为主键的那一列会变颜色
    WHEN 'ICON'.
      GS_FIELDCAT-ICON = 'X'.
    WHEN 'CHECK'.
      GS_FIELDCAT-CHECKBOX = 'X'.
      GS_FIELDCAT-EDIT     = 'X'.            "可编辑状态
    WHEN 'WEIGH'.
      GS_FIELDCAT-DO_SUM     = 'X'.             "当选中weigh列的时候,进行合计 (do_sum:只能用于数字类型I,P)
      GS_FIELDCAT-HOTSPOT    = 'X'.             "热点:光变会发生变化   给指定的字段设置热点,在LAYOUT里面给关键字设置热点
      GS_FIELDCAT-QFIELDNAME = 'ZUNIT'.         "内表中标明当前数值的单位的字段    (在表中WEIGH字段对应的单位的字段)
      GS_FIELDCAT-EMPHASIZE  = 'C610'.          "列 颜色设置:C+X(颜色1~7)+X(事否加重0/1)+X(是否反色0/1),第三位表明是字体还是底纹
    WHEN 'ZUNIT'.
      GS_FIELDCAT-EMPHASIZE  = 'C600'.
  ENDCASE.

  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.
  • include form
" DISPLAY_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .

  DATA: LS_SCOL TYPE LVC_S_SCOL.

  SELECT *
    FROM ZSTUDENT_LPJ_01
    INTO CORRESPONDING FIELDS OF TABLE GT_STUDENT.                      "GT_STUDENT中数据的输出,通过函数里面的export中的table输出

  LOOP AT GT_STUDENT INTO GS_STUDENT.
*图标
    IF GS_STUDENT-SEX = 'F'.
      GS_STUDENT-ICON = ICON_GREEN_LIGHT.                               " 通过ICON事物码去查看图标
    ELSE.
      GS_STUDENT-ICON = ICON_RED_LIGHT.
    ENDIF.

*行颜色        zname为空值的行设置颜色   颜色设置属于layout,
    IF GS_STUDENT-ZNAME IS INITIAL.
      GS_STUDENT-LINE_COLOR = 'C610'.
    ENDIF.

*单元格颜色                              颜色设置属于layout,
    "1. 给性别字段增加颜色
    IF GS_STUDENT-SEX IS INITIAL.
      CLEAR LS_SCOL.
      LS_SCOL-FNAME = 'SEX'.     "字段
      LS_SCOL-COLOR-COL = 6.    "颜色
      LS_SCOL-COLOR-INT = 1.    "加重
      LS_SCOL-COLOR-INV = 0.    "反色
      APPEND LS_SCOL TO GS_STUDENT-FIELD_COLOR.
    ENDIF.

    "1. 给姓名字段增加颜色
    IF GS_STUDENT-ZUNIT IS INITIAL.
      CLEAR LS_SCOL.
      LS_SCOL-FNAME = 'ZUNIT'.     "字段
      LS_SCOL-COLOR-COL = 1.    "颜色
      LS_SCOL-COLOR-INT = 1.    "加重
      LS_SCOL-COLOR-INV = 1.    "反色
      APPEND LS_SCOL TO GS_STUDENT-FIELD_COLOR.
    ENDIF.
    MODIFY GT_STUDENT FROM GS_STUDENT.
  ENDLOOP.
ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&  Include           ZLPJ_FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
  PERFORM  BUILD_FIELDCAT.     "给GT_FIELDCAT内表 增加数据(可以查看)   fieldcat:输出列     使用宏和perform都可以
  PERFORM  BUILD_LAYOUT.       "LAYOUT是一个结构,,存储的是整个表单的全局设置
  PERFORM  BUILD_SORT.
*  PERFORM  BUILD_FILTER.      "未实现

  PERFORM BUILD_EVENTS.
  PERFORM  BUILD_ALV.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  BUILD_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_ALV .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK           = ' '
*     I_BYPASSING_BUFFER          = ' '
*     I_BUFFER_ACTIVE             = ' '
      I_CALLBACK_PROGRAM          = SY-CPROG               "Name of the calling program:Name of the calling program;SY-CPROG:调用程序名 (call program)
      I_CALLBACK_PF_STATUS_SET    = 'SET_STATUS'           " 不需要再去传参: IT_EVENTS = GT_EVENTS;二选一
      I_CALLBACK_USER_COMMAND     = 'FM_USER_COMMAND'
*     I_CALLBACK_TOP_OF_PAGE      = 'FM_TOP_OF_PAGE'       "或者使用event事件  添加表头
      I_CALLBACK_HTML_TOP_OF_PAGE = 'FM_HTML_TOP_OF_PAGE'  "动态添加表头   (动态优先级大于静态)
*     I_CALLBACK_HTML_END_OF_LIST = ' '
*     I_STRUCTURE_NAME            =
*     I_BACKGROUND_ID             = ' '
      I_GRID_TITLE                = 'ALV报表的title'
*     I_GRID_SETTINGS             =
      IS_LAYOUT                   = GS_LAYOUT
      IT_FIELDCAT                 = GT_FIELDCAT                   "进入函数,根据字段描述查找
*     IT_EXCLUDING                =
*     IT_SPECIAL_GROUPS           =
      IT_SORT                     = GT_SORT
*     IT_FILTER                   = GT_FILTER
*     IS_SEL_HIDE                 =
*     I_DEFAULT                   = 'X'
*     I_SAVE                      = ' '
*     IS_VARIANT                  =
      IT_EVENTS                   = GT_EVENTS
*     IT_EVENT_EXIT               =
*     IS_PRINT                    =
*     IS_REPREP_ID                =
*     I_SCREEN_START_COLUMN       = 0
*     I_SCREEN_START_LINE         = 0
*     I_SCREEN_END_COLUMN         = 0
*     I_SCREEN_END_LINE           = 0
*     I_HTML_HEIGHT_TOP           = 0
*     I_HTML_HEIGHT_END           = 0
*     IT_ALV_GRAPHICS             =
*     IT_HYPERLINK                =
*     IT_ADD_FIELDCAT             =
*     IT_EXCEPT_QINFO             =
*     IR_SALV_FULLSCREEN_ADAPTER  =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER     =
*     ES_EXIT_CAUSED_BY_USER      =
    TABLES
      T_OUTTAB                    = GT_STUDENT
    EXCEPTIONS
      PROGRAM_ERROR               = 1
      OTHERS                      = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.                    " BUILD_ALV
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

"向GT_FIELDCAT 内表加入行后,会执行函数,将其GT_FIELDCAT输给IT_FIELDCAT,用于规定ALV表单输出的时候每一列的基本属性,用于输出GT_STUDENT,通过GET_DATA,给GT_STUDENT进行数据的增加。
FORM BUILD_FIELDCAT .
*创建宏之后,使用
  %%APPEND_FIELDCAT: '1' 'ZCODE'   '10' '学生编号',
                     '2' 'ZNAME'   '20' '姓名',
                     '3' 'SEX'     '3'  '学生性别',
                     '4' 'ZSCHOOL' '20' '学生所在学校',
                     '5' 'WEIGH'   '15' '体重',
                     '6' 'ZUNIT'   '10' '单位',
                     '7' 'ICON'    '10' '图标',
                     '8' 'CHECK'   '3'  '复选框'.




ENDFORM.                    " BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
  GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.       "优化列宽,自适应,覆盖之前设置的length
  GS_LAYOUT-ZEBRA             = 'X'.       "设置斑马纹
  GS_LAYOUT-KEY_HOTSPOT = 'X'.             "给关键字设置热点
  GS_LAYOUT-BOX_FIELDNAME = 'BOX'.         "内表中字段名称- 定义为当前的选择按钮

  GS_LAYOUT-DETAIL_INITIAL_LINES = 'X'.    "运行,选择详细按钮查看详细信息的时候,会显示所有字段的信息,即使该字段为空,也会显示

  GS_LAYOUT-WINDOW_TITLEBAR = '窗体抬头'.  "修改程序名
  GS_LAYOUT-CONFIRMATION_PROMPT = 'X'.     "推出的时候提示是否退出的确认框    CONFIRMATION:确认,  PROMPT:提示

*颜色
  GS_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.  "以行位单位进行设置颜色

  GS_LAYOUT-COLTAB_FIELDNAME = 'FIELD_COLOR'."单元格颜色
ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  BUILD_SORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_SORT .

**按照学校升序
  CLEAR GS_SORT.
  GS_SORT-SPOS      = '1'.
  GS_SORT-FIELDNAME = 'ZSCHOOL'.
  GS_SORT-UP        = 'X'.
  GS_SORT-SUBTOT    = 'X'.   " 小计,根据不同的单位去计算
  APPEND GS_SORT TO GT_SORT.

*按照性别降序
  CLEAR GS_SORT.
  GS_SORT-SPOS = '2'.        "在学校升序的基础上对性别进行降序
  GS_SORT-FIELDNAME = 'ZNAME'.
  GS_SORT-DOWN        = 'X'.
  APPEND GS_SORT TO GT_SORT.
ENDFORM.                    " BUILD_SORT
*&---------------------------------------------------------------------*
*&      Form  BUILD_FILTER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_FILTER .
*该功能没有实现
*  CLEAR GS_FILTER.
*  GS_FILTER-FIELDNAME = 'SEX'.  "字段名
*  GS_FILTER-SIGN0 = 'E'.        "不包含
*  GS_FILTER-OPTIO = 'EQ'.       "等于
*  GS_FILTER-VALUF = ''.         "空值
*  APPEND GS_FILTER TO GT_FILTER.
ENDFORM.                    " BUILD_FILTER
*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_EVENTS .

*前两个可以在function里面单独用,不需要再event事件里面可以

*添加按钮
  CLEAR GS_EVENTS.
  GS_EVENTS-NAME = 'PF_STATUS_SET'.                        "打开函数, IMPORTING里面找IT_EVENTS事件,查看长文本描述
  GS_EVENTS-FORM = 'SET_STATUS'.                           "form是一个子程序,需要在程序中声明这个子程序
  APPEND GS_EVENTS TO GT_EVENTS.CLEAR GS_EVENTS.

*添加点击事件
  CLEAR GS_EVENTS.
  GS_EVENTS-NAME = 'USER_COMMAND'.
  GS_EVENTS-FORM = 'FM_USER_COMMAND'.
  APPEND GS_EVENTS TO GT_EVENTS.

*添加表头
  CLEAR GS_EVENTS.
  GS_EVENTS-NAME = 'TOP_OF_PAGE'.
  GS_EVENTS-FORM = 'FM_TOP_OF_PAGE'.
  APPEND GS_EVENTS TO GT_EVENTS.

ENDFORM.                    " BUILD_EVENTS


*添加表头
FORM FM_TOP_OF_PAGE.
  DATA: LT_HEADER TYPE SLIS_T_LISTHEADER,                    "函数里面的events字段代码的453行
        LS_HEADER TYPE SLIS_LISTHEADER.

  CLEAR LS_HEADER.
  LS_HEADER-TYP = 'H'.                                      "当类型为H的时候,不需要key   三种类型:H = Header, S = Selection, A = Action
  LS_HEADER-INFO = '学生信息表'.
  APPEND LS_HEADER TO LT_HEADER.

  CLEAR LS_HEADER.
  LS_HEADER-TYP = 'S'.
  LS_HEADER-KEY = '当前日期:'.
  LS_HEADER-INFO = SY-DATUM.
  APPEND LS_HEADER TO LT_HEADER.


  CLEAR LS_HEADER.
  LS_HEADER-TYP = 'A'.
  LS_HEADER-INFO = '可查看的学生信息'.
  APPEND LS_HEADER TO LT_HEADER.


*添加表头调用的函数
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = LT_HEADER
*     I_LOGO             =
*     I_END_OF_LIST_GRID =
*     I_ALV_FORM         =
    .

ENDFORM .

FORM  SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.            "USING后面的参数和类型来源于长文本里面(上上条注释)
  SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB.                   " 通过长文本描述来进行代码编写    设定一个自己的按钮
ENDFORM.
*write语句定义按钮,参考ZABAP1903_07screen_selectio程序,使用END-OF-SELECTION.



FORM FM_USER_COMMAND  USING R_UCOMM     LIKE SY-UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.          "通过长文本获取using后面的参数
*单击的对象是单元格(一个字段),双击的对象是一行。                   R_UCOMM :按钮的功能   (单击的前提是设置热点,双击不需要设置热点)
  CASE R_UCOMM.
    WHEN '&IC1'.                                                     "单击功能   通过debug可以查看单双击的代码,单双击的代码是相同的
      CASE RS_SELFIELD-FIELDNAME.
        WHEN 'ZCODE'.                                                "有热点的字段:单击的前提是设置热点(两种方法)   单击事件是在sy-ucomm中完成
          SET PARAMETER ID 'LIF' FIELD RS_SELFIELD-VALUE .           "将点击的值带入到该事务码所在的字段里面 ,在KF03事物码对应的字段使用F1 查看parameters ID 的值 (LIF)。
          CALL TRANSACTION 'FK03'.
        WHEN 'WEIGH'.

        WHEN OTHERS.                                                "双击,其他字段没有设置热点(一般单机在上,双击在下)
          "当前行的学校信息
          READ TABLE GT_STUDENT INTO GS_STUDENT INDEX RS_SELFIELD-TABINDEX.  " 在内表中获取点击的行,传入到结构体中
          PERFORM DISPLAY_ALV_SCHOOL USING GS_STUDENT-ZSCHOOL.
      ENDCASE.

    WHEN 'CALLSF'.
      "PERFORM CALL_SMARTFORMS
    WHEN 'DOWNLOAD'.
      "PERFORM DOWNLOAD_FILE
  ENDCASE.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_SCHOOL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_SCHOOL USING GS_STUDENT-ZSCHOOL.

  DATA: GT_SCHOOL TYPE TABLE OF ZSCHOOL_LPJ_01.

  SELECT *
    FROM ZSCHOOL_LPJ_01
    INTO CORRESPONDING FIELDS OF TABLE GT_SCHOOL
  WHERE ZSCHOOL = GS_STUDENT-ZSCHOOL.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE  = ' '
*     I_CALLBACK_PROGRAM                = ' '
*     I_CALLBACK_PF_STATUS_SET          = ' '
*     I_CALLBACK_USER_COMMAND           = ' '
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME = 'ZSCHOOL_LPJ_01'
*     I_BACKGROUND_ID  = ' '
*     I_GRID_TITLE     =
*     I_GRID_SETTINGS  =
*     IS_LAYOUT        =
*     IT_FIELDCAT      =
*     IT_EXCLUDING     =
*     IT_SPECIAL_GROUPS                 =
*     IT_SORT          =
*     IT_FILTER        =
*     IS_SEL_HIDE      =
*     I_DEFAULT        = 'X'
*     I_SAVE           = ' '
*     IS_VARIANT       =
*     IT_EVENTS        =
*     IT_EVENT_EXIT    =
*     IS_PRINT         =
*     IS_REPREP_ID     =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS  =
*     IT_HYPERLINK     =
*     IT_ADD_FIELDCAT  =
*     IT_EXCEPT_QINFO  =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB         = GT_SCHOOL
    EXCEPTIONS
      PROGRAM_ERROR    = 1
      OTHERS           = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.                    " DISPLAY_ALV_SCHOOL


*动态添加表头
FORM FM_HTML_TOP_OF_PAGE USING PR_DOCUMENT TYPE REF TO CL_DD_DOCUMENT.  "参照一个类声明一个对象用: REF TO ;  CL_DD_DOCUMENT:类; PR_DOCUMENT:对象
*如果用参照类型里面的内容,一定要使用参数:using(列如:参照内表,下面可以给这个内表里面的某个字段赋值,没有使用using参数,就不行)




*方法和属性:
  "1. 属性:常量:Constant和变量:Instance Attribute,
  " 区别:常量使用双线箭头(类名=>常量),变量使用单线箭头(对象名->变量名)
  "2. 方法:Instance Method和Static Method ,
  " 区别:Instance Method使用单项箭头(对象名->方法名),Static Method 使用双向箭头(类名=>方法名)


  DATA: LV_DATUM TYPE SDYDO_TEXT_ELEMENT.           "定义变量,参照text类型
  CALL METHOD PR_DOCUMENT->ADD_TEXT                 "ADD_TEXT:方法
    EXPORTING                                       "因为ADD_TEXT方法在PR_DOCUMENT类中的parameters里面是importing
      TEXT      = '学生信息表'                      "可以通过类名直接进入类中查看方法的参数,也可以使用事物码se24
      SAP_STYLE = CL_DD_DOCUMENT=>SUCCESS.         "SAP_STYLE =  CL_DD_DOCUMENT=>HEADING.

  CALL METHOD PR_DOCUMENT->NEW_LINE.

  CALL METHOD PR_DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT         = '日期'
      SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM.

  CALL METHOD PR_DOCUMENT->ADD_GAP                               "添加一个空格
    EXPORTING
      WIDTH = 3.                                                 "中间留有3个空格


  WRITE SY-DATUM TO LV_DATUM USING EDIT MASK '__日__月____年'.    "类型转换,因为add_text接收的是c类型
  CALL METHOD PR_DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT         = LV_DATUM
      SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM.

  CALL METHOD PR_DOCUMENT->NEW_LINE.

  CALL METHOD PR_DOCUMENT->ADD_TEXT                     "ADD_TEXT:方法
    EXPORTING                                           "因为ADD_TEXT方法在PR_DOCUMENT类中的parameters里面是importing
      TEXT          = '学生信息表'                      "可以通过类名直接进入类中查看方法的参数,也可以使用事物码se24
      SAP_FONTSTYLE = CL_DD_DOCUMENT=>HEADING.




  CALL METHOD PR_DOCUMENT->NEW_LINE.





  CALL METHOD PR_DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT         = '链接'
      SAP_FONTSIZE = CL_DD_DOCUMENT=>MEDIUM.

  CALL METHOD PR_DOCUMENT->ADD_GAP                        "添加一个空格
    EXPORTING
      WIDTH = 3.                                          "中间留有3个空格

  CALL METHOD PR_DOCUMENT->ADD_LINK                       "添加一个链接
    EXPORTING
      NAME = '度娘'
      URL  = 'https://www.baidu.com/'
      TEXT = '度娘'.

ENDFORM.

相关文章

网友评论

      本文标题:function alv程序(练习3)

      本文链接:https://www.haomeiwen.com/subject/nolhzqtx.html