ALV Styles in Field catalogue using OOPS

转自http://www.saptechnical.com/Tutorials/ALV/Styles/demo.htm

By Swarna S, Tata Consultancy Services

*&---------------------------------------------------------------------*
*& Report  ZALV_STYLES                                                 *
*& Published at SAPTechnical.COM                                      *
*&---------------------------------------------------------------------*
*& AS : ALV Styles in a fieldcatalogue.                                *
*& The ALV is developed using OOPS and various styles are given for    *
*& each column in the fieldcatalogue                                   *
*&---------------------------------------------------------------------*
REPORT  zalv_styles.
*Include for ALV styles
INCLUDE <cl_alv_control>.
*Type ppols for alv
TYPE-POOLS : slis.
*structure for t582a tbale
TYPES : BEGIN OF ty_table,infty TYPE infty,pnnnn TYPE pnnnn_d,zrmkz TYPE dzrmkz,zeitb TYPE dzeitb,dname TYPE dianm,edynr TYPE edynp,ldynr TYPE ldynp,stypt TYPE stypt,sytxt TYPE sytxt,davo TYPE davo,davoe TYPE davoe,END OF ty_table.
*Structure for infotype text
TYPES : BEGIN OF ty_itext,infty TYPE infty,itext TYPE intxt,sprsl TYPE sprsl,END OF ty_itext.
*Structure for output display
TYPES : BEGIN OF ty_output,infty TYPE infty,itext TYPE intxt,pnnnn TYPE pnnnn_d,zrmkz TYPE dzrmkz,zeitb TYPE dzeitb,dname TYPE dianm,edynr TYPE edynp,ldynr TYPE ldynp,stypt TYPE stypt,sytxt TYPE sytxt,davo TYPE davo,davoe TYPE davoe,text(6) TYPE c,sradio(6) TYPE c,scheck(6) TYPE c,END OF ty_output.
*internal table and work area declarations
DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,wa_table TYPE ty_table,wa_output TYPE ty_output,wa_ittext TYPE ty_itext.
*Data declarations for ALV
DATA: c_ccont TYPE REF TO cl_gui_custom_container,   "Custom container c_alvgd         TYPE REF TO cl_gui_alv_grid,   "ALV grid objectit_fcat            TYPE lvc_t_fcat,            "Field catalogueit_layout          TYPE lvc_s_layo.           "Layout
*Field symbols declarations for style
FIELD-SYMBOLS : <wa_fcat> TYPE lvc_s_fcat.
*initialization event
INITIALIZATION.
*start of selection event
START-OF-SELECTION.
*select the infotypes maintainedSELECT inftypnnnnzrmkzzeitbdnameedynrldynrstyptsytxtdavodavoeFROM t582a UP TO 25 ROWSINTO CORRESPONDING FIELDS OF TABLE it_table.
* *Select the infotype textsIF it_table[] IS NOT INITIAL.SELECT itextinftysprslFROM t582sINTO CORRESPONDING FIELDS OF TABLE it_ittextFOR ALL ENTRIES IN it_tableWHERE infty = it_table-inftyAND sprsl = 'E'.ENDIF.
*Apppending the data to the internal table of ALV outputLOOP AT it_table INTO wa_table.
    wa_output-infty = wa_table-infty.wa_output-pnnnn = wa_table-pnnnn.wa_output-zrmkz = wa_table-zrmkz.wa_output-zeitb = wa_table-zeitb.wa_output-dname = wa_table-dname.wa_output-edynr = wa_table-edynr.wa_output-ldynr = wa_table-ldynr.wa_output-stypt = wa_table-stypt.wa_output-sytxt = wa_table-sytxt.wa_output-davo = wa_table-davo.wa_output-davoe = wa_table-davoe.
* For texts
    READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty.wa_output-itext = wa_ittext-itext.wa_output-text = wa_ittext-sprsl.
    APPEND wa_output TO it_output.CLEAR wa_output.
  ENDLOOP.
* Calling the ALV screen with custom container
  CALL SCREEN 0600.
*On this statement double click  it takes you to the screen painter SE51.
*Enter the attributes
*Create a Custom container and name it CC_CONT and OK code as OK_CODE.
*Save check and Activate the screen painter.
*Now a normal screen with number 600 is created which holds the ALV grid.
* PBO of the actual screen ,
* Here we can give a title and customized menus
*&---------------------------------------------------------------------*
*&      Module  STATUS_0600  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0600 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
ENDMODULE.                 " STATUS_0600  OUTPUT
* calling the PBO module ALV_GRID.
*&---------------------------------------------------------------------*
*&      Module  ALV_GRID  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE alv_grid OUTPUT.CREATE OBJECT c_ccontEXPORTINGcontainer_name = 'CC_CONT'.CREATE OBJECT c_alvgd
EXPORTING
i_parent = c_ccont.
*  SET field for ALVPERFORM alv_build_fieldcat.
* Setting the styles for the ALV grid control
* using field-symbols
  LOOP AT it_fcat ASSIGNING <wa_fcat>.
*For Each and every line of the fieldcatCASE sy-tabix.
*Color Styles
*Background/Font/Group/positive/negativeWHEN '1'.<wa_fcat>-style = alv_style_color_inv_positive.WHEN '2'.<wa_fcat>-style = alv_style_color_int_negative.WHEN '3'.<wa_fcat>-style = alv_style_color_inv_negative.WHEN '4'.<wa_fcat>-style = alv_style_color_int_positive.WHEN '5'.<wa_fcat>-style = alv_style_color_background.<wa_fcat>-style = alv_style_color_inv_background.WHEN '6'.<wa_fcat>-style = alv_style_color_group.<wa_fcat>-style = alv_style_color_int_background.
*Style for F4WHEN '7'.<wa_fcat>-style = alv_style_f4.
*Style for Alignment(others are also possible)WHEN '8'.<wa_fcat>-style = alv_style_align_left_bottom.
*Style for Font Underlined/Bold and Italic are possibleWHEN '9'.<wa_fcat>-style = alv_style_font_underlined.
*Style for button typeWHEN '10'.<wa_fcat>-style = alv_style_button.
*Style for Font SymbolWHEN '11'.<wa_fcat>-style = alv_style_font_symbol.
*Style for RadiobuttonWHEN '12'.<wa_fcat>-style = alv_style_radio_checked.
*Style for  checkboxWHEN '13'.<wa_fcat>-style = alv_style_checkbox_checked.
*Style for column style characteristics(highlighting the col)WHEN '14'.<wa_fcat>-style = alv_col_style_characteristic.
*Styles for Enabling the columnWHEN '15'.<wa_fcat>-style = alv_style_enabled.
    ENDCASE.
  ENDLOOP.
* Set ALV attributes FOR LAYOUTPERFORM alv_report_layout.
  CHECK NOT c_alvgd IS INITIAL.
* Call ALV GRID
  CALL METHOD c_alvgd->set_table_for_first_displayEXPORTINGis_layout                     = it_layoutCHANGINGit_outtab                     = it_outputit_fieldcatalog               = it_fcatEXCEPTIONSinvalid_parameter_combination = 1program_error                 = 2too_many_lines                = 3OTHERS                        = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDMODULE.                 " ALV_GRID  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  alv_build_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_IT_FCAT  text
*----------------------------------------------------------------------*
*subroutine to build fieldcat
FORM alv_build_fieldcat.
  DATA lv_fldcat TYPE lvc_s_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '1'.lv_fldcat-fieldname = 'INFTY'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 8.lv_fldcat-scrtext_m = 'Infotype'.lv_fldcat-icon = 'X'.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '2'.lv_fldcat-fieldname = 'PNNNN'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 15.lv_fldcat-scrtext_m = 'Structure'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '3'.lv_fldcat-fieldname = 'ITEXT'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 60.lv_fldcat-scrtext_m = 'Description'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '4'.lv_fldcat-fieldname = 'TEXT'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 5.lv_fldcat-scrtext_m = 'General'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '5'.lv_fldcat-fieldname = 'ZRMKZ'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 1.lv_fldcat-scrtext_m = 'PERIOD'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '6'.lv_fldcat-fieldname = 'ZEITB'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 60.lv_fldcat-scrtext_m = 'Time constraint'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '7'.lv_fldcat-fieldname = 'DNAME'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 15.lv_fldcat-scrtext_m = 'Dialogmodule'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '8'.lv_fldcat-fieldname = 'EDYNR'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Single screenno'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '9'.lv_fldcat-fieldname = 'LDYNR'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'List screenno'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '10'.lv_fldcat-fieldname = 'STYPT'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'SubtypeTable'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '11'.lv_fldcat-fieldname = 'SYTXT'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Font Symbol'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '12'.lv_fldcat-fieldname = 'SRADIO'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'RADIO'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '13'.lv_fldcat-fieldname = 'SCHECK'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'CHECK'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '14'.lv_fldcat-fieldname = 'DAVO'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'Start Date'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.lv_fldcat-col_pos   = '15'.lv_fldcat-fieldname = 'DAVOE'.lv_fldcat-tabname   = 'IT_OUTPUT'.lv_fldcat-outputlen = 10.lv_fldcat-scrtext_m = 'End date'.lv_fldcat-icon = ''.APPEND lv_fldcat TO it_fcat.CLEAR lv_fldcat.
ENDFORM.                    " alv_build_fieldcat
*&---------------------------------------------------------------------*
*&      Form  alv_report_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_IT_LAYOUT  text
*----------------------------------------------------------------------*
*Subroutine for setting alv layout
FORM alv_report_layout.it_layout-cwidth_opt = 'X'.it_layout-zebra = 'X'.it_layout-col_opt = 'X'.
ENDFORM.                    " alv_report_layout
* PAI module of the screen created. In case we use an interactive ALV or
*for additional functionalities we can create OK codes
*and based on the user command we can do the coding.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0600  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0600 INPUT.
ENDMODULE.                 " USER_COMMAND_0600  INPUT

Output

Part 1

(Continued output)

Part 2 

转载于:https://www.cnblogs.com/kalasitifen/archive/2012/10/16/2726260.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一道有意思的导论问题

今天看了一篇博客&#xff0c;说的是导论的一道课后题以及博主的解答&#xff0c;感觉对逻辑思维的锻炼还是很有价值的&#xff0c;特意引用一下。这个题目的题意是这样的&#xff1a;有N个人&#xff0c;分为好人和坏人两种&#xff0c;每次你可以挑两个人出来让他们互相指识彼…

mybatis执行批量更新batch update 的方法(oracle,mysql)

oracle和mysql数据库的批量update在mybatis中配置不太一样&#xff1a; oracle数据库&#xff1a; <updateid"batchUpdate" parameterType"java.util.List"><foreach collection"list"item"item"index"index"open&…

自称“房奴”的博士靠开店卖SCI论文10年盈利近百万,论文买卖你怎么看?

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;中国青年报、武汉晚报 首席记者杨佳峰导读&#xff1a;10年前&#xff0c;一位自称“房奴博士”的刚毕业博士生在网上开启了他的SCI售卖小铺。每篇 1-2 万元&#xff0c;声称一年内卖出去的论文中有 8 篇都进了SCI索…

既生瑜何生亮 access_token VS refresh_token

中国有句老话, 既生瑜何生亮, 既然有我周瑜在世, 为什么老天还要一个诸葛亮啊&#xff1f;同样的, 众所周知, 在 OAuth 2.0 授权协议中, 也有两个令牌 token , 分别是 access_token 和 refresh_token, 为什么已经有了 access_token, 还需要 refresh_token 呢?我们先看下面两者…

IT English Collection(9) of Objective-C

1 前言 今天我们来解除一篇有关Objective-C的介绍文章&#xff0c;详情如下。 2 详述 2.1 原文 Objective-C defines a small but powerful set of extensions to the ANSI C programming language that enables sophisticated object-oriented programming. Objective-C is th…

关于计算机软件系统的知识,二、计算机软件系统基本知识

一、计算机软件系统图示咱们先来直观的看一下&#xff0c;我就直接上图了打开今日头条&#xff0c;查看更多精彩图片计算机软件系统(一)系统软件在说系统软件之前我想用一张图让大家清晰的了解下&#xff0c;计算机硬件系统与软件系统的关系&#xff1a;计算机硬件系统与软件系…

Android之RxJava(一)

RxJava(一) 翻译地址: http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/ RxJava这段时间在Android开发者之间变得越来越火。 唯一的问题是,很难理解。 特别大部分人之前都是使用命令式编程语言。但是一旦你理解它,它是很完美的! 在这里帮你更好理解RxJava。 一共有…

#周末课堂# 赵扬老师 Android系列课程【ListView完全解析、Memory in Android】(火热报名中~~~)...

课程名称&#xff1a;课程一&#xff1a; Android晋级系列讲座之ListView完全解析&#xff08;中级课程&#xff09;课程二&#xff1a; Memory in Android&#xff08;高级课程&#xff09; 讲师资料&#xff1a;讲师 - 赵杨 - Android高级讲师开课信息&#xff1a;招募学员&a…

Nature评选年度十大科学发现:北师大博士凭借天眼研究入选!

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;Bio生物世界、北京师范大学新闻网、百度百科、北京师范大学官网近日&#xff0c;Nature 盘点了2020年度十大科学发现&#xff0c;这其中即包括新冠病毒研究、冷冻电镜突破、压力导致白发的原因、HIV治疗、银河系中的…

Android之集成友盟推送功能

友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等app开发和运营解决方案。 如何快速集成友盟推送功能&#xff1a; 1. 注册友盟账号 友盟开发者账号的注册地址:http://www.umeng.…

NSValue包装自定义结构体

typedef struct {int year;int month;int day; }Date;void value(){Date date {2013,9,30},//void *代表任何类型的指针//这里要穿结构图的地址&date//根据结构体类型生成对应的描述字符串char* type encode(Date);NSValue *value[NSValue value:&date withO…

HTML手机上图片显示被压扁,在重新调整Web浏览器HTML |时,文本会被压扁CSS

我无法准确地说出你希望它如何在你的问题中发挥作用。如果您希望font-size根据浏览器的视图大小动态更改&#xff0c;则可以使用vw单位(请参阅下面的jsfiddle预览和代码示例)。我使用了你在Pastebin上发布的HTML和CSS&#xff0c;但是我在原始帖子中添加了CSS并进行了编辑。我的…

Win11手机应用大改!全新界面来袭

在 Windows 11 中&#xff0c;应用商店、画图、照片、计算器等系统内置应用都获得了全新的改进&#xff0c;这回终于轮到你的手机应用了。在今年 9 月的微软 Windows 11 硬件暨全新 Surface 设备发布会上&#xff0c;微软曾简要地展示了 Windows 11 内置应用 Your Phone&#x…

标记为可序列化

序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中&#xff0c;先将对象的公共字段和私有字段以及类的名称&#xff08;包括类所在的程序集&#xff09;转换为字节流&#xff0c;然后再把字节流写入数据流。在随后对对象进行反序列化时&#xff0c;将创建出与原对象…

serialization机制

首先说明一下序列化的知识&#xff1a; java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中&#xff0c;使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中&#xff1b;然后在需要的时候&#xff0c;可以根据字节流中的信息来重…

java2的7次方怎么表示_静态市盈率要怎么看?

静态市盈率是估值一个公司质地的指标&#xff0c;同时它也就是大家常说的市盈率。它体现的是一个企业按照目前的盈利水平&#xff0c;我们买入后需要多长时间才能回本。那么静态市盈率高好还是低好呢&#xff1f;静态市盈率低好&#xff0c;高就意味着该股高估了。静态市盈率是…

中国科幻扛鼎之作,原来真的不止刘慈欣

▲ 点击查看50年前的某天&#xff0c;一个小孩和一群大人一起仰望着晴朗的天空&#xff0c;看着中国第一颗人造卫星“东方红一号”&#xff0c;默默地担心它会撞到其他星星。而这份小小的担心&#xff0c;成了他后来开始创造科幻的动力和梦想。这个仰望晴空的小孩叫刘慈欣。如果…

Android之screenOrientation属性

在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 android:screenOrientation="landscape"是限制此页面横屏显示,android:screenOrientation="portrait"是限制此页面数竖屏显…

ubuntu make menuconfig error

主机环境&#xff1a;ubuntu --------------------------------------------------------------在ubuntu系统中&#xff0c;要编译内核&#xff0c;还需要安装一系列相应的工具才行。这篇文章&#xff0c;正是针对这一过程的一次记录&#xff0c;目标是可以通过 make menuconfi…

程学旗 计算机,徐明伟-青年科学家奖-中国计算机学会

2010CCF青年科学家奖获奖者徐明伟 教授清华大学分别于1994年和1998年在清华大学计算机科学与技术系获工学学士和工学博士学位。现为清华大学计算机系教授&#xff0c;博士生导师&#xff0c;网络所所长&#xff0c;计算机学会YOCSEF AC委员&#xff0c;中国通信标准化协会技术管…