<!--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 是一种灵活的工具,用于显示列表,并提供了常见的列表操作通用函数,可以通过自定义选项来增强其功能。ALV Grid 控件可以创建非层次的友好交互式报表,是一个基于...
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是一个功能强大的ABAP函数模块,主要用于在ABAP程序中显示ALV网格控件。该函数模块提供了大量的参数和事件,使得开发者可以根据需要自定义ALV网格控件的...
OO ALV技术相比于标准函数REUSE_ALV_GRID_DISPLAY和REUSE_ALV_GRID_DISPLAY_LVC具有更多的灵活性和可扩展性,可以满足更多的报表需求。 OO ALV技术的实现主要涉及到以下几个方面: 1. 容器类的实例化:通过创建...
在ABAP面向对象编程(ABAP OO)中,经常需要对ALV(Application List Viewer)进行定制化的控制,包括移除或隐藏某些默认显示的工具栏功能。这通常是为了提供更简洁、更符合业务需求的用户界面。本文将详细介绍如何...
[SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...
SAP OO ALV技术是SAP系统中的一种报表控件类,通过调用cl_gui_alv_grid类的方法可以实现ALV报表的显示。OO ALV技术可以满足大多数ALV需求,但有时需要与后续的屏幕开发等集中在一个屏幕中,或者需要实现一些函数ALV...
### SAP ALV Grid 控制器详解 #### 一、ALV Grid 控制器简介 **ALV Grid 控制器**(ALV = SAP List Viewer)是SAP开发环境中的一个非常重要的工具,它用于在SAP GUI应用程序中展示数据列表。ALV Grid 控制器不仅...
DATA lr_alv TYPE REF TO lcl_alv. CREATE OBJECT lr_alv. lr_alv->main(). ``` #### 五、进一步学习资源 对于更深入的学习和探索,建议参考官方文档: - SAP Help Portal: [ALV in SAP]...
### ALV_GRID介绍 #### 一、ALV介绍 ALV Grid Control(ALV = SAP List Viewer)是一种灵活且强大的工具,主要用于展示列表数据。它不仅提供了基础的列表操作功能,还支持高度定制化,使得开发者能够根据需求对其...
- 输出格式:ALV可以导出为多种格式,如CSV、Excel等,需要配置相应的输出选项。 - 性能优化:处理大量数据时,需考虑性能优化策略,如分页、延迟加载等。 通过阅读“abap ALV.doc”文档,你可以更详细地了解到这些...
### ABAP OOALV 学习文档详析 #### 一、ABAP OOALV 概述 **ABAP OOALV**(Object-Oriented Application List Viewer)是一种用于SAP系统的高级列表显示技术,主要用于生成复杂的报表和列表视图。自R/3 4.6C版本起...
这通常通过在`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的显示格式有`REUSE_ALV_LIST_DISPLAY`和`REUSE_ALV_GRID_DISPLAY`两种。前者类似传统的列表风格,后者则呈现为带有边框的网格样式,更易于数据操作。 对于ALV的列、行和单元格颜色设置,我们可以使用`i_...
PERFORM REFRESH_ALV. ENDIF. ENDMODULE. FORM REFRESH_ALV. gs_stable-row = 'X'. gs_stable-col = 'X'. CALL METHOD gs_alv->REFRESH_TABLE_DISPLAY EXPORTING is_stable = gs_stable is_soft_refresh...
- `REUSE_ALV_GRID_DISPLAY`是用于显示网格风格的ALV,可以设置回调函数`i_callback_program`和`i_callback_pf_status_set`处理用户交互,`is_layout`指定布局,`it_fieldcat`包含所有字段的配置,`i_save`决定是否...
这篇文档是关于在SAP ABAP环境中创建一个典型的ALV-GRID报告的示例,用于展示财务凭证数据。ALV(ABAP List Viewer)是一种标准的SAP工具,用于以表格形式显示数据,并提供了多种交互功能,如排序、过滤、导出等。 ...
alvtree实现库存控制报表,主节点是成本物料,展开节点为组件物料,要求添加完全展开和合并功能源代码,方便查询库存明细
面向对象的ALV开发在SAP ABAP环境中是一种先进的数据展示技术,相比于传统的函数模块`REUSE_ALV_GRID_DISPLAY`,面向对象的方式提供了更灵活、更可扩展的解决方案。通过利用`CL_SALV_TABLE`类,开发者可以构建更加...
例如,“g_alv_grid”是一个OOALV对象的引用类型,而“g_it_show”是一个与之关联的内表。代码片段中展示了如何通过SQL查询读取数据,并通过ALV展示。 “PERFORM frm_set_alv_toolbar”这一行代码表明系统中存在一...