TYPES: BEGIN OF ty_mara,
srno LIKE adrc-name1, " Storing the total text
matnr LIKE mara-matnr, " Material
ersda LIKE mara-ersda, " Creation date
ernam LIKE mara-ernam, " Created by
laeda LIKE mara-laeda, " Last change date
aenam LIKE mara-aenam, " Last change by
vpsta LIKE mara-vpsta, " Maintenance status
brgew LIKE mara-brgew, " Gross weight
ntgew LIKE mara-ntgew, " Net weight
gewei LIKE mara-gewei, " Weight Unit
END OF ty_mara. TYPES: BEGIN OF ty_mara_tmp,
matnr TYPE matnr, " Material
ersda TYPE ersda, " Creation date
ernam TYPE ernam, " Created by
laeda TYPE laeda, " Last change date
aenam TYPE aenam, " Last change by
vpsta TYPE vpsta, " Maintenance status
brgew TYPE brgew, " Gross weight
ntgew TYPE ntgew, " Net weight
gewei TYPE gewei, " Weight Unit
END OF ty_mara_tmp. DATA: gt_mara_tmp TYPE STANDARD TABLE OF ty_mara_tmp INITIAL SIZE 0,
gt_sort2 TYPE STANDARD TABLE OF lvc_s_sort INITIAL SIZE 0,
gt_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0,
go_grid TYPE REF TO cl_gui_alv_grid,
gt_fieldcat TYPE lvc_t_fcat,
gs_mara_tmp TYPE ty_mara_tmp,
gs_layout TYPE lvc_s_layo,
gs_mara TYPE ty_mara,
gs_field TYPE lvc_s_fcat,
gs_sort2 TYPE lvc_s_sort.
*Set alv field
DEFINE set_alv_fieldcat.
gs_field-fieldname = &1.
gs_field-coltext = &2.
gs_field-rollname = &3.
gs_field-lzero = space.
gs_field-no_zero = 'X'.
APPEND gs_field TO gt_fieldcat.
CLEAR gs_field.
END-OF-DEFINITION. START-OF-SELECTION.
PERFORM frm_get_data.
PERFORM frm_set_field. END-OF-SELECTION.
CALL SCREEN 100. FORM frm_get_data.
* Fetch data
SELECT matnr " Material
ersda " Creation date
ernam " Created by
laeda " Last change date
aenam " Last change by
vpsta " Maintenance status
brgew " Gross weight
ntgew " Net weight
gewei " Weight Unit
FROM mara
INTO TABLE gt_mara_tmp
UP TO 10 ROWS
WHERE brgew NE 0.
CHECK sy-subrc = 0. LOOP AT gt_mara_tmp INTO gs_mara_tmp.
gs_mara-srno = '总计:'.
gs_mara-matnr = gs_mara_tmp-matnr.
gs_mara-ersda = gs_mara_tmp-ersda.
gs_mara-ernam = gs_mara_tmp-ernam .
gs_mara-laeda = gs_mara_tmp-laeda.
gs_mara-aenam = gs_mara_tmp-aenam.
gs_mara-vpsta = gs_mara_tmp-vpsta.
gs_mara-brgew = gs_mara_tmp-brgew.
gs_mara-ntgew = gs_mara_tmp-ntgew.
gs_mara-gewei = gs_mara_tmp-gewei.
APPEND gs_mara TO gt_mara.
ENDLOOP.
ENDFORM. FORM frm_set_field. gs_sort2-spos = 1. "Sort Order
gs_sort2-fieldname = 'SRNO'.
* gs_sort2-up = 'X'.
gs_sort2-down = 'X'.
gs_sort2-subtot = 'X'."Output subtotal
APPEND gs_sort2 TO gt_sort2. gs_layout-no_totline = 'X'.
gs_field-tech = 'X'.
gs_field-no_out = 'X'.
set_alv_fieldcat 'SRNO' '' 'MAKTX' .
set_alv_fieldcat 'MATNR' '' 'MATNR' .
set_alv_fieldcat 'ERSDA' '' 'ERSDA' .
set_alv_fieldcat 'ERNAM' '' 'ERNAM' .
set_alv_fieldcat 'LAEDA' '' 'LAEDA' .
set_alv_fieldcat 'AENAM' '' 'AENAM' .
set_alv_fieldcat 'VPSTA' '' 'VPSTA' . gs_field-do_sum = 'X'.
gs_field-ref_table = 'MARA'.
gs_field-ref_field = 'BRGEW'.
set_alv_fieldcat 'BRGEW' '' 'BRGEW' . gs_field-do_sum = 'X'.
gs_field-ref_table = 'MARA'.
gs_field-ref_field = 'NTGEW'.
set_alv_fieldcat 'NTGEW' '' 'NTGEW' .
set_alv_fieldcat 'GEWEI' '' 'GEWEI' .
ENDFORM. * Calling the screen to display ALV *&----------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&----------------------------------------------------------------*
* Display ALV report
*-----------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_100'.
IF go_grid IS INITIAL.
CREATE OBJECT go_grid
EXPORTING
i_parent = cl_gui_custom_container=>screen0
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
CHECK sy-subrc = 0. * CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
* EXPORTING
* i_internal_tabname = 'GT_MARA'
** i_structure_name = 'GT_MARA'
* CHANGING
* ct_fieldcat = gt_fieldcat
* EXCEPTIONS
* inconsistent_interface = 1
* program_error = 2
* OTHERS = 3.
* IF sy-subrc = 0.
*
* ENDIF. CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = gt_mara[]
it_fieldcatalog = gt_fieldcat
it_sort = gt_sort2
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF. CALL METHOD cl_gui_alv_grid=>set_focus
EXPORTING
control = go_grid
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
MODULE exit INPUT.
LEAVE TO SCREEN 0.
ENDMODULE.

SAP OOALV- 合计的更多相关文章

  1. SAP OOALV 添加状态灯

    *&---------------------------------------------------------------------* INCLUDE <icon>. T ...

  2. 【ABAP系列】SAP ABAP OOALV 动态设置单元格可否编辑

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP OOALV 动 ...

  3. 【ABAP系列】SAP ABAP ALV合计或者小计 添加自定义文本

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV合计或者小计 ...

  4. 一百一十二、SAP的OO-ALV之六,复制一个工程的工具栏到另外一个工程的工具栏

    一.我们输入SE38,查看一个SAP的标准查询 二.可以看到这个程序拥有一个标准的工具栏 三.我们来到, 输入这个程序名,再点状态 四.把工具栏复制过来 五.弹出的窗口点对勾 六.系统提示已经复制 七 ...

  5. 一百零六、SAP的OOP面向对象编程,OO-ALV的简介

    面向对象编程,如图 基本概念: 1.对象(Object)是一个现实实体的抽象.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应. ...

  6. 一百一十一、SAP的OO-ALV之五,显示ALV表格

    一.在屏幕里面有2部分,(PROCESS BEFORE OUTPUT 用于显示, PROCESS AFTER INPUT用于数据处理).我们创建的display_alv函数, 二.display_al ...

  7. 一百一十、SAP的OO-ALV之四,定义屏幕相关变量和逻辑流

    一.代码如下,定义相关变量 二.来带屏幕页面,双击STATUS_9000和USER_COMMAND_9000,自动生成相应代码 三.点击是 四.会自动生产关联的Includ文件 五.我们自己创建一个M ...

  8. 一百零九、SAP的OO-ALV之三,屏幕绘制器的使用

    一.在Screen页面,点击格式,会打开屏幕绘制器 二.点击定制控制,和PS一样画出一个显示区域的画布容器 三.双击之后,在弹出的属性页面写入一个名字,保存 四.激活屏幕后关闭 五.关闭屏幕绘制器之后 ...

  9. 一百零八、SAP的OO-ALV之二,创建屏幕Screen

    一.在资源管理器,右键->创建屏幕 二.输入4位数字 三.输入屏幕的描述 四.在逻辑流里面PBO用于显示屏幕,PAI用于用户交互. 五.在元素清单里面,在屏幕中的所有元素都是在元素清单中的

  10. 一百零七、SAP的OO-ALV之一,新建程序

    一.来带SE38模块,新建一个Z_TIANPAN_20190807_OOALV的本地程序 二.设置一个标题,点击对勾 三.选择保存为本地对象 我们下一篇来写创建屏幕

随机推荐

  1. mysql查询 if判断、case语句的使用等

    一. 查询的数字转换为中文返回前端 1. 如果是0或1表状态等,可用: IF(字段 = 0, '否', '是') AS xxx 2. 如果是多个值,比如1,2,3可用: ELT(字段, '计划治理', ...

  2. Java学习day3

    今天跟着b站up的视频学习了方法定义调用与重载,以及类的封装. Java中的方法与c++当中的函数类似,只是定义格式为: public static void 方法名(){ 方法体 } 上完课做实验的 ...

  3. Restful API和传统的API的区别

    一.功能区别 Restful API是当作资源的唯一标识符,而传统是实现某某功能 如:/api/getList/1 and /api/getList?page=1 二.methods多样性 Restf ...

  4. PyTorch环境配置

    PyTorch环境配置 本文档用于记录PyTorch环境配置过程中的要点. PyTorch环境配置 安装Miniconda 安装PyTorch 配置远程开发工具 基于CUDA的张量 导入警告问题 参考 ...

  5. 领域驱动模型DDD(三)——使用Saga管理事务

    前言 虽然一直说想写一篇关于Saga模式,在多次尝试后不得不承认这玩意儿的仿制代码真不是我一个菜鸟就能完成的,所以还是妥协般地引用现成的Eventuate Tram Saga框架(虽然我对它一直很反感 ...

  6. Solon 1.7 重要发布,更现代感的应用开发框架

    相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...

  7. rabbitmq 安装延时队列插件rabbitmq-delayed-message-exchange

    1.下载rabbitmq-delayed-message-exchange(注意版本对应) 链接:https://github.com/rabbitmq/rabbitmq-delayed-messag ...

  8. 你不知道的 Linux 使用技巧

    开源Linux 一个执着于技术的公众号 1.快速跳转命令 - z 要是每次都要进入一个目录很深的文件夹下,像下面这样: # cd /root/py/auto/fabric 每次都要输入好多个目录名是不 ...

  9. Linux虚拟网络技术学习

    一个执着于技术的公众号 地方 背景 在Linux虚拟化技术中,网络层面,通常重要的三个技术分别是Network Namespace.veth pair.以及网桥或虚拟交换机技术.今天就通过实验带大家一 ...

  10. deepin安装jdk配置环境

    下载一个jdk压缩包https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz 这个包,不用安装,下下来,直接解压,然 ...