z Bseg Report

Post on 17-Dec-2015

30 views 8 download

description

Report table BSEG

transcript

Z_BSEG_REPORTReport polozek uzetnich dokladu kde jednou z m,oznosti je vyhledavani textu. Report slouzi pouze pro informace o polozkach a dokladech a nema za cil vytvaret nejakou slozitou funkcionalitu. Po dobleclicku na dokladu se otevre ucetni doklad.

Zalozeni reportu :

Dynpro :

Status :

Zdroj kod :

*&---------------------------------------------------------------------**&ReportZ_POHL_ALV*&*&Vypispohledavek*&*&Autor:JindraBalik*&13.05.2008*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*

REPORTZ_BSEG_REPORT.

*&DeklaraceglobalnichpromennychINCLUDEZ_BSEG_REPORT_G_VAR.*INCLUDEZ_POHL_ALV_G_VAR.

*&DeklaraceglobalnichtabulekINCLUDEZ_BSEG_REPORT_G_TAB.*INCLUDEZ_POHL_ALV_G_TAB.

*ObecnefceprovyuzitivramciprogramuINCLUDEZ_BSEG_REPORT_FCE.*INCLUDEZ_POHL_ALV_GLOB_FCE.

**********Definiceselectionscreeen*********

SELECTION-SCREENBEGINOFBLOCKpodmWITHFRAMETITLEtext-001.SELECT-OPTIONS:gf_hkontFORbseg-hkont,gf_belnrFORbseg-belnr,gf_prctrFORbseg-prctr,gf_aufnrFORbseg-aufnr,gf_sgtxtFORbseg-sgtxtNOINTERVALSNO-EXTENSION,gf_kunnrFORbseg-kunnr,gf_lifnrFORbseg-lifnr,gf_gjahrFORbseg-gjahr,gf_monatFORbkpf-monat,gf_blartFORbkpf-blart.SELECTION-SCREENENDOFBLOCKpodm.

SELECTION-SCREENBEGINOFBLOCKvariWITHFRAMETITLETEXT-002.PARAMETERS:gf_variLIKEdisvariant-variant.SELECTION-SCREENENDOFBLOCKvari.

*Z_POHL_ALV_INICIAL-inicializacniproceduryaglobalnipromenne.INCLUDEZ_BSEG_REPORT_INICIAL.*INCLUDEZ_POHL_ALV_INICIAL.*INCLUDEZ_POHL_ALV_SELECT_DAT-fcepronactenidatdointernichtabulek.INCLUDEZ_BSEG_REPORT_SELECT_DATA_DB.*INCLUDEZ_POHL_ALV_SELECT_DATA_DB.*Z_POHL_ALV_SETTING_ALV-VsepronastaveniazobrazeniALVINCLUDEZ_BSEG_REPORT_SETTING_ALV.*INCLUDEZ_POHL_ALV_SETTING_ALV.

*----------------------------------------------------------------------**Initializace**----------------------------------------------------------------------*INITIALIZATION.

*NastaveniglobalnichpromennychPERFORMsetting_gl_var.

*NastaveniprazdnevariantyPERFORMvariant_init.

*NalezenidefaultvariantyPERFORMnajdi_alv_variantu.

*----------------------------------------------------------------------**ATSELECTION-SCREENONVALUE-REQUEST**----------------------------------------------------------------------*ATSELECTION-SCREENONVALUE-REQUESTFORgf_vari.

PERFORMf4_for_variant.

*----------------------------------------------------------------------**ATSELECTION-SCREEN**----------------------------------------------------------------------*ATSELECTION-SCREEN.

PERFORMpai_of_selection_screen.

*************************************************************************Start-of-selection.************************************************************************START-OF-SELECTION.

PERFORMdata_retrieval.

END-OF-SELECTION.*----------------------------------------------------------------------*

CALLSCREEN100.

*&---------------------------------------------------------------------**&ModulePBOOUTPUT*&---------------------------------------------------------------------**text*----------------------------------------------------------------------*MODULEPBOOUTPUT.

SETPF-STATUS'0100'.SETTITLEBAR'0100'.

*1.CreateoneALVControlthatshowsthefirsttable.PERFORMalv_display.

ENDMODULE."PBOOUTPUT

*&---------------------------------------------------------------------**&ModulePAIINPUT*&---------------------------------------------------------------------**text*----------------------------------------------------------------------*MODULEpaiINPUT.

CASEok_code.WHENfcode_back.PERFORMback_alv.WHENfcode_endOrfcode_escOr'EXIT'.PERFORMexit_program_alv.WHENOTHERS.CALLMETHODcl_gui_cfw=>dispatch.EndCASE.

CLEARok_code.

EndMODULE."PAIINPUT

FORMpai_of_selection_screen.

DATAl_variantLIKEdisvariant.

IfNOTgf_variISINITIAL.MOVEg_variantTOl_variant.MOVEgf_variTOl_variant-variant.CALLFUNCTION'REUSE_ALV_VARIANT_EXISTENCE'EXPORTINGi_save='A'CHANGINGcs_variant=l_variant.g_variant=l_variant.Else.PERFORMvariant_init.EndIf.

EndFORM."PAI_OF_SELECTION_SCREEN

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_G_VAR*&---------------------------------------------------------------------*

*deklaraceglobalnichpromennychDATA:g_exit(1)TYPEc,ok_codeLIKEsy-ucomm,g_repidLIKEsy-repid,g_variant_save(1)TYPEcVALUE'A',g_variantLIKEdisvariant,g_disv_variantLIKEdisvariant-variant,g_selected(1)TYPEcVALUE'X'.

DATAg_suma_typeTYPEpDECIMALS2.

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_G_TAB*&---------------------------------------------------------------------**&Deklaraceglobalnichtabulek*&---------------------------------------------------------------------*

*deklaracetabulekTABLES:bkpf,bseg.

*DeklaracestrukturyzobrazenychdatTYPES:BEGINOFgs_sest,hkontTYPEbseg-hkont,"UcetbelnrTYPEbseg-belnr,"CislodokladuprctrTYPEbseg-prctr,"ProfitCentrumaufnrTYPEbseg-aufnr,"COzakazkasgtxtTYPEbseg-sgtxt,"TextpolozkykunnrTYPEbseg-kunnr,"OdberatellifnrTYPEbseg-lifnr,"DodavatelgjahrTYPEbseg-gjahr,"ObdobirokmonatTYPEbkpf-monat,"ObdobimesicblartTYPEbkpf-blart,"DruhdokladudmbtrTYPEbseg-dmbtr,"CastkavefirmenimenewrbtrTYPEbseg-wrbtr,"CastkavemenedokladuwaersTYPEbkpf-waers,"MenabschlTYPEbseg-bschl,"KliczauctovanishkzgTYPEbseg-shkzg,"StranazauctovaniENDOFgs_sest.

*InernaltablefordataDATA:gt_sestTYPESTANDARDTABLEOFgs_sest.

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_INICIAL*&---------------------------------------------------------------------**&Nastaveniainicializacereportu*&---------------------------------------------------------------------*

*----------------------------------------------------------------------**FormSETTING_GL_VAR*----------------------------------------------------------------------*FORMsetting_gl_var.

*-inicializaceglobalnichpromennych

**Createt_opt_listentrytospecifycapabilitiesofS_BUKRS.*CLEART_OPT_LIST.*T_OPT_LIST-NAME='WHATEVER'."Thismustmatchass_tab-op_main*T_OPT_LIST-OPTIONS-BT=SPACE."DonotpermitBETWEEN*T_OPT_LIST-OPTIONS-CP=SPACE."DonotpermitMATCHES-PATTERN*T_OPT_LIST-OPTIONS-EQ='X'."PermitEQUALS*T_OPT_LIST-OPTIONS-GE=SPACE."DonotpermitGREATER-OR-EQUAL*T_OPT_LIST-OPTIONS-GT=SPACE."DonotpermitGREATER-THAN*T_OPT_LIST-OPTIONS-LE=SPACE."DonotpermitLESS-OR-EQUAL*T_OPT_LIST-OPTIONS-LT=SPACE."DonotpermitLESS-THAN*T_OPT_LIST-OPTIONS-NB=SPACE."DonotpermitNOT-BETWEEN*T_OPT_LIST-OPTIONS-NE=SPACE."DonotpermitNOT-EQUAL*T_OPT_LIST-OPTIONS-NP=SPACE."DonotpermitNO-PATTERN-MATCH*APPENDT_OPT_LISTTORESTRICT-OPT_LIST_TAB.

g_repid=sy-repid.

EndFORM."SETTING_GL_VAR

*----------------------------------------------------------------------**FormVARIANT_INIT*----------------------------------------------------------------------*FORMvariant_init.

*-inicializacevariantyALVseznamuCLEARg_variant.g_variant-report=g_repid.MOVEsy-unameTOg_variant-username.

EndFORM."VARIANT_INIT

*----------------------------------------------------------------------**FormNAJDI_ALV_VARIANTU*----------------------------------------------------------------------*FORMnajdi_alv_variantu.

DATAl_variantLIKEdisvariant.

*Getdefaultvariantl_variant=g_variant.CALLFUNCTION'REUSE_ALV_VARIANT_DEFAULT_GET'EXPORTINGi_save='A'CHANGINGcs_variant=l_variantEXCEPTIONSnot_found=2.Ifsy-subrc=0.gf_vari=l_variant-variant.EndIf.

EndFORM."NAJDI_ALV_VARIANTU

*---------------------------------------------------------------------**FORMF4_FOR_VARIANT**---------------------------------------------------------------------**........**---------------------------------------------------------------------*FORMf4_for_variant..

DATAl_variantLIKEdisvariant.

CALLFUNCTION'LVC_VARIANT_F4'EXPORTINGis_variant=g_varianti_save='A'IMPORTINGe_exit=g_exites_variant=l_variantEXCEPTIONSnot_found=1program_error=2others=3.

Ifsy-subrcNE0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.Else.Ifg_exitNE'X'.gf_vari=l_variant-variant.EndIf.EndIf.

EndFORM."F4_FOR_VARIANT

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_GLOB_FCE*&---------------------------------------------------------------------**&Fcepouzitekdekolivreportu*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------**&FormPROGRESS_BAR*&---------------------------------------------------------------------*FORMprogress_barUSINGa_valuea_tabixa_nlines.

DATA:w_text(40),l_modTYPEi,w_percentageTYPEp,w_percent_char(3).

w_percentage=(a_tabix/a_nlines)*100.w_percent_char=w_percentage.SHIFTw_percent_charLEFTDELETINGLEADING''.CONCATENATEa_valuew_percent_char'%Complete'INTOw_text.

*Thischeckneedstobeinotherwisewhenloopingaroundbigtables*SAPwillre-displayindicatortoomanytimescausingreporttorun*veryslow.(Noneedtore-displaysamepercentageanyway)l_mod=a_tabixMOD100.Ifl_mod=0.CALLFUNCTION'SAPGUI_PROGRESS_INDICATOR'EXPORTINGpercentage=w_percentagetext=w_text.EndIf.Endform."PROGRESS_BAR

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_SELECT_DATA_DB*&---------------------------------------------------------------------**&NactenidatzDBdointernichtabulek*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------**&FormDATA_RETRIEVAL*&---------------------------------------------------------------------**RetrievedataformDB*----------------------------------------------------------------------*FORMdata_retrieval.

DATA:l_lengthTYPEi,l_monatTYPEbkpf-monat,l_blartTYPEbkpf-blart,l_waersTYPEbkpf-waers,lrt_sestLIKELINEOFgt_sest.

SELECThkontbelnrprctraufnrsgtxtkunnrlifnrgjahrdmbtrwrbtrbschlshkzgINTOCORRESPONDINGFIELDSOFTABLEgt_sestFROMbsegWHERE((hkontINgf_hkont)And(belnrINgf_belnr)And(prctrINgf_prctr)And(aufnrINgf_aufnr)And(sgtxtINgf_sgtxt)And(kunnrINgf_kunnr)And(lifnrINgf_lifnr)And(gjahrINgf_gjahr)And(bukrs='BSCZ')).

DESCRIBETABLEgt_sestLINESl_length.

SORTgt_sestBYbelnr.

LOOPATgt_sestINTOlrt_sest.

PERFORMprogress_barUSING'Upravaselectu...'sy-tabixl_length.

SELECTSINGLEblartmonatwaersINTO(l_blart,l_monat,l_waers)FROMbkpfWHERE((bukrs='BSCZ')And(belnr=lrt_sest-belnr)And(gjahr=lrt_sest-gjahr)And(monatINgf_monat)And(blartINgf_blart)).

Ifsy-subrc=0.lrt_sest-blart=l_blart.lrt_sest-monat=l_monat.lrt_sest-waers=l_waers.Iflrt_sest-shkzg='H'.lrt_sest-dmbtr=lrt_sest-dmbtr*-1.lrt_sest-wrbtr=lrt_sest-wrbtr*-1.EndIf.MODIFYgt_sestINDEXsy-tabixFROMlrt_sest.Else.DELETEgt_sestINDEXsy-tabix.EndIf.EndLOOP.

SORTgt_sestBYbelnrhkont.

EndFORM."DATA_RETRIEVAL

*&---------------------------------------------------------------------**&IncludeZ_POHL_ALV_SETTING_ALV*&---------------------------------------------------------------------**&ZobrazireportALVGRID*&---------------------------------------------------------------------*

*DefinicepromennychprozobrazeniTREEINCLUDEZ_BSEG_REPORT_DECL_VAR_ALV.

*DefinicetridprozobrazeniALVvTREEINCLUDEZ_BSEG_REPORT_DEF_TRID_ALV.

*PotrebnefceprozobrazeniALVkTREEINCLUDEZ_BSEG_REPORT_FCE_ALV.

*&---------------------------------------------------------------------**&FORMalv_diaplay*&---------------------------------------------------------------------**NastaveniazobrazeniALV*----------------------------------------------------------------------*FORMalv_display.

*1.CreateoneALVControlthatshowsthefirsttable.Ifg_custom_containerISINITIAL.*createcontainerforALVgridCREATEOBJECTg_custom_containerEXPORTINGcontainer_name=g_containerEXCEPTIONScntl_error=1cntl_system_error=2create_error=3lifetime_error=4lifetime_dynpro_dynpro_link=5.

Ifsy-subrcNE0.*addyourhandling,forexampleCALLFUNCTION'POPUP_TO_INFORM'EXPORTINGtitel=g_repidtxt2=sy-subrctxt1='Nemebtvytvoenobjektprodata'(200).EndIf.

EndIf.

Ifalv_gridISINITIAL.

*createEventReceiverCREATEOBJECTg_event_receiver.

*buildsort_tab_gridPERFORMbuild_sort_tab_alv.

PERFORMbuild_fieldcatalog_alv.

*PERFORMbuild_sp_group_alv.

*createaninstanceofalvcontrolCREATEOBJECTalv_gridEXPORTINGi_appl_events=g_selected"applicationeventi_parent=g_custom_container.

PERFORMbuild_layout.

*handlerforALVgrid*SETHANDLERg_event_receiver->handle_toolbar_setFORgrid.SETHANDLERg_event_receiver->handle_user_commandFORalv_grid.SETHANDLERg_event_receiver->handle_double_clickFORalv_grid.SETHANDLERg_event_receiver->handle_context_menuFORalv_grid.SETHANDLERg_event_receiver->handle_ondropFORalv_grid.

*firstcallwithdummyentryCALLMETHODalv_grid->set_table_for_first_displayEXPORTING*i_structure_name='GS_DOKLAD'*it_special_groups=gt_groups_alvis_layout=gs_layout_alvCHANGINGit_fieldcatalog=gt_fieldcat_alv[]it_sort=gt_sort_alv[]it_outtab=gt_sest[].

*flushCALLMETHODcl_gui_control=>set_focusEXPORTINGcontrol=alv_grid.

CALLMETHODcl_gui_cfw=>flush.

EndIf.

*callwithdata*gs_layout_alv-grid_title=gt_detail-coas_aufex.

*CALLMETHODgrid1->set_frontend_layout*EXPORTING*is_layout=gs_layout_alv.

*CALLMETHODalv_grid->refresh_table_display.

*resetfieldsonscreen100*cleargt_det_tree.*flush

CALLMETHODcl_gui_control=>set_focusEXPORTINGcontrol=alv_grid.

CALLMETHODcl_gui_cfw=>flush.

EndFORM."alv_diaplay

*&---------------------------------------------------------------------**&IncludeZ_BSEG_REPORT_DECL_VAR_ALV*&---------------------------------------------------------------------**&PromenneproALVcontrol*&---------------------------------------------------------------------*

*CLASSfroALVCLASScl_gui_cfwDEFINITIONLOAD.

*ALVdatadeclarationsDATA:g_containerTYPEscrfnameVALUE'CONT_ALV',alv_gridTYPEREFTOcl_gui_alv_grid,g_custom_containerTYPEREFTOcl_gui_custom_container.

*StructurefroALVDATA:gs_layout_alvTYPElvc_s_layo,gs_fieldcatTYPElvc_s_fcat,gs_colorTYPElvc_s_scol.

*InernaltableforALVDATA:gt_fieldcat_alvTYPElvc_t_fcat,*gt_dynpreadLIKEDYNPREADOCCURS0WITHHEADERLINE,gt_sort_alvTYPElvc_t_sortWITHHEADERLINE,gt_filt_alvTYPElvc_t_filtWITHHEADERLINE,gt_colorTYPETABLEOFlvc_t_scol.

*constantsCONSTANTS:fcode_backLIKEsy-ucommVALUE'BACK',fcode_endLIKEsy-ucommVALUE'END',fcode_entrLIKEsy-ucommVALUE'ENTR',fcode_escLIKEsy-ucommVALUE'ESC'.

*&---------------------------------------------------------------------**&IncludeZ_BSEG_REPORT_DEF_TRID_ALV*&---------------------------------------------------------------------**&*DefinicetridprozobrazeniALVvTREE*&*&---------------------------------------------------------------------*

*****************************************************************LOCALCLASSES:Definition******************************************************************===============================================================*classcl_event_receiver(DEFINITION)**localclasstohandleevent*****************************************************************CLASScl_event_receiverDEFINITION.

PUBLICSECTION.

DATA:ucommTYPEsy-ucomm.DATA:selfieldTYPEslis_selfield.

METHODS:

**toolbar*METHODShandle_toolbar_set*FOREVENTtoolbarOFcl_gui_alv_grid*IMPORTINGe_object*e_interactive.

*usercommandhandle_user_commandFOREVENTuser_commandOFcl_gui_alv_gridIMPORTINGe_ucomm,

*doubleclickhandle_double_clickFOREVENTdouble_clickOFcl_gui_alv_gridIMPORTINGe_rowe_column,

*contextmenuehandle_context_menuFOREVENTcontext_menu_requestOFcl_gui_alv_gridIMPORTINGe_object,

*drophandle_ondropFOREVENTondropOFcl_gui_alv_gridIMPORTINGe_rowe_columne_dragdropobj.

PRIVATESECTION.

DATA:dialogbox_statusTYPEc."'X':doesexist,SPACE:doesnotex.

EndCLASS."cl_event_receive

*****************************************************************LOCALCLASSES:Implementation******************************************************************---------------------------------------------------------------------**CLASSCL_EVENT_RECEIVERIMPLEMENTATION*---------------------------------------------------------------------*CLASScl_event_receiverIMPLEMENTATION.

*handleuser_commandMETHODhandle_user_command.*CASEe_ucomm.*WHENfcode_disp.*PERFORMDISPLAY_DETAIL.*WHENfcode_plane.**PERFORMDISPLAY_SAPLANE.*WHENOTHERS.*EndCASE.EndMETHOD.

*handledouble_clickMETHODhandle_double_click.

DATAlrt_sestLIKELINEOFgt_sest.

**4.AtDoubleclick(2):SelectbookingdataIfe_column-fieldname='BELNR'.**readselectedrowfrominternaltablegt_sflightREADTABLEgt_sestINDEXe_row-indexINTOlrt_sest.

PERFORMselect_bkpfUSINGlrt_sest.EndIf.EndMETHOD.

**handletoolbar*METHODhandle_toolbar_set.**createownMenubuttonsandToolbarButtons**appendaseparatortonormaltoolbar*CLEARgs_toolbar.*MOVE3TOgs_toolbar-butn_type.*APPENDgs_toolbarTOe_object->mt_toolbar.***appenddetailbutton*CLEARgs_toolbar.*MOVEfcode_dispTOgs_toolbar-function.*MOVEicon_detailTOgs_toolbar-icon.*MOVETEXT-005TOgs_toolbar-quickinfo.*MOVE''TOgs_toolbar-disabled.*APPENDgs_toolbarTOe_object->mt_toolbar.***appendaseparatortonormaltoolbar*CLEARgs_toolbar.*MOVE3TOgs_toolbar-butn_type.*APPENDgs_toolbarTOe_object->mt_toolbar.***appendnewbutton*CLEARgs_toolbar.*MOVEfcode_planeTOgs_toolbar-function.*MOVEicon_ws_planeTOgs_toolbar-icon.*MOVETEXT-002TOgs_toolbar-quickinfo.*MOVE''TOgs_toolbar-disabled.*APPENDgs_toolbarTOe_object->mt_toolbar.**EndMETHOD.

*contextmenueMETHODhandle_context_menu.*CALLMETHODe_object->add_function*EXPORTING*fcode=fcode_disp*text=TEXT-005.**CALLMETHODe_object->add_function*EXPORTING*fcode=fcode_plane*text=TEXT-002.

EndMETHOD.

*Drag&DropMETHODhandle_ondrop.*EndMETHOD.

EndCLASS."CLASSCL_EVENT_RECEIVERIMPLEMENTATION

DATA:g_event_receiverTYPEREFTOcl_event_receiver.

*&---------------------------------------------------------------------**&IncludeZ_BSEG_REPORT_FCE_ALV*&---------------------------------------------------------------------**&PotrebnefceprozobrazeniALV*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------**&Formbuild_sort_tab_grid*&---------------------------------------------------------------------**VytvorenisortcataloguproALV*----------------------------------------------------------------------*FORMbuild_sort_tab_alv.

*createsort-tablegt_sort_alv-spos=1.gt_sort_alv-fieldname='BELNR'.gt_sort_alv-up=g_selected.*gt_sort_alv-down=g_selected.*gt_sort_alv-subtot=g_selected.APPENDgt_sort_alv.

ENDFORM."build_sort_tab_grid

*&---------FIELDCATALOGTREE-------------------------------------------------------------

*&---------------------------------------------------------------------**MACROSADD_FIELD_ALV*&---------------------------------------------------------------------*DEFINEadd_field_alv.

*&1=FIELDNAME&2=Keyflag&3=TABNAME&4=REFFILED&5=REFTABNAME&6=DO-SUM&7=NO-OUT&8=group

CLEARls_fieldcatalog.

ls_fieldcatalog-fieldname=&1."Nazevsloupcevystupnitabulky'CHAR,30,LVC_FNAME'ls_fieldcatalog-tabname=&2."Nazevvystupnitabulky'CHAR,30,LVC_TNAME'ls_fieldcatalog-key=&3."Oznacenyjakoklic(barvaapevnapozice)'CHAR,1,LVC_KEY'*ls_fieldcatalog-do_sum=&6."Sloupecsebudescitat(agregacehodnot)'CHAR,1,LVC_DOSUM'*ls_fieldcatalog-no_out=&7."Vystupseneprovadi'CHAR,1,LVC_NOOUT'ls_fieldcatalog-ref_field=&4."Nazevrefer.poleprointernitab.pole'CHAR,30,LVC_RFNAME'ls_fieldcatalog-ref_table=&5."Nazevrefer.tab.prointernitab.'CHAR,30,LVC_RTNAME'*ls_fieldcatalog-sp_group=&8."Sloupecjesoucastisp_group

APPENDls_fieldcatalogTOgt_fieldcat_alv.

End-OF-DEFINITION."ADD_FIELD_ALV

*&---------------------------------------------------------------------**&FormBUILD_FIELDCATALOG_ALV*&---------------------------------------------------------------------**ThissubroutineisusedtobuildthefieldcatalogfortheALVlist*----------------------------------------------------------------------*FORMbuild_fieldcatalog_alv.

DATA:ls_fieldcatalogTYPElvc_s_fcat.

*createfieldcatalog*FieldnameTabNameHeadingKey?add_field_alv'BELNR''GT_SEST''X''BALNR''BSEG'.add_field_alv'HKONT''GT_SEST''''HKONT''BSEG'.add_field_alv'PRCTR''GT_SEST''''PRCTR''BSEG'.add_field_alv'AUFNR''GT_SEST''''AUFNR''BSEG'.add_field_alv'SGTXT''GT_SEST''''SGTXT''BSEG'.add_field_alv'KUNNR''GT_SEST''''KUNNR''BSEG'.add_field_alv'LIFNR''GT_SEST''''LIFNR''BSEG'.add_field_alv'GJAHR''GT_SEST''''GJAHR''BSEG'.add_field_alv'MONAT''GT_SEST''''MONAT''BKPF'.add_field_alv'BLART''GT_SEST''''BLART''BKPF'.add_field_alv'BSCHL''GT_SEST''''BSCHL''BSEG'.add_field_alv'DMBTR''GT_SEST''''DMBTR''BSEG'.add_field_alv'WRBTR''GT_SEST''''WRBTR''BSEG'.add_field_alv'WAERS''GT_SEST''''WAERS''BKPF'.EndFORM."BUILD_FIELDCATALOG_ALV

*&---------------------------------------------------------------------**&FormBUILD_LAYOUT*&---------------------------------------------------------------------**BuildlayoutforALVgridreport*----------------------------------------------------------------------*FORMbuild_layout.

*types:beginofslis_layout_alv_spec0,*no_colhead(1)typec,"noheadings*no_hotspot(1)typec,"headingsnotashotspot*zebra(1)typec,"stripedpattern*no_vline(1)typec,"columnsseparatedbyspace*no_hline(1)typec,"rowsseparatedbyspaceB20K8A0N5D*cell_merge(1)typec,"notsuppressfieldreplication*edit(1)typec,"forgridonly*edit_mode(1)typec,"forgridonly*numc_sum(1)typec,"totalsforNUMC-Fieldspossib.*no_input(1)typec,"onlydisplayfields*f2codelikesy-ucomm,"*reprep(1)typec,"reportreportinterfaceactive*no_keyfix(1)typec,"donotfixkeycolumns*expand_all(1)typec,"Expandallpositions*no_author(1)typec,"Nostandardauthoritycheck**PF-status*def_status(1)typec,"defaultstatusspaceor'A'*item_text(20)typec,"Textforitembutton*countfnametypelvc_fname,*endofslis_layout_alv_spec0.

*opt.col.width*gs_layout_alv-cwidth_opt=g_selected.gs_layout_alv-grid_title='Doklady'(201).gs_layout_alv-edit=''."makeswholeALVtablenoneditablegs_layout_alv-zebra='X'.*handleforD'n'D*Colouringcell*gs_layout_alv-ctab_fname='CELLCOLOR'.

EndFORM."BUILD_LAYOUT

*&---------------------------------------------------------------------**&FormEXIT_PROGRAM_ALV*&---------------------------------------------------------------------*FORMexit_program_alv.

CALLMETHODg_custom_container->free.CALLMETHODcl_gui_cfw=>flush.

Ifsy-subrcNE0.*addyourhandling,forexampleCALLFUNCTION'POPUP_TO_INFORM'EXPORTINGtitel=g_repidtxt2=sy-subrctxt1='Chybavprogramu'(320).EndIf.

LEAVEPROGRAM.

EndFORM."EXIT_PROGRAM_ALV

*&---------------------------------------------------------------------**&FormBACK_ALV*&---------------------------------------------------------------------*FORMback_alv.

*g_controls_created=''.CALLMETHODalv_grid->free.CALLMETHODcl_gui_cfw=>flush.SETSCREEN0.LEAVESCREEN.

EndFORM."BACK_ALV

*&---------------------------------------------------------------------**&FormSELECT_BKPF*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->P_LS_SFLIGHTtext*free.*CALLMETHODcl_gui_cfw=>flush.SETSCREEN0.LEAVESCREEN.

EndFORM."BACK_ALV

*&---------------------------------------------------------------------**&FormSELECT_BKPF*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->P_LS_SFLIGHTtext*a_textTextktisku*-->dg_dyndoc_iddynamickydokumentnakterysetiskne*----------------------------------------------------------------------*

FORMprint_text_podmUSINGa_textTYPEgt_text_querydg_dyndoc_idTYPEREFTOcl_dd_document.

TYPES:BEGINOFls_str_podm,typ(1)TYPEc,info(255)TYPEc,ENDOFls_str_podm.

*Deklaracetabulkyproprijempodminkyrozparcelovanenadelku200DATA:lt_str_podmTYPEls_str_podmOCCURS0,lr_str_podmLIKELINEOFlt_str_podm.

CALLFUNCTION'Z_ZOBRAZ_PODM'EXPORTINGa_text=a_texta_length=250TABLESat_listheader=lt_str_podm.print_podm.EndFORM."PRINT_TEXT_PODM

*&---------------------------------------------------------------------**&FormEVENT_TOP_OF_PAGE*&---------------------------------------------------------------------**Volanizudalostitop_of_pagenadynamickemdokumentu*----------------------------------------------------------------------**-->dg_dyndoc_iddynamickydokumentnakterysetiskne*----------------------------------------------------------------------*

FORMevent_top_of_pageUSINGdg_dyndoc_idTYPEREFTOcl_dd_document.

*CALLMETHODdg_dyndoc_id->add_text*EXPORTING*text='Opispoloekdoklad'(250)*sap_style=cl_dd_area=>heading*sap_fontsize=cl_dd_area=>large*sap_color=cl_dd_area=>list_heading_int.

CALLMETHODdg_dyndoc_id->add_textEXPORTINGtext='Vbrovpodmnky:'(251)sap_style=cl_dd_area=>mediumsap_fontsize=cl_dd_area=>largesap_color=cl_dd_area=>list_heading_int.

PERFORMprint_text_podmUSINGg_hkontdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_belnrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_prctrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_aufnrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_sgtxtdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_kunnrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_lifnrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_gjahrdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_monatdg_dyndoc_id.

PERFORMprint_text_podmUSINGg_blartdg_dyndoc_id.

*CALLMETHODDG_DYNDOC_ID->ADD_GAP*EXPORTING*width=200.**CALLMETHODg_dyndoc_id->add_picture*EXPORTING*picture_id='LOGO_BARR'.

*Addnew-lineCALLMETHODdg_dyndoc_id->new_line.

CALLMETHODdg_dyndoc_id->new_line.

*CLEAR:DL_TEXT.***programID*DL_TEXT='ProgramName:'.**CALLMETHODDG_DYNDOC_ID->ADD_GAP.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_HEADING_INT.**CLEARDL_TEXT.**DL_TEXT=SY-REPID.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_NEGATIVE_INV.***Addnew-line*CALLMETHODDG_DYNDOC_ID->NEW_LINE.***CLEAR:DL_TEXT.***CLEAR:DL_TEXT.***programID*DL_TEXT='UserName:'.**CALLMETHODDG_DYNDOC_ID->ADD_GAP.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_HEADING_INT.**CLEARDL_TEXT.**DL_TEXT=SY-UNAME.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_NEGATIVE_INV.***Addnew-line*CALLMETHODDG_DYNDOC_ID->NEW_LINE.***CLEAR:DL_TEXT.***RunDate*DL_TEXT='RunDate:'.**CALLMETHODDG_DYNDOC_ID->ADD_GAP.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_HEADING_INT.**CLEARDL_TEXT.***Movedate*WRITESY-DATUMTODL_TEXT.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_NEGATIVE_INV.***Addnew-line*CALLMETHODDG_DYNDOC_ID->NEW_LINE.**CLEAR:DL_TEXT.***Time*DL_TEXT='Time:'.**CALLMETHODDG_DYNDOC_ID->ADD_GAP.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_HEADING_INT.**CLEARDL_TEXT.***Movetime*WRITESY-UZEITTODL_TEXT.**CALLMETHODO_DYNDOC_ID->ADD_TEXT*EXPORTING*TEXT=DL_TEXT*SAP_EMPHASIS=CL_DD_AREA=>HEADING*SAP_COLOR=CL_DD_AREA=>LIST_NEGATIVE_INV.***Addnew-line*CALLMETHODDG_DYNDOC_ID->NEW_LINE.

PERFORMDISPLAY.

ENDFORM."EVENT_TOP_OF_PAGE

FORMDISPLAY.

*CreatinghtmlcontrolIFG_HTML_CNTRLISINITIAL.CREATEOBJECTG_HTML_CNTRLEXPORTINGPARENT=G_PARENT_TOP.ENDIF.CALLMETHODG_DYNDOC_ID->MERGE_DOCUMENT.G_DYNDOC_ID->HTML_CONTROL=G_HTML_CNTRL.*DisplaydocumentCALLMETHODG_DYNDOC_ID->DISPLAY_DOCUMENTEXPORTINGREUSE_CONTROL='X'PARENT=G_PARENT_TOPEXCEPTIONSHTML_DISPLAY_ERROR=1.IFSY-SUBRCNE0.*MESSAGEI999WITH'Errorindisplayingtop-of-page'(036).ENDIF.ENDFORM."display *&---------------------------------------------------------------------**&IncludeZ_BSEG_REPORT_SETTING_ALV*&---------------------------------------------------------------------**&ZobrazireportALVGRID*&---------------------------------------------------------------------*

*DefinicepromennychprozobrazeniTREEINCLUDEZ_BSEG_REPORT_DECL_VAR_ALV.

*DefinicetridprozobrazeniALVvTREEINCLUDEZ_BSEG_REPORT_DEF_TRID_ALV.

*PotrebnefceprozobrazeniALVkTREEINCLUDEZ_BSEG_REPORT_FCE_ALV.

*&---------------------------------------------------------------------**&FORMalv_diaplay*&---------------------------------------------------------------------**NastaveniazobrazeniALV*----------------------------------------------------------------------*FORMalv_display.

*1.CreateoneALVControlthatshowsthefirsttable.Ifg_custom_containerISINITIAL.*createcontainerforALVgridCREATEOBJECTg_custom_containerEXPORTINGcontainer_name=g_containerEXCEPTIONScntl_error=1cntl_system_error=2create_error=3lifetime_error=4lifetime_dynpro_dynpro_link=5.

Ifsy-subrcNE0.*VypischybyCALLFUNCTION'POPUP_TO_INFORM'EXPORTINGtitel=g_repidtxt2=sy-subrctxt1='Nemebtvytvoenobjektprodata'(200).EndIf.EndIf.

Ifg_dyndoc_idISINITIAL.*CreateTOP-DocumentCREATEOBJECTg_dyndoc_idEXPORTINGstyle='ALV_GRID'.Ifsy-subrcNE0.*VypischybyCALLFUNCTION'POPUP_TO_INFORM'EXPORTINGtitel=g_repidtxt2=sy-subrctxt1='Nemebtvytvoenobjektprozobrazeni'(201).EndIf.EndIf.

Ifg_splitterISINITIAL.*CreateSplitterforcustom_containerCREATEOBJECTg_splitterEXPORTINGparent=g_custom_containerrows=2columns=1.

Ifsy-subrcNE0.*VypischybyCALLFUNCTION'POPUP_TO_INFORM'EXPORTINGtitel=g_repidtxt2=sy-subrctxt1='Nemebtvytvoenobjektprozobrazeni'(201).Else.CALLMETHODg_splitter->get_containerEXPORTINGrow=2column=1RECEIVINGcontainer=g_parent_top.

CALLMETHODg_splitter->get_containerEXPORTINGrow=1column=1RECEIVINGcontainer=g_parent_grid.

*Setheightforg_parent_htmlCALLMETHODg_splitter->set_row_heightEXPORTINGid=2height=20.EndIf.EndIf.

Ifg_gridISINITIAL.

*createEventhandlerCREATEOBJECTg_event_handler.

*buildsort_tab_gridPERFORMbuild_sort_tab_alv.

*buildfieldcatalogPERFORMbuild_fieldcatalog_alv.

*buildlayoutPERFORMbuild_layout.

*createaninstanceofalvcontrolCREATEOBJECTg_gridEXPORTINGi_appl_events=g_selected"applicationeventi_parent=g_parent_grid.

*handlerforALVgridSETHANDLERg_event_handler->handle_double_clickFORg_grid.SETHANDLERg_event_handler->handle_top_of_pageFORg_grid.

*firstcallwithdummyentryCALLMETHODg_grid->set_table_for_first_displayEXPORTINGis_layout=gs_layout_alvi_save='A'is_variant=g_variant_alvCHANGINGit_fieldcatalog=gt_fieldcat_alv[]it_sort=gt_sort_alv[]it_outtab=gt_sest[].

CALLMETHODg_dyndoc_id->initialize_documentEXPORTINGbackground_color=cl_dd_area=>col_textarea.

*ProcessingeventsCALLMETHODg_grid->list_processing_eventsEXPORTINGi_event_name='TOP_OF_PAGE'i_dyndoc_id=g_dyndoc_id.

CALLMETHODcl_gui_control=>set_focusEXPORTINGcontrol=g_grid.

EndIf.

CALLMETHODcl_gui_control=>set_focusEXPORTINGcontrol=g_grid.