`
csstome
  • 浏览: 1560792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ALV OO Grid Show , DownLoad, CSV ,Excel...

阅读更多
<!--StartFragment -->

*----------------------------------------------------------------------
*ProgramID/Name:ZW_ALV_GRID_STDDateWritten:20100630
*Author'sName:Lilo.ZhuLastUpdate:
*ProgramTitle:
*ProjectName:XXXX
*Version:1.0
*----------------------------------------------------------------------
*Description:(NewProgramForaStandardOOALVGridFormat,Dialog)
*----------------------------------------------------------------------
*ChangeHistory
*----------------------------------------------------------------------
*Date|Programmer|Corr.#|Description
*20100630|Lilo.Zhu||NewCreate
*|||
*|||
*-----------------------------------------------------------------------
REPORTZW_ALV_GRID_STD.

*------TABLES------
TABLES:EKKO.

*------TYPEDEFINITION------
TYPES:BEGINOFTP_TAB.
INCLUDESTRUCTUREEKKO.
TYPES:ROWCOLOR(4)TYPEC.
TYPES:CELLCOLORTYPELVC_T_SCOL.
TYPES:EXPOTYPEC.
TYPES:ENDOFTP_TAB.

*------SELECTION-SCREEN------
SELECTION-SCREEN:BEGINOFBLOCKB00WITHFRAMETITLETEXT-B00.
SELECT-OPTIONS:S_EBELNFOREKKO-EBELN.
SELECT-OPTIONS:S_BUKRSFOREKKO-BUKRS.
SELECTION-SCREEN:ENDOFBLOCKB00.

SELECTION-SCREEN:BEGINOFBLOCKB01WITHFRAMETITLETEXT-B01.
PARAMETERSP_ALVRADIOBUTTONGROUPG1DEFAULT'X'USER-COMMANDC1.
PARAMETERSP_DWNRADIOBUTTONGROUPG1.
*->ServerPathandFileName
PARAMETERS:P_SVPATHLIKERLGRAP-FILENAMEMODIFIDPTHMEMORYIDPAT,
P_SVFILELIKERLGRAP-FILENAMENO-DISPLAY.
SELECTION-SCREEN:ENDOFBLOCKB01.

DATA:G_SVFILELIKERLGRAP-FILENAME,
G_PATHTYPECHAR600.

*------CLASSDEFINITIONDEFERRED------
CLASSLCL_LAYOUTDEFINITIONDEFERRED.
CLASSLCL_FIELDCATDEFINITIONDEFERRED.
CLASSLCL_DATADEFINITIONDEFERRED.

*------>GLOBALDATADEFINITIONSFORALV
*------ALVGRIDINSTANCEREFERENCE------
DATAREF_ALVTYPEREFTOCL_GUI_ALV_GRID.
*------CUSTOMERCONTAINERINSTANCEREFERENCE------
DATAREF_CONTYPEREFTOCL_GUI_CUSTOM_CONTAINER.
*------DATAFORSCREENCOMMAND------
DATA:SAVE_OKLIKESY-UCOMM,
OK_CODELIKESY-UCOMM.
DATA:VARTYPEDISVARIANT.

*------CLASSDATADEFINITION------
DATAREF_LAYOUTTYPEREFTOLCL_LAYOUT.
DATAREF_FIELDCATTYPEREFTOLCL_FIELDCAT.
DATAREF_DATATYPEREFTOLCL_DATA.

*------>CLASSDEFINITION------
*------CLASSLCL_LAYOUTDEFINITION------
CLASSLCL_LAYOUTDEFINITION.
PUBLICSECTION.
DATA:S_LAYOUTTYPELVC_S_LAYO.
METHODS:PREPARE_LAYOUT.
ENDCLASS.

*------CLASSLCL_FIELDCATDEFINITION------
CLASSLCL_FIELDCATDEFINITION.
PUBLICSECTION.
DATA:IT_FIELDCATTYPELVC_T_FCAT.
METHODS:PREPARE_FIELDCAT.
PRIVATESECTION.
DATA:S_FIELDCATTYPELVC_S_FCAT.
ENDCLASS.

*------CLASSLCL_DATADEFINITION------
CLASSLCL_DATADEFINITION.
PUBLICSECTION.
DATA:IT_EKKOTYPETABLEOFTP_TAB.
METHODS:PREPARE_DATA.
PRIVATESECTION.
DATA:RS_DATATYPEREFTOTP_TAB.
ENDCLASS.

*------>CLASSIMPLEMENTATION------
*------CLASSLCL_LAYOUTIMPLEMENTATION------
CLASSLCL_LAYOUTIMPLEMENTATION.
METHODPREPARE_LAYOUT.
*->FisrstColumnExceptionFlag
*S_LAYOUT-EXCP_FNAME='EXPO'.
S_LAYOUT-CTAB_FNAME='CELLCOLOR'.
S_LAYOUT-INFO_FNAME='ROWCOLOR'.
ENDMETHOD.
ENDCLASS.

*------CLASSLCL_FIELDCATIMPLEMENTATION------
CLASSLCL_FIELDCATIMPLEMENTATION.
METHODPREPARE_FIELDCAT.
**---UserMaintainedFieldCat---
*DATA:LS_FCATTYPELVC_S_FCAT.
*LS_FCAT-FIELDNAME='EBELN'.
*LS_FCAT-INTTYPE='C'.
*LS_FCAT-OUTPUTLEN='10'.
*LS_FCAT-COLTEXT='Pur.Doc'.
*LS_FCAT-SELTEXT='Purchase.Doc'.
*APPENDLS_FCATTOIT_FIELDCAT.

**---AutomaticMaintainedFieldCat
*CALLFUNCTION'LVC_FIELDCATALOG_MERGE'
*EXPORTING
*I_STRUCTURE_NAME='EKKO'
*CHANGING
*CT_FIELDCAT=IT_FIELDCAT
*EXCEPTIONS
*INCONSISTENT_INTERFACE=1
*PROGRAM_ERROR=2
*OTHERS=3.
*
*IFSY-SUBRC<>0.
**--->USERCHECK-POINT.
*ENDIF.
*
**---UP+SemiautomaticMaintainedFieldCat---
*DATA:LS_FCATTYPELVC_S_FCAT.
*LOOPATIT_FIELDCATINTOLS_FCAT.
*CASELS_FCAT-FIELDNAME.
*WHEN'EBELN'.
**->FieldLenght
*LS_FCAT-OUTPUTLEN='10'.
*LS_FCAT-COLTEXT='PUR.Doc'.
*MODIFYIT_FIELDCATFROMLS_FCAT.
*ENDCASE.
*ENDLOOP.

*---MaintainedUseMicroDefineFieldCatlog---
data:LS_FIELDCATTYPELVC_S_FCAT."ALVDataFieldCatalog
"ls_fieldcatatypeslis_fieldcat_alv."ALVDisplayFieldCatalog

*Macro:_APPEND_FIELDCAT
*&1-FieldName
*&2-ReferenceTable
*&3-ReferenceTableField(whenFieldNameisdifferent)
*&4-ShortFieldLabel
*&5-MediumFieldLabel
*&6-LongFieldLabel
*&7-TextFieldName
*&8-ReferenceFieldwithQuantityUnit
*&9-Hotspot
DEFINEF1.
clear:LS_FIELDCAT."LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME=&1.
LS_FIELDCAT-REF_TABLE=&2.
LS_FIELDCAT-REF_FIELD=&3.
LS_FIELDCAT-SCRTEXT_S=&4.
LS_FIELDCAT-SCRTEXT_M=&5.
LS_FIELDCAT-SCRTEXT_L=&6.
*LS_FIELDCAT-TXT_FIELD=&7.
*LS_FIELDCAT-QFIELDNAME=&8.
*LS_FIELDCAT-HOTSPOT=&9.

APPENDLS_FIELDCATTOIT_FIELDCAT.
END-OF-DEFINITION.

F1'EBELN''EKKO''EBELN''Pur.Doc#''Pur.DocNumer''PurchaseDocumentNumer'.
F1'BUKRS''EKKO''BUKRS''Pur.XXX''Pur.XXX''PurchaseXXX'.

ENDMETHOD.
ENDCLASS.

*------CLASSLCL_DATAIMPLEMENTATION------
CLASSLCL_DATAIMPLEMENTATION.
METHODPREPARE_DATA.
*---GETDATA---
SELECTA~EBELNA~BUKRS
FROMEKKOASA
INTOCORRESPONDINGFIELDSOFTABLEIT_EKKO
WHEREA~EBELNINS_EBELN
ANDA~BUKRSINS_BUKRS.

*---SETROWCOLOR---
READTABLEIT_EKKOREFERENCEINTORS_DATAINDEX2.
RS_DATA->ROWCOLOR='C110'.

*---SETCELLCOLOR---
DATA:RS_CELLTYPELVC_S_SCOL.
READTABLEIT_EKKOREFERENCEINTORS_DATAINDEX4.
RS_CELL-FNAME='BUKRS'.
RS_CELL-COLOR-COL='6'.
RS_CELL-COLOR-INT='1'.
APPENDRS_CELLTORS_DATA->CELLCOLOR.
ENDMETHOD.
ENDCLASS.

*------>ATSELECTIONSCREEN------
ATSELECTION-SCREENOUTPUT.
PERFORMMODIFY_SCREEN.

*------>START-OF-SELECTION------
START-OF-SELECTION.
IFP_ALV='X'.
*---CALLALVGIRDSCREEN.
CALLSCREEN9000.
ELSE.
PERFORMDOWNLOAD_TO_SERVER.
ENDIF.

*------FORMMODIFY_SCREEN------
FORMMODIFY_SCREEN.
LOOPATSCREEN.
IFP_ALV='X'.
IFSCREEN-GROUP1='PTH'.
SCREEN-ACTIVE='0'.
SCREEN-INVISIBLE='1'.
MODIFYSCREEN.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.

*------>ModuleINIT_SCREENOUTPUT------
MODULEINIT_SCREENOUTPUT.
SETPF-STATUS'STAT'.
PERFORMFRM_DISPLAY_ALV.
ENDMODULE.

*------>ModuleUSER_COMMANDOUTPUT-----
MODULEUSER_COMMANDINPUT.
SAVE_OK=OK_CODE.
CASESAVE_OK.
WHEN'BACK'OR'EXIT'OR'CANC'.
LEAVEPROGRAM.
ENDCASE.
ENDMODULE.

*------>FormFRM_DISPLAY_ALV------
FORMFRM_DISPLAY_ALV.
*->LocalDataDefinition
DATA:VARTYPEDISVARIANT."Variant
IFREF_ALVISINITIAL.
*---InstanceCustomerContainer->CL_GUI_CUSTOMER_CONTAINER
CREATEOBJECTREF_CON
EXPORTING
CONTAINER_NAME='CON_ALV'.

*---CreateALVGrid---
CREATEOBJECTREF_ALV
EXPORTING
I_PARENT=REF_CON.

*---CreateFieldCatlogForALV---
CREATEOBJECTREF_FIELDCAT.
CALLMETHODREF_FIELDCAT->PREPARE_FIELDCAT.

*---SetLayoutProperty---
CREATEOBJECTREF_LAYOUT.
CALLMETHODREF_LAYOUT->PREPARE_LAYOUT.

*---GetData---
CREATEOBJECTREF_DATA.
CALLMETHODREF_DATA->PREPARE_DATA.

*---DispalyData---
CLEARVAR.
CALLMETHODREF_ALV->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_VARIANT=VAR
I_SAVE=SPACE
I_DEFAULT='X'
IS_LAYOUT=REF_LAYOUT->S_LAYOUT
CHANGING
IT_OUTTAB=REF_DATA->IT_EKKO
IT_FIELDCATALOG=REF_FIELDCAT->IT_FIELDCAT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION=1
PROGRAM_ERROR=2
TOO_MANY_LINES=3
OTHERS=4.
ELSE.
CALLMETHODREF_ALV->REFRESH_TABLE_DISPLAY.
ENDIF.
ENDFORM.

*------>FORMDOWNLOAD_TO_SERVER------
FORMDOWNLOAD_TO_SERVER.
FIELD-SYMBOLS:<FS>.
DATA:L_FIELD(40)TYPEC.
DATA:L_STRING(450)TYPEC.

*---GetData---
CREATEOBJECTREF_DATA.
CALLMETHODREF_DATA->PREPARE_DATA.

DATA:IT_TAB1TYPESTANDARDTABLEOFTP_TABWITHHEADERLINE.

IT_TAB1[]=REF_DATA->IT_EKKO.

TRY.
CONCATENATE'Report_'SY-DATUM'_'
SY-UZEIT+0(2)SY-UZEIT+2(2)'.csv'INTOP_SVFILE.

DATA:BEGINOFIT_OUTOCCURS0,
PUR_NO(30),"PUR.DOCNumber
ENDOFIT_OUT.

*DATA:IT_OUTTYPESTANDARDTABLEOFTP_OUTWITHHEADERLINE.
LOOPATIT_TAB1.
*MOVE-CORRESPONDINGIT_TAB1TOIT_OUT.
IT_OUT-PUR_NO=IT_TAB1-EBELN.
APPENDIT_OUT.
CLEAR:IT_OUT.
ENDLOOP.

CONCATENATEP_SVPATHP_SVFILEINTOG_SVFILE.
OPENDATASETG_SVFILEFOROUTPUTINTEXTMODEENCODINGDEFAULT.
IFSY-SUBRC=0.
CLEARL_STRING.
CONCATENATE'PUR_NUMBER'
'BUKRS'
INTOL_STRING
SEPARATEDBY','.

TRANSFERL_STRINGTOG_SVFILE.

LOOPATIT_OUT.
CLEARL_STRING.
DO.
ASSIGNCOMPONENTSY-INDEXOFSTRUCTUREIT_OUTTO<FS>.
IFSY-SUBRCNE0.
EXIT.
ENDIF.
WRITE<FS>TOL_FIELD.
REPLACEALLOCCURRENCESOF''''INL_FIELDWITH''''''.
SHIFTL_FIELDLEFTDELETINGLEADINGSPACE.
IFSY-INDEX=1.
*---EXCEL---
*L_STRING=L_FIELD.
*---CSV---
*-e.g1->"1"fileincsv.
L_STRING=L_FIELD.
ELSE.
*---EXCEL---
*CONCATENATEL_STRINGL_FIELDINTOL_STRING
*SEPARATEDBY
*CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
*---CSV---
CONCATENATEL_STRINGL_FIELDINTOL_STRING
SEPARATEDBY','.

ENDIF.
ENDDO.
TRANSFERL_STRINGTOG_SVFILE.
ENDLOOP.
CLOSEDATASETG_SVFILE.

WRITE:/'Exportissuccessful.'.
WRITE:/'Temporaryfilecreatedonserver:',G_SVFILE.
ELSE.
MESSAGEE999(b1)WITH:'Exportisfailed!'.
ENDIF.
CATCHCX_ROOT.
WRITE:/'Temporaryfilewritingerroronserver.'.
MESSAGEE999(b1)WITH:'Temporaryfilewritingerroronserver!'.
ENDTRY.
ENDFORM.

分享到:
评论

相关推荐

    SAP ALV Grid资料整理 (很全面)

    SAP ALV Grid 资料整理(很全面) SAP ALV Grid 是一种灵活的工具,用于显示列表,并提供了常见的列表操作通用函数,可以通过自定义选项来增强其功能。ALV Grid 控件可以创建非层次的友好交互式报表,是一个基于...

    ALV OO 模板

    2. **`g1_grid`**:这是一个引用类型,指向`cl_gui_alv_grid`类的实例,这是ALV OO的核心类,负责处理ALV的所有图形用户界面元素。 3. **`g1s_layout`**:此变量存储ALV的布局设置,`lvc_s_layo`类型的数据结构,...

    REUSE_ALV_GRID_DISPLAY超详细讲解

    REUSE_ALV_GRID_DISPLAY超详细讲解 REUSE_ALV_GRID_DISPLAY是一个功能强大的ABAP函数模块,主要用于在ABAP程序中显示ALV网格控件。该函数模块提供了大量的参数和事件,使得开发者可以根据需要自定义ALV网格控件的...

    SAP OO ALV技术介绍.pptx

    OO ALV技术相比于标准函数REUSE_ALV_GRID_DISPLAY和REUSE_ALV_GRID_DISPLAY_LVC具有更多的灵活性和可扩展性,可以满足更多的报表需求。 OO ALV技术的实现主要涉及到以下几个方面: 1. 容器类的实例化:通过创建...

    ABAP OO去掉ALV中的标准工具栏

    在ABAP面向对象编程(ABAP OO)中,经常需要对ALV(Application List Viewer)进行定制化的控制,包括移除或隐藏某些默认显示的工具栏功能。这通常是为了提供更简洁、更符合业务需求的用户界面。本文将详细介绍如何...

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV)

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...

    SAP OO ALV技术介绍.pdf

    SAP OO ALV技术是SAP系统中的一种报表控件类,通过调用cl_gui_alv_grid类的方法可以实现ALV报表的显示。OO ALV技术可以满足大多数ALV需求,但有时需要与后续的屏幕开发等集中在一个屏幕中,或者需要实现一些函数ALV...

    SAP ALV GRID介绍

    ### SAP ALV Grid 控制器详解 #### 一、ALV Grid 控制器简介 **ALV Grid 控制器**(ALV = SAP List Viewer)是SAP开发环境中的一个非常重要的工具,它用于在SAP GUI应用程序中展示数据列表。ALV Grid 控制器不仅...

    sap abap oo实现ALV

    DATA lr_alv TYPE REF TO lcl_alv. CREATE OBJECT lr_alv. lr_alv-&gt;main(). ``` #### 五、进一步学习资源 对于更深入的学习和探索,建议参考官方文档: - SAP Help Portal: [ALV in SAP]...

    ALV_GRID介绍

    ### ALV_GRID介绍 #### 一、ALV介绍 ALV Grid Control(ALV = SAP List Viewer)是一种灵活且强大的工具,主要用于展示列表数据。它不仅提供了基础的列表操作功能,还支持高度定制化,使得开发者能够根据需求对其...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    - 输出格式:ALV可以导出为多种格式,如CSV、Excel等,需要配置相应的输出选项。 - 性能优化:处理大量数据时,需考虑性能优化策略,如分页、延迟加载等。 通过阅读“abap ALV.doc”文档,你可以更详细地了解到这些...

    ABAP OOALV学习文档

    ### ABAP OOALV 学习文档详析 #### 一、ABAP OOALV 概述 **ABAP OOALV**(Object-Oriented Application List Viewer)是一种用于SAP系统的高级列表显示技术,主要用于生成复杂的报表和列表视图。自R/3 4.6C版本起...

    ALV EDIT_MASK字段的使用.rar_ABAP EDIT_MASK_ALV EDIT_MASK字段的使用_ALVEDIT

    这通常通过在`CALL REPORT`或`CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'`等语句中使用`SET_EDIT_MASK`方法来实现。例如: ``` DATA: ls_edit_mask TYPE lvc_s_fdef, lv_fieldname LIKE LINE OF it_fieldname. ls...

    ALV配置项参数[定义].pdf

    ALV的显示格式有`REUSE_ALV_LIST_DISPLAY`和`REUSE_ALV_GRID_DISPLAY`两种。前者类似传统的列表风格,后者则呈现为带有边框的网格样式,更易于数据操作。 对于ALV的列、行和单元格颜色设置,我们可以使用`i_...

    ABAP OOALV

    PERFORM REFRESH_ALV. ENDIF. ENDMODULE. FORM REFRESH_ALV. gs_stable-row = 'X'. gs_stable-col = 'X'. CALL METHOD gs_alv-&gt;REFRESH_TABLE_DISPLAY EXPORTING is_stable = gs_stable is_soft_refresh...

    ALV配置项参数[文].pdf

    - `REUSE_ALV_GRID_DISPLAY`是用于显示网格风格的ALV,可以设置回调函数`i_callback_program`和`i_callback_pf_status_set`处理用户交互,`is_layout`指定布局,`it_fieldcat`包含所有字段的配置,`i_save`决定是否...

    典型的ALV-GRID report .doc

    这篇文档是关于在SAP ABAP环境中创建一个典型的ALV-GRID报告的示例,用于展示财务凭证数据。ALV(ABAP List Viewer)是一种标准的SAP工具,用于以表格形式显示数据,并提供了多种交互功能,如排序、过滤、导出等。 ...

    ALVTREE实现库存控制报表源码.txt

    alvtree实现库存控制报表,主节点是成本物料,展开节点为组件物料,要求添加完全展开和合并功能源代码,方便查询库存明细

    OO ALV 开发 实例 SAP

    面向对象的ALV开发在SAP ABAP环境中是一种先进的数据展示技术,相比于传统的函数模块`REUSE_ALV_GRID_DISPLAY`,面向对象的方式提供了更灵活、更可扩展的解决方案。通过利用`CL_SALV_TABLE`类,开发者可以构建更加...

    OOALV常用功能完整简例

    例如,“g_alv_grid”是一个OOALV对象的引用类型,而“g_it_show”是一个与之关联的内表。代码片段中展示了如何通过SQL查询读取数据,并通过ALV展示。 “PERFORM frm_set_alv_toolbar”这一行代码表明系统中存在一...

Global site tag (gtag.js) - Google Analytics