* Salve Abapers, vamos conversar hoje sobre comandos que ajudam muito
* a gente quando estamos trabalhando com valores e números, são todos
* comandos simples, e como sempre feito pelo Blog, vou explicar e dar
* pelomenos um exemplo...
*&---------------------------------------------------------------------*
REPORT z_work_with_numbers.
* Primeiro vamos declarar as variáveis que vamos trabalhar...
DATA : v_int_pos TYPE i VALUE '5',
v_int_zero TYPE i VALUE '0',
v_int_neg TYPE i VALUE '-5',
v_dec_pos TYPE p DECIMALS 2 VALUE '1234.56',
v_dec_neg TYPE p DECIMALS 2 VALUE '-1234.89',
v_string TYPE string VALUE 'a1bcde2fg3hij5lmn78z'.
* Variáveis para tratativas numéricas
DATA : v_sign TYPE i,
v_trunc TYPE i,
v_frac TYPE p DECIMALS 2,
v_sqrt TYPE p DECIMALS 2,
v_sqrt_f TYPE f,
v_mod TYPE i,
v_div TYPE i
.
* Variáveis para tratativas alfanumericos.
DATA : v_strlen TYPE i
.
sexta-feira, 15 de março de 2013
quarta-feira, 6 de março de 2013
ALV - Criação de variante de layout do ALV
* Um abaper Junior Bom, antes de pedir qualquer aumento pro chefe, tem
* que se garantir quando o assunto é ALV, e estamos aqui pra isso,
* para auxiliá-los nos seus programas, portanto abaixo estou dando um exemplo
* de como criar uma variante de layout de tela do seu ALV, sabe quando o
* KeyUser chega em você e fala que quer que o ALV venha somando algumas colunas,
* e faça subtotal, e coloque em ordem decrescente um monte de coisa, pra você
* não estressar com o ele, é só incluir dois parametros dentro da função
* que cria o alv, esses parametros são o 'i_save' e o 'is_variant', de
* brinde segue uma função que busca as variantes de layout do programa, segue
* código aihhhh minhaaa geeeennnntteeeeeee (Ritmo de carnaval ainda).
* Qualquer dúvida estou a disposição.
REPORT z_criar_variante_layout_alv.
* Conjunto de tipos
TYPE-POOLS :
slis.
* Tabelas
TABLES :
scarr.
*Tipos
TYPES:
BEGIN OF ty_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
countryto TYPE spfli-countryto,
END OF ty_spfli,
BEGIN OF ty_sflight,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
currency TYPE sflight-currency,
planetype TYPE sflight-planetype,
END OF ty_sflight,
BEGIN OF ty_saplane,
plantype TYPE saplane-planetype,
consum TYPE saplane-consum,
producer TYPE saplane-producer,
END OF ty_saplane,
BEGIN OF ty_outtab,
carrid TYPE scarr-carrid,
connid TYPE spfli-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
currency TYPE sflight-currency,
planetype TYPE sflight-planetype,
consum TYPE saplane-consum,
producer TYPE saplane-producer,
countryfr TYPE spfli-countryfr,
countryto TYPE spfli-countryto,
carrname TYPE scarr-carrname,
url TYPE scarr-url,
END OF ty_outtab
.
* Tabelas Internas
DATA :
it_scarr TYPE TABLE OF scarr,
it_spfli TYPE TABLE OF ty_spfli,
it_sflight TYPE TABLE OF ty_sflight,
it_saplane TYPE TABLE OF ty_saplane,
it_outtab TYPE TABLE OF ty_outtab,
it_fieldcat TYPE TABLE OF slis_fieldcat_alv
.
* Estruturas
DATA :
st_scarr TYPE scarr,
st_spfli TYPE ty_spfli,
st_sflight TYPE ty_sflight,
st_saplane TYPE ty_saplane,
st_outtab TYPE ty_outtab,
st_fieldcat TYPE slis_fieldcat_alv,
st_layout TYPE slis_layout_alv,
st_varia TYPE disvariant
.
* Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS :
s_carrid FOR scarr-carrid.
PARAMETERS :
p_vari TYPE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b1.
* Aqui tá parte do segredo, caso o programa já tenha alguma variável de
* de layout, na hora que clicar no matchcode do campo 'Layout' será
* criado um Pop-up com essas informações e assim você seleciona o que
* desejar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM z_select_variavel_alv.
* Inicio do processo
START-OF-SELECTION.
PERFORM : f_seleciona_dados.
IF it_sflight IS NOT INITIAL.
PERFORM : f_trata_dados,
f_cria_alv
.
ENDIF.
* Fim do processo.
END-OF-SELECTION.
* que se garantir quando o assunto é ALV, e estamos aqui pra isso,
* para auxiliá-los nos seus programas, portanto abaixo estou dando um exemplo
* de como criar uma variante de layout de tela do seu ALV, sabe quando o
* KeyUser chega em você e fala que quer que o ALV venha somando algumas colunas,
* e faça subtotal, e coloque em ordem decrescente um monte de coisa, pra você
* não estressar com o ele, é só incluir dois parametros dentro da função
* que cria o alv, esses parametros são o 'i_save' e o 'is_variant', de
* brinde segue uma função que busca as variantes de layout do programa, segue
* código aihhhh minhaaa geeeennnntteeeeeee (Ritmo de carnaval ainda).
* Qualquer dúvida estou a disposição.
REPORT z_criar_variante_layout_alv.
* Conjunto de tipos
TYPE-POOLS :
slis.
* Tabelas
TABLES :
scarr.
*Tipos
TYPES:
BEGIN OF ty_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
countryto TYPE spfli-countryto,
END OF ty_spfli,
BEGIN OF ty_sflight,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
currency TYPE sflight-currency,
planetype TYPE sflight-planetype,
END OF ty_sflight,
BEGIN OF ty_saplane,
plantype TYPE saplane-planetype,
consum TYPE saplane-consum,
producer TYPE saplane-producer,
END OF ty_saplane,
BEGIN OF ty_outtab,
carrid TYPE scarr-carrid,
connid TYPE spfli-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
currency TYPE sflight-currency,
planetype TYPE sflight-planetype,
consum TYPE saplane-consum,
producer TYPE saplane-producer,
countryfr TYPE spfli-countryfr,
countryto TYPE spfli-countryto,
carrname TYPE scarr-carrname,
url TYPE scarr-url,
END OF ty_outtab
.
* Tabelas Internas
DATA :
it_scarr TYPE TABLE OF scarr,
it_spfli TYPE TABLE OF ty_spfli,
it_sflight TYPE TABLE OF ty_sflight,
it_saplane TYPE TABLE OF ty_saplane,
it_outtab TYPE TABLE OF ty_outtab,
it_fieldcat TYPE TABLE OF slis_fieldcat_alv
.
* Estruturas
DATA :
st_scarr TYPE scarr,
st_spfli TYPE ty_spfli,
st_sflight TYPE ty_sflight,
st_saplane TYPE ty_saplane,
st_outtab TYPE ty_outtab,
st_fieldcat TYPE slis_fieldcat_alv,
st_layout TYPE slis_layout_alv,
st_varia TYPE disvariant
.
* Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS :
s_carrid FOR scarr-carrid.
PARAMETERS :
p_vari TYPE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b1.
* Aqui tá parte do segredo, caso o programa já tenha alguma variável de
* de layout, na hora que clicar no matchcode do campo 'Layout' será
* criado um Pop-up com essas informações e assim você seleciona o que
* desejar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM z_select_variavel_alv.
* Inicio do processo
START-OF-SELECTION.
PERFORM : f_seleciona_dados.
IF it_sflight IS NOT INITIAL.
PERFORM : f_trata_dados,
f_cria_alv
.
ENDIF.
* Fim do processo.
END-OF-SELECTION.
Assinar:
Postagens (Atom)