ALV实现分页功能

 在自学ABAP的时候,想实现ALV分页,后面找了一些方法,自己写了一个,功能尚未完善。

在SCREEN设计时,添加一个自定义控制器、4个按钮、2个LABEL和一个TEXTBOX。

实现的界面如下

 

REPORT  z_alv_test                              .
TABLES: spfli.
DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.

DATA: BEGIN OF zzp OCCURS 0,
        connid TYPE spfli-connid,
        carrid TYPE spfli-carrid,
        countryfr TYPE spfli-countryfr,
        countryto TYPE spfli-countryto,
      END OF zzp.

DATA: m TYPE i VALUE 1,
      n TYPE i VALUE 10,
      before TYPE i,
      after TYPE i VALUE 10,
      count TYPE i.
DATA tbx_now(4) TYPE C VALUE '1'.

DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
      error_text TYPE string.

*内表
DATA: it_zzp LIKE STANDARD TABLE OF zzp WITH HEADER
LINE,
      ii_zzp LIKE STANDARD TABLE OF zzp WITH HEADER
LINE.

DA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 ABAP 代码示例,使用 ALV 技术实现物料数据报表的显示,包括物料号、物料描述、批次号和库存数量。 ``` REPORT z_material_report_alv. TABLES: mara, mard. DATA: BEGIN OF itab OCCURS 0, matnr TYPE mara-matnr, maktx TYPE mara-maktx, charg TYPE mard-charg, labst TYPE mard-labst, END OF itab. DATA: wa_layout TYPE lvc_s_layo, wa_fieldcat TYPE lvc_s_fcat. SELECT-OPTIONS: s_matnr FOR mara-matnr. SELECT mara~matnr mara~maktx mard~charg mard~labst FROM mara JOIN mard ON mara~matnr = mard~matnr INTO TABLE itab WHERE mara~matnr IN s_matnr. IF sy-subrc = 0. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_top_of_page = 'TOP-OF-PAGE' it_fieldcat = wa_fieldcat i_save = 'A' TABLES t_outtab = itab EXCEPTIONS program_error = 1 OTHERS = 2. ELSE. WRITE: / '没有符合条件的数据。'. ENDIF. *&---------------------------------------------------------------------* *& Form TOP-OF-PAGE *&---------------------------------------------------------------------* * 输出表格标题 *----------------------------------------------------------------------* FORM top_of_page. DATA: wa_columns TYPE lvc_s_col, it_columns TYPE lvc_t_scol. CLEAR wa_columns. wa_columns-col_pos = 1. wa_columns-fieldname = 'MATNR'. wa_columns-ref_fieldname = 'MATNR'. wa_columns-tabname = 'ITAB'. wa_columns-outputlen = 18. APPEND wa_columns TO it_columns. CLEAR wa_columns. wa_columns-col_pos = 2. wa_columns-fieldname = 'MAKTX'. wa_columns-ref_fieldname = 'MAKTX'. wa_columns-tabname = 'ITAB'. wa_columns-outputlen = 40. APPEND wa_columns TO it_columns. CLEAR wa_columns. wa_columns-col_pos = 3. wa_columns-fieldname = 'CHARG'. wa_columns-ref_fieldname = 'CHARG'. wa_columns-tabname = 'ITAB'. wa_columns-outputlen = 15. APPEND wa_columns TO it_columns. CLEAR wa_columns. wa_columns-col_pos = 4. wa_columns-fieldname = 'LABST'. wa_columns-ref_fieldname = 'LABST'. wa_columns-tabname = 'ITAB'. wa_columns-outputlen = 15. APPEND wa_columns TO it_columns. wa_layout-grid_title = '物料数据报表'. wa_layout-zebra = 'X'. wa_layout-no_key = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_top_of_page = ' ' it_fieldcat = it_columns is_layout = wa_layout TABLES t_outtab = itab EXCEPTIONS program_error = 1 OTHERS = 2. ENDFORM. "top_of_page ``` 这段代码与前面的示例类似,不同之处在于使用了 REUSE_ALV_GRID_DISPLAY 函数来显示数据。首先定义了一个内部表 itab,然后使用 SELECT 语句从 MARA 和 MARD 表中检索所需的数据,并将其存储在内部表中。接着,定义了一个 ALV 表格布局 wa_layout 和字段目录 wa_fieldcat,用于设置表格的显示格式和字段属性。最后,在 TOP-OF-PAGE 事件中使用 REUSE_ALV_GRID_DISPLAY 函数来显示数据,并设置表格标题、斑马线效果和无键选项等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值