1
Curso ABAP Avançado II
Conteúdo
1. BAPI – Modulo de Função....................................................................................................3
3. FIELD-EXIT..........................................................................................................................10
4. RELATÓRIO ALV...................................................................................................................13
5. SMARTFORMS....................................................................................................................20
2
Curso ABAP Avançado II
Transação BAPI
3
Curso ABAP Avançado II
4
Curso ABAP Avançado II
2) Criar o Enhancement:
Obs.: Para criar é necessário clicar no meio das aspas “””””””””””””.Este local é onde você
pode alterar.
5
Curso ABAP Avançado II
Esta regra adicionada é para preencher automático a data do pedido na VA01: VBKD-
BSTDK = SY-DATUM.
EXIT.
Tudo que for Call Customer-Function são exits que podem ser alteradas.
6
Curso ABAP Avançado II
7
Curso ABAP Avançado II
Transação SMOD:
8
Curso ABAP Avançado II
Clicar em Componentes
9
Curso ABAP Avançado II
3. FIELD-EXIT
10
Curso ABAP Avançado II
DZTERM
11
Curso ABAP Avançado II
12
Curso ABAP Avançado II
4. RELATÓRIO ALV
13
Curso ABAP Avançado II
*&--------------------------------------------------------------------
-*
*& Report ZMATERIAL2504_ALV
*&
*&--------------------------------------------------------------------
-*
REPORT zmaterial2504_alv.
INCLUDE zmaterial2504_alv_top.
*&--------------------------------------------------------------------
-*
* TELA DE SELEÇÃO
*&--------------------------------------------------------------------
-*
14
Curso ABAP Avançado II
*&--------------------------------------------------------------------
-*
* Start of Selection
*&--------------------------------------------------------------------
-*
START-OF-SELECTION.
PERFORM: seleciona_dados,
processa_dados,
fieldcat_fill,
monta_alv.
*&--------------------------------------------------------------------
-*
*& Form SELECIONA_DADOS
*&--------------------------------------------------------------------
-*
FORM seleciona_dados .
SELECT matnr
ersda
meins
brgew
ntgew
INTO TABLE it_mara
FROM mara
WHERE matnr IN s_matnr
AND ersda IN s_ersda
AND meins = p_meins.
IF sy-subrc NE 0.
MESSAGE 'Dados não Encontrados'(002) TYPE 'I'.
EXIT.
ENDIF.
SELECT matnr
maktx
INTO TABLE it_makt
FROM makt
FOR ALL ENTRIES IN it_mara
WHERE matnr EQ it_mara-matnr
AND spras EQ sy-langu.
*&--------------------------------------------------------------------
-*
*& Form PROCESSA_DADOS
*&--------------------------------------------------------------------
-*
15
Curso ABAP Avançado II
FORM processa_dados .
vl_contador = vl_contador + 1.
CLEAR wa_field.
wa_field-col_pos = vl_contador.
wa_field-fieldname = 'MAKTX'.
wa_field-ref_tabname = 'IT_ALV'.
wa_field-outputlen = 40.
wa_field-just = 'L'.
wa_field-seltext_l = 'Descrição'.
APPEND wa_field TO it_field.
vl_contador = vl_contador + 1.
CLEAR wa_field.
16
Curso ABAP Avançado II
wa_field-col_pos = vl_contador.
wa_field-fieldname = 'ERSDA'.
wa_field-ref_tabname = 'IT_ALV'.
wa_field-outputlen = 10.
wa_field-just = 'L'.
wa_field-seltext_l = 'Dta.Criação'.
wa_field-datatype = 'DATS'.
APPEND wa_field TO it_field.
vl_contador = vl_contador + 1.
CLEAR wa_field.
wa_field-col_pos = vl_contador.
wa_field-fieldname = 'MEINS'.
wa_field-ref_tabname = 'IT_ALV'.
wa_field-outputlen = 5.
wa_field-just = 'L'.
wa_field-seltext_l = 'UM'.
APPEND wa_field TO it_field.
vl_contador = vl_contador + 1.
CLEAR wa_field.
wa_field-col_pos = vl_contador.
wa_field-fieldname = 'BRGEW'.
wa_field-ref_tabname = 'IT_ALV'.
wa_field-outputlen = 15.
wa_field-just = 'R'.
wa_field-seltext_l = 'Peso Bruto'.
APPEND wa_field TO it_field.
vl_contador = vl_contador + 1.
CLEAR wa_field.
wa_field-col_pos = vl_contador.
wa_field-fieldname = 'NTGEW'.
wa_field-ref_tabname = 'IT_ALV'.
wa_field-outputlen = 15.
wa_field-just = 'R'.
wa_field-seltext_l = 'Peso Liquido'.
APPEND wa_field TO it_field.
PERFORM gravar_layout.
17
Curso ABAP Avançado II
is_layout = it_layout
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = it_alv[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
wa_layout-zebra = 'X'.
*&--------------------------------------------------------------------
-*
*& Include ZMATERIAL2504_ALV_TOP
*&--------------------------------------------------------------------
-*
*&--------------------------------------------------------------------
-*
* Objetos ALV-GRID
*&--------------------------------------------------------------------
-*
TYPE-POOLS: kkblo,
18
Curso ABAP Avançado II
slis.
*&--------------------------------------------------------------------
-*
* DECLARAÇÃO
*&--------------------------------------------------------------------
-*
TABLES: mara.
* TYPES
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
meins TYPE mara-meins,
brgew TYPE mara-brgew,
ntgew TYPE mara-ntgew,
END OF ty_mara,
BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt,
BEGIN OF ty_alv,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
ersda TYPE mara-ersda,
meins TYPE mara-meins,
brgew TYPE mara-brgew,
ntgew TYPE mara-ntgew,
END OF ty_alv.
* WORK-AREA
DATA: wa_mara TYPE ty_mara,
wa_makt TYPE ty_makt,
wa_alv TYPE ty_alv,
wa_field TYPE kkblo_fieldcat,
wa_layout TYPE kkblo_layout.
*TABELA INTERNA
DATA: it_mara TYPE TABLE OF ty_mara,
it_makt TYPE TABLE OF ty_makt,
it_alv TYPE TABLE OF ty_alv,
it_field TYPE kkblo_t_fieldcat,
it_layout TYPE slis_layout_alv.
*Declaração de Variaveis
DATA: i_fieldcat TYPE kkblo_t_fieldcat.
DATA: i_fieldcat_aux TYPE kkblo_t_fieldcat.
DATA: l_fcat TYPE slis_t_fieldcat_alv.
19
Curso ABAP Avançado II
Resultado:
5. SMARTFORMS
20
Curso ABAP Avançado II
21
Curso ABAP Avançado II
Testar:
22
Curso ABAP Avançado II
Clicar em detalhes
23
Curso ABAP Avançado II
24
Curso ABAP Avançado II
25
Curso ABAP Avançado II
*&-----------------------------------------------------------------
----*
*& Report ZIMPRIME2500
*&
*&-----------------------------------------------------------------
----*
*&
*&
*&-----------------------------------------------------------------
----*
REPORT ZIMPRIME2500.
INCLUDE ZIMPRIME2500_top.
*&-----------------------------------------------------------------
----*
*& Selection Screen
*&-----------------------------------------------------------------
----*
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_codre FOR zt20func00-codre.
SELECTION-SCREEN END OF BLOCK b01.
*&-----------------------------------------------------------------
----*
*& Event Start-OF-Selection
*&-----------------------------------------------------------------
----*
START-OF-SELECTION.
PERFORM: f_seleciona_dados,
f_carrega_funcao,
f_call_smartforms.
*&-----------------------------------------------------------------
26
Curso ABAP Avançado II
----*
*& Form f_seleciona_dados
*&-----------------------------------------------------------------
----*
* Seleciona Dados
*------------------------------------------------------------------
----*
FORM f_seleciona_dados .
SELECT mandt
codre
nome
dtadm
cargo
depto
salar
moeda
dtnas
depen
ender
bairr
cep
cidade
estado
pais
demit
FROM zt20func00
INTO TABLE ti_zt20func00
WHERE codre IN s_codre.
*&-----------------------------------------------------------------
----*
*& Form f_carrega_funcao
*&-----------------------------------------------------------------
----*
* Carrega Função
*------------------------------------------------------------------
----*
FORM f_carrega_funcao .
IF sy-subrc <> 0.
27
Curso ABAP Avançado II
*&-----------------------------------------------------------------
----*
*& Form f_call_smartforms
*&-----------------------------------------------------------------
----*
* Chama o Smartforms
*------------------------------------------------------------------
----*
FORM f_call_smartforms .
ENDFORM.
*&-----------------------------------------------------------------
----*
*& Include ZIMPRIME2500_TOP
*&-----------------------------------------------------------------
----*
*&-----------------------------------------------------------------
----*
*& Tables
*&-----------------------------------------------------------------
----*
tables zt20func00.
*&-----------------------------------------------------------------
----*
*& Constants
*&-----------------------------------------------------------------
----*
CONSTANTS: c_form(30) TYPE c VALUE 'ZFORMULARIO_FUNC_2500'.
*&-----------------------------------------------------------------
----*
*& Variavel
*&-----------------------------------------------------------------
----*
DATA: gv_funcao(30) TYPE c.
*&-----------------------------------------------------------------
----*
*& WorkArea
28
Curso ABAP Avançado II
*&-----------------------------------------------------------------
----*
DATA: wa20func00 TYPE zt20func00.
*&-----------------------------------------------------------------
----*
*& Tabela Interna
*&-----------------------------------------------------------------
----*
DATA: ti_zt20func00 TYPE TABLE OF zt20func00.
29