Upload
sepverde
View
10
Download
0
Embed Size (px)
DESCRIPTION
Gerando um documento BDS.
Citation preview
Criando um BDS:Para nosso exemplo, vamos criar um EXCEL:
Esse excel vamos chama-lo de ZTESTE.
Na transao OAOR, importar um documento.
Duplo clique (Modo de Tabela):
E escolher o arquivo...
Clique em OK...Objeto criado:
Para chamar esse template, criar um programa ABAP (se38) com o onte abaixo:*&---------------------------------------------------------------------**&ReportZTESTE_EXCEL*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORTzteste_excel.
**************************************************************************INSTNCIAS**************************************************************************DATA:v_documentTYPEREFTOi_oi_document_proxy,v_spreadsheetTYPEREFTOi_oi_spreadsheet,v_controlTYPEREFTOi_oi_container_control,l_arqTYPEstring.
DATA:w_conteudoTYPEsoi_generic_item,w_rangesdefTYPEsoi_dimension_item,t_conteudoTYPEsoi_generic_table,t_rangesdefTYPEsoi_dimension_table.
*----------------------------------------------------------------------**ParametersandSelect-Options---------------------------------------**----------------------------------------------------------------------*SELECTION-SCREENBEGINOFBLOCKb1WITHFRAMETITLEtext-001.PARAMETERSp_nomeTYPEchar25.SELECTION-SCREENENDOFBLOCKb1.
*----------------------------------------------------------------------**AtSelection-Screen-------------------------------------------------**----------------------------------------------------------------------*ATSELECTION-SCREEN.
*----------------------------------------------------------------------**Initialization-----------------------------------------------------**----------------------------------------------------------------------*INITIALIZATION.
*----------------------------------------------------------------------**Start-Of-Selection--------------------------------------------------**----------------------------------------------------------------------*START-OF-SELECTION.
*CriaObjetoExcelPERFORMzf_gera_objetos_excel_oaor.
PERFORMzf_abre_layput.PERFORMzf_atualiza_infUSING:*nome:12p_nome.
l_arq='c:\temp\teste.xls'.
PERFORMzf_salva_unimed_tmUSINGl_arq.
END-OF-SELECTION.*&---------------------------------------------------------------------**&FormZF_ABRE_LAYPUT*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->p1text*get_infoEXPORTINGclassname='SOFFICEINTEGRATION'classtype='OT'object_key='ZTESTE'CHANGINGcomponents=t_componentssignature=t_signatureEXCEPTIONSnothing_found=1error_kpro=2internal_error=3parameter_error=4not_authorized=5not_allowed=6.IFsy-subrcNE0.ENDIF.
*RetornaURLparaObjetoCALLMETHODl_bds_instance->get_with_urlEXPORTINGclassname='SOFFICEINTEGRATION'classtype='OT'object_key='ZTESTE'CHANGINGuris=t_urissignature=t_signatureEXCEPTIONSnothing_found=1error_kpro=2internal_error=3parameter_error=4not_authorized=5not_allowed=6.IFsy-subrcNE0.ENDIF.
*LeituraURLDocumentoREADTABLEt_componentsINTOw_componentsINDEX1.READTABLEt_urisINTOw_urisINDEX1.
CASEw_components-mimetype.WHEN'application/x-rtf'OR'text/rtf'.l_doc_format=soi_docformat_rtf.WHEN'application/x-oleobject'.l_doc_format=soi_docformat_compound.WHEN'text/plain'.l_doc_format=soi_docformat_text.WHENOTHERS.l_doc_format=soi_docformat_native.ENDCASE.
CALLMETHODc_oi_container_control_creator=>mime_to_oleEXPORTINGmimetype=w_components-mimetypeversion=l_versionIMPORTINGoletypes=t_oletypes.READTABLEt_oletypesINTOl_document_typeINDEX1.
*EncerradocumentoIFNOTv_documentISINITIAL.CALLMETHODv_document->close_document.ENDIF.
CALLMETHODv_control->get_document_proxyEXPORTINGdocument_type=l_document_typedocument_format=l_doc_formatregister_container='X'IMPORTINGdocument_proxy=v_documenterror=l_error.
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
*AbreURLCALLMETHODv_document->open_documentEXPORTINGdocument_url=w_uris-uriopen_inplace='X'open_readonly='X'protect_document=''IMPORTINGerror=l_error.
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
*CriaInterfacecomExcelCALLMETHODv_document->get_spreadsheet_interfaceIMPORTINGsheet_interface=v_spreadsheeterror=l_error.
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
ENDFORM."ZF_ABRE_LAYPUT
*&---------------------------------------------------------------------**&Formzf_atualiza_inf*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->P_LINtext*-->P_COLtext*-->P_VALtext*----------------------------------------------------------------------*FORMzf_atualiza_infUSINGp_linTYPEanyp_colTYPEanyp_valTYPEany.
*VariveisLocaisDATA:l_val_fTYPEchar120.
IFNOTp_valISINITIAL.
*FormataCampoWRITEp_valTOl_val_f.CONDENSEl_val_f.CLEARw_conteudo.w_conteudo-column=p_col.w_conteudo-row=p_lin.w_conteudo-value=l_val_f.APPENDw_conteudoTOt_conteudo.
ENDIF.
ENDFORM."ZF_ATUALIZA_INF*&---------------------------------------------------------------------**&Formzf_salva_unimed_tm*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->P_ARQtext*----------------------------------------------------------------------*FORMzf_salva_unimed_tmUSINGp_arqTYPEany.
*--------------------------------------------------------------------**Instncias*--------------------------------------------------------------------*DATA:l_errorTYPEREFTOi_oi_error.
*VariveisDATA:l_retcodeTYPEsoi_ret_string,l_file(1000)TYPEc.
*TabelaInternaLocalDATAt_rangesTYPEsoi_range_list.
l_file=p_arq.
REFRESH:t_rangesdef.
*AtualizaSadaparaAtualizaoLOOPATt_conteudoINTOw_conteudo.CLEARw_rangesdef.w_rangesdef-rows=1.w_rangesdef-columns=1.w_rangesdef-row=w_conteudo-row.w_rangesdef-column=w_conteudo-column.w_conteudo-row='1'.w_conteudo-column='1'.MODIFYt_conteudoFROMw_conteudoINDEXsy-tabix.APPENDw_rangesdefTOt_rangesdef.ENDLOOP.
*AtualizaPlanilhaCALLMETHODv_spreadsheet->set_ranges_dataEXPORTINGranges=t_rangescontents=t_conteudorangesdef=t_rangesdefIMPORTINGretcode=l_retcode.CALLMETHODc_oi_errors=>show_messageEXPORTINGtype='I'.
*SalvaArquivoCALLMETHODv_document->save_asEXPORTINGfile_name=l_fileno_flush=''prompt_user=''IMPORTINGretcode=l_retcode.
*fechadocumentov_document->close_document(EXPORTINGdo_save=abap_trueIMPORTINGerror=l_error).
ENDFORM."ZF_SALVA_UNIMED_TM*&---------------------------------------------------------------------**&FormZF_GERA_OBJETOS_EXCEL_OAOR*&---------------------------------------------------------------------**text*----------------------------------------------------------------------**-->p1text*get_container_control(IMPORTINGcontrol=v_controlerror=l_error).
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
*criacontainerCREATEOBJECTl_containerEXPORTINGcontainer_name='CONTAINER'EXCEPTIONScntl_error=1cntl_system_error=2create_error=3lifetime_error=4lifetime_dynpro_dynpro_link=5OTHERS=6.
IFsy-subrcNE0.MESSAGEe368(00)WITHtext-007.ENDIF.
*inicializacontrolesv_control->init_control(EXPORTINGinplace_enabled=abap_truer3_application_name='ExportExcel'parent=l_containerIMPORTINGerror=l_errorEXCEPTIONSjavabeannotsupported=1OTHERS=2).
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
*retornaoproxyparaodocumentov_control->get_document_proxy(EXPORTINGdocument_type=soi_doctype_excel_sheetIMPORTINGdocument_proxy=v_documenterror=l_error).
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
*criadocumentoexcelv_document->create_document(EXPORTINGdocument_title='ExportExcel'open_inplace=abap_trueIMPORTINGerror=l_error).
*casotenhafalhado,exibeamensagemdeerroIFl_error->has_failedEQabap_true.l_error->raise_message(type='E').ENDIF.
ENDFORM."ZF_GERA_OBJETOS_EXCEL_OAOR
Resultados:tela de seleo:Arquivo gerado: