Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Índice
Passo 2: Criar o node "Component Controller" com o nome da "variável global" e seu atributo "text".
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:
Resultando:
- 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.
- 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.
- Confirme
- Ir à aba Actions para codificar a ação do botão e clicar 2 vezes na Action desejada
"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.
lo_el_gnome->set_attribute(
name = 'TEXT'
value = lv_text ).
- Salvar
- Ativar todo o componente
Resultado:
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
Resultado:
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 2: Acrescentar o componente para exibir o texto e mapeá-lo para utilizar a "variável global"
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:
Passo 1:
- Criar 2 NODES "globais" um com os dados de filtro e o outro com as colunas do ALV
Node de filtro:
Node do ALV:
Resultado:
Passo 2:
Seguir as imagens acima para criar o outro container, obtendo como resultado a imagem abaixo:
Passo 3:
Selecionar o nó e confirmar
Passo 4:
Passo 5:
Confirmar
Passo 6:
Confirmar
- Ir à aba Actions, duplo click no evento desejado e codificar segundo imagem abaixo:
method ONACTIONCLICK_BUSCAR .
endmethod.
Passo 7:
Passo 8:
- Criar a aplicação
- Salvar
Resultado apresentado:
Resultando:
Select-Options
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro
Resultando:
Passo 4: Adicionar à aba Properties da VIEW o componente a ser utilizado, conforme imagem que segue
Resultando:
method WDDOINIT .
* 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 ).
endmethod.
Passo 10: Acrescentar um botão na view para preencher o NODE "RANGE" com os valores da tela
Tabstrip
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window
Passo 4: Ajustar o título da Aba conforme imagem abaixo, alterando a propriedade "text" do caption
automaticamente criado
Habilitar/Desabilitar Campos
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window
Passo 5: Criar um atributo na View, para controlar se o grupo estará habilitado ou desabilitado
method ONACTIONALTERAR_PROPRIEDADE .
endmethod.
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
method WDDOINIT .
"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.
method ONACTIONLER_LISTBOX .
endmethod.
ALV - Configurado
Passo 1: Acessar a transação SE80 e criar o componente Webdynpro, View e Window
Passo 3: Criar o Node (e seus Attributes) que será apresentado ao ALV no Component Controler
Passo 4: Criar um novo atributo ao Node acima para ser exibido um ícone em cada linha (tipo STRING)
- Na tela que será apresentada, arrastar e soltar o Context para a pasta DATA
method WDDOINIT .
endmethod.
- Alterar as propriedades do ALV. Basta clicar no botão Pattern (Modelo) para efetuar a chamada dos
métodos da classe cl_salv_wd_config_table
- Alterar as propriedades das colunas através dos métodos da classe cl_salv_wd_column e cl_salv_wd_field
- Codificação Final
method WDDOINIT .
lo_cmp_usage = wd_this->wd_cpuse_alv( ).
IF lo_cmp_usage->has_active_component( ) IS INITIAL.
lo_cmp_usage->create_component( ).
ENDIF.
"Largura do ALV
CALL METHOD lv_value->if_salv_wd_table_settings~set_width
EXPORTING
value = '50%'.
"ALV Editável
CALL METHOD lv_value->if_salv_wd_table_settings~set_read_only
EXPORTING
value = ABAP_FALSE.
"Ordenação
CALL METHOD lv_value->if_salv_wd_field_settings~get_field
EXPORTING
fieldname = 'BNAME'
receiving
value = lv_field.
"Coluna Editável
DATA: lv_column_settings TYPE REF TO if_salv_wd_column_settings,
lv_input_field TYPE REF TO cl_salv_wd_uie_input_field,
lv_column type ref to cl_salv_wd_column.
lv_column_settings ?= lv_value.
lv_column = lv_column_settings->get_column( 'BNAME' ).
CREATE OBJECT lv_input_field EXPORTING value_fieldname = 'BNAME'.
CALL METHOD lv_column->set_cell_editor
EXPORTING
value = lv_input_field.
"Coluna como icone (de acordo com o valor da coluna ICONE apresenta na coluna CLASS
um ícone)
data: lv_image type ref to cl_salv_wd_uie_image,
lv_icon type string.
"------------------------------------------------------------------------
"------------------------------------------------------------------------
"Preencher o ALV
"------------------------------------------------------------------------
"------------------------------------------------------------------------
"----------------------------
endmethod.
Resultando :
- Criar um Node na view para atribuir os valores da linha seleconada, com as propriedades STRING
METHOD onclick .
"-----------------------------------------------------------------------------------
"Os valores clicados estarão armazenados em:r_param => classe CL_SALV_WD_TABLE_CLICK
"-----------------------------------------------------------------------------------
"r_param->column
"r_param->index
"r_param->attribute
"r_param->value->*
ls_event_properties-name = 'COLUMN'.
ls_event_properties-value = r_param->column.
APPEND ls_event_properties TO lt_event_properties.
ls_event_properties-name = 'INDEX'.
ls_event_properties-value = r_param->index.
APPEND ls_event_properties TO lt_event_properties.
ls_event_properties-name = 'ATTRIBUTE'.
ls_event_properties-value = r_param->attribute.
APPEND ls_event_properties TO lt_event_properties.
lo_nd_event_properties =
wd_context->get_child_node( name = wd_this->wdctx_event_properties ).
lo_nd_event_properties->bind_table(
new_items = lt_event_properties set_initial_elements = abap_true
).
ENDMETHOD.
- Crie um botão na visão para "gravar" os dados do ALV e insira o seguinte código:
method ONACTIONGRAVAR .
endmethod.