- 浏览: 786360 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
Bob 发表于 ABAP 分类,标签: ALV, Excel
在sdn中看到有人问这个问题, 于是做个简单的例子来说明如何避免, 或者说解决这个问题.
1. 写个小程序, 用alv来显示表vbak的内容.
2. 问题现象重现
执行上面的程序,效果如下:
3. fieldcat设定
设置如下就可以显示前导零的问题
4. 问题解决效果
在sdn中看到有人问这个问题, 于是做个简单的例子来说明如何避免, 或者说解决这个问题.
1. 写个小程序, 用alv来显示表vbak的内容.
*&---------------------------------------------------------------------* *& Report ZALV_INPLACE *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zalv_inplace. *&---------------------------------------------------------------------* * TABLES *&---------------------------------------------------------------------* TABLES:vbak. *&---------------------------------------------------------------------* *-->TYPE DEFINITION *&---------------------------------------------------------------------* TYPES: BEGIN OF ty_tab. INCLUDE TYPE vbak. TYPES:END OF ty_tab. *&---------------------------------------------------------------------* * SELECTION-SCREEN *&---------------------------------------------------------------------* SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE text-b02. SELECT-OPTIONS s_vbeln for vbak-vbeln. SELECTION-SCREEN: END OF BLOCK b01. *&---------------------------------------------------------------------* *-->CLASS DEFINITION DEFERRED *&---------------------------------------------------------------------* CLASS lcl_layout DEFINITION DEFERRED. CLASS lcl_fieldcat DEFINITION DEFERRED. CLASS lcl_data DEFINITION DEFERRED. CLASS lcl_event DEFINITION DEFERRED. *&---------------------------------------------------------------------* *--> Global data definitions for ALV *&---------------------------------------------------------------------* *--- ALV Grid instance reference DATA ref_alv TYPE REF TO cl_gui_alv_grid . *--- Custom container instance reference DATA ref_con TYPE REF TO cl_gui_custom_container . *--Data for screen command DATA: save_ok LIKE sy-ucomm, ok_code LIKE sy-ucomm. DATA: var TYPE disvariant. *&---------------------------------------------------------------------* *-->CLASS DATA DEFINITION *&---------------------------------------------------------------------* DATA ref_layout TYPE REF TO lcl_layout. DATA ref_fieldcat TYPE REF TO lcl_fieldcat. DATA ref_data TYPE REF TO lcl_data. DATA ref_event TYPE REF TO lcl_event. DATA: itab TYPE TABLE OF vbak. *&---------------------------------------------------------------------* *-->CLASS DEFINITION *&---------------------------------------------------------------------* CLASS lcl_layout DEFINITION. PUBLIC SECTION. DATA: s_layout TYPE lvc_s_layo . METHODS: prepare_layout. ENDCLASS. "lcl_layout DEFINITION *----------------------------------------------------------------------* * CLASS lcl_fieldcat DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_fieldcat DEFINITION. PUBLIC SECTION. DATA: it_fieldcat TYPE lvc_t_fcat. METHODS: prepare_fieldcat. PRIVATE SECTION. DATA: s_fieldcat TYPE lvc_s_fcat. ENDCLASS. "lcl_fieldcat DEFINITION *----------------------------------------------------------------------* * CLASS lcl_data DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_data DEFINITION. PUBLIC SECTION. DATA:itab TYPE TABLE OF ty_tab. data:itab_del type TABLE OF ty_tab. TYPES: ttab TYPE TABLE OF ty_tab. METHODS: prepare_data. * METHODS: update_color CHANGING itab TYPE ttab. PRIVATE SECTION. DATA: rs_data TYPE REF TO ty_tab. ENDCLASS. "lcl_data DEFINITION *----------------------------------------------------------------------* * CLASS lcl_event DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_event DEFINITION. PUBLIC SECTION. METHODS: handle_before_user_command FOR EVENT before_user_command OF cl_gui_alv_grid IMPORTING e_ucomm. METHODS:handle_user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING e_ucomm sender. ENDCLASS. "lcl_event DEFINITION *----------------------------------------------------------------------* * CLASS lcl_event IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_event IMPLEMENTATION. METHOD handle_before_user_command. CASE e_ucomm. WHEN '&VEXCEL'. BREAK-POINT. ENDCASE. ENDMETHOD. "handle_data_changed_finished METHOD handle_user_command. ENDMETHOD. "handle_data_changed_finished ENDCLASS. "lcl_event IMPLEMENTATION *&---------------------------------------------------------------------* *-->CLASS IMPLEMENTATOIN *&---------------------------------------------------------------------* CLASS lcl_layout IMPLEMENTATION. METHOD prepare_layout. s_layout-smalltitle ='X' . s_layout-grid_title ='SIH Project Development List'(099). s_layout-sel_mode ='A' . ENDMETHOD. "prepare_layout ENDCLASS. "lcl_layout IMPLEMENTATION *----------------------------------------------------------------------* * CLASS lcl_fieldcat IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_fieldcat IMPLEMENTATION. METHOD prepare_fieldcat. FIELD-SYMBOLS: <fcat> TYPE lvc_s_fcat. CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'VBAK' CHANGING ct_fieldcat = it_fieldcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. loop at it_fieldcat ASSIGNING <fcat>. case <fcat>-fieldname. when 'VBELN'. * <fcat>- endcase. endloop. ENDMETHOD. "prepare_fieldcat ENDCLASS. "lcl_fieldcat IMPLEMENTATION *----------------------------------------------------------------------* * CLASS lcl_data IMPLEMENTATION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_data IMPLEMENTATION. METHOD prepare_data. *--->Get data SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE itab WHERE VBELN IN S_VBELN. ENDMETHOD. "prepare_data "update_color ENDCLASS. "lcl_data IMPLEMENTATION START-OF-SELECTION. * Call alv grid screen CALL SCREEN 9000. *&---------------------------------------------------------------------* *& Module INIT_SCREEN OUTPUT *&---------------------------------------------------------------------* MODULE init_screen OUTPUT. SET PF-STATUS 'STAT'. PERFORM frm_display_alv. ENDMODULE. " INIT_SCREEN OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND INPUT *&---------------------------------------------------------------------* MODULE user_command INPUT. data: la type c. save_ok = ok_code. CASE save_ok. WHEN 'BACK' OR 'EXIT' OR 'CANC'. LEAVE to SCREEN 0. ENDCASE. ENDMODULE. " USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* *& Form frm_display_alv *&---------------------------------------------------------------------* FORM frm_display_alv . * Local data definition DATA: var TYPE disvariant. "Variant IF ref_alv IS INITIAL. *-->Create customer container CREATE OBJECT ref_con EXPORTING container_name = 'ALV_CON'. *-->Create alv grid CREATE OBJECT ref_alv EXPORTING i_parent = ref_con. *-->Create fieldcatlog for alv CREATE OBJECT ref_fieldcat. CALL METHOD ref_fieldcat->prepare_fieldcat. *-->Set layout property CREATE OBJECT ref_layout. CALL METHOD ref_layout->prepare_layout. *-->Get data. CREATE OBJECT ref_data. CALL METHOD ref_data->prepare_data. *-->Register event CREATE OBJECT ref_event. SET HANDLER ref_event->handle_before_user_command FOR ref_alv. SET HANDLER ref_event->handle_user_command FOR ref_alv. * Register edit events CALL METHOD ref_alv->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter. *-->Display data var-report = sy-repid. CALL METHOD ref_alv->set_table_for_first_display EXPORTING is_variant = var i_save = 'A' i_default = 'X' is_layout = ref_layout->s_layout CHANGING it_outtab = ref_data->itab it_fieldcatalog = ref_fieldcat->it_fieldcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4. ELSE. *-->Refresh display CALL METHOD ref_alv->refresh_table_display. ENDIF. ENDFORM. " frm_display_alv
2. 问题现象重现
执行上面的程序,效果如下:
3. fieldcat设定
设置如下就可以显示前导零的问题
when 'VBELN'. <fcat>-NO_CONVEXT = 'X'.
4. 问题解决效果
发表评论
-
ALV 报表小结二
2010-04-09 09:35 2108二. OOPS 1. 面向对像的 ... -
ALV TUTOTIAL FOR BEGINERS WITH EXAMPLES
2010-04-09 09:33 4349Author: fareedas Date: 15/04 ... -
ALV 报表小结一
2010-04-09 09:31 24682009-02-23 在PA教程中,对AL ... -
如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
2010-04-08 22:45 1173在ALV报表设计有时候需要根据一定条件将特定的单元显示成特定的 ... -
ALV常用参数详解
2010-04-08 22:25 1718ALV常用参数详解 CALL FUNCTION 'REU ... -
ABAP-ALV
2010-04-08 16:27 1686REPORT z_scott_alv_3. *Defi ... -
SAP学习日志--ALV的创建
2010-04-08 15:56 2666ALV grid control 是当前比较流行的交互式报表 ... -
ALV调用Excel inplace不能传递数据问题解决方法
2010-04-08 14:47 1206ALV调用Excel inplace不能传递数据问题解决方法 ... -
ABAP:ALV List报表
2010-04-08 10:43 2862[color=darkblue]ALV List是SAP ... -
ALV输出示例
2010-04-08 09:18 1195*============================ ...
相关推荐
解决ALV导出数据到Excel时数据丢失位数的问题需要解决条件2和条件3,具体来说,就是在做ALV Fieldcat的时候,需要指定参考表和参考字段,并且确保列的表头文本比实际显示的数据长。这将避免数据丢失位数的问题,确保...
然而,在实际操作中,用户经常会遇到使用ALV导出数据到Excel文件时数据窜行的问题,这会导致导出后的Excel数据无法正确显示,从而影响数据处理和分析。为了解决这一问题,本文将详细探讨可能导致窜行的两个主要原因...
描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,这表明我们将重点关注ALV的基本概念、数据格式以及如何通过REUSE_ALV_GRID_DISPLAY_LVC函数来实现ALV的显示。 ALV格式通常涉及如何组织...
在ABAP编程中,ABAP ALV(ABAP List Viewer)是一个强大的工具,用于生成和...这种方法使得ALV无法进行无效的总计计算,从而解决了用户界面的显示问题。在实际应用中,应根据具体需求调整代码,确保用户体验得到改善。
在`REUSE_ALV_GRID_DISPLAY`的调用中,需要添加`I_CALLBACK_PF_STATUS_SET`和`I_CALLBACK_USER_COMMAND`参数,分别传入之前定义的GUI状态常量,这样ALV就能识别并处理自定义按钮的事件。 例如,当用户点击“Print”...
最后,调用屏幕并在PBO(Process Before Output)模块中调用ALV相关的方法来显示ALV,在PAI(Process After Input)模块中处理用户的输入。 ### 结论 ALV是SAP系统中一种非常强大且灵活的数据展示工具。通过掌握...
ALV(Application List Viewer)是SAP系统中用于显示列表数据的一种标准工具,它提供了丰富的功能,如排序、筛选、分组等。在ABAP语言中,ALV有两种主要的实现方式:传统的模块化方法(Procedural)和面向对象的方法...
在ABAP面向对象编程(ABAP OO)中,经常需要对ALV(Application List Viewer)进行定制化的控制,包括移除或隐藏某些默认显示的工具栏功能。这通常是为了提供更简洁、更符合业务需求的用户界面。本文将详细介绍如何...
4. 事件处理程序:如果我们想在 ALV Grid 中触发事件,可以通过事件处理类来实现,必须注册一个事件处理类的实例来处理 ALV Grid 的事件。 5. 附加数据:通过 ALV 的其他一些参数可以用来设置 ALV Grid 的其他的一些...
在SAP ABAP编程中,通常在`start-of-selection`事件中获取数据,然后定义表格布局和列信息,最后调用`cl_salv_table`类来显示ALV。 以下是一个简单的ALV程序编写示例: ```abap data: i_fieldcat_alv type slis_t_...
例如,使用 REUSE_ALV_COMMENTARY_WRITE 函数可以在 ALV 中输出表头,应在 ALV 的 TOP-OP-PAGE 事件中调用。 ALV 是 SAP 系统中的一个强大工具,提供了丰富的列表输出功能和交互功能,可以满足不同的业务需求。
在ABAP(Advanced Business Application Programming)中,ALV(ABAP List Viewer)是SAP提供的一种用于显示数据表的标准化接口。本篇我们将深入探讨如何使用Function来实现ALV Table的弹出窗口形式,这对于创建用户...
1. **ALV**: ALV是一种用于在SAP GUI中展示表格数据的方法,它提供了丰富的功能来定制列表视图。 2. **事件**: 在编程中,事件通常指的是由用户或其他系统组件触发的动作,如点击按钮、按下键盘键等。 3. **事件...
- **数据输出**:在F_DISPLAY子FORM中,调用REUSE_ALV_GRID_DISPLAY_LVC函数,将内表中的数据传递给ALV进行显示。 2. 添加表头标题 - **添加参数**:为了自定义表头,需要在调用REUSE_ALV_GRID_DISPLAY_LVC函数时...
在SAP系统中,ALV(Accelerated List Viewer)是一种用于数据展示的工具,它提供了标准的表格形式来显示数据库查询结果。ALV是ABAP编程的重要组成部分,它简化了复杂数据的可视化处理。本篇将深入探讨如何通过ABAP...
通过学习和理解这些知识点,开发者可以更好地掌握如何在SAP系统中创建和使用面向对象的ALV报表,为用户提供功能丰富、界面友好的报表解决方案。同时,开发者还能够对报表进行个性化定制,以满足企业内部的特定需求,...
最后,在子 FORM(如 F_DISPLAY)中,通过调用相应的 ALV 函数(如 `REUSE_ALV_GRID_DISPLAY` 或 `REUSE_ALV_GRID_DISPLAY_LVC`),将内表数据传递给 ALV 进行显示。 1. 添加表头标题: 要添加表头,可以在显示 ...
ALV 菜单栏提供了多种功能,包括细节按钮、升序排列、降序排列、设置过滤器、打印预览、Microsoft Excel、字处理、本地文件、邮件收件人、图形和更改布局等。 2. ALV 标题栏 ALV 标题栏主要是用来显示一些抬头信息...
在ABAP中,ALV(Accelerated List Viewer)是一种用于显示和编辑表格数据的图形用户界面组件。在给定的代码示例中,展示了如何创建一个ALV网格,并处理用户对数据的更改,如删除行。以下是关键知识点的详细解释: 1...
在 SAP 系统中,ALVTREE 是一种用于展示层级数据的控件,它与标准的 TREE 控件有所不同。在标准的 ALVTREE 实现中,并没有提供预置的完全展开和完全合并的功能,因此在实际应用中,我们需要通过自定义的方式来实现...