CLUSTER:
CLUSTER:
São todas as tabelas que geram os encargos (cálculos) da folha de pagamento.São todas as tabelas que geram os encargos (cálculos) da folha de pagamento.RUBRICA:
RUBRICA:
São os encargos propriamente ditos (férias, planos, INSS, etc..) na folha deSão os encargos propriamente ditos (férias, planos, INSS, etc..) na folha de pagamento.pagamento.
PROGRAMA:
PROGRAMA:
ZCM0204ZCM0204–
–
Programa que o relatório ALV usa cor como destaque.Programa que o relatório ALV usa cor como destaque. exemplpsexemplps
FUNÇÃO para ler o CLUSTER:
FUNÇÃO para ler o CLUSTER:
Z_HRCM_PAYROLL_RESULTS_GET. (nesse caso vc está lendoZ_HRCM_PAYROLL_RESULTS_GET. (nesse caso vc está lendo todas as tabelas do CLUSTER.)todas as tabelas do CLUSTER.)
Tipos de dados standard para tabelas
Tipos de dados standard para tabelas
CHAR = Aceita todos os caracteres com no máximo 255 de comprimento. CHAR = Aceita todos os caracteres com no máximo 255 de comprimento. NUMC= Aceita somente números de no máximo 2
NUMC= Aceita somente números de no máximo 2 55 posições.55 posições. INT4 = Aceita números inteiros de 4bytes Maximo de 10 posições. INT4 = Aceita números inteiros de 4bytes Maximo de 10 posições. DEC = Campo de calculo
DEC = Campo de calculo ou montante com virgula para ou montante com virgula para casas decimais, comprimento Maximocasas decimais, comprimento Maximo de 31 posições.
de 31 posições. String
String
–
–
Sem limite de espaço não é possível usar em chave de tabela.Sem limite de espaço não é possível usar em chave de tabela.Exemplo Elementos de dados
Exemplo Elementos de dados
WERKS = é um char4 “CENTRO” ou “PLANTA.
WERKS = é um char4 “CENTRO” ou “PLANTA.
UNAME =
UNAME = é um
é um char12 “USUÁRIO”.
char12 “USUÁRIO”.
LAND1 = Pai. LAND1 = Pai.
MANDT = n. do mandante. MANDT = n. do mandante. BUKRS = Código Empresa. BUKRS = Código Empresa.
FUNÇÕES
FUNÇÕES
HR_GB_DISPLAY_MASTER_DATA
HR_GB_DISPLAY_MASTER_DATA: Retornar a tela : Retornar a tela anterior (Exibindo). Usando o submit em um anterior (Exibindo). Usando o submit em um infotipo você consegueinfotipo você consegue retornar (back) para o
retornar (back) para o próprio infotipo depois da visualização do submit.próprio infotipo depois da visualização do submit. HR_MASTERDATA_DIALOG
HR_MASTERDATA_DIALOG: Retornar a tela : Retornar a tela anterior (Editando). Usando o submit em um infotipo você consegue retornar anterior (Editando). Usando o submit em um infotipo você consegue retornar (back) para o próprio
(back) para o próprio infotipo depois da visualização do submitinfotipo depois da visualização do submit 1DK_CALC_YEARS_BETWEEN_DATES
1DK_CALC_YEARS_BETWEEN_DATES: Função para calcular idade.: Função para calcular idade. DATE_CHECK_PLAUSIBILITY
DATE_CHECK_PLAUSIBILITY: função para validar se data está dentro do padrão.: função para validar se data está dentro do padrão. TIME_CHECK_PLAUSIBILITY
TIME_CHECK_PLAUSIBILITY: função para validar se horas está dentro do padrão.: função para validar se horas está dentro do padrão. CONVERT_DATE_TO_INTERNAL:
CONVERT_DATE_TO_INTERNAL: Função para converter data para modelo americano (1999/10/30Função para converter data para modelo americano (1999/10/30 DAY_ATTRIBUTES_GET:
DAY_ATTRIBUTES_GET: Ver dias de feriados.Ver dias de feriados. SAP_CONVERT_TO_C
SAP_CONVERT_TO_CSV_FORMAT = Gera arquivo de saída com ponto SV_FORMAT = Gera arquivo de saída com ponto e virgula no formato csv.e virgula no formato csv. CATS_GET_TARGET_H
CATS_GET_TARGET_HOURS = Trás o calendário de OURS = Trás o calendário de horário de trabalho do funcionário.horário de trabalho do funcionário.
CONVERSION_EXIT_ALPHA_INPUT
CONVERSION_EXIT_ALPHA_INPUT :: preenche espaços com zeros.preenche espaços com zeros. RS_HDSYS_CALL_TC_VARIANT
RS_HDSYS_CALL_TC_VARIANT
'POPUP_WITH_TABLE_DISPLAY_OK' = exibir popup de ok para log.
'POPUP_WITH_TABLE_DISPLAY_OK' = exibir popup de ok para log.
RH_READ_OBJECT = trás descrição da unidade organizacional e outras. RH_READ_OBJECT = trás descrição da unidade organizacional e outras. SO_DOCUMENT
SO_DOCUMENT_SEND_API1 = enviar email _SEND_API1 = enviar email para SAP OFFICE.para SAP OFFICE. TH_POPUP = mensagem para
TH_POPUP = mensagem para usuário.usuário.
RP_CALC_DATE_IN_INTERVAL = Calcula data com formulas. RP_CALC_DATE_IN_INTERVAL = Calcula data com formulas. CALCULATE_DATE = Calcula datas
CALCULATE_DATE = Calcula datas
POPUP_TO_DISPLAY_TEXT = popup com botão continuar.
POPUP_TO_DISPLAY_TEXT = popup com botão continuar.
POPUP_TO_CONFIRM = popup com botões de confirmações.
POPUP_TO_CONFIRM = popup com botões de confirmações.
CALL FUNC
CALL FUNC'SO_DOCUMENT_SEND_API1''SO_DOCUMENT_SEND_API1' DESTINATIONDESTINATION 'NONE' = RFC envia email.'NONE' = RFC envia email. Faz com que o comando GET só preencha os infotipos com os dados do
Faz com que o comando GET só preencha os infotipos com os dados do * Período selecionado na tela
* Período selecionado na tela principal.principal. rp_set_data_inter
rp_set_data_interval 'ALL' val 'ALL' pn-begda pn-endda.pn-begda pn-endda.
Classes / métodos Classes / métodos
CL_GUI_FRO
COMANDOS:
COMANDOS:
rp-provide-from-last: Coloca em ordem o pernr, pegando o
rp-provide-from-last: Coloca em ordem o pernr, pegando o mais recente.mais recente.
rp-provide-from-rp-provide-from-
last p0001 ‘
last p0001 ‘
subtysubty’’
begda endda.begda endda. &sap_edit = Incluir registro na se16n&sap_edit = Incluir registro na se16n SHIFT
SHIFT wa_otimowa_otimo--matrimatri LEFTLEFT DELETINGDELETING LEADINGLEADING '0'. :'0'. : Retirar zeros aRetirar zeros a esquerda.
esquerda.
(EQ, =, NE, <>, ><, GE, >=, LE, <=, GT,
(EQ, =, NE, <>, ><, GE, >=, LE, <=, GT, >, LT, <).>, LT, <).
PROGRAMA MODULO POOL:
PROGRAMA MODULO POOL:
ZPY02155 - Z215011(MM) - ZPCBURZBR0PEFE(Função %PEFEZPY02155 - Z215011(MM) - ZPCBURZBR0PEFE(Função %PEFE–
–
Leitura de Cluster)Leitura de Cluster)
TRANSAÇÕES
TRANSAÇÕES
SE93 = Criação de transação. SE93 = Criação de transação.
SE11 = Criação de Tabelas, domínios, ajuda de pesquisa, visão de atualização etc. SE11 = Criação de Tabelas, domínios, ajuda de pesquisa, visão de atualização etc. SE16 = Criação de dados.
SE16 = Criação de dados.
SM30 = Atualização de visão de tabela SM30 = Atualização de visão de tabela
SE14 = ABAP dicionário: Utilitário BD, atualização de tabelas. SE14 = ABAP dicionário: Utilitário BD, atualização de tabelas. SM04 = Lista de usuário (Desconectar).
SM04 = Lista de usuário (Desconectar). SM12 = Selecionar entradas de bloqueio. SM12 = Selecionar entradas de bloqueio. SE71 = SAPSCRIPT.
SE71 = SAPSCRIPT.
SE91 = Classe de mensagens. SE91 = Classe de mensagens. SE37 = Modulo de Função. SE37 = Modulo de Função. ZD30 = Cadastrar constantes. ZD30 = Cadastrar constantes. ZD31 = Cadastrar val
ZD31 = Cadastrar valores das contantes. ores das contantes. (usar request custo(usar request customing)ming) SE09 = Alteração de Request.
SE09 = Alteração de Request.
SE24 = Classe Tipo de Objeto. (Criar, exibir e modificar) SE24 = Classe Tipo de Objeto. (Criar, exibir e modificar) SM50 = Processar Visualização.
SM50 = Processar Visualização.
PE04 = Atualização Funções e Operações (Usada para funções HR) PE04 = Atualização Funções e Operações (Usada para funções HR) PC_payresult = Exibição de folha de
PC_payresult = Exibição de folha de pagamento.pagamento. PC00_M37_CALC = Programa de calculo
PC00_M37_CALC = Programa de calculo de folha de pagamento. (Tela de de folha de pagamento. (Tela de seleção)seleção) ST22 = Ver erro de execução (DUMP).
ST22 = Ver erro de execução (DUMP). SU01 = Atualização senha do usuário SAP. SU01 = Atualização senha do usuário SAP. RZ10 =
RZ10 = Processar PefProcessar Pefil. (Webdympril. (Webdympro)o) SU21 = Criar objeto de autorização. SU21 = Criar objeto de autorização. SE30 = Ver performance de programa. SE30 = Ver performance de programa.
STMS_QA = transação para liberar request para produção. STMS_QA = transação para liberar request para produção.
MODULO DE FUNÇÃO PARA ABRIR TRANSAÇÃO
MODULO DE FUNÇÃO PARA ABRIR TRANSAÇÃO
= RS_HDSYS_CALL_TC_VARIANT= RS_HDSYS_CALL_TC_VARIANTPasso para alteração de senha no SAP
Passo para alteração de senha no SAP
spro ->IMG ref. -> adm.pessoal -> amd.organizacional ->
spro ->IMG ref. -> adm.pessoal -> amd.organizacional -> conf.globais -> adm.autorização ->conf.globais -> adm.autorização -> reg.meste do usiario.
reg.meste do usiario.
CONDIÇÕES
CONDIÇÕES
CA = Contem algum dos caracteres no conteúdo o mesmo podendo ser char ou string. (exp. CA CA = Contem algum dos caracteres no conteúdo o mesmo podendo ser char ou string. (exp. CA
“abcd” o comando verifi
“abcd” o comando verifi
ca se encontra algum das letras, ele pode encontrar uma ou mais )ca se encontra algum das letras, ele pode encontrar uma ou mais ) CO = Contem apenas um caractere deencontra um só desses caracteres, ele pode
encontra um só desses caracteres, ele pode encontrar somente um )encontrar somente um ) CN= V1 pode conter caracteres que não estão em v2
CN= V1 pode conter caracteres que não estão em v2
*TERMO
*TERMO
: FieldCat = catalogo de campo, usado para exibir relatório.: FieldCat = catalogo de campo, usado para exibir relatório.TIPO DE CLASSE
TIPO DE CLASSE
I = Informação I = Informação S = Sucesso S = Sucesso E = Erro E = Erro W =W = Aviso Aviso = warning= warning
Exemplo Programa de ALV TRI
Exemplo Programa de ALV TRI
::ZPY141
ZPY141
Exemplo Programa
Exemplo Programa de com MACRO,
de com MACRO, ALV zebrada:
ALV zebrada: ZCM0204
ZCM0204
Logo tipo ALV:
Logo tipo ALV:
* Para criar um
* Para criar um logotipo, deve-se entrar na transação 0FPM002 elogotipo, deve-se entrar na transação 0FPM002 e * preencher: * preencher: * - Classe = PICTURES * - Classe = PICTURES * - Objeto = OT * - Objeto = OT *
* - - Item Item = = Nome Nome do do ID ID da da figurafigura
Exemplo apresentação de Soma e SubSoma automática
Exemplo apresentação de Soma e SubSoma automática na ALV.
na ALV.
FORM
FORM z_tm_display_alv_report.z_tm_display_alv_report. gd_repid = sy-repid.
gd_repid = sy-repid.
t_sortalv-fieldname =
t_sortalv-fieldname = 'PERNR''PERNR'.. t_sortalv-tabname =
t_sortalv-tabname = 't_output''t_output'.. t_sortalv-group =
t_sortalv-group = 'X''X'.. t_sortalv-subtot =
t_sortalv-subtot = 'X''X'.. APPEND
APPEND t_sortalv.t_sortalv.
CALL FUNCTION
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY''REUSE_ALV_GRID_DISPLAY'
EXPORTING
EXPORTING
i_callback_pr
i_callback_program ogram = = gd_repidgd_repid i_callback_top_of_page =
i_callback_top_of_page = 'Z_TOP_OF_PAGE''Z_TOP_OF_PAGE'
is_layout
is_layout = = gd_layoutgd_layout
it_fieldcat
it_fieldcat = = t_fieldcatalogt_fieldcatalog[][]
i_save =
i_save = 'X''X'
it_sort
it_sort = = t_sortalv[]t_sortalv[]
TABLES
TABLES
t_outtab
t_outtab = = t_outputt_output
EXCEPTIONS EXCEPTIONS program_error = program_error = 11 OTHERS OTHERS == 2.2.
Exemplo de programa.
Exemplo de programa.
tables: zfunc, zcargos. tables: zfunc, zcargos. data: vc_cor(1)
data: vc_cor(1) typetype c,c, v_cargo
v_cargo typetype zcargos-cargo.zcargos-cargo. select-options:
select-options:
s_nome
s_cargos
s_cargos forfor zfunc-cod_cargozfunc-cod_cargo nono intervals,intervals, s_data
s_data forfor zfunc-data_admi.zfunc-data_admi. select
select ** fromfrom zfunczfunc where
where nomenome inin s_nomes_nome andand cod_cargocod_cargo inin s_cargoss_cargos andand
data_admi
data_admi inin s_data.s_data. select single
select single cargo fromcargo from zcargoszcargos intointo v_cargov_cargo where
where cod_cargo = zfunc-cod_cargo.cod_cargo = zfunc-cod_cargo. *Marcação Zebra.
*Marcação Zebra.
if
if vc_corvc_cor isis initial.initial.
format color col_normal intensified
format color col_normal intensified off.off. vc_cor =
vc_cor = 'x''x'.. else.
else.
format color col_normal intensified
format color col_normal intensified on.on. vc_cor =
vc_cor = ' '' '.. endif.
endif.
write: / zfunc-codfunc, zfunc-nome, zfunc-data_admi,
write: / zfunc-codfunc, zfunc-nome, zfunc-data_admi, 061061 zfunc- zfunc-cod_cargo,
cod_cargo, 071071 v_cargo,v_cargo, 091091 zfunc-salario.zfunc-salario. endselect.
endselect. if
if sy-subrc <>sy-subrc <> 0.0.
message
message w999w999 withwith 'Registro não encontrado.''Registro não encontrado.'(001).(001). endif. endif. *Cabeçalho. *Cabeçalho. top-of-page. top-of-page. write: /
write: / 'Codigo''Codigo',, 'Funcionario''Funcionario',, 049049'Data Admis.''Data Admis.',, 061061'Cod.''Cod.',, 071071'C'C
argo'
argo',, 091091'Salario''Salario'.. uline.
uline. _____________
_____________________________________________________________________________________________________________________________________________
Programa de orientação objeto (pecistente)
Programa de orientação objeto (pecistente)
data: vc_cor(1)
data: vc_cor(1) typetype c,c, v_cargo
v_cargo typetype zcargos-cargo,zcargos-cargo, t_001
t_001 type table oftype table of zfunc,zfunc, wa_001
wa_001 typetype zfunc.zfunc. select-options:
select-options:
s_nome
s_nome forfor zfunc-nomezfunc-nome nono intervals,intervals, s_cargos
s_cargos forfor zfunc-cod_cargozfunc-cod_cargo nono intervals,intervals, s_data
s_data forfor zfunc-data_admi.zfunc-data_admi. start-of-selection.
start-of-selection. select
select ** fromfrom zfunc into tablezfunc into table t_001t_001 where
where nomenome inin s_nomes_nome andand cod_cargocod_cargo inin s_cargoss_cargos andand
data_admi
data_admi inin s_data.s_data. *Marcação Zebra.
*Marcação Zebra.
if
if vc_corvc_cor isis initial.initial.
format color col_normal intensified
format color col_normal intensified off.off. vc_cor =
vc_cor = 'x''x'.. else.
else.
format color col_normal intensified
format color col_normal intensified on.on. vc_cor =
vc_cor = ' '' '.. endif.
end-of-selection. end-of-selection. loop at
loop at t_001t_001 intointo wa_001.wa_001. select single
select single cargo fromcargo from zcargoszcargos intointo v_cargov_cargo where
where cod_cargo = wa_001-cod_cargo.cod_cargo = wa_001-cod_cargo.
write: / wa_001-codfunc, wa_001-nome, wa_001-data_admi,
write: / wa_001-codfunc, wa_001-nome, wa_001-data_admi, 061061 wa_001- wa_001-cod_cargo,
cod_cargo, 071071 v_cargo,v_cargo, 091091 wa_001-salario.wa_001-salario.
endloop. endloop. if
if sy-subrc <>sy-subrc <> 0.0.
message
message w999w999 withwith 'Registro não encontrado.''Registro não encontrado.'(001).(001). endif. endif. *Cabeçalho. *Cabeçalho. top-of-page. top-of-page. write: /
write: / 'Codigo''Codigo',, 'Funcionario''Funcionario',, 049049'Data Admis.''Data Admis.',, 061061'Cod.''Cod.',, 071071'C'C
argo'
argo',, 091091'Salario''Salario'.. uline.
uline.
REPORT
REPORT z_gp_popula_usuarioz_gp_popula_usuario MESSAGE-IDMESSAGE-ID zgp.zgp. TYPE-POOLS: vrm.
TYPE-POOLS: vrm. DATA: t_status_usua
DATA: t_status_usua TYPETYPE osreftab.osreftab. SELECTION-SCREEN BEGIN OF BLOCK
SELECTION-SCREEN BEGIN OF BLOCK b1b1 WITH FRAME TITLEWITH FRAME TITLE text-t01.text-t01. PARAMETERS: p_nome
PARAMETERS: p_nome TYPETYPE zgp002-nome OBLIGATORY,zgp002-nome OBLIGATORY, p_dtnasc
p_dtnasc TYPETYPE zgp002-dt_nasc.zgp002-dt_nasc. SELECTION-SCREEN END OF BLOCK
SELECTION-SCREEN END OF BLOCK b1.b1. SELECTION-SCREEN BEGIN OF BLOCK
SELECTION-SCREEN BEGIN OF BLOCK b2b2 WITH FRAME TITLEWITH FRAME TITLE text-t02.text-t02. PARAMETERS: p_logra
PARAMETERS: p_logra TYPETYPE zgp002-logradouro,zgp002-logradouro, p_numem
p_numem TYPETYPE zgp002-numero,zgp002-numero, p_compl
p_compl TYPETYPE zgp002-complemento,zgp002-complemento, p_bairro
p_bairro TYPETYPE zgp002-bairro,zgp002-bairro, p_cidade
p_cidade TYPETYPE zgp002-cidade,zgp002-cidade, p_estado
p_estado TYPETYPE zgp002-estado,zgp002-estado, p_cep
p_cep TYPETYPE zgp002-cep,zgp002-cep, p_pais
p_pais TYPETYPE zgp002-pais.zgp002-pais. SELECTION-SCREEN END OF BLOCK
SELECTION-SCREEN END OF BLOCK b2.b2. SELECTION-SCREEN BEGIN OF BLOCK
SELECTION-SCREEN BEGIN OF BLOCK b3b3 WITH FRAME TITLEWITH FRAME TITLE text-t03.text-t03. PARAMETERS: p_email
PARAMETERS: p_email TYPETYPE zgp002-email,zgp002-email, p_email2
p_email2 TYPETYPE zgp002-email2,zgp002-email2, p_telef
p_telef TYPETYPE zgp002-telefone,zgp002-telefone, p_telef2
p_telef2 TYPETYPE zgp002-telefone2.zgp002-telefone2. SELECTION-SCREEN END OF BLOCK
SELECTION-SCREEN BEGIN OF BLOCK
SELECTION-SCREEN BEGIN OF BLOCK b4b4 WITH FRAME TITLEWITH FRAME TITLE text-t04.text-t04. PARAMETERS: p_taxa
PARAMETERS: p_taxa TYPETYPE zgp002-vlr_taxa,zgp002-vlr_taxa, p_status
p_status TYPETYPE zgp012- zgp012-nome
nome ASAS LISTBOX VISIBLE LENGTHLISTBOX VISIBLE LENGTH 5050 OBLIGATORY.OBLIGATORY. SELECTION-SCREEN END OF BLOCK
SELECTION-SCREEN END OF BLOCK b4.b4. INITIALIZATION.
INITIALIZATION. PERFORM
PERFORM z_preenche_status_listbox.z_preenche_status_listbox. START-OF-SELECTION.
START-OF-SELECTION. PERFORM
PERFORM z_insere_dados.z_insere_dados.
*&---*
-*
*&
*& Form Form z_preenche_staz_preenche_status_listbox tus_listbox
*&---* -* * text * text *---* -* * * --> --> p1 p1 texttext * * <-- <-- p2 p2 texttext *---* -* FORM
FORM z_preenche_status_listbox .z_preenche_status_listbox . CONSTANTS: c_vrm_id
CONSTANTS: c_vrm_id TYPETYPE vrm_idvrm_id VALUEVALUE 'P_STATUS''P_STATUS'.. DATA: o_query_man
DATA: o_query_man TYPE REF TOTYPE REF TO if_os_query_manager,if_os_query_manager, o_query
o_query TYPE REF TOTYPE REF TO if_os_query,if_os_query, o_ca_zgp012
o_ca_zgp012 TYPE REF TOTYPE REF TO if_os_ca_persistency,if_os_ca_persistency, o_zgp012
o_zgp012 TYPE REF TOTYPE REF TO zcl_gp_os_zgp012,zcl_gp_os_zgp012, t_vrm_vl
t_vrm_vl TYPETYPE vrm_values.vrm_values. FIELD-SYMBOLS: <fs_status_usua>
FIELD-SYMBOLS: <fs_status_usua> LIKE LINE OFLIKE LINE OF t_status_usua,t_status_usua, <fs_vrm_vl>
<fs_vrm_vl> LIKE LINE OFLIKE LINE OF t_vrm_vl.t_vrm_vl. * Obtém o gerenciador de queries
* Obtém o gerenciador de queries
o_query_man = cl_os_query_manager=>get_query_manager( ). o_query_man = cl_os_query_manager=>get_query_manager( ).
* Cria uma query para buscar todos os status de usuários (query sem fi
* Cria uma query para buscar todos os status de usuários (query sem fi
ltros)
ltros)
o_query = o_query_man->create_query( ). o_query = o_query_man->create_query( ).
* Obtém o agente da classe de status de usuários
* Obtém o agente da classe de status de usuários
o_ca_zgp012 = zca_gp_os_zgp012=>agent. o_ca_zgp012 = zca_gp_os_zgp012=>agent. * Obtém todos os status de usuários
* Obtém todos os status de usuários
t_status_usua = o_ca_zgp012->get_persistent_by_query( o_query ). t_status_usua = o_ca_zgp012->get_persistent_by_query( o_query ). * Preenche uma tabela com todos os nomes dos status de usuários para a
* Preenche uma tabela com todos os nomes dos status de usuários para a
listbox
listbox
LOOP AT
LOOP AT t_status_usuat_status_usua ASSIGNINGASSIGNING <fs_status_usua>.<fs_status_usua>. o_zgp012 ?=
o_zgp012 ?= <fs_status_<fs_status_usua>.usua>. APPEND INITIAL LINE TO
<fs_vrm_vl>-key = o_zgp012->get_nome( ). <fs_vrm_vl>-key = o_zgp012->get_nome( ).
* Se o status de usuário é o DEFAULT, inicializa a variável de tela
* Se o status de usuário é o DEFAULT, inicializa a variável de tela
IF NOT
IF NOT o_zgp012->get_flg_default( )o_zgp012->get_flg_default( ) ISIS INITIAL.INITIAL. p_status = <fs_vrm_vl>-key. p_status = <fs_vrm_vl>-key. ENDIF. ENDIF. ENDLOOP. ENDLOOP.
* Preenche a listbox com os status de usuários
* Preenche a listbox com os status de usuários
CALL FUNCTION
CALL FUNCTION 'VRM_SET_VALUES''VRM_SET_VALUES'
EXPORTING EXPORTING id id = c_vrm_id= c_vrm_id values values = = t_vrm_vlt_vrm_vl EXCEPTIONS EXCEPTIONS id_illegal_name = id_illegal_name = 11 OTHERS OTHERS == 2.2. ENDFORM.
ENDFORM. " z_preenche_status_listbox " z_preenche_status_listbox
*&---*
-*
*&
*& Form Form z_insere_dadosz_insere_dados
*&---* -* * text * text *---* -* * * --> --> p1 p1 texttext * * <-- <-- p2 p2 texttext *---* -* FORM
FORM z_insere_dados.z_insere_dados. DATA: o_zgp002
DATA: o_zgp002 TYPE REF TOTYPE REF TO zcl_gp_os_zgp002,zcl_gp_os_zgp002, o_agente
o_agente TYPE REF TOTYPE REF TO zca_gp_os_zgp002,zca_gp_os_zgp002, wa_zgp002
wa_zgp002 TYPETYPE zgp002,zgp002, o_zgp012
o_zgp012 TYPE REF TOTYPE REF TO zcl_gp_os_zgp012.zcl_gp_os_zgp012. FIELD-SYMBOLS: <fs_status_usua>
FIELD-SYMBOLS: <fs_status_usua> LIKE LINE OFLIKE LINE OF t_status_usua.t_status_usua. o_agente =
o_agente = zca_gp_os_zzca_gp_os_zgp002=>agengp002=>agent.t.
o_zgp002 ?= o_agente->if_os_factory~create_persistent( ). o_zgp002 ?= o_agente->if_os_factory~create_persistent( ). *
* o_zgp002->set_o_zgp002->set_nome( nome( p_nome p_nome ).).
*
* o_zgp002->set_o_zgp002->set_logradouro( logradouro( p_logra p_logra ).).
*
* o_zgp002->set_o_zgp002->set_numero( numero( p_numem p_numem ).).
*
* o_zgp002->set_o_zgp002->set_complemento( complemento( p_compl p_compl ).).
*
* o_zgp002->set_o_zgp002->set_bairro( bairro( p_bairro p_bairro ).).
*
* o_zgp002->set_o_zgp002->set_cidade( cidade( p_cidade p_cidade ).).
*
* o_zgp002->set_o_zgp002->set_estado( estado( p_estado p_estado ).).
*
* o_zgp002->o_zgp002->set_cep( set_cep( p_cep p_cep ).).
*
* o_zgp002->set_o_zgp002->set_pais( pais( p_pais p_pais ).).
*
* o_zgp002->set_o_zgp002->set_email( email( p_email p_email ).).
*
* o_zgp002->set_o_zgp002->set_email2( email2( p_email2 p_email2 ).).
*
* o_zgp002->set_o_zgp002->set_telefone( telefone( p_telef p_telef ).).
*
* o_zgp002->o_zgp002->set_telefonset_telefone2( e2( p_telef2 p_telef2 ).).
*
* o_zgp002->o_zgp002->set_dt_nascset_dt_nasc( ( p_dtnasc p_dtnasc ).).
*
* o_zgp002->set_o_zgp002->set_vlr_taxa( vlr_taxa( p_taxa p_taxa ).).
wa_zgp002-nome = p_nome. wa_zgp002-nome = p_nome.
wa_zgp002-logradouro = p_logra. wa_zgp002-logradouro = p_logra.
wa_zgp002-numero = p_numem. wa_zgp002-numero = p_numem. wa_zgp002-complemento = p_compl. wa_zgp002-complemento = p_compl. wa_zgp002-bairro = p_bairro. wa_zgp002-bairro = p_bairro. wa_zgp002-cidade = p_cidade. wa_zgp002-cidade = p_cidade. wa_zgp002-estado = p_estado. wa_zgp002-estado = p_estado. wa_zgp002-c
wa_zgp002-cep = ep = p_cep.p_cep. wa_zgp002-pais = p_pais. wa_zgp002-pais = p_pais. wa_zgp002-email = p_email. wa_zgp002-email = p_email. wa_zgp002-email2 = p_email2. wa_zgp002-email2 = p_email2. wa_zgp002-telefone = p_telef. wa_zgp002-telefone = p_telef. wa_zgp002-t
wa_zgp002-telefone2 = elefone2 = p_telef2.p_telef2. wa_zgp002-dt_nasc = p_dtnasc. wa_zgp002-dt_nasc = p_dtnasc. wa_zgp002-vlr_taxa = p_taxa. wa_zgp002-vlr_taxa = p_taxa. o_zgp002->map_from_struct( wa_zgp002 ). o_zgp002->map_from_struct( wa_zgp002 ). * Atribui o status para o usuário criado
* Atribui o status para o usuário criado
LOOP AT
LOOP AT t_status_usuat_status_usua ASSIGNINGASSIGNING <fs_status_usua>.<fs_status_usua>. o_zgp012 ?=
o_zgp012 ?= <fs_status_<fs_status_usua>.usua>. IF
IF o_zgp012->get_nome( ) = p_status.o_zgp012->get_nome( ) = p_status. o_zgp002->
o_zgp002->set_cod_staset_cod_status( tus( o_zgp012 ).o_zgp012 ). EXIT. EXIT. ENDIF. ENDIF. ENDLOOP. ENDLOOP. COMMIT
COMMIT WORK.WORK. MESSAGE
MESSAGE s000.s000.
PROGRAMA VALIDAÇÂO RAGE
PROGRAMA VALIDAÇÂO RAGE
CONSTANTS: c_persg
CONSTANTS: c_persg TYPETYPE stringstring VALUEVALUE 'IEQ1;IEQ3;IEQ4;IEQ5;IEQJ;IEQN;IE'IEQ1;IEQ3;IEQ4;IEQ5;IEQJ;IEQN;IE
QW'
QW'.. SPLIT
SPLIT c_persgc_persg ATAT ';'';' INTO TABLEINTO TABLE r_persg1.r_persg1. _____________
_____________________________________________________________________________________________________________________________________________ EXEMPLO SUBMIT PARA VISUALIZAR TELA DE O
EXEMPLO SUBMIT PARA VISUALIZAR TELA DE OUTRO PROGRAMA:UTRO PROGRAMA: SUBMIT
SUBMIT z4g3011z4g3011 WITHWITH xnrsolxnrsol EQEQ t_zhr039_aux-lancamento_z4gat_zhr039_aux-lancamento_z4ga ANDAND RETURN.RETURN. ______________________________________________________________________ ______________________________________________________________________
EXEMPLO BATCH INPUT:
EXEMPLO BATCH INPUT:
1 Fazer mapeamento pelo shdb. 1 Fazer mapeamento pelo shdb. 2
2 PERFORM PERFORM bdc_dynpro bdc_dynpro USING 'SAPLMGMM' USING 'SAPLMGMM' '0060'.'0060'. PERFORM
PERFORM bdc_field bdc_field USING USING 'BDC_OKCODE''BDC_OKCODE' '/00'.
'/00'. PERFORM
PERFORM bdc_field bdc_field USING USING 'RMMG1-MATNR''RMMG1-MATNR' t_entrada-codigo. t_entrada-codigo.
PERFORM
PERFORM bdc_dynpro bdc_dynpro USING USING 'SAPLMGMM' 'SAPLMGMM' '0070'.'0070'. PERFORM
PERFORM bdc_field bdc_field USING USING 'BDC_OKCODE''BDC_OKCODE' '=ENTR'.
'=ENTR'. PERFORM
'X'. 'X'.
PERFORM
PERFORM bdc_dynpro bdc_dynpro USING USING 'SAPLMGMM' 'SAPLMGMM' '4004'.'4004'. PERFORM
PERFORM bdc_field bdc_field USING USING 'BDC_OKCODE''BDC_OKCODE' '=SP02'. '=SP02'. PERFORM
PERFORM bdc_field bdc_field USING USING 'MARA-BISMT''MARA-BISMT'
t_entrada-codigo_antigo. t_entrada-codigo_antigo.
Segundo exemplo de batch input Usando Macro.
Segundo exemplo de batch input Usando Macro.
DATA: x_bdcdataDATA: x_bdcdata LIKE STANDARD TABLE OFLIKE STANDARD TABLE OF bdcdatabdcdata WITH HEADER LINEWITH HEADER LINE,,
wa_ctu_params
wa_ctu_params TYPETYPE ctu_paramsctu_params..
DEFINE
DEFINE bdcdynpbdcdynp..
clear
clear x_bdcdatax_bdcdata..
x_bdcdata
x_bdcdata--programprogram == &1&1..
x_bdcdata
x_bdcdata--dynprodynpro == &2&2..
x_bdcdata
x_bdcdata--dynbegindynbegin == 'X''X'..
append
append x_bdcdatax_bdcdata..
END-OF-DEFINITION
END-OF-DEFINITION..
DEFINE
DEFINE bdcdatabdcdata..
clear
clear x_bdcdatax_bdcdata..
x_bdcdata
x_bdcdata--fnamfnam == &1&1..
x_bdcdata
x_bdcdata--fvalfval == &2&2..
append
append x_bdcdatax_bdcdata..
END-OF-DEFINITION
END-OF-DEFINITION..
REFRESH
REFRESH x_bdcdatax_bdcdata..
bdcdynp
bdcdynp:: 'SAPMH5A0' '1000''SAPMH5A0' '1000'..
bdcdata
bdcdata:: 'PPHDR-PLVAR''PPHDR-PLVAR' lt_7404lt_7404--plvarplvar,,
'PPHDR-OTYPE'
'PPHDR-OTYPE' lt_7404lt_7404--otypeotype,,
'PM0D1-SEARK'
'PM0D1-SEARK' lt_7404lt_7404--objidobjid,,
'PPHDR-INFTY' '7404'
'PPHDR-INFTY' '7404',,
'PPHDR-ISTAT'
'PPHDR-ISTAT' lt_7404lt_7404--istatistat,,
'PPHDR-BEGDA'
'PPHDR-BEGDA' lt_7404lt_7404--begdabegda,,
'PPHDR-ENDDA'
'PPHDR-ENDDA' lt_7404lt_7404--enddaendda..
bdcdynp
bdcdynp:: 'MP740400' '2000''MP740400' '2000'..
bdcdata
bdcdata:: 'P7404-BEGDA''P7404-BEGDA' lt_7404lt_7404--begdabegda,,
'P7404-ENDDA'
'P7404-ENDDA' lt_7404lt_7404--enddaendda,,
'P7404-EDUCATION_TYPE'
'P7404-EDUCATION_TYPE' lt_7404-lt_7404-education_typeeducation_type,,
'P7404-EDUCATION_FIELD'
'P7404-EDUCATION_FIELD' lt_7404-lt_7404-education_fieldeducation_field ,,
'P7404-INSTITUTE'
'P7404-INSTITUTE' lt_7404lt_7404--instituteinstitute,,
'P7404-COUNTRY'
'P7404-COUNTRY' lt_7404lt_7404--countrycountry..
* PPHDX-ENTRY_IDX'
* PPHDX-ENTRY_IDX'
* record-ENTRY_IDX_015.
* record-ENTRY_IDX_015.
CLEAR
CLEAR:: wa_ctu_paramswa_ctu_params..
wa_ctu_params
wa_ctu_params--dismodedismode == 'A''A'..
wa_ctu_params
wa_ctu_params--updmodeupdmode == 'A''A'..
* Cria um novo IT0008 na data do
* Cria um novo IT0008 na data do acordo coletivoacordo coletivo
CALL TRANSACTION
CALL TRANSACTION 'PA30''PA30'
USING
USING x_bdcdatax_bdcdata OPTIONS
OPTIONS FROMFROM wa_ctu_paramswa_ctu_params..
EXEMPLO PARA RETIRAR CAMPOS DE UMA PNP (banco de
EXEMPLO PARA RETIRAR CAMPOS DE UMA PNP (banco de dados lógicos HR).
dados lógicos HR).
AT SELECTION-SCREENAT SELECTION-SCREEN OUTPUT.OUTPUT. LOOP AT
LOOP AT SCREEN.SCREEN. CASE
CASE screen-name.screen-name. WHEN
WHEN 'PNPTIMR1''PNPTIMR1' OROR 'PNPTIMR2''PNPTIMR2' OROR 'PNPTIMR3''PNPTIMR3' OROR
'PNPTIMR4'
'PNPTIMR4' OROR 'PNPTIMR5''PNPTIMR5' OROR
'%FDPS110_1000'
'%FDPS110_1000' OROR '%FBIS113_1000''%FBIS113_1000' OROR
'PNPBEGPS'
'PNPBEGPS' OROR 'PNPENDPS''PNPENDPS'..
screen-input =
screen-invisible = screen-invisible = 1.1.
MODIFY
MODIFY SCREEN.SCREEN. ENDCASE.
ENDCASE. ENDLOOP. ENDLOOP.
EXEMPLO PARA DEIXAR CAMPO NÃO EDITAVEL, SÓ EXIBIÇÃO.
EXEMPLO PARA DEIXAR CAMPO NÃO EDITAVEL, SÓ EXIBIÇÃO.
LOOP AT SCREEN.
LOOP AT SCREEN.
IF screen
IF screen--namename == 'P_NOM'.'P_NOM'.
screen
screen--inputinput == 0.0.
MODIFY SCREEN. MODIFY SCREEN. ENDIF. ENDIF. ENDLOOP. ENDLOOP. IF
IF p_tranpp_tranp IS INITIAL.IS INITIAL.
CLEAR
CLEAR p_nom.p_nom. ENDIF.
ENDIF.
*Fim
*Fim
Desabilitar campos dependendo do radiobutton selecionado. Desabilitar campos dependendo do radiobutton selecionado.
( o radiobutton precisa ter um user-command para programa report. ( o radiobutton precisa ter um user-command para programa report. P_xxx radiobutton xxx user-command teste. )( programa de exemplo P_xxx radiobutton xxx user-command teste. )( programa de exemplo ZPY0251) ZPY0251) AT SELECTION-SCREEN OUTPUT. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. LOOP AT SCREEN. IF screen
IF screen--namename == 'P_ARQ_S'.'P_ARQ_S'.
IF
IF p_crdbrfp_crdbrf == 'X'.'X'.
screen
screen--inputinput == '0'.'0'.
ELSE.
ELSE.
screen
screen--inputinput == '1'.'1'.
ENDIF. ENDIF. MODIFY SCREEN. MODIFY SCREEN. ENDIF. ENDIF. ENDLOOP. ENDLOOP.
Focar somente no campo que seja obrigatório desabilitando Focar somente no campo que seja obrigatório desabilitando
momentaneamente os outros campos. ( programa de exemplo ZPY0251) momentaneamente os outros campos. ( programa de exemplo ZPY0251) AT SELECTION-SCREEN ON
AT SELECTION-SCREEN ON p_per.p_per. IF
IF p_perp_per IS INITIAL ANDIS INITIAL AND sysy--ucomm <>ucomm <> 'XLOCAL' .'XLOCAL' .
MESSAGE
MESSAGE e999e999 WITH textWITH text--035.035.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON
AT SELECTION-SCREEN ON p_arq_e.p_arq_e. IF
IF p_arq_ep_arq_e IS INITIAL ANDIS INITIAL AND sysy--ucomm <>ucomm <> 'XLOCAL'.'XLOCAL'.
MESSAGE
MESSAGE e999e999 WITH textWITH text--036.036.
ENDIF.
ENDIF.
---EXEMPLO VISÃO NO REPORT(QUANDO COLOCAR UM CODIGO NO CAMPO ASSIM QUE
EXEMPLO VISÃO NO REPORT(QUANDO COLOCAR UM CODIGO NO CAMPO ASSIM QUE
PRECIOSADO ENTER TRAZ O NOME E
PRECIOSADO ENTER TRAZ O NOME E APRESENTA NA TELA.):
APRESENTA NA TELA.):
AT SELECTION-SCREEN ON
VALUE-AT SELECTION-SCREEN ON VALUE-REQUEST FOR “CAMPO”.REQUEST FOR “CAMPO”.
HABILITAR E DESABILITAR CAMPOS NA TELA DE SELEÇÃO DEPENDENDO DE
HABILITAR E DESABILITAR CAMPOS NA TELA DE SELEÇÃO DEPENDENDO DE
QUAL CHECKBOX FOR MARCADO (REPORT).
QUAL CHECKBOX FOR MARCADO (REPORT).
Programa: Z582071D
Programa: Z582071D
AT SEL
AT SELECTION ECTION SCREEN SCREEN IF
IF cb_mono =cb_mono = ' '' '.. LOOP AT
LOOP AT SCREEN.SCREEN. CASE
CASE screen-name.screen-name. WHEN
WHEN 'P_GUIA''P_GUIA' OROR 'P_TRANP''P_TRANP'.. screen-input =
screen-input = '0''0'.. screen-active =
screen-active = 1.1.
MODIFY
ENDCASE. ENDCASE. ENDLOOP. ENDLOOP. ELSE. ELSE. LOOP AT
LOOP AT SCREEN.SCREEN. CASE
CASE screen-name.screen-name. WHEN
WHEN 'P_WERKS''P_WERKS'.. screen-input =
screen-input = '0''0'.. MODIFY
MODIFY SCREEN.SCREEN. WHEN
WHEN 'P_DATA''P_DATA'.. screen-input =
screen-input = '0''0'.. MODIFY
MODIFY SCREEN.SCREEN. WHEN
WHEN 'P_TKNUM''P_TKNUM'.. screen-input =
screen-input = '0''0'.. MODIFY
MODIFY SCREEN.SCREEN. WHEN
WHEN 'P_MBLNR''P_MBLNR'.. screen-input =
screen-input = '0''0'.. MODIFY
MODIFY SCREEN.SCREEN. WHEN
WHEN 'P_IMPR''P_IMPR'.. screen-input =
screen-input = '0''0'.. MODIFY
MODIFY SCREEN.SCREEN. ENDCASE. ENDCASE. ENDLOOP. ENDLOOP. ENDIF. ENDIF. ---FUNÇÃO PARA INCLUIR OU EXCLUIR REGISTROS DA TEVEN.
FUNÇÃO PARA INCLUIR OU EXCLUIR REGISTROS DA TEVEN. CALL FUNCTION
CALL FUNCTION 'HR_TMW_DB_UPDATE_TEVENT''HR_TMW_DB_UPDATE_TEVENT'
TABLES
TABLES
del_teven
del_teven == t_teven_ut_teven_u ins_teven
ins_teven == t_teven_it_teven_i del_teven_more
del_teven_more == t_teven_mt_teven_m ins_teven_more
ins_teven_more == t_teven_mt_teven_m EXCEPTIONS EXCEPTIONS insert_failed insert_failed == 11 update_failed update_failed == 22 OTHERS OTHERS == 3.3.
FUNÇÃO GERAR MARCH CODE PARA BUSCA DO Diretório de arquivo (LOCAL OU FUNÇÃO GERAR MARCH CODE PARA BUSCA DO Diretório de arquivo (LOCAL OU SERVIDOR):
SERVIDOR):
F4_DXFILENAME_TOPRECURSION
F4_DXFILENAME_TOPRECURSION
obs: O CAMPO ONDE IRÁ RECEBER O DIRETÓRIO DEVE SER DECLARADO DA
obs: O CAMPO ONDE IRÁ RECEBER O DIRETÓRIO DEVE SER DECLARADO DA
SEGUINTE FORMA
SEGUINTE FORMA
p_filenamep_filename LIKELIKE dxfieldsdxfields--longpathlongpath DATA: v_onde TYPE c.DATA: v_onde TYPE c. IF p_server IS INITIAL. IF p_server IS INITIAL.
v_onde = 'P'. " arquivo local v_onde = 'P'. " arquivo local ELSE.
ELSE.
v_onde = 'A'. " arquivo no servidor v_onde = 'A'. " arquivo no servidor ENDIF.
ENDIF.
* Parâmetros da função F4_DXFILENAME_TOPRECURSION: * Parâmetros da função F4_DXFILENAME_TOPRECURSION: *
* i_location_i_location_flagflag
* space --> exibe popup perguntando se o arquivo é local ou no * space --> exibe popup perguntando se o arquivo é local ou no servidor
* 'P' --> arquivo local * 'P' --> arquivo local
* 'A' --> arquivo no servidor * 'A' --> arquivo no servidor
* i_server (só é relevante se o arquivo for no servidor) * i_server (só é relevante se o arquivo for no servidor) * space --> usa o servidor default
* space --> usa o servidor default
* '?' --> exibe popup perguntando o nome do servidor a ser utilizado * '?' --> exibe popup perguntando o nome do servidor a ser utilizado * fileoperation (só é relevante se i_location_flag = space)
* fileoperation (só é relevante se i_location_flag = space) * 'R' --> exibe popup perguntando "Onde ler o arquivo?" * 'R' --> exibe popup perguntando "Onde ler o arquivo?" * 'W' --> exibe popup perguntando 'Onde gravar o arquivo?" * 'W' --> exibe popup perguntando 'Onde gravar o arquivo?" * o_path --> retorna o caminho a ser usado:
* o_path --> retorna o caminho a ser usado: * 1) pela GUI_DOWNLOAD se for arquivo local ou * 1) pela GUI_DOWNLOAD se for arquivo local ou * 2) pelo OPEN DATASET se for arquivo no servidor * 2) pelo OPEN DATASET se for arquivo no servidor
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION' CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION' EXPORTING EXPORTING i_location_flag = v_onde i_location_flag = v_onde i_server = space i_server = space fileoperation = 'W' fileoperation = 'W' IMPORTING IMPORTING o_path = p_arq o_path = p_arq EXCEPTIONS EXCEPTIONS rfc_error = 1 rfc_error = 1 error_with_ error_with_gui = gui = 22 OTHERS = 3. OTHERS = 3. IF sy-subrc NE 0. IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
ENDIF.
USANDO PROGRAMAÇÃO DINAMICA / Programa ZPY0253
USANDO PROGRAMAÇÃO DINAMICA / Programa ZPY0253
FIELD-SYMBOLS:
FIELD-SYMBOLS: <fs_pernr><fs_pernr> TYPETYPE e_detalhe_crede_detalhe_cred --pernr,pernr, <fs_rubrica>
<fs_rubrica> TYPETYPE e_detalhe_cred -e_detalhe_cred-nrrub,nrrub, <fs_detalhe_cred>
<fs_detalhe_cred> LIKE LINE OFLIKE LINE OF t_detalhe_cred,t_detalhe_cred, <fs_cdret>
<fs_cdret> TYPETYPE e_detalhe_cred -e_detalhe_cred-cdret.cdret. LOOP AT
LOOP AT t_detalhe_credt_detalhe_cred ASSIGNINGASSIGNING <fs_detalhe_cred>.<fs_detalhe_cred>. CLEAR:
CLEAR: vl_mes,vl_mes, vl_ano, vl_ano, vl_contrato, vl_contrato, vl_pernr, vl_pernr, vl_rubrica, vl_rubrica, vl_cdret. vl_cdret.
vl_pernr
vl_pernr == 'PERNR'.'PERNR'.
vl_rubrica
vl_rubrica == 'NRRUB'.'NRRUB'.
vl_cdret
vl_cdret == 'CDRET'.'CDRET'.
* Mês e Ano.
* Mês e Ano.
vl_mes
vl_mes == <fs_detalhe_cred><fs_detalhe_cred> --anomes+4anomes+4((22).).
vl_ano
vl_ano == <fs_detalhe_cred><fs_detalhe_cred> --anomes+0anomes+0((44).).
* Numero do
* Numero do contratocontrato
CONCATENATE
CONCATENATE <fs_detalhe_cred><fs_detalhe_cred>--numemp <fs_detalhe_cred>numemp <fs_detalhe_cred>--seqempseqemp INTO
INTO vl_contrato.vl_contrato.
* Verificando Titular ou Avalista - Inválido ou desligado.
* Verificando Titular ou Avalista - Inválido ou desligado.
DO
DO 66 TIMES.TIMES.
vl_index
vl_index == sysy--index.index.
ASSIGN COMPONENT
ASSIGN COMPONENT vl_pernr OF STRUCTUREvl_pernr OF STRUCTURE <fs_detalhe_cred><fs_detalhe_cred> TOTO <fs_<fs_ pernr>.
pernr>. IF
IF sysy--subrcsubrc == 00 ANDAND <fs_pernr><fs_pernr> IS NOT INITIAL.IS NOT INITIAL.
CLEAR
CLEAR wa_saida.wa_saida. wa_saida
wa_saida--cdbancocdbanco == 'CREDIBRF'.'CREDIBRF'.
wa_saida
wa_saida--cdpernrcdpernr == <fs_pernr>.<fs_pernr>. wa_saida
wa_saida--cdcontratocdcontrato == vl_contrato.vl_contrato. wa_saida
wa_saida--dtanodtano == vl_ano.vl_ano. wa_saida
wa_saida--dtmesdtmes == vl_mes.vl_mes. ASSIGN COMPONENT
ASSIGN COMPONENT vl_rubricavl_rubrica OF STRUCTUREOF STRUCTURE <fs_detalhe_cred><fs_detalhe_cred> TOTO
<fs_rubrica>. <fs_rubrica>.
IF
IF sysy--subrc =subrc = 0.0.
wa_saida
wa_saida--cdlgartcdlgart == <fs_rubrica>.<fs_rubrica>. ENDIF.
ENDIF.
wa_saida
wa_saida--vlnumparcvlnumparc == <fs_detalhe_cred><fs_detalhe_cred> --parcob.parcob. wa_saida
wa_saida--qtparcelaqtparcela == <fs_detalhe_cred><fs_detalhe_cred> --numpar.numpar. vl_campo
vl_campo == <fs_detalhe_cred><fs_detalhe_cred> --vlrfun.vlrfun. WRITE
WRITE vl_campo TOvl_campo TO <fs_detalhe_cred><fs_detalhe_cred>-
-vlrfun
vlrfun CURRENCYCURRENCY 'BRL''BRL' DECIMALSDECIMALS 2.2.
CONDENSE
CONDENSE <fs_detalhe_cred><fs_detalhe_cred> --vlrfun NOvlrfun NO--GAPS.GAPS. REPLACE ALL OCCURRENCES OF
REPLACE ALL OCCURRENCES OF '.''.' ININ <fs_detalhe_cred><fs_detalhe_cred> -
-vlrfun
vlrfun WITHWITH ''.''.
REPLACE ALL OCCURRENCES OF
REPLACE ALL OCCURRENCES OF ','',' ININ <fs_detalhe_cred><fs_detalhe_cred> -
-vlrfun
vlrfun WITHWITH '.'.'.'.
wa_saida
wa_saida--vlparcelavlparcela == <fs_detalhe_cred><fs_detalhe_cred> --vlrfun.vlrfun. wa_saida
wa_saida--vlsaldodvdvlsaldodvd == '0'.'0'.
READ TABLE
READ TABLE lt_0003lt_0003 INTOINTO wa_0003wa_0003 WITH KEYWITH KEY pernrpernr == <fs_pernr>.<fs_pernr>. IF
IF sysy--subrc =subrc = 00 ANDAND vl_pernrvl_pernr == 'PERNR'.'PERNR'.
wa_saida
wa_saida--desitempdesitemp == 'Funcionário não encontrado'.'Funcionário não encontrado'.
wa_saida
wa_saida--cdmotivstcdmotivst == '04'.'04'.
MODIFY
MODIFY zhr137zhr137 FROMFROM wa_saida.wa_saida. ELSEIF
ELSEIF sysy--subrcsubrc == 00 ANDAND vl_pernr <> 'PERNR'.vl_pernr <> 'PERNR'.
wa_saida
wa_saida--desitempdesitemp == 'Avalista não encontrado'.'Avalista não encontrado'.
wa_saida
MODIFY
MODIFY zhr137zhr137 FROMFROM wa_saida.wa_saida. ELSE.
ELSE.
READ TABLE
READ TABLE lt_0000lt_0000 INTOINTO wa_0000wa_0000 WITH KEYWITH KEY pernrpernr == <fs_detalhe<fs_detalhe _cred>
_cred>--pernr.pernr. IF
IF sysy--subrcsubrc == 00 ANDAND vl_pernrvl_pernr == 'PERNR'.'PERNR'.
wa_saida
wa_saida--desitempdesitemp == 'Funcionário demitido'.'Funcionário demitido'.
wa_saida
wa_saida--cdmotivstcdmotivst == '05'.'05'.
MODIFY
MODIFY zhr137zhr137 FROMFROM wa_saida.wa_saida. ELSEIF
ELSEIF sysy--subrcsubrc == 00 ANDAND vl_pernr <>vl_pernr <> 'PERNR'.'PERNR'.
wa_saida
wa_saida--desitempdesitemp == 'Avalista demitido'.'Avalista demitido'.
wa_saida
wa_saida--cdmotivstcdmotivst == '05'.'05'.
MODIFY
MODIFY zhr137zhr137 FROMFROM wa_saida.wa_saida. ELSE.
ELSE.
ASSIGN COMPONENT
ASSIGN COMPONENT vl_cdretvl_cdret OF STRUCTUREOF STRUCTURE <fs_detalhe_cred><fs_detalhe_cred> TT
O
O <fs_cdret>.<fs_cdret>. IF
IF sysy--subrcsubrc == 0.0.
<fs_cdret> <fs_cdret> == '01'.'01'. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. vl_pernr+5
vl_pernr+5((11) =) = vl_index.vl_index. vl_rubrica+5
vl_rubrica+5((11) =) = vl_index.vl_index. vl_cdret+5
vl_cdret+5((11) =) = vl_index.vl_index. ENDDO.
ENDDO.
LER ARQUIVO EXCEL:
LER ARQUIVO EXCEL:
* Funçoes para gerar arquivo excel* Funçoes para gerar arquivo excel CALLCALL FUNCTION 'SAP_CONVERT_TO_XLS_FFUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'ORMAT' EXPORTING EXPORTING i_filename = p_dwload i_filename = p_dwload TABLES TABLES i_tab_sap_data = tab_excel i_tab_sap_data = tab_excel EXCEPTIONS EXCEPTIONS conversion_faile conversion_failed = d = 11 OTHERS = 2. OTHERS = 2. IF sy-subrc <> 0. IF sy-subrc <> 0. * MESSAGE ID
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOSY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 S
* WITH SY-MSGV1 SY-MSGV2 S Y-MSGV3 SY-MSGV4.Y-MSGV3 SY-MSGV4. ENDIF.
ENDIF. CALL
CALL FUNCTION 'MS_EXCEL_OLE_STANDARDFUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'_DAT' EXPORTING EXPORTING file_name = p_dwload file_name = p_dwload data_sheet_name = sheet_name data_sheet_name = sheet_name TABLES TABLES data_tab = tab_excel data_tab = tab_excel EXCEPTIONS EXCEPTIONS file_not_exist = 1 file_not_exist = 1 filename_expec filename_expected = ted = 22 communication_e communication_error = rror = 33 ole_object_meth ole_object_method_error = od_error = 44 ole_object_property ole_object_property_error = _error = 55 invalid_filena invalid_filename = me = 66 invalid_pivot_fiel invalid_pivot_fields = ds = 77 download_proble download_problem = m = 88 OTHERS = 9. OTHERS = 9.
*Função para ler planilha excel *Função para ler planilha excel * Carregar a
* Carregar a planilha do excel Func com Escalas Turmasplanilha do excel Func com Escalas Turmas CALL
CALL FUNCTION 'TEXT_CONVERT_XLS_TFUNCTION 'TEXT_CONVERT_XLS_TO_SAP'O_SAP' EXPORTING EXPORTING i_line_header = 'X' i_line_header = 'X' i_tab_raw_data = it_raw i_tab_raw_data = it_raw i_filename = p_uploa1 i_filename = p_uploa1 TABLES TABLES i_tab_converted_
i_tab_converted_data = data = t_func_esct_func_esc EXCEPTIONS EXCEPTIONS conversion_faile conversion_failed = d = 11 OTHERS = 2. OTHERS = 2. * Lê 2 arquivo * Lê 2 arquivo CALL
CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNFUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'AL_TABLE' EXPORTING EXPORTING filename = p_uploa2 filename = p_uploa2 i_begin_col = 1 i_begin_col = 1 i_begin_row = 1 i_begin_row = 1 i_end_col = 14 i_end_col = 14 i_end_row = 999999 i_end_row = 999999 TABLES TABLES intern = t_excel intern = t_excel EXCEPTIONS EXCEPTIONS inconsistent_pa inconsistent_parameters = rameters = 11 upload_ole = 2 upload_ole = 2 OTHERS = 3. OTHERS = 3.
Quando o campo for numérico o excel ignora os zeros a esquerda e direita tem q concatenar uma aspas simples para o excel Quando o campo for numérico o excel ignora os zeros a esquerda e direita tem q concatenar uma aspas simples para o excel considerar como caracter o campo
considerar como caracter o campo CONCATENATE ''''
CONCATENATE '''' wa_arquivo-iwa_arquivo-inter INTO nter INTO wa_ine_excel-wa_ine_excel-f2.f2.
Para todo tipo de datos:Para todo tipo de datos: EQ
EQ óó ==,, NENE óó <><> ó ><,ó ><, LTLT ó <,ó <, LELE ó <=,ó <=, GTGT ó >,ó >, GEGE ó >=.ó >=.
Para tipos alfanuméricos y Para tipos alfanuméricos y numéricos:numéricos: Se usan
Se usan para comparaciopara comparaciones, aparte de nes, aparte de los anteriores.los anteriores. COCO (contiene sólo ...),(contiene sólo ...), CNCN (no contiene sólo(no contiene sólo ...),
...), CACA (contiene algún ...),(contiene algún ...), NANA (no contiene algún ...) ,(no contiene algún ...) , CSCS (contiene el string ...),(contiene el string ...), NSNS (no contiene el(no contiene el string ...),
string ...), CPCP (contiene el pattern ...),(contiene el pattern ...), NPNP (no contiene el (no contiene el pattern ...).pattern ...).
Para bits:Para bits: O
O (los bits son "1"),(los bits son "1"), ZZ (los bits son "0"),(los bits son "0"), MM (los bits son "0" y "1").(los bits son "0" y "1").
Operaciones lógicas especiales:Operaciones lógicas especiales: Rango:
Rango: operando1operando1 BETWEENBETWEEN operando2operando2 ANDANDoperando3. Los valores límite del rango[ operando1,operando3. Los valores límite del rango[ operando1, operando2 ] son inclusive. Esta operación lógica devuelve cierto sí
operando2 ] son inclusive. Esta operación lógica devuelve cierto sí y sólo sí y sólo sí operando2 <= operando1operando2 <= operando1 <= operando3. <= operando3.
Tratando exceção
Tratando exceção
TRY TRY .. l_numl_num == s_linhas+l_posits_linhas+l_posit ((44).).
IF NOT
IF NOT s_linhas+l_posits_linhas+l_posit ((44)) ININ s_cats_cat..
RAISE
RAISE EXCEPTION cx_sy_conversion_no_numberEXCEPTION cx_sy_conversion_no_number..
ENDIF
ENDIF..
CATCH
CATCH cx_sy_conversion_no_numbercx_sy_conversion_no_number ..
l_tabix
l_tabix == sysy--tabixtabix..
DELETE
DELETE t_linhast_linhas INDEXINDEX l_tabixl_tabix..
CONTINUE CONTINUE.. ENDTRY ENDTRY..
---** Separar por ;
** Separar por ; tabela alimentação
tabela alimentação.
.
*
* IF
IF t_saida_ali
t_saida_ali IS
IS NOT
NOT INITIAL.
INITIAL.
*
*
*
CALL
CALL FUNCTION
FUNCTION 'SAP_CONVERT_
'SAP_CONVERT_TO_CSV_FORMAT
TO_CSV_FORMAT'
'
*
EXPORTING
*
EXPORTING
*
*
i_field_sepe
i_field_seperator
rator
=
= vl_ponto
vl_ponto
**
**
I_LINE_HEADE
I_LINE_HEADER
R
=
=
*
*
i_filename
i_filename
=
= vl_file_ali_au
vl_file_ali_aux
x
Append
Append
= 'X'
= 'X'
**
**
I_APPL_KEEP
I_APPL_KEEP
=
= '
' '
'
*
TABLES
*
TABLES
*
*
i_tab_sap_da
i_tab_sap_data
ta
=
= t_export_ali.
t_export_ali.
* ENDIF.
* ENDIF.
** Separar por ;
** Separar por ; tabela refeição.
tabela refeição.
*
* IF
IF t_saida_ref
t_saida_ref IS
IS NOT
NOT INITIAL.
INITIAL.
*
*
MOVE
MOVE t_saida_ref
t_saida_ref TO
TO t_export_ref.
t_export_ref.
*
*
CALL
CALL FUNCTION
FUNCTION 'SAP_CONVERT_
'SAP_CONVERT_TO_CSV_FORMAT
TO_CSV_FORMAT'
'
*
EXPORTING
*
EXPORTING
*
*
i_field_sepe
i_field_seperator
rator
=
= vl_ponto
vl_ponto
**
**
I_LINE_HEADE
I_LINE_HEADER
R
=
=
*
*
i_filename
i_filename
=
= vl_file_ref_au
vl_file_ref_aux
x
**
**
I_APPL_KEEP
I_APPL_KEEP
=
= '
' '
'
*
TABLES
*
TABLES
*
*
i_tab_sap_da
i_tab_sap_data
ta
=
= t_export_ref.
t_export_ref.
*
*
IF
IF sy-subrc
sy-subrc <>
<> 0.
0.
*
*
MESSAGE
MESSAGE ID
ID sy-msgid
sy-msgid TYPE
TYPE sy-msgty
sy-msgty NUMBER
NUMBER sy-msgno
sy-msgno
*
*
WITH
WITH sy-msgv1
sy-msgv1 sy-msgv2
sy-msgv2 sy-msgv3
sy-msgv3 sy-msgv4.
sy-msgv4.
*
ENDIF.
*
ENDIF.
* ENDIF.
* ENDIF.
*Macro que INFOTYPE OPERATION *Macro que INFOTYPE OPERATION DEFINE
DEFINE mc_hr_infotype_mc_hr_infotype_operation.operation. data wa_return_aux type bapireturn1 . data wa_return_aux type bapireturn1 . call
call function 'BAPI_EMPLOYEE_ENQUEUE'function 'BAPI_EMPLOYEE_ENQUEUE' exporting exporting number = &2 number = &2 importing importing return =
return = wa_return_auxwa_return_aux.. if wa_return_aux-type eq 'E'. if wa_return_aux-type eq 'E'. message e593(zhr) with &2 . message e593(zhr) with &2 . endif.
endif. call
call function 'HR_INFOTYPE_OPERATIONfunction 'HR_INFOTYPE_OPERATION'' exporting
infty = &1 infty = &1 number = &2 number = &2 subtype = &3 subtype = &3 validityend = &4 validityend = &4 validitybegin = &5 validitybegin = &5 record = &6 record = &6 operation = &7 operation = &7 recordnumber = &8 recordnumber = &8 importing importing return =
return = wa_return_auxwa_return_aux.. call function
call function 'BAPI_EMPLOYEE_DEQU'BAPI_EMPLOYEE_DEQUEUE'EUE' exporting exporting number = &2. number = &2. commit work. commit work. if wa_return_aux-type eq 'E' or
if wa_return_aux-type eq 'E' or wa_return_aux-tywa_return_aux-type eq 'A'.pe eq 'A'.
message s256(zhr) with wa_return_aux-message &1 display like 'E'. message s256(zhr) with wa_return_aux-message &1 display like 'E'. else. else. message s429(zhr). message s429(zhr). endif. endif. END-OF-DEFINITION. END-OF-DEFINITION. CHAMADA DA MACRO
CHAMADA DA MACRO = mc_hr_infotype_operation c_0007 wa_func-pernr space l_p0007-endda l_p0007-begda= mc_hr_infotype_operation c_0007 wa_func-pernr space l_p0007-endda l_p0007-begda l_p0007 c_ins 0.
l_p0007 c_ins 0.
Lógica p/ ler RGDIR no período selecionado. (RGDIR = verificação se o
Lógica p/ ler RGDIR no período selecionado. (RGDIR = verificação se o
funcionário tem cluster para ler no perid.selecionado, isso evita ler
funcionário tem cluster para ler no perid.selecionado, isso evita ler
cluster sem necessidade.
cluster sem necessidade.
CONSTANTS
CONSTANTS:: c_actual_recordc_actual_record LIKELIKE pc261pc261--srtzasrtza VALUEVALUE 'A''A'..
* Define RGDIR auxiliar tables.
* Define RGDIR auxiliar tables.
DEFINE
DEFINE def_rgdirdef_rgdir..
data
data:: begin ofbegin of &1&1 occursoccurs 5050..
include structure
include structure pc261pc261..
data
data:: end ofend of &1&1..
END-OF-DEFINITION
END-OF-DEFINITION..
* Define AUX_RT table
* Define AUX_RT table
DATA
DATA aux_rtaux_rt LIKELIKE rtrt OCCURSOCCURS 150150 WITH HEADER LINEWITH HEADER LINE..
* Define the RGDIR tables result of the functions
* Define the RGDIR tables result of the functions
def_rgdir rgdir_selected_dates def_rgdir rgdir_selected_dates..
p_cls_retu
p_cls_retu == 00..
* Function
* Function CU_READ_RGDCU_READ_RGDIRIR
CALL FUNCTION
CALL FUNCTION 'CU_READ_RGDIR''CU_READ_RGDIR'
EXPORTING
EXPORTING
persnr
persnr == p_pernr_pernrp_pernr_pernr TABLES
TABLES
in_rgdir
in_rgdir == rgdirrgdir
EXCEPTIONS EXCEPTIONS no_record_found no_record_found == 11 OTHERS OTHERS == 22.. IF
IF sysy--subrcsubrc NENE 00..
p_cls_retu
p_cls_retu == pbr99_errorpbr99_error..
ENDIF ENDIF.. * Cd_select_void function * Cd_select_void function IF IF p_cls_retup_cls_retu == 00.. CALL FUNCTION
CALL FUNCTION 'CD_READ_DATE_RANGE_ACTUAL_NV''CD_READ_DATE_RANGE_ACTUAL_NV'
EXPORTING
EXPORTING
begda
begda == p_d_fromp_d_from endda
TABLES
TABLES
rgdir_in
rgdir_in == rgdirrgdir rgdir_out
rgdir_out == rgdir_selected_datesrgdir_selected_dates ..
ENDIF ENDIF.. * cd_select_srtza * cd_select_srtza IF IF p_cls_retup_cls_retu == 00.. CALL FUNCTION
CALL FUNCTION 'CD_SELECT_SRTZA''CD_SELECT_SRTZA'
EXPORTING
EXPORTING
record_type
record_type == c_actual_recordc_actual_record TABLES
TABLES
in_rgdir
in_rgdir == rgdir_selected_datesrgdir_selected_dates out_rgdir
out_rgdir == new_rgdirnew_rgdir EXCEPTIONS
EXCEPTIONS
OTHERS
OTHERS == 11..
IF
IF sysy--subrcsubrc NENE 00..
p_cls_retu p_cls_retu == 44.. ENDIF ENDIF.. ENDIF ENDIF..
Macro para A
Macro para A
LV.
LV.
DEFINEDEFINE cria_field_catcria_field_cat ..
fieldcatalog
fieldcatalog--fieldnamefieldname == &1&1..
fieldcatalog
fieldcatalog--seltext_mseltext_m == &2&2..
fieldcatalog
fieldcatalog--col_poscol_pos == &3&3..
fieldcatalog
fieldcatalog--outputlenoutputlen == &4&4..
fieldcatalog
fieldcatalog--emphasizeemphasize == &5&5..
fieldcatalog
fieldcatalog--editedit == &6&6..
append
append fieldcatalogfieldcatalog toto fieldcatalogfieldcatalog..
clear
clear fieldcatalogfieldcatalog..
END-OF-DEFINITION
END-OF-DEFINITION..
DATA
DATA:: fieldcatalogfieldcatalog TYPETYPE slis_t_fieldcat_alvslis_t_fieldcat_alv WITH HEADER LINEWITH HEADER LINE,,
gd_layout
gd_layout TYPETYPE slis_layout_alvslis_layout_alv..
cria_field_cat
cria_field_cat 'OBJECT_ID' 'OBJECT_ID' 'Obj_Id''Obj_Id' 1 101 10 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'DESCRIPTION' 'Descrição''DESCRIPTION' 'Descrição' 2 202 20 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'DATE1' 'DATE1' 'Data1''Data1' 3 103 10 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'DATE2' 'DATE2' 'Data2''Data2' 4 104 10 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'STATUS' 'STATUS' 'Status''Status' 5 155 15 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'RESPONSAVEL' 'Responsavel''RESPONSAVEL' 'Responsavel' 6 106 10 'X' 'X''X' 'X'..
cria_field_cat
cria_field_cat 'DESCRICAO' 'DESCRICAO' 'Descrição''Descrição' 7 107 10 'X' 'X''X' 'X'..
gd_layout
gd_layout--no_inputno_input == 'X''X'..
gd_layout
gd_layout--colwidth_optimizecolwidth_optimize == 'X''X'..
gd_layout
gd_layout--header_textheader_text == 'Tarefas''Tarefas'..
Obter campo "condição de pagamento" da tela.
Obter campo "condição de pagamento" da tela.
FIELD-SYMBOLS <FS_ZTERM> TYPE ANY.
FIELD-SYMBOLS <FS_ZTERM> TYPE ANY.
FIELD-SYMB
FIELD-SYMBOLS <FS_BLDAT> TYPE
OLS <FS_BLDAT> TYPE ANY.
ANY.
* Obter campo "condição de pagamento" da tela.
* Obter campo "condição de pagamento" da tela.
ASSIGN ('(SAP
ASSIGN ('(SAPLFDCB)INVFO-Z
LFDCB)INVFO-ZTERM') TO <FS
TERM') TO <FS_ZTERM>.
_ZTERM>.
* Obter campo "data da fatura" da tela.
ASSIGN ('(SAPLFDCB)INVFO-BLDAT') TO <FS_BLDAT>.
ASSIGN ('(SAPLFDCB)INVFO-BLDAT') TO <FS_BLDAT>.
* Obter campo "empresa" da tela.
* Obter campo "empresa" da tela.
GET PARAMETER ID 'BUK' FIELD v_bukrs.
GET PARAMETER ID 'BUK' FIELD v_bukrs.
Função para pegar campos da tela.
Função para pegar campos da tela.
Exemplo.
Exemplo.
MOVE input T
MOVE input TO v_mktl.
O v_mktl.
v_campo = 'RM06E-EPSTP'.
v_campo = 'RM06E-EPSTP'.
v_prog
v_prog =
= sy-cprog.
sy-cprog.
v_tela
v_tela =
= sy-dynnr.
sy-dynnr.
v_num = STRLEN( v_mktl ).
v_num = STRLEN( v_mktl ).
CALL FUNCTION 'GET_DYNP_VALUE'
CALL FUNCTION 'GET_DYNP_VALUE'
EXPORTING
EXPORTING
i_field = v_campo
i_field = v_campo
i_repid = v_prog
i_repid = v_prog
i_dynnr = v_tela
i_dynnr = v_tela
CHANGING
CHANGING
o_value = v_campo1.
o_value = v_campo1.
Programa ZSUFIR_ZMRE3 de modelo: Opção de Layout de ALV na tela de
Programa ZSUFIR_ZMRE3 de modelo: Opção de Layout de ALV na tela de
seleção.
seleção.
DATA
DATA: wa_variant: wa_variant TYPETYPE disvariant.disvariant. AT
AT SELECTION-SELECTION-SCREENSCREEN ONON VALUEVALUE-REQUEST-REQUEST FORFOR p_layout.p_layout. PERFORM
PERFORM f_layout_alv.f_layout_alv. FORM
FORM f_layout_alv.f_layout_alv.
wa_variant-wa_variant-reportreport = sy-repid.= sy-repid. CALL
CALL FUNCTIONFUNCTION 'REUSE_ALV_VARIANT_F4''REUSE_ALV_VARIANT_F4'
EXPORTING
EXPORTING
is_variant
is_variant = = wa_variantwa_variant
i_save =
i_save = 'A''A'
IMPORTING
IMPORTING
es_variant
es_variant = = wa_variantwa_variant EXCEPTIONS
EXCEPTIONS
AT
AT SELECTION-SELECTION-SCREENSCREEN..
wa_variant-variant = p_layout. wa_variant-variant = p_layout.
Preencher com zeros a
Preencher com zeros a esquerda.
esquerda.
SHIFT
SHIFT vteste RIGHT DELETING TRAILING SPACE.vteste RIGHT DELETING TRAILING SPACE. OVERLAY
OVERLAY vtestevteste WITHWITH '0000''0000'..
Select dinâmico.
Select dinâmico.
DATA
DATA: vl_line(: vl_line(7272)) TYPETYPE cc,, vl_list
vl_list LIKELIKE TABLETABLE OFOF lineline..
* Obter mês para buscar valores correspondentes.
* Obter mês para buscar valores correspondentes.
CONCATENATE
CONCATENATE vg_fix p_perid+1vg_fix p_perid+1((22)) INTOINTO vg_mes.vg_mes. * Monta campos dinâmicos para seleção.
* Monta campos dinâmicos para seleção.
vl_line =
vl_line = 'OBJNR''OBJNR'.. vl_line+
vl_line+66 = vg_mes.= vg_mes. APPEND
APPEND vl_linevl_line TOTO vl_list.vl_list.
* Selecionar Oobjeto CO: totais de custos - lançamentos externos
* Selecionar Oobjeto CO: totais de custos - lançamentos externos
SELECT
SELECT (vl_list)(vl_list) FROM
FROM cospcosp INTO
INTO TABLETABLE t_cospt_cosp WHERE
WHERE ( objnr( objnr LIKELIKE 'KS%''KS%'
OR
OR objnrobjnr LIKELIKE 'OR%''OR%' )) AND
AND ( gjahr = p_exerc( gjahr = p_exerc AND
AND wrttp = p_wrttpwrttp = p_wrttp AND
AND versn = p_versao ).versn = p_versao ).
POSICIONAR CAMPOS LATERAIS NA TELA DE SELEÇÃO.
POSICIONAR CAMPOS LATERAIS NA TELA DE SELEÇÃO.
SELECTION-SELECTION-SCREENSCREEN BEGINBEGIN OFOF LINELINE..
SELECTION-SELECTION-SCREENSCREEN POSITIONPOSITION 0101.. PARAMETERS
PARAMETERS rb_alvrb_alv RADIOBUTTONRADIOBUTTON GROUPGROUP a2.a2.
SELECTION-SELECTION-SCREENSCREEN COMMENTCOMMENT 0303((1010)) FORFOR FIELDFIELD rb_alv.rb_alv.
SELECTION-SELECTION-SCREENSCREEN COMMENTCOMMENT 2525((0707)) FORFOR FIELDFIELD p_layout.p_layout. PARAMETERS
PARAMETERS p_layoutp_layout TYPETYPE disvariant-variant.disvariant-variant. "Layout exibir ALV."Layout exibir ALV.
SELECTION-SELECTION-SCREENSCREEN ENDEND OFOF LINELINE..
PASSANDO ESTRUTURA PS PARA ESTRUTURA DE UM INFOTIPO.
PASSANDO ESTRUTURA PS PARA ESTRUTURA DE UM INFOTIPO.
FIELD
FIELD-SYMBOLS <fs_p9167>-SYMBOLS <fs_p9167> TYPETYPE p9167.p9167. ASSIGN
ASSIGN (('PS''PS')) TOTO <fs_p9167> CASTING.<fs_p9167> CASTING.
Criar botão na tela sem
Criar botão na tela sem usar status_gui.
usar status_gui.
Exemplo:
Exemplo:
SELECTION-SCREEN
SELECTION-SCREEN:: FUNCTIONFUNCTION KEYKEY 11.. "Declaração do Botão"Declaração do Botão
INITIALIZATION
INITIALIZATION.. *
* Estrutura Estrutura para para descrever descrever o o botãobotão
DATA
DATA: wa_button: wa_button TYPETYPE smp_dyntxt.smp_dyntxt. *
* Nome Nome do do BotãoBotão
wa_button-wa_button-texttext == texttext--029029.. *
* Ícone Ícone do do BotãoBotão
wa_button-i
wa_button-icon_id con_id = = icon_calculicon_calculation ation .. *
* Texto que Texto que aparecerá ao aparecerá ao lado do lado do ícone (pode ícone (pode ser vazio)ser vazio)
wa_button-icon_text =
wa_button-icon_text = texttext--029029.. *
* Quickinfo (aparece quando Quickinfo (aparece quando o user o user passar o passar o mouse sobre mouse sobre o botao)o botao)
wa_button-quickinfo =
wa_button-quickinfo = texttext--029029.. *
sscrfields-functxt_01 = wa_button. sscrfields-functxt_01 = wa_button. CLEAR