Você está na página 1de 74

.

Maria Coelho Aguiar, 215


CENESP – Bloco C – 1º. Andar
05804-900 – São Paulo – SP
Tel.: 3741-4040 Fax : 3741-3562

Web Dynpro ABAP


2

Fábrica Software Web Dynpro

Índice

Input Text - Atribuir Valor.................................................................................................................................5


Passo 1:.................................................................................................................................5
Passo 2:.................................................................................................................................5
Passo 3:.................................................................................................................................7
Passo 4:.................................................................................................................................7
Passo 5:.................................................................................................................................9
Passo 6:................................................................................................................................11
Passo 7:...............................................................................................................................13
Passo 8:...............................................................................................................................13
Resultado:............................................................................................................................15
Input Text - Capturar Valor.............................................................................................................................16
Passo 1:...............................................................................................................................16
Passo 2:...............................................................................................................................16
Resultado:............................................................................................................................18
Janela Popup...................................................................................................................................................19
Passo 1:...............................................................................................................................19
Passo 2:...............................................................................................................................19
Passo 3:...............................................................................................................................21
Passo 4:...............................................................................................................................23
Resultado:............................................................................................................................24
ALV com Filtro...............................................................................................................................................25
Passo 1:...............................................................................................................................25
Passo 2:...............................................................................................................................29
Passo 3:...............................................................................................................................31
Passo 4:...............................................................................................................................34
Passo 5:...............................................................................................................................35
Passo 6:...............................................................................................................................38
Passo 7:...............................................................................................................................41
Passo 8:...............................................................................................................................43
Observação: Posicionar campo na linha de baixo...............................................................45
Select-Options.................................................................................................................................................47
Passo 1:...............................................................................................................................47
Passo 2:...............................................................................................................................47
Passo 3:...............................................................................................................................48
Passo 4:...............................................................................................................................51
Passo 5:...............................................................................................................................52
Passo 6:...............................................................................................................................52
Passo 7:...............................................................................................................................53

WA – Fábrica ABAP Page 2 de 74


WA Consultoria
3

Fábrica Software Web Dynpro

Passo 8:...............................................................................................................................54
Passo 9:...............................................................................................................................55
Passo 10:.............................................................................................................................56
Passo 11:..............................................................................................................................58
Tabstrip............................................................................................................................................................59
Passo 1:...............................................................................................................................59
Passo 2:...............................................................................................................................59
Passo 3:...............................................................................................................................60
Passo 4:...............................................................................................................................61
Passo 5:...............................................................................................................................61
Passo 6:...............................................................................................................................62
Passo 7:...............................................................................................................................63
Passo 8:...............................................................................................................................64
Habilitar/Desabilitar Campos..........................................................................................................................65
Passo 1:...............................................................................................................................65
Passo 2:...............................................................................................................................65
Passo 3:...............................................................................................................................65
Passo 4:...............................................................................................................................67
Passo 5:...............................................................................................................................68
Passo 6:...............................................................................................................................69
Passo 7:...............................................................................................................................70
Passo 8:...............................................................................................................................71
Listbox............................................................................................................................................................72
Passo 1:...............................................................................................................................72
Passo 2:...............................................................................................................................72
Passo 3:...............................................................................................................................73
Passo 4:...............................................................................................................................73
Passo 5:...............................................................................................................................75

WA – Fábrica ABAP Page 3 de 74


WA Consultoria
4

Fábrica Software Web Dynpro

Input Text - Atribuir Valor


Passo 1: Acessar a transação SE80 e criar o componente Webdynpro conforme imagem abaixo:

Passo 2: Criar o node "Component Controller" com o nome da "variável global" e seu atributo "text".

- Botão direito sobre o "component controller", opção Create >> Node

Definir o nome da "variavel global" conforme imagem que segue:

WA – Fábrica ABAP Page 4 de 74


WA Consultoria
5

Fábrica Software Web Dynpro

- Criar atributo dessa variável, apertando o botão direito no nó GNOME.

- Defina o nome do atributo, no caso abaixo TEXT do tipo "string"

WA – Fábrica ABAP Page 5 de 74


WA Consultoria
6

Fábrica Software Web Dynpro

Passo 3: Clicar sobre a "árvore", opção VIEWS para definir o layout da "tela"

Passo 4: Informar que essa view utilizará a "variável" global criada nas etapas anteriores

- Ir até a aba CONTEXT e arrastar a variável GNOME para a view conforme imagens abaixo:

WA – Fábrica ABAP Page 6 de 74


WA Consultoria
7

Fábrica Software Web Dynpro

Resultando:

WA – Fábrica ABAP Page 7 de 74


WA Consultoria
8

Fábrica Software Web Dynpro

Passo 5: Adicionar os componentes

- Voltar para a aba LAYOUT para inserir o campo de digitação na tela a ser apresentada ao usuário
- Arraste o componente INPUTTEXT para a área indicada na imagem abaixo

- Definir que a propriedade VALUE do componente passará a adotar o valor de nossa variável global.
Clique no ícone destacado abaixo, que a mesma abrirá a tela POPUP para escolha da variável.

WA – Fábrica ABAP Page 8 de 74


WA Consultoria
9

Fábrica Software Web Dynpro

Selecione a variável e confirme no primeiro botão apresentado

- Adicionar o componente "BUTTON" á tela do usuário, arrastando-o exatamente igual ao Inputtext

- Informe na propriedade TEXT o texto que estará estampado no botão. No caso desse exemplo o texto será
"Atribuir Valor"
- Na propriedade OnACTION click no ícone para criar o evento CLICK.

WA – Fábrica ABAP Page 9 de 74


WA Consultoria
10

Fábrica Software Web Dynpro

- Confirme

Passo 6: Atribuir valor ao campo de texto ao clicar no botão acima

- Ir à aba Actions para codificar a ação do botão e clicar 2 vezes na Action desejada

WA – Fábrica ABAP Page 10 de 74


WA Consultoria
11

Fábrica Software Web Dynpro

- Efetuar a codificação abaixo:

"Declaração de variáveis
DATA lo_nd_gnome TYPE REF TO if_wd_context_node.
DATA lo_el_gnome TYPE REF TO if_wd_context_element.
DATA ls_gnome TYPE wd_this->Element_gnome.

DATA lv_text TYPE wd_this->Element_gnome-text.

lo_nd_gnome = wd_context->get_child_node( name = wd_this->wdctx_gnome ).


lo_el_gnome = lo_nd_gnome->get_element( ).

"Definir o valor do texto que será atribuído ao campo da tela


lv_text = 'Valor atribuido via ação'.

lo_el_gnome->set_attribute(
name = 'TEXT'
value = lv_text ).

WA – Fábrica ABAP Page 11 de 74


WA Consultoria
12

Fábrica Software Web Dynpro

Passo 7: Verificar se a VIEW está linkada à WINDOW

Passo 8: Criar a APLICAÇÃO

WA – Fábrica ABAP Page 12 de 74


WA Consultoria
13

Fábrica Software Web Dynpro

- Salvar
- Ativar todo o componente

WA – Fábrica ABAP Page 13 de 74


WA Consultoria
14

Fábrica Software Web Dynpro

- Para testar, basta selecionar a Aplicação e apertar <F8>

Resultado:

WA – Fábrica ABAP Page 14 de 74


WA Consultoria
15

Fábrica Software Web Dynpro

Input Text - Capturar Valor


Para demonstrar como capturar o valor de um INPUTTEXT, criaremos um novo botão na aplicação acima.

Passo 1: Criar um novo botão e sua respectiva OnACTION

Passo 2: Ler o valor do campo de texto ao clicar no botão criado logo acima

- Ir à aba Actions para codificar a ação do botão e clicar 2 vezes na Action desejada

WA – Fábrica ABAP Page 15 de 74


WA Consultoria
16

Fábrica Software Web Dynpro

- Codifique conforme trecho abaixo:

DATA lo_nd_gnome TYPE REF TO if_wd_context_node.


DATA lo_el_gnome TYPE REF TO if_wd_context_element.
DATA ls_gnome TYPE wd_this->Element_gnome.

DATA lv_text TYPE wd_this->Element_gnome-text.

lo_nd_gnome = wd_context->get_child_node( name = wd_this->wdctx_gnome ).


lo_el_gnome = lo_nd_gnome->get_element( ).
lo_el_gnome->get_attribute(
EXPORTING
name = `TEXT`
IMPORTING
value = lv_text ).

WA – Fábrica ABAP Page 16 de 74


WA Consultoria
17

Fábrica Software Web Dynpro

Resultado:

Note que a variável lv_text possui o valor digitado no INPUTTEXT.

WA – Fábrica ABAP Page 17 de 74


WA Consultoria
18

Fábrica Software Web Dynpro

Janela Popup
Para demonstrar como apresentar uma janela de popup, daremos continuidade ao exemplo acima. No
momento do click do botão acima, será apresentado uma tela popup.

Passo 1: Criar nova View para apresentar o texto inicialmente digitado

Passo 2: Acrescentar o componente para exibir o texto e mapeá-lo para utilizar a "variável global"

WA – Fábrica ABAP Page 18 de 74


WA Consultoria
19

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 19 de 74


WA Consultoria
20

Fábrica Software Web Dynpro

Passo 3: Criar uma nova WINDOW e atribuir a VIEW acima à ela.

WA – Fábrica ABAP Page 20 de 74


WA Consultoria
21

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 21 de 74


WA Consultoria
22

Fábrica Software Web Dynpro

Passo 4: Efetuar a chamada da nova tela ao clicar sobre o botão

WA – Fábrica ABAP Page 22 de 74


WA Consultoria
23

Fábrica Software Web Dynpro

- Codificar de acordo com o descrito abaixo:

data lo_window_manager type ref to if_wd_window_manager.


data lo_api_component type ref to if_wd_component.
data lo_window type ref to if_wd_window.

lo_api_component = wd_comp_controller->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
lo_window = lo_window_manager->create_window(
window_name = 'ZWPOP'
message_display_mode = if_wd_window=>co_msg_display_mode_selected
button_kind = if_wd_window=>co_buttons_ok
message_type = if_wd_window=>co_msg_type_none
default_button = if_wd_window=>co_button_ok ).
lo_window->open( ).

Resultado:

WA – Fábrica ABAP Page 23 de 74


WA Consultoria
24

Fábrica Software Web Dynpro

ALV com Filtro


Para demonstrar como apresentar um grid ALV, seguir os seguintes passos.

Passo 1:

- Criar 2 NODES "globais" um com os dados de filtro e o outro com as colunas do ALV

Node de filtro:

Add Atribute from structure:

WA – Fábrica ABAP Page 24 de 74


WA Consultoria
25

Fábrica Software Web Dynpro

Selecionamos os campos que serão filtros

WA – Fábrica ABAP Page 25 de 74


WA Consultoria
26

Fábrica Software Web Dynpro

Node do ALV:

Add attribute from Structure

WA – Fábrica ABAP Page 26 de 74


WA Consultoria
27

Fábrica Software Web Dynpro

Resultado:

WA – Fábrica ABAP Page 27 de 74


WA Consultoria
28

Fábrica Software Web Dynpro

Passo 2:

- Criar 2 "containers" na view conforme imagens que seguem:

Seguir as imagens acima para criar o outro container, obtendo como resultado a imagem abaixo:

WA – Fábrica ABAP Page 28 de 74


WA Consultoria
29

Fábrica Software Web Dynpro

Alterar a propriedade do ROOTUIELEMENTCONTAINER para layout Matrix conforme imagens abaixo:

Alterar a propriedade LayoutData dos 2 containers para "MatrixHeadData" conforme abaixo:

WA – Fábrica ABAP Page 29 de 74


WA Consultoria
30

Fábrica Software Web Dynpro

Passo 3:

- Criar nova visão contemplando os campos de filtro

Na aba "context" arrastar o node "NOVE_FILTRO" e "NODE_ALV" para utilizá-lo na visão

WA – Fábrica ABAP Page 30 de 74


WA Consultoria
31

Fábrica Software Web Dynpro

Na aba "Layout" Criar um container com base num Node existente

Clicar no botão CONTEXT

WA – Fábrica ABAP Page 31 de 74


WA Consultoria
32

Fábrica Software Web Dynpro

Selecionar o nó e confirmar

Acrescentar um botão na view, botão que efetuará o preenchimento do ALV.

Passo 4:

WA – Fábrica ABAP Page 32 de 74


WA Consultoria
33

Fábrica Software Web Dynpro

- Informar que o "Componente Web Dynpro" usará o ALV

WA – Fábrica ABAP Page 33 de 74


WA Consultoria
34

Fábrica Software Web Dynpro

Passo 5:

- Atribuir à "janela as views de cada container"

WA – Fábrica ABAP Page 34 de 74


WA Consultoria
35

Fábrica Software Web Dynpro

Com isso estamos informando que o


container CONT_ALV deverá apresentar a tabela do ALV

- Efetuar o mesmo procedimento para o Container de Filtro

WA – Fábrica ABAP Page 35 de 74


WA Consultoria
36

Fábrica Software Web Dynpro

Confirmar

WA – Fábrica ABAP Page 36 de 74


WA Consultoria
37

Fábrica Software Web Dynpro

Passo 6:

- Criar o evento click do botão da visão de Filtro

Clicar na propriedade onAction

Confirmar

- Ir à aba Actions, duplo click no evento desejado e codificar segundo imagem abaixo:

WA – Fábrica ABAP Page 37 de 74


WA Consultoria
38

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 38 de 74


WA Consultoria
39

Fábrica Software Web Dynpro

method ONACTIONCLICK_BUSCAR .

DATA: node_node_vbak TYPE REF TO if_wd_context_node,


elem_node_vbak TYPE REF TO if_wd_context_element,
stru_node_vbak TYPE if_zvfiltro=>element_nove_filtro .

node_node_vbak = wd_context->get_child_node( name = if_zvfiltro=>wdctx_nove_filtro ).


elem_node_vbak = node_node_vbak->get_element( ).
elem_node_vbak->get_static_attributes( IMPORTING static_attributes = stru_node_vbak ).

DATA: ls_where(72) TYPE c,


lt_where LIKE TABLE OF ls_where,
lt_vbak TYPE STANDARD TABLE OF vbak.

IF NOT stru_node_vbak-vbeln EQ ''.


CONCATENATE 'VBELN = ''' stru_node_vbak-vbeln '''' INTO ls_where.
APPEND ls_where TO lt_where.
ENDIF.

IF NOT stru_node_vbak-erdat EQ '00000000'.


CONCATENATE 'ERDAT = ''' stru_node_vbak-erdat '''' INTO ls_where.
IF stru_node_vbak-vbeln NE ''.
CONCATENATE 'AND' ls_where INTO ls_where SEPARATED BY space.
ENDIF.
APPEND ls_where TO lt_where.
ENDIF.
SELECT *
FROM vbak
INTO TABLE lt_vbak
WHERE (lt_where).

DATA: node_node_alv TYPE REF TO if_wd_context_node,


stru_node_alv TYPE if_zvfiltro=>element_node_alv .

node_node_alv = wd_context->get_child_node( name = if_zvfiltro=>wdctx_node_alv ).


node_node_alv->bind_table( lt_vbak ).

endmethod.
Passo 7:

WA – Fábrica ABAP Page 39 de 74


WA Consultoria
40

Fábrica Software Web Dynpro

- Mover "ao ALV" o node "NODE_ALV"

Clicar no botão Controller Usage

Confirmar na tela que se segue até apresentar o resultado abaixo:

Mover o node NODE_ALV para o node DATA

WA – Fábrica ABAP Page 40 de 74


WA Consultoria
41

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 41 de 74


WA Consultoria
42

Fábrica Software Web Dynpro

Passo 8:

- Criar a aplicação

- Salvar

WA – Fábrica ABAP Page 42 de 74


WA Consultoria
43

Fábrica Software Web Dynpro

Resultado apresentado:

WA – Fábrica ABAP Page 43 de 74


WA Consultoria
44

Fábrica Software Web Dynpro

Observação: Posicionar campo na linha de baixo

Para quebrar os campos da tela, seguir os passos abaixo:

Alterar a propriedade Layout do ROOTUIELEMENTCONTAINER para MatrixLayout

Alterar a propriedade LayoutData do campo a ser pulado de linha para MatrixHeadData

Resultando:

WA – Fábrica ABAP Page 44 de 74


WA Consultoria
45

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 45 de 74


WA Consultoria
46

Fábrica Software Web Dynpro

Select-Options
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro

Passo 2: Adicionar o componente (WDR_SELECT_OPTIONS) conforme imagem abaixo

WA – Fábrica ABAP Page 46 de 74


WA Consultoria
47

Fábrica Software Web Dynpro

Passo 3: Adicionar o NODE/ATTRIBUTES conforme imagem abaixo:

WA – Fábrica ABAP Page 47 de 74


WA Consultoria
48

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 48 de 74


WA Consultoria
49

Fábrica Software Web Dynpro

Resultando:

Passo 4: Adicionar à aba Properties da VIEW o componente a ser utilizado, conforme imagem que segue

WA – Fábrica ABAP Page 49 de 74


WA Consultoria
50

Fábrica Software Web Dynpro

Resultando:

Passo 5: Adicionar na aba layout da VIEW um elemento: VIEW_CONTAINER

WA – Fábrica ABAP Page 50 de 74


WA Consultoria
51

Fábrica Software Web Dynpro

Passo 6: Adicionar os seguintes atributos na aba Attributes da VIEW

Passo 7: Codificar o método WDDOINIT da visão conforme segue:

WA – Fábrica ABAP Page 51 de 74


WA Consultoria
52

Fábrica Software Web Dynpro

method WDDOINIT .

DATA: LT_RANGE_TABLE TYPE REF TO DATA,


RT_RANGE_TABLE TYPE REF TO DATA,
READ_ONLY TYPE ABAP_BOOL,
TYPENAME TYPE STRING.
DATA: LR_COMPONENTCONTROLLER TYPE REF TO IG_COMPONENTCONTROLLER,
L_REF_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE.

* Criar o componente
L_REF_CMP_USAGE = WD_THIS->WD_CPUSE_SELECT_OPTIONS( ).
IF L_REF_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
L_REF_CMP_USAGE->CREATE_COMPONENT( ).
ENDIF.
WD_THIS->M_WD_SELECT_OPTIONS = WD_THIS->WD_CPIFC_SELECT_OPTIONS( ).

* Inicializar o Select-screen
WD_THIS->M_HANDLER = WD_THIS->M_WD_SELECT_OPTIONS->INIT_SELECTION_SCREEN( ).
WD_THIS->M_HANDLER->SET_GLOBAL_OPTIONS(
I_DISPLAY_BTN_CANCEL = ABAP_FALSE
I_DISPLAY_BTN_CHECK = ABAP_FALSE
I_DISPLAY_BTN_RESET = ABAP_FALSE
I_DISPLAY_BTN_EXECUTE = ABAP_FALSE ).

* Criar a tabela "interna" para o elemento Sel-options


LT_RANGE_TABLE = WD_THIS->M_HANDLER->CREATE_RANGE_TABLE( I_TYPENAME = 'VBAK-VBELN' ).

* Nomear o select-options (ID) e a tabela interna


WD_THIS->M_HANDLER->ADD_SELECTION_FIELD( I_ID = 'S_SO'
IT_RESULT = LT_RANGE_TABLE
I_READ_ONLY = READ_ONLY ).

endmethod.

Passo 8: Atribuir a view à uma janela

WA – Fábrica ABAP Page 52 de 74


WA Consultoria
53

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 53 de 74


WA Consultoria
54

Fábrica Software Web Dynpro

Passo 9: Atribuir o node RANGE à VIEW

WA – Fábrica ABAP Page 54 de 74


WA Consultoria
55

Fábrica Software Web Dynpro

Passo 10: Acrescentar um botão na view para preencher o NODE "RANGE" com os valores da tela

Criar ação para o mesmo e codificá-la

WA – Fábrica ABAP Page 55 de 74


WA Consultoria
56

Fábrica Software Web Dynpro

"Recuperar valores da tabela do Select-options


DATA: RT_SO TYPE REF TO DATA.
FIELD-SYMBOLS: <FS_SO> TYPE TABLE.
"S_SO -> nome do campo dado no método WDDOINIT
RT_SO = WD_THIS->M_HANDLER->GET_RANGE_TABLE_OF_SEL_FIELD( I_ID = 'S_SO' ).
ASSIGN RT_SO->* TO <FS_SO>.

"Atribuir a tabela <FS_SO> ao CONTEXT - NODE


data: context_node type ref to if_wd_context_node.

context_node = wd_context->get_child_node( name = 'RANGE').


context_node->bind_table( <fs_so> ).

WA – Fábrica ABAP Page 56 de 74


WA Consultoria
57

Fábrica Software Web Dynpro

Passo 11: Capturar os valores do NODE "RANGE"

"Recuperar valores da tabela do Select-options


TYPES: BEGIN OF ty_range,
SIGN TYPE sign,
OPTION TYPE option,
LOW TYPE vbak-vbeln,
HIGH TYPE vbak-vbeln,
END OF ty_range.
DATA: t_range TYPE TABLE OF ty_range.

DATA context_node TYPE REF TO if_wd_context_node.


DATA context_element TYPE REF TO if_wd_context_element.
"nm do node
context_node = wd_context->get_child_node( name = wd_this->wdctx_range ).
context_element = context_node->get_element( ).
context_node->get_static_attributes_table( importing table = t_range ).

"A tabela interna t_range estará carregada

WA – Fábrica ABAP Page 57 de 74


WA Consultoria
58

Fábrica Software Web Dynpro

Tabstrip
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window

Passo 2: Na aba Layout da View, criar o componente Tabstrip

Passo 3: Criar as "abas" do tabstrip

WA – Fábrica ABAP Page 58 de 74


WA Consultoria
59

Fábrica Software Web Dynpro

Na imagem acima alterei a propriedade ID da "aba"

WA – Fábrica ABAP Page 59 de 74


WA Consultoria
60

Fábrica Software Web Dynpro

Passo 4: Ajustar o título da Aba conforme imagem abaixo, alterando a propriedade "text" do caption
automaticamente criado

Passo 5: Repetir os passos 3 e 4 para gerar novas abas.

WA – Fábrica ABAP Page 60 de 74


WA Consultoria
61

Fábrica Software Web Dynpro

Passo 6: Incluir o "componente" Transparent Container em cada Aba do Tabstrip

WA – Fábrica ABAP Page 61 de 74


WA Consultoria
62

Fábrica Software Web Dynpro

Passo 7: Incluir os componentes de cada Aba dentro do Container criado acima

WA – Fábrica ABAP Page 62 de 74


WA Consultoria
63

Fábrica Software Web Dynpro

Passo 8: Criar aplicação Webdynpro para testar o desenvolvimento

WA – Fábrica ABAP Page 63 de 74


WA Consultoria
64

Fábrica Software Web Dynpro

Habilitar/Desabilitar Campos
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window

Passo 2: Criar NODE global com os "campos" a serem apresentados na tela.

Passo 3: Mover os NODES do CONTEXT para a VIEW

WA – Fábrica ABAP Page 64 de 74


WA Consultoria
65

Fábrica Software Web Dynpro

WA – Fábrica ABAP Page 65 de 74


WA Consultoria
66

Fábrica Software Web Dynpro

Passo 4: Desenhar a tela na aba Layout da view

Mapear a propriedade VALUE de todos os campos para o respectivo NODE.

WA – Fábrica ABAP Page 66 de 74


WA Consultoria
67

Fábrica Software Web Dynpro

Passo 5: Criar um atributo na View, para controlar se o grupo estará habilitado ou desabilitado

WA – Fábrica ABAP Page 67 de 74


WA Consultoria
68

Fábrica Software Web Dynpro

Passo 6: Atribuir à propriedade ENABLED do group o valor do atributo criado acima.

WA – Fábrica ABAP Page 68 de 74


WA Consultoria
69

Fábrica Software Web Dynpro

Passo 7: Criar um botão na view e adicionar a seguinte codificação no momento do click

WA – Fábrica ABAP Page 69 de 74


WA Consultoria
70

Fábrica Software Web Dynpro

method ONACTIONALTERAR_PROPRIEDADE .

DATA lo_el_context TYPE REF TO if_wd_context_element.


DATA ls_context TYPE wd_this->element_context.
DATA lv_g_habilitado TYPE wd_this->element_context-g_habilitado.

"Capturar o valor corrente do atributo


lo_el_context = wd_context->get_element( ).
lo_el_context->get_attribute(
EXPORTING
name = 'G_HABILITADO'
IMPORTING
value = lv_g_habilitado ).

"Habilitar/Desabilitar ao clicar o botao


IF lv_g_habilitado = ''.
lv_g_habilitado = 'X'.
ELSE.
lv_g_habilitado = ''.
ENDIF.

"Alterar o valor do atributo


lo_el_context->set_attribute(
name = 'G_HABILITADO'
value = lv_g_habilitado ).

endmethod.

Passo 8: Criar aplicação Webdynpro para testar o desenvolvimento

WA – Fábrica ABAP Page 70 de 74


WA Consultoria
71

Fábrica Software Web Dynpro

Listbox
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window

Passo 2: Criar um NODE na visão para ser utilizado para carga do Listbox

WA – Fábrica ABAP Page 71 de 74


WA Consultoria
72

Fábrica Software Web Dynpro

Passo 3: Inserir na Visão o elemento DROPDOWNBYKEY setando o atributo acima na propriedade


SELECTEDKEY

Passo 4: Efetuar a codificação para preencher o Listbox

method WDDOINIT .

WA – Fábrica ABAP Page 72 de 74


WA Consultoria
73

Fábrica Software Web Dynpro

DATA: lr_node_info TYPE REF TO if_wd_context_node_info,


lr_node_detail TYPE REF TO if_wd_context_node_info.
DATA t_tvakt TYPE TABLE OF WDR_CONTEXT_ATTR_VALUE.

"Efetuar a busca dos dados


SELECT AUART BEZEI
INTO TABLE t_tvakt
FROM tvakt
WHERE spras = sy-langu.

"Carregar o ListBox
lr_node_info = wd_context->get_node_info( ).
lr_node_detail = lr_node_info->GET_CHILD_NODE( name = wd_this->wdctx_tipo_doc ).
lr_node_detail->set_attribute_value_set( name = 'KEY'
value_set = t_tvakt ).

endmethod.

WA – Fábrica ABAP Page 73 de 74


WA Consultoria
74

Fábrica Software Web Dynpro

Passo 5: Capturar o valor corrente do Listbox

- Criar um botão na View e na propriedade OnAction acrescentar a seguinte codificação:

method ONACTIONLER_LISTBOX .

DATA lo_nd_tipo_doc TYPE REF TO if_wd_context_node.


DATA lo_el_tipo_doc TYPE REF TO if_wd_context_element.
DATA lv_key TYPE wd_this->element_tipo_doc-key.

lo_nd_tipo_doc = wd_context->get_child_node( name = wd_this->wdctx_tipo_doc ).


lo_el_tipo_doc = lo_nd_tipo_doc->get_element( ).

"O valor do listbox será atribuido à variavel LV_KEY


lo_el_tipo_doc->get_attribute(
EXPORTING
name = `KEY`
IMPORTING
value = lv_key ).

endmethod.

WA – Fábrica ABAP Page 74 de 74


WA Consultoria

Você também pode gostar