Você está na página 1de 15

*&---------------------------------------------------------------------*

*& NOME DO PROGRAMA : ZFI_GESTAO_MOV_MATERIAL_PERM


*
*& TTULO DO PROGRAMA : Gesto de movimentao de material permanente *
*& PROGRAMADOR
: Politec - LKP (5) - JRWIN
*
*& DATA
: 29/08/2012
*
*& LTIMA ATUALIZAO : 29/08/2012
*
*& DESCRIO
: Gerar formulrio de requisio via portal e
*
*
: acionar transao de alterao de bens para
*
*
: atender a gesto de movimentao de material *
*
: permanente.
*
*&---------------------------------------------------------------------*
*& LISTA DE MODIFICAES:
*
*& DATA
AUTOR
REQUEST
DESCRIO
*
*& 29/08/2012 JRWIN
ERDK902071
CODIFICAO INICIAL *
*&---------------------------------------------------------------------*
REPORT zfi_gestao_mov_material_perm.
*----------------------------------------------------------------------*
* CONTROLS
*----------------------------------------------------------------------*
CONTROLS tabstrip900 TYPE TABSTRIP.
*----------------------------------------------------------------------*
* TABELAS
*----------------------------------------------------------------------*
TABLES: "anla,
"Segmento do registro mestre do imobilizado
anlz,
"Atribuies de imobilizado com data valor
"
anlu,
"Reg.mestre imobilizado: campo de usurio
t084a,
"Informaes do reincio na transferncia de dados antigos
"zfitaprov_mov,
"Tabela de aprovadores de wf de movimentao de material
zfi_t_req_mat_hd, "Header - Requisio de Material Permanente
"zfi_t_req_mat_it, "Itens - Requisio de Material Permanente
zfi_t_req_tra_it, "Itens - Transferncia de Responsabilidade
"zfi_t_req_mov_it, "Itens - Movimentao de Material Permanente
"zfi_t_com_ext_it, "Itens - Comunicao de Extravio de Bem - Dados do arquiv
o
"zfi_t_rec_locl_d, "Localizao destino para recolhimento de bens
zfi_e_req_mat.
"Controle de execuo
*----------------------------------------------------------------------*
* TYPE-POOLS
*----------------------------------------------------------------------*
TYPE-POOLS: abap.
*----------------------------------------------------------------------*
* Constante
*----------------------------------------------------------------------*
CONSTANTS: c_0001
TYPE p0105-usrty
VALUE '0001',
c_exm
TYPE dokar
VALUE 'EXM',
c_exec
TYPE sy-ucomm
VALUE 'EXEC',
"c_remedy
TYPE sy-ucomm
VALUE 'REMEDY',
c_impr
TYPE sy-ucomm
VALUE 'BT_IMPR',
c_save
TYPE sy-ucomm
VALUE 'SAVE',
c_carrusr
TYPE sy-ucomm
VALUE 'CARRUSR',
c_proc
TYPE sy-ucomm
VALUE 'PROC',
c_sim
TYPE c
VALUE '1',
"c_nao
TYPE c
VALUE '2',
c_?
TYPE c
VALUE '?',
c_action
TYPE sy-ucomm
VALUE 'ACTION',
c_dmsproc
TYPE sy-ucomm
VALUE 'DMSPROC',

c_nidesc
c_em_cri
c_agua_envio
"c_wf_env
"c_canc
"c_lib_sup
ior Hierrquico
"c_lib
"c_reprov
o
"c_1
"c_ni(10)
c_false(01)
"c_true(01)
c_x(01)
c_watype_pd(02)
c_watype_sl(02)
c_watype_ad(02)
c_criar
c_exibir
c_atualizar
c_g01
c_g02
c_g03
c_b01
c_field_qtde
c_field_pernr_d
c_zprev_entrega
"c_field_sem_ni
c_num
c_error
c_sucesso
c_trans_emp
empregado
c_desass
c_r
ial
c_m
entao de Material
c_e
vio de Material
c_t
esponsabilidade
c_b
bens

TYPE sy-ucomm
TYPE char02
TYPE char02
TYPE char02
TYPE char02
TYPE char02

VALUE 'NIDESC',
VALUE 'CR', "Em Criao
VALUE 'WT', "Aguardando Envio
VALUE 'SD', "WF Enviado
VALUE 'CA', "Cancelado
VALUE 'CA', "L1 Liberado Super

TYPE char02
TYPE char02

VALUE 'L2', "Liberado COMAT


VALUE 'RP', "Reprovado/Rejeitad

TYPE sy-index
TYPE c
TYPE c
TYPE c
TYPE c
TYPE c
TYPE c
TYPE c
TYPE zzdeaction
TYPE zzdeaction
TYPE zzdeaction
TYPE screen-group1
TYPE screen-group1
TYPE screen-group1
TYPE screen-group1
TYPE lvc_fname
TYPE lvc_fname
TYPE lvc_fname
TYPE lvc_fname
TYPE char11
TYPE c
TYPE c
TYPE c

VALUE '1',
VALUE 'Bem sem NI', "#EC NOTEXT
VALUE '',
VALUE 'X',
VALUE 'X',
VALUE 'PD',
VALUE 'SL',
VALUE 'AD',
VALUE 'CRI',
VALUE 'EXI',
VALUE 'ATU',
VALUE 'G01',
VALUE 'G02',
VALUE 'G03',
VALUE 'B01',
VALUE 'QTDE',
VALUE 'PERNR_D_NOM',
VALUE 'ZPREV_ENTREGA',
VALUE 'SEM_NI',
VALUE '0123456789 ',
VALUE 'E',
VALUE 'S',
VALUE 'T', "Transferncia a outro

TYPE c
VALUE 'D', "Desassociar
TYPE zeid_requisicao VALUE 'R', " R - Requisio de Mater
TYPE zeid_requisicao VALUE 'M', " M - Requisio de Movim
TYPE zeid_requisicao VALUE 'E', " E Comunicao de Extra
TYPE zeid_requisicao VALUE 'T', " T Transferncia de R
TYPE zeid_requisicao VALUE 'B'. " B Recolhimento de

*&---------------------------------------------------------------------*
*& Tipos para tabelas internas
*&---------------------------------------------------------------------*
TYPES: BEGIN OF y_solicita,
zenamsol
TYPE zaqmel-zenamsol,
"Solicitante
zpernrsol TYPE zaqmel-zpernrsol,
"Matricula
zdsccargo TYPE zaqmel-zdsccargo,
"Cargo
zdscfuncao TYPE zaqmel-zdscfuncao,
"Funo
zdlotacao TYPE zaqmel-zdlotacao,
"Lotao
*
zdtenvio(10) TYPE c,
"Data
zdtenvio
TYPE zaqmel-zdtenvio,
"Data
zextenssol TYPE zaqmel-zextenssol,
"Ramal
zpredio(15) TYPE c,
"Predio
zandar(10) TYPE c,
"Andar

zsala(10) TYPE c,
END OF y_solicita.

"Sala

TYPES: BEGIN OF y_fcode,


fcode TYPE sy-ucomm,
END OF y_fcode.
TYPES: BEGIN OF y_loc_entrega,
zdlotacao TYPE zaqmel-zdlotacao,
zpredio(15) TYPE c,
zandar(10) TYPE c,
zsala(10) TYPE c,
zenamsol
TYPE zaqmel-zenamsol,
zextenssol TYPE zaqmel-zextenssol,
remedyid
TYPE zzderemedyid,
END OF y_loc_entrega.

"Lotao Area/Departamento
"Predio
"Andar
"Sala/Estao
"Nome para Contato
"Ramal
"ID no Remedy

TYPES: BEGIN OF y_req_mat,


znummov
TYPE zznummov,
zitemmov
TYPE zzitemmov,
nome
TYPE zfi_t_bem_req-nome,
nidesc
TYPE char01,
invent
TYPE invnr_anla,
bukrs
TYPE bukrs,
anln1
TYPE anln1,
anln2
TYPE anln2,
sernr
TYPE am_sernr,
zdlotacao
TYPE zaqmel-zdlotacao,
chvzpredio_o TYPE zepredio,
zpredio_o
TYPE zepredio,
chvzandar_o TYPE zeandar,
zandar_o
TYPE zeandar,
chvzsala_o
TYPE zesala,
zsala_o
TYPE zesala,
chvpredio
TYPE ccihe_waid,
zpredio
TYPE zepredio,
chvandar
TYPE ccihe_waid,
zandar
TYPE zeandar,
chvsala
TYPE ccihe_waid,
zsala
TYPE zesala,
motivo
TYPE zfi_t_req_mat_it-motivo,
qtde
TYPE zfi_t_bem_req-quantidade,
pernr_o
TYPE zzdepernr_o,
pernr_o_nom TYPE zeenamsol,
pernr_d
TYPE zzdepernr_d,
pernr_d_nom TYPE zeenamsol,
zprev_entrega TYPE zprev_entrega,
* Inicio Alterao Eduardo Santiago - 12/03/2013
matnr
TYPE anlu-zmatnr,
maktx
TYPE makt-maktx,
* Fim Alterao Eduardo Santiago - 12/03/2013
END OF y_req_mat,
y_t_req_mat TYPE STANDARD TABLE OF y_req_mat.

"Numero solicitao
"Item da solicitao
"Especificao
"NI Desconhecido
"N. Inventrio
"Empresa
"N principal do imobilizado
"Subn do imobilizado
"Nmero de srie
"Lotao Area/Departamento
"Predio Original
"Predio Original
"Andar Original
"Andar Original
"Sala/Estao Original
"Sala/Estao Original
"Chave interna do prdio
"Predio
"Chave interna do andar
"Andar
"Chave interna da sala
"Sala/Estao
"Motivo
"Quantidade
"Responsvel Origem
"Nome Responsvel Origem
"Responsvel Destino
"nome Responsvel Destino
"previsao de entrega

TYPES: BEGIN OF y_bens_req,


nome
TYPE zfi_t_bem_req-nome,
num_inventario TYPE zfi_t_bem_req-num_inventario,
qtde
TYPE zfi_t_bem_req-quantidade,
END OF y_bens_req.

TYPES: BEGIN OF y_texto,


nrseq
TYPE zsde_texto-nrseq,
tdline TYPE tline-tdline,
END OF y_texto.
TYPES: BEGIN OF y_cabec,
nrseq
TYPE zsde_texto-nrseq,
END OF y_cabec.
TYPES: BEGIN OF y_req_mov,
nrseq
TYPE
invent(07)
TYPE
box(01)
TYPE
sem_ni(10)
TYPE
ntario
nome
TYPE
zpredio_o(15) TYPE
zandar_o(10) TYPE
zsala_o(10) TYPE
zpredio(15) TYPE
zandar(10)
TYPE
zsala(10)
TYPE
END OF y_req_mov.

zsde_texto-nrseq,
c,
c,
c,

" N. Inventrio
" BOX para marcar 'X'
" Campo para marcar Sem Inve

zfi_t_bem_req-nome,
c,
c,
c,
c,
c,
c,

" Nome padronizado


"Predio
"Andar
"Sala/Estao
"Predio
"Andar
"Sala/Estao

TYPES: BEGIN OF y_tel_cels,


pernr_o
TYPE zfi_t_req_tra_it-pernr_o,
pernr_o_nom TYPE char40,
pernr_d
TYPE zfi_t_req_tra_it-pernr_d,
pernr_d_nom TYPE char40,
END OF y_tel_cels.
TYPES: BEGIN OF y_anlz,
bukrs TYPE anlz-bukrs,
anln1 TYPE anlz-anln1,
anln2 TYPE anlz-anln2,
bdatu TYPE anlz-bdatu,
adatu TYPE anlz-adatu,
pernr TYPE anlz-pernr,
END OF y_anlz,
BEGIN OF y_anla,
bukrs TYPE anla-bukrs,
anln1 TYPE anla-anln1,
anln2 TYPE anla-anln2,
anlkl TYPE anla-anlkl,
invnr TYPE anla-invnr,
txt50 TYPE anla-txt50,
sernr TYPE am_sernr,
END OF y_anla,
* Tabela para FORMS
y_t_anla TYPE STANDARD TABLE OF y_anla,
BEGIN OF y_anlu,
bukrs TYPE anlu-bukrs,
anln1 TYPE anlu-anln1,
anln2 TYPE anlu-anln2,
zpredio TYPE anlu-zpredio,
zandar TYPE anlu-zandar,
zsala TYPE anlu-zsala,
matnr TYPE anlu-zmatnr,

END OF y_anlu.
TYPES: BEGIN OF y_extravio,
nrseq
TYPE
invent(07)
TYPE
box(01)
TYPE
sem_ni(10)
TYPE
ntario
nome
TYPE
area
TYPE
zpredio(15) TYPE
zandar(10)
TYPE
zsala(10)
TYPE
marc(01)
TYPE
END OF y_extravio.

zsde_texto-nrseq,
c,
c,
c,

" N. Inventrio
" BOX para marcar 'X'
" Campo para marcar Sem Inve

zfi_t_bem_req-nome,
zaqmel-zdlotacao,
c,
c,
c,
c,

" Nome padronizado


" Area
"Predio
"Andar
"Sala/Estao
"Marcar X

TYPES: BEGIN OF y_invnr,


invnr TYPE lines,
END OF y_invnr.
* Cabealho das solicitaes
TYPES: BEGIN OF y_req_mat_hd.
INCLUDE STRUCTURE zfi_t_req_mat_hd.
TYPES: END OF y_req_mat_hd.
* Requisio de material permanente
TYPES: BEGIN OF y_req_mat_it.
INCLUDE STRUCTURE zfi_t_req_mat_it.
TYPES: END OF y_req_mat_it,
y_t_req_mat_it TYPE STANDARD TABLE OF y_req_mat_it,
y_st_req_mat_it TYPE SORTED TABLE OF y_req_mat_it
WITH UNIQUE KEY znummov zitemmov.
* Transferncia de responsabilidade
TYPES: BEGIN OF y_req_tra_it.
INCLUDE STRUCTURE zfi_t_req_tra_it.
TYPES: END OF y_req_tra_it,
y_t_req_tra_it TYPE STANDARD TABLE OF y_req_tra_it,
y_st_req_tra_it TYPE SORTED TABLE OF y_req_tra_it
WITH UNIQUE KEY znummov zitemmov.
TYPES: BEGIN OF y_rec_locl_d.
INCLUDE STRUCTURE zfi_t_rec_locl_d.
TYPES: END OF y_rec_locl_d,
y_t_rec_locl_d TYPE SORTED TABLE OF y_rec_locl_d
WITH UNIQUE KEY zpredio_o anlkl.
TYPES: BEGIN OF y_req_mov_it.
INCLUDE STRUCTURE zfi_t_req_mov_it.
TYPES: END OF y_req_mov_it.
TYPES: BEGIN OF y_fi_com_ext_it.
INCLUDE STRUCTURE zfi_t_com_ext_it.
TYPES: END OF y_fi_com_ext_it,
y_t_fi_com_ext_it TYPE STANDARD TABLE OF y_fi_com_ext_it.
TYPES: BEGIN OF y_com_ext_it.
INCLUDE STRUCTURE zfi_t_com_ext_it.

TYPES: path_file TYPE string.


TYPES: END OF y_com_ext_it,
y_t_com_ext_it TYPE STANDARD TABLE OF y_com_ext_it.
**********************************************************************
*** Sub Telas
**********************************************************************
DATA: sub_t001
DATA: sub_0700
DATA: sub_0800
DATA: sub_tela
"DATA: sub_tela2
DATA: sub_9200

TYPE sydynnr.
TYPE sydynnr VALUE 0700.
TYPE sydynnr VALUE 0800.
TYPE sydynnr VALUE '9000'.
TYPE sydynnr VALUE '9100'.
TYPE sydynnr VALUE '9200'.

SELECTION-SCREEN BEGIN OF SCREEN 9000 AS SUBSCREEN.


SELECT-OPTIONS: s_invnr FOR t084a-invnr MODIF ID g02.
SELECTION-SCREEN END OF SCREEN 9000.
SELECTION-SCREEN BEGIN OF SCREEN 9100 AS SUBSCREEN.
PARAMETERS: p_file TYPE rlgrap-filename MODIF ID g02.
SELECTION-SCREEN END OF SCREEN 9100.
SELECTION-SCREEN BEGIN OF SCREEN 9200 AS SUBSCREEN.
SELECT-OPTIONS: s_pernr FOR anlz-pernr VISIBLE LENGTH 25 MODIF ID g02.
SELECT-OPTIONS: s_invnro FOR t084a-invnr MODIF ID g02.
SELECTION-SCREEN END OF SCREEN 9200.
**********************************************************************
*** Tabelas internas
**********************************************************************
* Variavel local para ajuda na busca dos dados de localizao atual
DATA: tl_req_tra_it_0400 TYPE TABLE OF y_req_tra_it.
DATA: "t_solicita
*
t_loc_entrega
t_req_mat
*
t_bens_req
*
t_texto
*
t_cabec
t_excl_func
*
t_req_mov
*
t_extravio
*
t_invnr
*
t_fields
wa_solicita
wa_loc_entrega
wa_req_mat
*
wa_bens_req
*
wa_texto
*
wa_extravio
*
wa_cabec
*
wa_req_mov
wa_zaqmel
*
wa_invnr
*
wa_options
*
wa_control
* Celulares
*
wa_tel_cel

TYPE STANDARD TABLE OF y_solicita,


TYPE STANDARD TABLE OF y_loc_entrega,
TYPE STANDARD TABLE OF y_req_mat,
TYPE STANDARD TABLE OF y_bens_req,
TYPE STANDARD TABLE OF y_texto,
TYPE STANDARD TABLE OF y_cabec,
TYPE ui_functions,
TYPE STANDARD TABLE OF y_req_mov,
TYPE STANDARD TABLE OF y_extravio,
TYPE STANDARD TABLE OF y_invnr,
TYPE STANDARD TABLE OF dfies,
TYPE y_solicita,
TYPE y_loc_entrega,
TYPE y_req_mat,
TYPE y_bens_req,
TYPE y_texto,
TYPE y_extravio,
TYPE y_cabec,
TYPE y_req_mov,
TYPE zaqmel,
TYPE y_invnr,
TYPE ssfcompop,
TYPE ssfctrlop,
TYPE y_tel_cels,

* Cabealho
wa_req_mat_hd
* Itens
t_req_mat_it

TYPE y_req_mat_hd,

TYPE SORTED TABLE OF y_req_mat_it


WITH UNIQUE KEY znummov zitemmov,
t_req_mat_it_del TYPE TABLE OF y_req_mat_it,
* Itens Transferncia de responsabilidades
t_req_tra_it
TYPE SORTED TABLE OF y_req_tra_it
WITH UNIQUE KEY znummov zitemmov,
t_req_tra_it_del TYPE TABLE OF y_req_tra_it,
* Arquivos para comunicao de extravio
t_fi_req_ext_it
TYPE y_t_fi_com_ext_it,
"Tabela para atualizao BD
t_fi_req_ext_it_del TYPE TABLE OF y_fi_com_ext_it,"Tabela para eliminao de i
tens do BD
wa_fi_req_ext_it
TYPE y_fi_com_ext_it,
"Controle de tela
t_req_ext_it
TYPE TABLE OF y_com_ext_it, "Controle de tela
wa_req_ext
TYPE y_com_ext_it,
* Tabela com local destino de recolhimento de bens
t_rec_locl_d
TYPE y_t_rec_locl_d,
wa_rec_locl_d
TYPE y_rec_locl_d,
*
wa_req_mat_it
TYPE y_req_mat_it,
wa_req_tra_it
TYPE y_req_tra_it,
wa_req_ext_it
TYPE y_com_ext_it.
DATA: t_fcode TYPE TABLE OF y_fcode.
DATA: t_anlz
t_anla
t_anlu
wa_anla
wa_anlu
wa_anlz

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

STANDARD TABLE OF y_anlz,


STANDARD TABLE OF y_anla,
STANDARD TABLE OF y_anlu,
y_anla,
y_anlu,
y_anlz.

DATA: vg_init
TYPE c
VALUE space,
vg_okcode
TYPE sy-ucomm,
*
vg_mov_mat
TYPE c,
*
vg_ati_svd
TYPE c,
vg_desass_b
TYPE c, "Desassociar bem
vg_transf_emp_b TYPE c, "Transferencia empregado bem
vg_contato
TYPE y_solicita-zenamsol,
vg_ramal
TYPE zaqmel-zextenssol,
"#EC NEEDED
vg_usrid
TYPE p0105-usrid,
vg_nome
TYPE zfi_t_bem_req-nome,
vg_pernr
TYPE persno,
vg_result(100)
TYPE c,
vg_tabix
TYPE sy-tabix,
vg_mod_act
TYPE c LENGTH 1,
vg_zid_requisicao TYPE zeid_requisicao,
vg_startwf
TYPE c,
vg_atualiza
TYPE c LENGTH 1,
vg_out
TYPE c LENGTH 1,
vg_imprime
TYPE c.
DATA: vg_anexos TYPE NUM05_KK.
***********************************
*DATA: vg_dt_envio TYPE zaqmel-zdtenvio.
***********************************
TYPES: BEGIN OF y_text_table,

line(132) TYPE c,
END OF y_text_table.
*DATA: wa_text_table TYPE y_text_table,
*
wa_texto_objt TYPE tline.
*&---------------------------------------------------------------------*
*& Tabelas Internas
*
*&---------------------------------------------------------------------*
DATA: t_text_table
TYPE STANDARD TABLE OF y_text_table,
t_texto_objt
TYPE STANDARD TABLE OF tline.
*&---------------------------------------------------------------------*
*& Estruturas
*
*&---------------------------------------------------------------------*
**-->> Incio JCN - 01.04.2013
*DATA: vg_e_draw TYPE draw.
**-->> Fim JCN - 01.04.2013
*DATA:
*
*
*

wa_addinf
wa_watype
wa_wka_sel
wa_waspid

TYPE
TYPE
TYPE
TYPE

rcgaddinf
,
ccihs_wahiot-watype VALUE IS INITIAL,
ccihs_wasel VALUE IS INITIAL
,
cciht_wah-waid
.

*&---------------------------------------------------------------------*
* Objetos
*&---------------------------------------------------------------------*
DATA: ob_texto_objt
TYPE REF TO cl_gui_textedit,
ob_cont_texto_objt TYPE REF TO cl_gui_custom_container.
*DATA: t_toolbar TYPE STANDARD TABLE OF stb_button.
*DATA: wat_toolbar TYPE stb_button.
DATA: wa_text_objt_upd

TYPE i.

"#EC NEEDED

CLASS lcl_event_handler
DEFINITION DEFERRED.
*CLASS lcl_eventos_grid DEFINITION DEFERRED.
*DATA wa_event_handler TYPE REF TO lcl_eventos_grid.
DATA gw_event_handler1
TYPE REF TO lcl_event_handler.
DATA gw_event_handler1_1100 TYPE REF TO lcl_event_handler.
*----------------------------------------------------------------------*
Objetos - ALV
*----------------------------------------------------------------------DATA: ob_container
ob_alv

TYPE REF TO cl_gui_custom_container,


TYPE REF TO cl_gui_alv_grid.

DATA: ob_container_1100 TYPE REF TO cl_gui_custom_container,


ob_alv_1100
TYPE REF TO cl_gui_alv_grid.
*
ob_event_receiver TYPE REF TO lcl_eventos_grid.
*----------------------------------------------------------------------*
RANGES
*----------------------------------------------------------------------DATA: rg_bens_ti TYPE RANGE OF anla-anlkl.
**********************************************************************
* INICIO CLASSES

**********************************************************************
*----------------------------------------------------------------------*
*
CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION .
"#EC *
PUBLIC SECTION.
METHODS :
*
*
*

handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
handle_onf4
FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING es_row_no e_fieldname.
PRIVATE SECTION.

ENDCLASS.

" lcl_alv_grid DEFINITION

*----------------------------------------------------------------------*
*
CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
* Executa as funes de help para os campos indicados. Lembrando que
* quando utilizamos o form refresh_alv este methodo no executa e o
* search help no funciona.
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION .
* METHOD handle_double_click .
*
PERFORM handle_double_click USING e_row e_column .
* ENDMETHOD .
"handle_double_click
METHOD handle_onf4.
* Exibir Ajuda de pesquisa apenas se for Criao
CHECK zfi_e_req_mat-action NE c_exibir.
* Inicializa e carrega linha que esta sendo processada no alv
CLEAR vg_tabix.
MOVE es_row_no-row_id TO vg_tabix.
* Chama form para atualizao via ajuda de pesquisa de dados da tela
PERFORM f4_help USING vg_tabix e_fieldname CHANGING vg_nome.
* Atualiza ALV e ajuste largura das colunas
PERFORM refresh_alv.
*
ENDMETHOD.
ENDCLASS.

"handle_onf4
"lcl_event_handler IMPLEMENTATION

**********************************************************************
* FIM CLASSES

**********************************************************************
DATA: t_fieldcat
wa_fieldcat

TYPE lvc_t_fcat,
TYPE lvc_s_fcat.

DATA: wa_layout
*
wa_sortcat
wa_variant

TYPE lvc_s_layo,
TYPE lvc_s_sort OCCURS 0,
TYPE disvariant.

"#EC NEEDED

*&---------------------------------------------------------------------*
*& Tela de Seleo
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
* Requisio de Material Permanente
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(50) text-t01 FOR FIELD p_req.
PARAMETERS: p_req RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
* Requisio de Movimentao de Material Permanente
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(50) text-t02 FOR FIELD p_mov.
PARAMETERS: p_mov RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
* Requisio de Transferncia de Responsabilidade
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(50) text-t04 FOR FIELD p_tre.
PARAMETERS: p_tre RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
* Requisio de Recolhimento de Material Permanente
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(50) text-t05 FOR FIELD p_recb.
PARAMETERS: p_recb RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
* Comunicao de Extravio de Material Permanente
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(50) text-t03 FOR FIELD p_com.
PARAMETERS: p_com RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP. "Salta uma linha na tela
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
* Deixa a opo criar como default
zfi_e_req_mat-action = c_criar.
* Status em criao
wa_req_mat_hd-zstsolic = c_em_cri.
* Carrega descrio do status

PERFORM busca_descri_status.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
field_name
= 'p_file'
CHANGING
file_name
= p_file
EXCEPTIONS
mask_too_long = 1
OTHERS
= 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
**AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_invnr-low.
**
** CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
**
EXPORTING
**
retfield
= 'INVNR'
**
dynpprog
= sy-repid
**
dynpnr
= sy-dynnr
**
dynprofield
= 'S_INVNR-LOW'
***
value_org
= c_s
**
TABLES
**
value_tab
= t_invnr
**
field_tab
= t_fields
**
EXCEPTIONS
**
parameter_error = 1
**
no_values_found = 2
**
OTHERS
= 3.
**
**
**AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_invnr-high.
**
** CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
**
EXPORTING
**
retfield
= 'INVNR'
**
dynpprog
= sy-repid
**
dynpnr
= sy-dynnr
**
dynprofield
= 'S_INVNR-HIGH'
***
value_org
= c_s
**
TABLES
**
value_tab
= t_invnr
**
field_tab
= t_fields
**
EXCEPTIONS
**
parameter_error = 1
**
no_values_found = 2
**
OTHERS
= 3.
*** PERFORM busca_match_low.
**
*** PERFORM busca_match_high.
AT SELECTION-SCREEN OUTPUT.
* Controla edio/exibio dos campos da tela dependendo da ao indicada
PERFORM controla_campos_telas.

*---------------------------------------------------------------------*
*
DEFINE ADD_FIELDCAT
*---------------------------------------------------------------------*
*
Apenas insere os parametros passados na tabela interna
*
Para que esta possa ser repassada para a funo e montar os
*
campos
*----------------------------------------------------------------------*
DEFINE add_fieldcat_grid.
* Processamento
clear wa_fieldcat.
wa_fieldcat-ref_table
wa_fieldcat-f4availabl
wa_fieldcat-fieldname
wa_fieldcat-no_zero
wa_fieldcat-inttype
wa_fieldcat-reptext
wa_fieldcat-outputlen
wa_fieldcat-just
*
wa_fieldcat-no_zero
*
wa_fieldcat-col_opt
wa_fieldcat-checkbox
wa_fieldcat-edit
*
wa_fieldcat-ref_field
*
wa_fieldcat-ref_table

=
=
=
=
=
=
=
=

c_false.
&1.
&2.
&3.
&4.
&5.
&6.
&7.
= &8.
= &8.
= &8.
= &9.
= &10.
= &11.

append wa_fieldcat to t_fieldcat.


END-OF-DEFINITION.
*---------------------------------------------------------------------*
*
Apenas insere os parametros passados na tabela interna
*
Para que esta possa ser repassada para a funo e montar os
*
campos
*----------------------------------------------------------------------*
DEFINE add_fieldcat_gridx.
clear wa_fieldcat.
wa_fieldcat-ref_table
wa_fieldcat-f4availabl
wa_fieldcat-fieldname
wa_fieldcat-no_zero
wa_fieldcat-inttype
wa_fieldcat-reptext
wa_fieldcat-outputlen
wa_fieldcat-just
wa_fieldcat-checkbox
wa_fieldcat-edit

=
=
=
=
=
=
=
=
=
=

c_false.
&1.
&2.
&3.
&4.
&5.
&6.
&7.
&8.
&9.

END-OF-DEFINITION.
DEFINE formatar_pernr.
*
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = &1
importing
output = &1.
*
END-OF-DEFINITION.
DEFINE add_char_val.

* Inicializa tabela de caracteristica


free: wa_char_val, it_char_val.
* Data do item documental
move: '017'
to wa_char_val-classtype,
'EXTRAVIO_MATERIAL'
to wa_char_val-classname,
'DATA_ITEM_DOCUMENTAL' to wa_char_val-charname,
&5
to wa_char_val-deletevalue.
* Formatando data
write: &1
to wa_char_val-charvalue.
append: wa_char_val to it_char_val.
clear: wa_char_val.
* Nmero do Inventrio
move: '017'
to wa_char_val-classtype,
'EXTRAVIO_MATERIAL'
to wa_char_val-classname,
'NUMERO_INVENTARIO'
to wa_char_val-charname,
&2
to wa_char_val-charvalue,
&5
to wa_char_val-deletevalue.
append: wa_char_val to it_char_val.
clear: wa_char_val.
* Descrio do bem
move: '017'
to wa_char_val-classtype,
'EXTRAVIO_MATERIAL'
to wa_char_val-classname,
'DESCRICAO_BEM'
to wa_char_val-charname,
&3
to wa_char_val-charvalue,
&5
to wa_char_val-deletevalue.
append: wa_char_val to it_char_val.
clear: wa_char_val.
* Matrcula do Funcionrio
move: '017'
to wa_char_val-classtype,
'EXTRAVIO_MATERIAL'
to wa_char_val-classname,
'MATRICULA_EMPREGADO' to wa_char_val-charname,
&4
to wa_char_val-charvalue,
&5
to wa_char_val-deletevalue.
append: wa_char_val to it_char_val.
clear: wa_char_val.
*
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*& Processamento
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* Verifica se usurio est associado a um numero pessoal
CLEAR vg_out.
PERFORM verifica_num_pessoal_user.
IF vg_out IS INITIAL.
IF p_req EQ abap_true.
* Requisio de Material Permanente
"
AUTHORITY-CHECK OBJECT 'ZOBJGMMP'
"
ID 'ZDDE_GMMP' FIELD '01'.
"
"

IF sy-subrc ne 0.
message e000(zfi) with 'Sem autorizao para executar a funcionalidad

"

ENDIF.

e'.
CALL SCREEN '100'.
ELSEIF p_mov EQ abap_true.
* Requisio de Movimentao de Material Permanente

*
*
*
*
*
*
*

AUTHORITY-CHECK OBJECT 'ZOBJGMMP'


ID 'ZDDE_GMMP' FIELD '02'.
IF sy-subrc ne 0.
message e000(zfi) with 'Sem autorizao para executar a funcionalidade'.
ENDIF.

* Carrega dados para consistencia de bens de TI


PERFORM carrega_range_ti.
* Chama tela para movimentao de material permanente
CALL SCREEN '900'.
ELSEIF p_com EQ abap_true.
* Comunicao de Extravio de Bem
*
AUTHORITY-CHECK OBJECT 'ZOBJGMMP'
*
ID 'ZDDE_GMMP' FIELD '03'.
*
*
*
IF sy-subrc ne 0.
*
message e000(zfi) with 'Sem autorizao para executar a funcionalidade'.
*
ENDIF.
CALL SCREEN '300'.
ELSEIF p_tre EQ abap_true.
* Transferncia de Responsabilidade
*
AUTHORITY-CHECK OBJECT 'ZOBJGMMP'
*
ID 'ZDDE_GMMP' FIELD '04'.
*
*
*
IF sy-subrc ne 0.
*
message e000(zfi) with 'Sem autorizao para executar a funcionalidade'.
*
ENDIF.
CALL SCREEN '400'.
* Recolhimento de Bens
ELSEIF p_recb EQ abap_true.
* Recolhimento de bens
* Carrega dados para consistencia de bens de TI
*
AUTHORITY-CHECK OBJECT 'ZOBJGMMP'
*
ID 'ZDDE_GMMP' FIELD '05'.
*
*
*
IF sy-subrc ne 0.
*
message e000(zfi) with 'Sem autorizao para executar a funcionalidade'.
*
ENDIF.
PERFORM carrega_range_ti.
* Chama tela de recolhimento de bens
CALL SCREEN '500'.
ENDIF.
ENDIF.
END-OF-SELECTION.
INCLUDE zfi_gestao_mov_material_pero01.
INCLUDE zfi_gestao_mov_material_peri01.
INCLUDE zfi_gestao_mov_material_perf01.

INCLUDE zfi_gestao_mov_material_pert01.
*&---------------------------------------------------------------------*
*&
Form BUSCA_RESPONSAVEL_ATUAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM busca_responsavel_atual.
ENDFORM.

" BUSCA_RESPONSAVEL_ATUAL

Você também pode gostar