quarta-feira, 22 de agosto de 2012

Função - POPUP_TO_DECIDE_LIST

  *  Abapers, vou mostrar hoje uma função que mostra um PopUp que mostra
* opções para o User, e assim você trata o retorno do jeito que tens que
* tratar abaixo tem o código de exemplo, eu coloquei comentários nos
* parametros não usados, descomentem e façam teste... até a próxima.
*&---------------------------------------------------------------------*
REPORT z_popup_to_decide_list.

* Declaração dos parametros para exec da função
DATA :
  st_spopli TYPE spopli,           " Estrutura das Opções
  it_spopli TYPE TABLE OF spopli,  " Tabela das opções
  vg_answer TYPE answer.           " A resposta do User


START-OF-SELECTION.

  PERFORM : z_cria_opcoes,
            z_exec_func,
            z_trata_retorno_func.


terça-feira, 7 de agosto de 2012

ALV - 'IT_SORT', somatória e subtotal

  *  Eae, vou comentar hoje como usar o parametro 'IT_SORT' da função que
* cria o ALV, esse parametro informa um ou mais campos da tela que será
* ordenado da forma que desejar também, segue aee o código comentado,
* adicionei algumas propriedade no alv como somatória por subtotal, usando
* o parametro 'IT_SORT' e 'IT_FIELDCAT', bons estudos.
*&---------------------------------------------------------------------*
REPORT z_alv_sort.

* Declaração do grupo de types para criação do ALV.
TYPE-POOLS :
  slis.

* Tabelas Transparentes
TABLES :
  spfli,
  sflight.

* Tabelas Internas
DATA : it_spfli   TYPE TABLE OF spfli,
       st_spfli   TYPE spfli,
       it_sflight TYPE TABLE OF sflight,
       st_sflight TYPE sflight
      .

* Estruturas e tabelas internas para uso do ALV
DATA : it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
       st_fieldcat TYPE slis_fieldcat_alv,
       it_sort     TYPE TABLE OF slis_sortinfo_alv,
       st_sort     TYPE slis_sortinfo_alv,
       it_layout   TYPE TABLE OF slis_layout_alv,
       st_layout   TYPE slis_layout_alv
      .

* Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_carrid TYPE spfli-carrid.
SELECT-OPTIONS :
  s_connid FOR spfli-connid.
SELECTION-SCREEN END OF BLOCK   b1.

START-OF-SELECTION.

* Seleções
  PERFORM zf_selects.

* Relatorio
  PERFORM zf_relatorio.



sexta-feira, 3 de agosto de 2012

Trabalhando com Objeto de textos - SO10

  *  Eae, hoje vou passar uma diquinha sobre a transação 'SO10' que trabalha 
* com objeto de textos, vcs se lembram dos posts sobre criação e leitura 
* de textos? segue links abaixo:
* http://abapjuniores.blogspot.com.br/2012/05/funcao-createtext.html
* http://abapjuniores.blogspot.com.br/2011/10/funcao-read-text.html
* Então,... alem de vocês executaram as funções para criação e leitura,
* vocês podem ir nessa transação e trabalhar com objetos de textos do
* mesmo jeito.

* Olha a telinha aiii... 


 

quarta-feira, 1 de agosto de 2012

Função - SSF_FUNCTION_MODULE_NAME

  *  Eae rapaziada, desculpa a ausência, mas já estou voltando a ativa
* novamente, agora irei começar a passar alguns pré requisitos para
* fazermos o Smartforms passo a passo, simmm..... o tão esperado Smartforms.
*  Primeira coisa que vou passar vai ser uma função que retorna o nome
* da função criada pelo seu formulário ( smartforms ou Sapscript ), o nome
* da função que executa seu formulário é criada dinamicamente.
*  Se você tiver algum smart ou sapscript, coloque o nome dele no campo
* formname, se não tiver espere um pouquinho que daki a pouco estaremos
* fazendo ums passo a passo de Smartforms. Bons testes.
*
*&---------------------------------------------------------------------*

REPORT  z_form_function_name.

data :
  vl_fm_name TYPE RS38L_FNAM.

START-OF-SELECTION.

*  Executada a função que retorna o nome da função que chama o formulário
  PERFORM z_busca_nome_function.

* Executa o function que chama o formulário.
  PERFORM z_call_form.

quarta-feira, 4 de julho de 2012

Classe - CL_ABAP_TYPEDESCR

  *  Bom dia, hoje vou mostrar um classe que mostra detalhes sobre o tipo
* da declaração como tamanho, tipo e mais algumas coisas, no exemplo
* abaixo estarei usando o método 'describe_by_data' mas se vc for na
* Transação se24 e colocar a classe lah, verá que existe outros metodos
* tão importante quanto, t+.
*&---------------------------------------------------------------------*
REPORT  z_describe_by_data.

* Declarações
TYPES ty_tipo TYPE i.

DATA: vg_variavel   TYPE ty_tipo,
      ref_descricao TYPE REF TO cl_abap_typedescr.

* Início do processo
START-OF-SELECTION.

*  Eu deixei um código comentado abaixo para vocês fazerem o teste com 
* outra variável.
  ref_descricao cl_abap_typedescr=>describe_by_datavg_variavel ).
*  ref_descricao = cl_abap_typedescr=>describe_by_data( ref_descricao ).


  BREAK-POINT.

  WRITE: 'Referência:', ref_descricao->absolute_name.
  WRITE: 'Tipo      :', ref_descricao->type_kind.
  WRITE: 'Tamanho   :', ref_descricao->length.
  WRITE: 'Decimais  :', ref_descricao->decimals.

  BREAK-POINT.

segunda-feira, 2 de julho de 2012

Tipos de Selects - Parte 2

  *  Fala galerinha, Hoje vem a segunda parte dos Tipos de selects um pouco
* mais fundo sobre o assunto, mas mesmo assim básico pra qualquer ABAPer,
* ahhhh, tah com o mesmo esquema de break-points do post anterior, bons
* Estudos e qualquer dúvida estamos aih, vou aproveitar e informar que
* o serviço de distribuição de curriculos continua a todo o vapor, to
* falando isso pq recebi alguns emails com essa dúvida. Valeo aeee.
*&---------------------------------------------------------------------*
REPORT z_selects_type.

* Declarações das estruturas e tabelas Internas
DATA :
  it_spfli   TYPE TABLE OF spfli,
  it_sflight TYPE TABLE OF sflight,
  st_spfli   TYPE spfli,
  st_sflight TYPE sflight
  .

* Range's
DATA :
  r_fltime  TYPE RANGE OF spfli-fltime,
  rs_fltime LIKE LINE OF r_fltime.
.

*  Usando Inner Join / Left outer Join, que serve pra alimentar uma
* unica tabela com informações de duas tabelas que tenha pelomenos uma
* relação (campo) em comum.
PERFORM f_inner_join.

*  O famoso 'For all entries' primeiro seleciona normal os dados de uma
* tabela e na segunda tabela são selecionados os registros conforme os
* dados da primeira
PERFORM f_for_all_entries.

* Seleciona com condições especíais.
PERFORM f_cond_especial.

terça-feira, 26 de junho de 2012

Tipos de Selects - Parte 1

  "  Boa tarde galera, hoje vou passar um guia prático de alguns dos tipos
" mais usados de selects com explicação e exemplo. Na minha opnião, o
" select é o coração do programa, é o que faz tudo acontecer, pois sem
" dados não conseguimos (não precisamos) fazer nada.
"  Eu mesmo coloquei um Break-point em cada momento importante do programa
" para que vocês possam ver os valores.
"  Ahhhh fique sempre com a tabela aberta (SE11) pra confirmar os valores 
" retornados pelo selects.
"  Esse é só o começo, depois eu mostro outros tipos de selects... Bons estudos
*&---------------------------------------------------------------------*
REPORT z_selects_type.

* Declarações
DATA :
  it_spfli   TYPE TABLE OF spfli,
  it_sflight TYPE TABLE OF sflight,
  st_spfli   TYPE spfli,
  st_sflight TYPE sflight
  .

* Select simples.
PERFORM f_simples.

* select com condição.
PERFORM f_condicao.

* Seleciona somente uma linha
PERFORM f_single.

*  Seleciona somente as informações de um ou mais campos alimenta
* uma ou mais variáveis conforme condições.
PERFORM f_variavel.

*  Selecionando campos especificos e alimentando os respectivo
* campos da tabela/ estrutura.
PERFORM f_corresponding_fields.

*  Seleciona conforme informações específicas ( MAX, MIN, AVG, SUM, COUNT )
PERFORM f_agregados.

sexta-feira, 22 de junho de 2012

Dicionário de dados - Rotinas da View de Manut.

  "  Boa dia aee, hoje vou mostrar uma outra ferramenta na criação de views
" de manutenção que são a criação de Rotinas nas Views...
"  Não sei se vocês perceberam mas no post passado sobre View de manutenção
" link: http://abapjuniores.blogspot.com.br/2012/06/span-font-family-courier-newfont-size.html
" que conseguimos deixar o campo 'NOME' de uma forma que não pudesse ser
" mais editado, mas existe um botãozinho malandro que se chama 'Novas
" entradas' esse botão inclui uma nova entrada na tabela ( dãããã ), mas
" conforme informado no post passado essa View de manutenção é soh pra ver
" mesmo, portanto neste post irei mostrar como passar por rotinas após
" ação do User sem codificar nada.
"  Vamos lah, primeiro vá na tabela(se11), deixe-a para edição( clique no
" lapizinho), e vá para o menu 'Utilitários/Gerador de atualização de tabela'.
" conforme Imagem abaixo.


 

"  Bemm, aqui nós estaremos nos dados da 'geração de diálogos de tabelas'
" onde espero que o mesmo já tenha sido criado, se não, veja link abaixo.
" http://abapjuniores.blogspot.com.br/2011/09/dicionario-view-de-manutencao-de.html
"  Agora nessa tela vá no menu 'Ambiente/modificação/Horas'