Sap List Viewer
- 格式:pdf
- 大小:371.77 KB
- 文档页数:41
abap alv 计量单位
ABAP(Advanced Business Application Programming)是SAP系统中的一种编程语言,而ALV(ABAP List Viewer)是SAP提供的一种报表显示工具。
在ALV 中,计量单位是指对数据进行量化的标准,用于计算和显示数据的大小和单位。
在ALV中,计量单位可以通过以下步骤进行设置:
1. 在ALV表中使用“字段选择”对话框,选择需要设置计量单位的字段。
2. 在“字段属性”选项卡中,选择“计量单位”选项卡。
3. 在“计量单位”选项卡中,选择需要使用的计量单位。
可以在“单位”文本框中输入自定义的计量单位。
4. 点击“应用”按钮,保存设置并关闭对话框。
在ALV表中显示计量单位时,可以使用以下代码:
* 如果使用内联计量单位:`MEASUREGROUP: UNIT <unit>`.
* 如果使用自定义计量单位:`MEASUREGROUP: UNIT <unit> PARENT
<parent>`.
其中,`<unit>`是计量单位的代码或名称,`<parent>`是父级计量单位的代码或名称。
例如,如果要对“数量”字段设置“千克”作为计量单位,可以使用以下代码:```sql
MEASUREGROUP: UNIT "KG".
```
在ALV表中显示数据时,系统会自动将字段值与对应的计量单位合并,以显示数据的实际含义。
例如,如果将“数量”字段的值设置为10,并将计量单位设置为“千克”,则ALV表中会显示“10 KG”。
sap alv tree 类型下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!SAP ALV Tree 类型在SAP系统中,ALV(ABAP List Viewer)是一种非常常用的工具,用于在屏幕上显示表格和树形视图。
第八章ALV控件的使用ALV〔SAP List Viewer〕控件是SAP业务中最常用的控件之一,本章先用一个简单的例子介绍用ALV控件显示数据,再以实例方式介绍ALV的强大功能,例如程序可以直接使用。
本章主要内容有:〔〕简单的ALV控件实例;〔〕自定义输出字段的ALV控件实例;〔〕在屏幕上成立ALV控件;〔〕自定义ALV控件的东西条按钮;〔〕处置ALV控件双击事件;〔〕通过ALV控件编纂内表和数据库更新;〔〕ALV Tree的使用。
8.1 简单的ALV控件实例以航班表〔SPFLI〕为例,使用数据字典定义布局,通过ALV控件显示数据。
【例】REPORT YTEST26.*定义内表DATA WA_SPFLI LIKE TABLE OF SPFLI WITH HEADER LINE.*内表赋值SELECT * INTO TABLE WA_SPFLI FROM SPFLI.*通过数据字典布局显示ALVCALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'EXPORTINGI_STRUCTURE_NAME = 'SPFLI'TABLEST_OUTTAB = WA_SPFLIEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.输出成果如图8-1所示。
图8-18.2 自定义输出字段的ALV控件实例【例】REPORT YTEST27.*ALV使用到的类库TYPE-POOLS: SLIS.*一列描述DATA WA_ALV_FIELD TYPE SLIS_FIELDCAT_ALV.*列描述内表,列清单DATA WA_ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.*定义内表DATA WA_SPFLI LIKE TABLE OF SPFLI WITH HEADER LINE. *内表赋值SELECT * INTO TABLE WA_SPFLI FROM SPFLI.*定义第一到第四个字段WA_ALV_FIELD-COL_POS = 1.WA_ALV_FIELD-FIELDNAME = 'CARRID'.WA_ALV_FIELD-SELTEXT_M = '航线承运人'.APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT.WA_ALV_FIELD-COL_POS = 2.WA_ALV_FIELD-FIELDNAME = 'CONNID'.WA_ALV_FIELD-SELTEXT_M = '航班连接'.APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT.WA_ALV_FIELD-COL_POS = 3.WA_ALV_FIELD-FIELDNAME = 'CITYFROM'.WA_ALV_FIELD-SELTEXT_M = '起飞城市'.APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT.WA_ALV_FIELD-COL_POS = 4.WA_ALV_FIELD-FIELDNAME = 'CITYTO'.WA_ALV_FIELD-SELTEXT_M = '目标城市'.APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT.*调用ALV显示表单数据CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'EXPORTING* I_INTERFACE_CHECK = ' '* I_BYPASSING_BUFFER =* I_BUFFER_ACTIVE = ' '* I_CALLBACK_PROGRAM = ' '* I_CALLBACK_PF_STATUS_SET = ' '* I_CALLBACK_USER_COMMAND = ' '* I_STRUCTURE_NAME =* IS_LAYOUT =IT_FIELDCAT = WA_ALV_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* IMPORTING* E_EXIT_CAUSED_BY_CALLER =* ES_EXIT_CAUSED_BY_USER =TABLEST_OUTTAB = WA_SPFLI* EXCEPTIONS* PROGRAM_ERROR = 1* OTHERS = 2.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.输出成果如图8-2所示。
abap alv分类汇总案例ABAP(Advanced Business Application Programming)是一种针对SAP软件系统开发的编程语言。
在ABAP中,ALV(ABAP List Viewer)是一种用于在SAP系统中创建和显示表格的工具。
ALV的分类汇总功能可以根据指定的字段对表格数据进行分类,并将分类后的数据进行汇总统计。
下面列举了10个ABAP ALV分类汇总的案例。
1. 根据销售订单对销售数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对销售数据进行分类汇总。
根据销售订单号,可以将销售数据按照订单进行分类,并对每个订单的销售额进行汇总统计。
这样可以方便用户对销售数据进行分析和监控。
2. 根据物料号对库存数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对库存数据进行分类汇总。
根据物料号,可以将库存数据按照物料进行分类,并对每个物料的库存量进行汇总统计。
这样可以方便用户对库存数据进行查询和管理。
3. 根据供应商对采购数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对采购数据进行分类汇总。
根据供应商,可以将采购数据按照供应商进行分类,并对每个供应商的采购金额进行汇总统计。
这样可以方便用户对采购数据进行分析和对比。
4. 根据地区对销售数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对销售数据进行分类汇总。
根据地区,可以将销售数据按照地区进行分类,并对每个地区的销售额进行汇总统计。
这样可以方便用户对销售数据进行地区间的比较和分析。
5. 根据部门对人员数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对人员数据进行分类汇总。
根据部门,可以将人员数据按照部门进行分类,并对每个部门的人员数量进行汇总统计。
这样可以方便用户对人员数据进行部门间的比较和统计。
6. 根据年龄段对客户数据进行分类汇总在SAP系统中,可以使用ABAP ALV来对客户数据进行分类汇总。
ALV详解_SAP精华篇一.ALV介绍The ALV Grid Control (ALV = S A P L ist V iewer)是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强,因此可以允许你可以在大型的应用程序中使用.SAP提示: 在SAP的开发项目中,ALV GRID也可以作为修改和创建数据的一种工具,然而,目前这个功能只在实验计划中使用,还没有向客户发布.下面是一个ALV GRID的图片:它包括3大部分,工具栏,标题,用于显示数据的网格控制器.如果有必要,用户可以隐藏标题和工具栏.ALV家族包含3中ALV工具:简易的,两层ALV,分等级连续的列表和树形结构的ALV.二.ALV GRID CONTROL (ALV网格控制器)ALV GRID CONTROL使用了控制器技术以实现艺术性的屏幕显示,象所有的控制器一样,ALV GRID CONTROL通过系统中的一个全局的类提供了方法,以响应它的动作.使用了ABAP的对象以后,列表是通过ALV的一个实例(INSTANCE)来显示的,程序员可以使用ABAP对象的事件管理.三.ALV GRID CONTROL 实例ALV GRID实例的定义,参照CL_GUI_ALV_GRID类data ALV_GRID1 type ref to cl_gui_alv_grid.ALV GRID继承结构:四、ALV GRID相关的几个控制结构1.字段目录[Field catalog]字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等.常用的控制字段如下:(下面的示例将说明这些字段的使用,参考STRUCTURE LVC_S_FCAT)2.布局控制[layout]布局是用来控制整个ALV的一个布局,比如ALV的标题,是否可编辑,行颜色,列颜色.参照ALV的控制结构[LVC_S_LAYO],以后的例子我将详细介绍如何设置行颜色和列颜色.详细的结构说明3.打印和排序,过滤控制打印的参数控制请参考结构[LVC_S_PRNT]排序的参数控制请参考结构[LVC_S_SORT]过滤的参数控制请参考结构[LVC_S_FILT]这里不再一一解释,进入中文版本,里面应该也有解释的,虽然一些不是很清楚.五.编写简单的ALV程序.首先这里就不详细介绍DIALOG的用法了.OO的ALV GRID必须存在于一个容器当中,就是FUNCTION的ALV,其实也是一样的,底层也是使用CL_GUI_ALV_GRID这个类的.首先ALV的显示需要有几个先决条件.1,字段目录,这个是必须的,如果没有这个参数,参考一个数据字典也是可以的,就是参数I_STRUCTURE_NAME.2.存放数据的内表,最好内表的结构和字段目录是一致的,否则可能会出现一些无法预知的错误,当然你说我非要不一样,那也不一定会出现错误.我建议是最好一样的.这2个是必须的,布局的话,应该是可以不设置的,使用默认的就可以了.第一步:创建个SCREEN,在屏幕上创建个容器,CONTAINER.定义变量.DATA:WCL_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,WCL_ALV TYPE REF TO CL_GUI_ALV_GRID .*--- 存放字段目录的内表DATA gt_fieldcat TYPE lvc_t_fcat .*--- 布局结构DATA gs_layout TYPE lvc_s_layo .*----声明需要显示的内表(以SFLIGHT为例)DATA BEGIN OF gt_list OCCURS 0 .INCLUDE STRUCTURE SFLIGHT .DATA END OF gt_list .第二步: 创建ALV这个对象,它的父组件是那个容器.在PBO中写入如下代码:PROCESS BEFORE OUTPUT .MODULE display_alv .创建DISPLAY_ALV的MODULE后,写下如下代码:MODULE display_alv OUTPUT .PERFORM display_alv .ENDMODULE .在FORM DISPLAY_ALV中,判断ALV实例是否存在,如果不存在,则创建:IF WCL_ALV IS INITIAL .CREATE OBJECT: WCL_CONTAINEREXPORTINGCONTAINER_NAME = 'ALV_CON'.CREATE OBJECT WCL_ALVEXPORTINGI_PARENT = WCL_CONTAINER.*-----准备获取字段目录PERFORM prepare_field_catalog CHANGING gt_fieldcat .*-----设置布局PERFORM prepare_layout CHANGING gs_layout .*-----显示ALVCALL METHOD gr_alvgrid->set_table_for_first_display EXPORTING* I_BUFFER_ACTIVE =* I_CONSISTENCY_CHECK =* I_STRUCTURE_NAME =* IS_VARIANT =* I_SAVE =* I_DEFAULT = 'X'is_layout = gs_layout* IS_PRINT =* IT_SPECIAL_GROUPS =* IT_TOOLBAR_EXCLUDING =* IT_HYPERLINK =CHANGINGit_outtab = gt_list[]it_fieldcatalog = gt_fieldcat* IT_SORT =* IT_FILTER =EXCEPTIONSinvalid_parameter_combination = 1program_error = 2too_many_lines = 3OTHERS = 4 .ELSE .*----刷新ALVCALL METHOD gr_alvgrid->refresh_table_display * EXPORTING* IS_STABLE =* I_SOFT_REFRESH =EXCEPTIONSfinished = 1OTHERS = 2 .IF sy-subrc <> 0.*--异常处理ENDIF.ENDIF .方法"set_table_for_first_display"的参数说明方法"REFRESH_TABLE_DISPLAY"的参数说明第三步,获取要显示数据的字段目录.有两种方式.1.手动创建FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat .DATA ls_fcat type lvc_s_fcat .ls_fcat-fieldname = 'CARRID' .ls_fcat-inttype = 'C' .ls_fcat-outputlen = '3' .ls_fcat-coltext = 'Carrier ID' .ls_fcat-seltext = 'Carrier ID' .APPEND ls_fcat to pt_fieldcat .CLEAR ls_fcat .ls_fcat-fieldname = 'CONNID' .ls_fcat-ref_table = 'SFLIGHT' .ls_fcat-ref_table = 'CONNID' .ls_fcat-outputlen = '3' .ls_fcat-coltext = 'Connection ID' .ls_fcat-seltext = 'Connection ID' .APPEND ls_fcat to pt_fieldcat .ENDFORM .2.半自动的创建FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat . DATA ls_fcat type lvc_s_fcat .CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'EXPORTINGi_structure_name = 'SFLIGHT'CHANGINGct_fieldcat = pt_fieldcat[]EXCEPTIONSinconsistent_interface = 1program_error = 2OTHERS = 3.IF sy-subrc <> 0.*--Exception handlingENDIF.LOOP AT pt_fieldcat INTO ls_fcat .CASE pt_fieldcat-fieldname .WHEN 'CARRID' .ls_fcat-outpulen = '10' .ls_fcat-coltext = 'Airline Carrier ID' .MODIFY pt_fieldcat FROM ls_fcat .WHEN 'PAYMENTSUM' .ls_fcat-no_out = 'X' .MODIFY pt_fieldcat FROM ls_fcat .ENDCASE .ENDLOOP .ENDFORM .第四步,设置布局FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.ps_layout-zebra = 'X' .ps_layout-grid_title = 'Flights' .ps_layout-smalltitle = 'X' .ENDFORM. " prepare_layout第五步,排除不需要的标准按钮(可选,这个是第一种方法,还有另外一种,在添加自定义的按钮的时候介绍)在你的ALV上,如果你想排除一些你不想要的标准按钮,你可以把需要排除的按钮填入到表UI_FUNCTIONS中,然后传给set_table_for_first_display方法的参数"IT_TOOLBAR_EXCLUDING".这些按钮的功能码一般都可以通过查看类cl_gui_alv_grid的常量属性中获取到,或者自己加个断点,在after_user_command事件中.如果你要隐藏全部的工具条,你可以把layout中的no_toolbar设置为"X".FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions .DATA ls_exclude TYPE ui_func.ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_minimum .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_subtot .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_sum .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_average .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_mb_sum .APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_mb_subtot .ENDFORM .按照上面的步骤,一个ALV的DEMO基本可以创建了.下面我们将讲述一些功能.功能一:在第一次显示以后,修改字段目录和布局.在运行的时候,很有可能需要在显示之后,需要设置一个新的布局或者字段目录.有下面这些方法去实现.字段目录: get_frontend_fieldcatalogset_frontend_fieldcatalog布局:get_frontend_layoutset_frontend_layout使用这些方法,你在执行的任何时候,可以获取这些内容,然后修改他们.DATA ls_fcat TYPE lvc_s_fcat .DATA lt_fcat TYPE lvc_t_fcat .DATA ls_layout TYPE lvc_s_layo .CALL METHOD gr_alvgrid->get_frontend_fieldcatalogIMPORTINGet_fieldcatalog = lt_fcat[] .LOOP AT lt_fcat INTO ls_fcat .IF ls_fcat-fieldname = 'PAYMENTSUM' .ls_fcat-no_out = space .MODIFY lt_fcat FROM ls_fcat .ENDIF .ENDLOOP .CALL METHOD gr_alvgrid->set_frontend_fieldcatalogEXPORTINGit_fieldcatalog = lt_fcat[] .CALL METHOD gr_alvgrid->get_frontend_layoutIMPORTINGes_layout = ls_layout .ls_layout-grid_title = 'Flights (with Payment Sums)' .CALL METHOD gr_alvgrid->set_frontend_layoutEXPORTINGis_layout = ls_layout .功能二:设置排序条件有时候我们需要使用到数据的排序.这个可以通过填充参考结构LVC_T_SORT创建的内表来实现,这个内表中包含了排序的标准.可以传递给set_table_for_first_display这个方法的IT_SORT参数来初始化一个排序.FORM prepare_sort_table CHANGING pt_sort TYPE lvc_t_sort .DATA ls_sort TYPE lvc_s_sort .ls_sort-spos = '1' .ls_sort-fieldname = 'CARRID' .ls_sort-up = 'X' . "A to Zls_sort-down = space .APPEND ls_sort TO pt_sort .ls_sort-spos = '2' .ls_sort-fieldname = 'SEATSOCC' .ls_sort-up = space .ls_sort-down = 'X' . "Z to AAPPEND ls_sort TO pt_sort .ENDFORM. " prepare_sort_table这有2点特别的说明:1.如果这边排序的字段名,不存在于字段目录中,那将出现DUMP.2.排序以后,垂直的网格中,如果出现相同的内容,就会合并,如果要避免,请在布局中设置"no_merging"为"X" .你可以通过使用方法“get_sort_criteria” 和“set_sort_criteria”来获取和设置排序的标准.功能三:设置过滤(和排序类似)ALV的标准按钮中已经有过滤的功能,我们也可以在初始显示的时候就设置过滤条件.我们需要把过滤条件填充到参考表类型"LVC_T_FILT"创建的内表中.过滤条件是类似一个RANGES结构的.然后把这个内表传递给方法"SET_TABLE_FOR_FIRST_DISPLAY"中的参数"IT_FILTER"FORM prepare_filter_table CHANGING pt_filt TYPE lvc_t_filt .DATA ls_filt TYPE lvc_s_filt .ls_filt-fieldname = 'FLDATE' .ls_filt-sign = 'E' .ls_filt-option = 'BT' .ls_filt-low = '20030101' .ls_filt-high = '20031231' .APPEND ls_filt TO pt_filt .ENDFORM. " preparefiltertable我们可以使用"get_filter_criteria" 和"set_filter_criteria"来获取过滤条件和设置过滤条件.功能四:选择方式有时候,我们需要选择一些单元格,行或者列,在布局中,有个参数"SEL_MODE"可以设置我们不同的选择方式.下面是参数的介绍.和不同的地方.注意:1.如果你设置了ALV是可编辑的,可能会覆盖你在布局中选择方式的设置的.2.设置了选择方式以后,我们可以使用很多方法来获取用户的选择.比如"GET_SELECTED_CELLS","GET_SELECTED_CELLS_ID","GET_SELECTED_R OWS","GET_SELECTED_COLUMNS"3.在执行PAI以后,用户所选择的单元格,行或者列可能丢失.你可以在PBO中,使用对应的SET方法来恢复这些选择.功能五:颜色设置有的时候,我们需要在ALV网格上绘上一些颜色.可以给特定的行,某个特定的列,某个特定的单元格绘制颜色.如果某列被设置为关键列,这列的颜色将被自动绘制,而不需要我们额外的指定.先介绍ALV里色码.就是颜色编码,4位CHAR型.Cx y z---Color | | || 1/0: 相反开/关1/0: 强化开/关其中C是固定的第一位,第二位代表是颜色编码(1到7),第三位是加强的设置,第四位是相反,个人理解,在强化关闭的情况下,相反的作用是背景和字体的变化.颜色编码:A)设置列的颜色.我们可以通过字段目录的"emphasize"控制字段来控制某列的颜色.这个字段同样是4位的CHAR型,传入上述的颜色编码.例如:LS_FCAT-EMPHASIZE = 'C701'.如果这列被设置为关键列,就是 LS_FCAT-KEY = 'X' ,那么颜色设置就不会起作用.请注意,自动产生的字段目录中,KEY的设置是自动获取的.B)设置行的颜色为某行设置颜色,是有点复杂的,我们需要在要显示的数据内表中增加一个字段,这个字段不需要在字段目录中存在.同样,这个字段也是4位的CHAR型,符合颜色编码的定义.那我们就需要这样来定义我们的数据内表:DATA BEGIN OF gt_list OCCURS 0 .INCLUDE STRUCTURE SFLIGHT .DATA rowcolor(4) TYPE c .DATA END OF gt_list .很明显,填入颜色编码以后,ALV怎么知道它是我们用来设置颜色的呢,在布局中,有个控制字段"INFO_FNAME",我们可以设置这个字段来告诉ALV,我们的颜色字段是哪个.ps_layout-info_fname = 'ROWCOLOR'.请注意,这个字段随便你起名字,但是记住,一定是数据内表里的字段,而且这边设置的时候一定要大写.你可以在任何时候设置行的颜色,只需要去修改内表里的这个字段的值,但是记得,一定要刷新以后才起作用.C)设置单元格的颜色设置单元格和设置行的颜色,本质上没有什么大的区别,但是定位单元格需要2个参数.我们需要在数据内表中插入一个表类型的字段,这样我们的数据内表就变成了DEEP结构了,不过ALV是可以处理的.不需要担心.插入的这个表类型的类型为"LVC_T_SCOL".里面有3个参数:FNAME告诉我们你需要设置的是哪个字段,如果为空,然后直接在COLOR中设置颜色,就是整行设置为这个颜色.如果具体到某个单元格,必须指定是哪个字段.COLOR字段是用来设置颜色的.NOKEYCOL字段比较关键了.设置为关键列的一些字段,我们的颜色设置可能被覆盖.通过这个字段的设置,可以避免被关键列覆盖.同样,ALV在布局中有个字段"CTAB_FNAME"告诉我们,数据内表中,哪个字段是用来设置单元格的颜色的.DATA BEGIN OF gt_list OCCURS 0 .INCLUDE STRUCTURE SFLIGHT .DATA rowcolor(4) TYPE c .DATA cellcolors TYPE lvc_t_scol .DATA END OF gt_list .DATA ls_cellcolor TYPE lvc_s_scol ....READ TABLE gt_list INDEX 5 .ls_cellcolor-fname = 'SEATSOCC' .ls_cellcolor-color-col = '7' .ls_cellcolor-color-int = '1' .APPEND ls_cellcolor TO gt_list-cellcolors .MODIFY gt_list INDEX 5 .注意:颜色设置中有优先级顺序,他们是单元格--->行--->列.功能六:插入超链接插入超链接是通过一个含有超级链接和句柄的表来实现的.这个表类型为"LVC_T_HYPE" ,句柄是一个INT4类型的字段,我们需要在数据显示的内表中,加入这样的字段,来告诉ALV,我们的字段指定的句柄,从而找到对应的超级链接.在字段目录中,WEB_FIELD是用来指定对应的句柄名的.下面举个例子来说明,我们要为字段CARRID,CONNID建立超级链接:首先,内表定义中,我们加入2个句柄字段:DATA BEGIN OF gt_list OCCURS 0 .INCLUDE STRUCTURE SFLIGHT .DATA rowcolor(4) TYPE c .DATA cellcolors TYPE lvc_t_scol .DATA carrid_handle TYPE int4 .DATA connid_handle TYPE int4 .DATA END OF gt_list .第二: 建立一个超级链接内表,里面存放句柄所对应的超级链接.创建的时候注意,它参考的表类型,一定是"LVC_T_HYPE".FORM prepare_hyperlinks_table CHANGING pt_hype TYPE lvc_t_hype .DATA ls_hype TYPE lvc_s_hype .ls_hype-handle = '1' .ls_hype-href = '/carrids/car1' .APPEND ls_hype TO pt_hype .ls_hype-handle = '2' .ls_hype-href = '/carrids/car1' .APPEND ls_hype TO pt_hype .ls_hype-handle = '3' .ls_hype-href = '/carrids/car1' .APPEND ls_hype TO pt_hype .ls_hype-handle = '4' .ls_hype-href = '/connids/con11' .APPEND ls_hype TO pt_hype .ls_hype-handle = '5' .ls_hype-href = '/connids/con12'APPEND ls_hype TO pt_hype ... ..ENDFORM .第三.通过字段目录FIELDCATLOG来指定相应的句柄字段.对于CARRID的field catalogLs_fieldcat-web_field = …CARRID_HANDLE‟.对于CONNID的field catalogLs_fieldcat-web_field = …CONNID_HANDLE‟.在方法"SET_TABLE_FOR_FIRST_DISPLAY"中把句柄内表传给参数it_hyperlink。
sap alv 单元格格式
SAP ALV(Automatic List Viewer)是一种用于显示数据网格的报表工具,具有汇总、排序和筛选等功能。
关于SAP ALV的单元格格式,可以按照以下步骤进行设置:
1. 在ALV表格中,选择要设置格式的单元格。
2. 在属性列中,找到“单元格属性”选项,并单击它。
3. 在弹出的对话框中,选择“显示格式”选项卡。
4. 在“显示格式”选项卡中,可以设置单元格的格式,例如数字、货币、日期等。
还可以设置小数位数、千位分隔符等。
5. 单击“确定”按钮以保存设置。
除了设置单元格格式外,还可以使用ALV的其他功能,例如排序、筛选和汇总等。
这些功能可以帮助您更好地组织和呈现数据。
ALV知识Xiaogangh一、AL V相关概念ALV――ABAP LIST VIEWER,这里我姑且称之为ABAP表单浏览器,用它可以标准化,简单化R/3系统中的表单,它可以提供给用户一个统一的表单格式以及用户接口。
ALV即能显示简单表单(SIMPLE LIST)又能显示有序表单(SEQUENTIAL LIST):●简单表单(SIMPLE LIST)包含一系列不分层次的(NON-HIERARCHICAL),用户自定义的列。
●层次表(即有序表SEQUENTIAL LIST)包含列表头以及它的子行,一个列表头的关键行能带出它下面的一些列项目(我们自己理解的时候可以想到BOM表的层次结构)。
●我们还可以在简单表单以及关联表单中显示小计和总计二、结合一个具体的实例来看AL V的功能首先我们看下图中的这个ALV的布局(这是一般ALV程序表单的典型布局):根据上面对ALV的直观形象,下面将屏幕上的区域划分成几块,分别来解释它的作用:1.快捷工具栏(如下图)细节按钮,你首先必须选中列表中的一行,然后点击它的话,就会弹出一个窗口,显示选中行的细节内容。
(另外:你双击你要选择的行,也可以显示细节)按升序排列,首先选中一列,然后再点击它,就可以看到该列是按照升序重新排列。
按降序排列,首先选中一列,然后再点击它,就可以看到该列是按照降序重新排列。
设置过滤器,通过设置它可以达到筛选的目的,以列名称作为筛选的筛选标准,填入过滤器相应的标准值,然后就可以筛选出满足自己条件的记录。
打印预览,点击它之后,就可以预览一下将要打印内容的布局情况。
Microsoft Excel,调用MS的Excel到当前ALV的列表显示区域。
(前提:必须安装了MS的Excel)字处理,字处理的相关设置。
本地文件,将当前表单存储到本地机器上,有几种供选择的存储格式。
邮件收件人,给系统内用户发邮件图形,点击它可以根据表单情况绘制相关图表。
更改布局,点击它可以对表单中的列项目排列次序的互换,删减等。
ABAP ALV F4标准一、概述ABAP ALV(Advanced List Viewer)是SAP系统中用于生成、显示和修改表格数据的一套标准工具。
而F4标准则是ALV的一个重要功能,用于提供字段值的可选择清单。
本文将从ABAP ALV和F4标准的基本概念介绍开始,逐步深入到具体的实践应用和案例分析,帮助读者全面了解和掌握这一重要功能。
二、ABAP ALV的基本概念1. ABAP ALV是什么ABAP ALV是SAP系统中的一套标准工具,用于生成、显示和修改表格数据。
它不仅提供了丰富的表格显示和编辑功能,还具有灵活的定制能力,可根据用户需求进行定制开发。
2. ABAP ALV的使用场景ABAP ALV广泛应用于SAP系统中的各个模块,如采购管理、生产管理、财务会计等领域。
它可以用于显示各种业务数据,如订单信息、库存数据、财务报表等,并支持用户对数据的查看、编辑和导出等操作。
三、F4标准的基本概念1. F4标准是什么F4标准是ABAP ALV的一个重要功能,用于提供字段值的可选择清单。
它在输入字段时,可通过F4键或按下候选按钮,弹出可选择清单供用户选择,从而减少用户的输入工作并提高数据准确性。
2. F4标准的使用场景F4标准通常用于需要输入字段值的场景,如订单创建、物料信息维护等。
它可以弹出各种可选择清单,如物料清单、供应商清单、客户清单等,为用户提供便捷的数值选择功能。
四、ABAP ALV F4标准的实践应用1. 如何在ABAP程序中使用F4标准在ABAP程序中使用F4标准,首先需要定义输入字段的参数和事件处理逻辑。
然后通过调用相应的函数模块或方法,将F4标准与输入字段关联起来,实现字段值的可选择清单功能。
2. F4标准的定制开发除了使用标准的F4功能外,ABAP开发人员还可以根据具体需求进行定制开发。
他们可以通过修改F4帮助事件、使用自定义帮助对象等方式,实现更灵活、个性化的F4功能。
3. F4标准与其他功能的结合应用F4标准还可以与其他功能结合应用,如输入带有F4帮助的字段值后,自动填充相关字段信息、触发特定的逻辑处理等。
ALV学习资料SAP提供一组ALV(ABAP LIST VIEWER)功能模块,这些功能模块可以修饰报表输出。
这些设置的ALV功能可以提高报表的可读性。
首先呢,我先跟大家说一下ALV是什么东西ALV=SAP LIST VIEWER,SAP列表显示器。
就目前ALV技术主要分ALV GRID 和 ALV TREE。
先跟大家说一下目前本人用的比较多的ALV GRID技术,ALV GRID 的效果见图()。
图()第一步在使用ALV时,需要定义一个SAP标准TYPE-POOLS,具体语法为:TYPE-POOLS: SLIS.然后需要定义一个LAYOUT式样,和一个FIELDCAT字段格式,具体语法为:DATA: LIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,LT_LAYO TYPE SLIS_LAYOUT_ALV,GIT_EVENTS TYPE SLIS_T_EVENT, GIT_LISTHEADER TYPE SLIS_T_LISTHEADER.,LIT_EXTAB TYPE SLIS_T_EXTAB.第二步(可选)可以为需要为最初的目录显示选择参数。
在这里需要使用函数‘'REUSE_ALV_VARIANT_DEFAULT_GET’Sample code:CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'EXPORTINGi_save = variant save condition ( A=all, U = user-specific )CHANGINGcs_variant = internal table containing the program name (and the defaultvariant---optional )EXCEPTIONSnot_found = 2.使用者也可以使用现有的变量中选择,使用函数‘REUSE_ALV_VARIANT_F4’。
在SAP ABAP中,要实现ALV(ABAP List Viewer)的自动列宽,可以使用以下步骤:
1. 设置布局参数:
在创建或修改ALV网格控件时,需要设置布局参数以启用自动列宽功能。
abap代码:
2. 设置布局参数:
使用SET_TABLE_FOR_FIRST_DISPLAY方法设置表格数据和布局参数。
在这个方法中,你可以设置LAYOUT-CWIDTH_OPT参数为X来启用自动列宽。
abap代码:
在<layout_parameter>结构中,设置CWIDTH_OPT字段为X:
abap代码:
3. 刷新ALV:
调用refresh_table_display方法来应用新的布局参数并刷新ALV。
abap代码:
通过以上步骤,ALV应该会根据内容自动调整列宽。
请注意,这可能会导致某些列宽过大或过小,如果需要更精细的控制,可能需要手动调整特定列的宽度或者使用其他的布局策略。