Z_ylr_sf1 Mi Primer Smartforms

11
************************************************************************ * BXTI * ************************************************************************ * Nombre del Programa: REPORT z_ylr_sf1. * * Reporte : prog. para la extraccion de datos para un Dynpro* * Consultor : Yonathan Lora * * Fecha Creación : 11 de Diciembre ********************************* REPORT z_ylr_sf1 . INCLUDE : z_ylr_sf1_top , z_ylr_sf1_s01 , z_ylr_sf1_f01 . START-OF-SELECTION . PERFORM f_extraccion . *&---------------------------------------------------------------------* *& Include Z_YLR_SF1_TOP *&---------------------------------------------------------------------* INCLUDE rvadtabl . TABLES : vbfa . DATA : it_zremision TYPE STANDARD TABLE OF zremision , wa_zremision TYPE zremision , wa_parametros TYPE bapidlv_range_vbeln , it_parametros TYPE STANDARD TABLE OF bapidlv_range_vbeln , it_cabecera TYPE TABLE OF bapidlvhdr , it_detalles TYPE TABLE OF bapidlvitem , it_partners TYPE TABLE OF bapidlvpartners , it_flow TYPE TABLE OF bapidocflow , wa_flow TYPE bapidocflow , wa_partners TYPE bapidlvpartners , wa_detalles TYPE bapidlvitem , is_dlv_data_controly TYPE bapidlvbuffercontrol , p_buks TYPE bukrs_vf ,

description

ejemplo de un smartform en abap

Transcript of Z_ylr_sf1 Mi Primer Smartforms

*************************************************************************                           BXTI                                       ************************************************************************** Nombre del Programa: REPORT z_ylr_sf1.                               ** Reporte            : prog. para la extraccion de datos para un Dynpro** Consultor          : Yonathan Lora                                   ** Fecha Creación     : 11 de Diciembre *********************************

REPORT z_ylr_sf1.

INCLUDE:z_ylr_sf1_top,        z_ylr_sf1_s01,        z_ylr_sf1_f01.

START-OF-SELECTION.

  PERFORM f_extraccion.

*&---------------------------------------------------------------------**&  Include           Z_YLR_SF1_TOP*&---------------------------------------------------------------------*

 INCLUDE rvadtabl.

 TABLES:   vbfa. DATA:   it_zremision         TYPE STANDARD TABLE OF zremision,   wa_zremision         TYPE  zremision,   wa_parametros        TYPE bapidlv_range_vbeln,   it_parametros        TYPE STANDARD TABLE OF bapidlv_range_vbeln,   it_cabecera          TYPE TABLE OF bapidlvhdr,   it_detalles          TYPE TABLE OF bapidlvitem,   it_partners          TYPE TABLE OF bapidlvpartners,   it_flow              TYPE TABLE OF bapidocflow,   wa_flow              TYPE bapidocflow,   wa_partners          TYPE bapidlvpartners,   wa_detalles          TYPE  bapidlvitem,   is_dlv_data_controly TYPE bapidlvbuffercontrol,   p_buks               TYPE bukrs_vf,   adrnrcom             TYPE t001-adrnr,   "datos extra para la tabla   p_centro             TYPE    werks_d,

   p_almacen            TYPE    lgort_d,   p_fecha              TYPE    erdat.

 DATA:   ls_control_param  TYPE ssfctrlop,   ls_composer_param TYPE ssfcompop,   ls_recipient      TYPE swotobjid,   ls_sender         TYPE swotobjid,   ls_ssfcrescl      TYPE ssfcrescl,   ls_ssfcrespd      TYPE ssfcrespd,   lf_formname       TYPE tdsfname,   lf_fm_name        TYPE rs38l_fnam.

*&---------------------------------------------------------------------**&  Include           Z_YLR_SF1_S01*&---------------------------------------------------------------------*

*PARAMETERS:

SELECTION-SCREEN BEGIN OF BLOCK p_msj WITH FRAME TITLE text-001.

PARAMETERS:      norden TYPE vbfa-vbelv.

SELECTION-SCREEN END OF BLOCK p_msj.

*&---------------------------------------------------------------------**&  Include           Z_YLR_SF1_F01*&---------------------------------------------------------------------**&---------------------------------------------------------------------**&      Form  EXTRACCION*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM f_extraccion .

  wa_parametros-sign = 'I'.  wa_parametros-option = 'EQ'.  wa_parametros-deliv_numb_low = norden.  APPEND  wa_parametros TO it_parametros.

  is_dlv_data_controly-bypassing_buffer = 'X'.  is_dlv_data_controly-doc_flow = 'X'.  is_dlv_data_controly-ft_data = 'X'.  is_dlv_data_controly-head_partner = 'X'.  is_dlv_data_controly-head_status = 'X'.  is_dlv_data_controly-hu_data = 'X'.  is_dlv_data_controly-item = 'X'.  is_dlv_data_controly-item_status = 'X'.  is_dlv_data_controly-serno = 'X'.

  CALL FUNCTION 'BAPI_DELIVERY_GETLIST'    EXPORTING      is_dlv_data_control = is_dlv_data_controly    TABLES      et_delivery_header  = it_cabecera      et_delivery_item    = it_detalles      et_delivery_partner = it_partners      et_document_flow    = it_flow      it_vbeln            = it_parametros    EXCEPTIONS      OTHERS              = 1.

*    wa_zremision-cabe = it_cabecera.  IF lines( it_cabecera ) > 0 AND  sy-subrc EQ 0.    READ TABLE it_cabecera INDEX 1 INTO wa_zremision-cabe.    wa_zremision-deta = it_detalles.    PERFORM f_datoscomplementarios.    PERFORM f_joinsdireccioenes.  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------**&      Form  JOINSDIRECCIOENES*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM f_joinsdireccioenes .  " validacion para que la tabla no este vacia.  IF lines( it_cabecera ) > 0 .    LOOP AT it_partners INTO wa_partners.

      IF wa_partners-parvw EQ 'SO' OR wa_partners-parvw EQ 'AG'.

        SELECT SINGLE *        INTO wa_zremision-soli

        FROM adrc        WHERE addrnumber = wa_partners-adrnr.

      ELSEIF  wa_partners-parvw EQ 'EM' OR wa_partners-parvw EQ 'WE'.

        SELECT SINGLE *        INTO wa_zremision-dest        FROM adrc        WHERE addrnumber = wa_partners-adrnr.      ENDIF.

    ENDLOOP.  ENDIF.

  IF sy-subrc EQ 0.

"   lectura del flow para sacar la direccion    READ TABLE  it_flow INTO wa_flow    WITH KEY vbtyp_n = 'Q'.

    IF sy-subrc EQ 0.

      SELECT SINGLE bukrs_vf        INTO  p_buks        FROM vbak        WHERE vbeln = wa_flow-vbeln.

      SELECT SINGLE adrnr        INTO adrnrcom        FROM t001        WHERE bukrs =  p_buks.

      SELECT SINGLE *        INTO wa_zremision-comp        FROM adrc        WHERE addrnumber = adrnrcom.    ENDIF.

  ENDIF.

  IF sy-subrc EQ 0.    lf_formname       = 'ZREMISION'.    PERFORM llama_dynpro.  ELSE.  ENDIF.ENDFORM.

*&---------------------------------------------------------------------**&      Form  LLAMA_DYNPRO*&---------------------------------------------------------------------**       text

*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM llama_dynpro .

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'    EXPORTING      formname           = lf_formname    IMPORTING      fm_name            = lf_fm_name    EXCEPTIONS      no_form            = 1      no_function_module = 2      OTHERS             = 3.  IF sy-subrc NE 0.    EXIT.  ENDIF.

  CALL FUNCTION lf_fm_name    EXPORTING      archive_index        = toa_dara      archive_parameters   = arc_params      control_parameters   = ls_control_param      mail_recipient       = ls_recipient      mail_sender          = ls_sender      output_options       = ls_composer_param      user_settings        = ' '      wa_oc                = wa_zremision    IMPORTING      document_output_info = ls_ssfcrespd      job_output_info      = ls_ssfcrescl    EXCEPTIONS      formatting_error     = 1      internal_error       = 2      send_error           = 3      user_canceled        = 4      OTHERS               = 5.

  IF sy-subrc NE 0.    EXIT.  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------**&      Form  DATOSCOMPLEMENTARIOS*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*

*  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*FORM f_datoscomplementarios .

  IF lines( it_detalles ) > 0.    READ TABLE it_detalles INTO wa_detalles INDEX 1.    wa_zremision-centro  = wa_detalles-werks.    wa_zremision-almacen   = wa_detalles-lgort.    wa_zremision-fecha  = wa_detalles-erdat.  ENDIF.

ENDFORM.