Criar uma Loja Virtual Grátis
 Abap Junior



ONLINE
1





Tutoriais

 

Exibindo dados em Grid ou List

Exemplo mostrando dados da tabela marc em um Grid ou List, usando as funções REUSE_ALV_LIST_DISPLAY para mostrar em List e REUSE_ALV_GRID_DISPLAY para mostrar em Grid.

 

************************************************************************

* Programa : Exibindo dados em Grid ou List.

* Autor    : Carlos sum

* Data     : 15/10/2010

************************************************************************

 

 

REPORT  zteste_eduardo.

TYPE-POOLS: slis.

 

*Criando tabela interma t_marc com header line

DATA: t_marc TYPE TABLE OF marc WITH HEADER LINE.

 

*criando a tabela interna de fieldcat, usada para as configuraçõe de saida

DATA: t_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

 

*Criação do filtro na tela

INITIALIZATION.

  SELECTION-SCREEN BEGIN OF BLOCK 001

                      WITH FRAME TITLE text-001.

  PARAMETERS: p_matnr TYPE marc-matnr OBLIGATORY,

              p_werks TYPE marc-werks.

  SELECTION-SCREEN END OF BLOCK 001.

 

*criação da opção de saida, o usuário escolhe LIST ou Grid

  SELECTION-SCREEN BEGIN OF BLOCK 002

                        WITH FRAME TITLE text-002.

  PARAMETERS: r_list TYPE c RADIOBUTTON GROUP 123,

              r_grid TYPE c RADIOBUTTON GROUP 123.

  SELECTION-SCREEN END OF BLOCK 002.

 

START-OF-SELECTION.

 

*Faz o select no banco, usei a condição OR apenas para trazer + resultados, exemplo nada usual, rssrssr

  SELECT *

  INTO TABLE t_marc

  FROM marc

  WHERE matnr EQ p_matnr OR werks EQ p_werks.

 

* se o select obteve sucesso o sy-subrc será igual a 0, então executa o resto do programa

  IF sy-subrc = 0.

 

*criando a tabela de fieldcast, e a tabela de configuração de saida

    t_fcat-fieldname     = 'matnr'.

    t_fcat-ref_fieldname = 'matnr'.

    t_fcat-ref_tabname   = 'marc'.

    APPEND t_fcat.

    CLEAR t_fcat.

 

    t_fcat-fieldname     = 'werks'.

    t_fcat-ref_fieldname = 'werks'.

    t_fcat-ref_tabname   = 'marc'.

    APPEND t_fcat.

    CLEAR t_fcat.

 

    t_fcat-fieldname     = 'mmstd'.

    t_fcat-ref_fieldname = 'mmstd'.

    t_fcat-ref_tabname   = 'marc'.

    APPEND t_fcat.

    CLEAR t_fcat.

* verifica se o usuario pediu LIST ou Grid

 

    IF r_list EQ 'x'.

 

* executa a função para saida do LIST

      CALL FUNCTION 'reuse_alv_list_display'

        EXPORTING

          i_callback_program = sy-cprog

          it_fieldcat        = t_fcat[]

        TABLES

          t_outtab           = t_marc[].

      IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

      ENDIF.

 

    ELSE.

 

* executa a função para saida do GRID

      CALL FUNCTION 'reuse_alv_grid_display'

        EXPORTING

          i_callback_program = sy-cprog

          it_fieldcat        = t_fcat[]

        TABLES

          t_outtab           = t_marc[].

      IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

      ENDIF.

 

* fecha o IF da escolha do LIST ou GRID

    ENDIF.

 

* Fecha o IF do sy-subrc

  ENDIF.

 


************************************************************************
* Programa : Exibindo dados em Grid ou List.
* Autor    : Carlos sum
* Data     : 15/10/2010
************************************************************************


REPORT  zteste_eduardo.
TYPE-POOLS: slis.

*Criando tabela interma t_marc com header line
DATA: t_marc TYPE TABLE OF marc WITH HEADER LINE.

*criando a tabela interna de fieldcat, usada para as configuraçõe de saida
DATA: t_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

*Criação do filtro na tela
INITIALIZATION.
  SELECTION-SCREEN BEGIN OF BLOCK 001
                      WITH FRAME TITLE text-001.
  PARAMETERS: p_matnr TYPE marc-matnr OBLIGATORY,
              p_werks TYPE marc-werks.
  SELECTION-SCREEN END OF BLOCK 001.

*criação da opção de saida, o usuário escolhe LIST ou Grid
  SELECTION-SCREEN BEGIN OF BLOCK 002
                        WITH FRAME TITLE text-002.
  PARAMETERS: r_list TYPE c RADIOBUTTON GROUP 123,
              r_grid TYPE c RADIOBUTTON GROUP 123.
  SELECTION-SCREEN END OF BLOCK 002.

START-OF-SELECTION.

*Faz o select no banco, usei a condição OR apenas para trazer + resultados, exemplo nada usual, rssrssr
  SELECT *
  INTO TABLE t_marc
  FROM marc
  WHERE matnr EQ p_matnr OR werks EQ p_werks.

* se o select obteve sucesso o sy-subrc será igual a 0, então executa o resto do programa
  IF sy-subrc = 0.

*criando a tabela de fieldcast, e a tabela de configuração de saida
    t_fcat-fieldname     = 'matnr'.
    t_fcat-ref_fieldname = 'matnr'.
    t_fcat-ref_tabname   = 'marc'.
    APPEND t_fcat.
    CLEAR t_fcat.

    t_fcat-fieldname     = 'werks'.
    t_fcat-ref_fieldname = 'werks'.
    t_fcat-ref_tabname   = 'marc'.
    APPEND t_fcat.
    CLEAR t_fcat.

    t_fcat-fieldname     = 'mmstd'.
    t_fcat-ref_fieldname = 'mmstd'.
    t_fcat-ref_tabname   = 'marc'.
    APPEND t_fcat.
    CLEAR t_fcat.
* verifica se o usuario pediu LIST ou Grid

    IF r_list EQ 'x'.

* executa a função para saida do LIST
      CALL FUNCTION 'reuse_alv_list_display'
        EXPORTING
          i_callback_program = sy-cprog
          it_fieldcat        = t_fcat[]
        TABLES
          t_outtab           = t_marc[].
      IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

    ELSE.

* executa a função para saida do GRID
      CALL FUNCTION 'reuse_alv_grid_display'
        EXPORTING
          i_callback_program = sy-cprog
          it_fieldcat        = t_fcat[]
        TABLES
          t_outtab           = t_marc[].
      IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.

* fecha o IF da escolha do LIST ou GRID
    ENDIF.

* Fecha o IF do sy-subrc
  ENDIF.

 


 

 

Gera um arquivo PDF a partir de um relatório desenvolvido em Smartforms.

 

************************************************************************
* Programa : Gera um arquivo PDF a partir de um relatório desenvolvido
*            em Smartforms
* Autor    : Carlos sum
* Data     : 16/09/2010
************************************************************************

REPORT zsedu_2.

******************************************************
* Definições
******************************************************
DATA:  fm_name              type rs38l_fnam,
       job_output_info      TYPE ssfcrescl,
       document_output_info TYPE ssfcrespd,
       job_output_options   TYPE ssfcresop,
       output_options       TYPE ssfcompop,
       control_parameters   TYPE ssfctrlop,
       lt_otfdata           TYPE TABLE OF itcoo.


******************************************************
* Inicialização
******************************************************
INITIALIZATION.

  SELECTION-SCREEN BEGIN OF BLOCK bl01 WITH FRAME TITLE text-001.
  SELECTION-SCREEN SKIP.

  PARAMETERS:     p_form(30)  TYPE c  OBLIGATORY.

  SELECTION-SCREEN SKIP.
  SELECTION-SCREEN END OF BLOCK bl01.



******************************************************
* Principal
******************************************************
START-OF-SELECTION.

  control_parameters-device    = 'PRINTER'.
  control_parameters-no_dialog = 'X'.
  control_parameters-preview   = 'X'.
  control_parameters-getotf    = 'X'.
  output_options-tdnoprint     = 'X'.


*****************************************************
* *** chamado do formulario Smartforms
*****************************************************
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = 'ZSF_EDU'
    IMPORTING
      fm_name            = fm_name
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.

  CALL FUNCTION fm_name
    EXPORTING
      output_options     = output_options
      control_parameters = control_parameters
      user_settings      = 'X'
    IMPORTING
      job_output_info    = job_output_info
    EXCEPTIONS
      formating_error    = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.

*******************************************************
* *** chamado do relatório em PDF
*******************************************************
  lt_otfdata[] = job_output_info-otfdata[].

  CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
    EXPORTING
      i_otf                    = lt_otfdata
    EXCEPTIONS
      convert_otf_to_pdf_error = 1
      cntl_error               = 2
      OTHERS                   = 3.
  .
  DATA: l_dummy  TYPE STANDARD TABLE OF tline,
        pdf_data TYPE xstring,
        pdf_size TYPE i.

  CLEAR: pdf_data, pdf_size.
********************************************************
* convert otf to pdf
********************************************************
  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      format                = 'PDF'
    IMPORTING
      bin_filesize          = pdf_size
      bin_file              = pdf_data
    TABLES
      otf                   = lt_otfdata[]
      lines                 = l_dummy
    EXCEPTIONS
      err_max_linewidth     = 1
      err_format            = 2
      err_conv_not_possible = 3
      OTHERS                = 4.
****************************************************Fim

 

 

 

 

Trabalhando com o Screen Painter


Screen Painter: -

Screen painter é uma ferramenta ABAP workbench dev usado para criar as telas usando o

  SE51.

Na tela do pintor, você pode definir os elementos da interface a seguir com seus atributos associados.

1. Entrada / Saída de Campos
2.
Nomes de campo
3.
Checkboxes
4.
Botões de Rádio
5.
Grupo Boxes
6.
Sub telas.
7.
Botões com posição não fixa

e outros

  PASSO-A-PASSO DEMO DE PINTOR DE TELA.

Criar um programa de Z em SE38.

Clique em Salvar.  Vamos escrever o código mais adiante neste.

Ir para a transação SE51.

 

 

Digite o nome do programa criado e número da tela.

Digite uma descrição curta e clique em Salvar.

 

 

Clique na guia flowlogic.


Descomente a declaração "STATUS_0100 módulo".

Clique duas vezes no "status_0100".

 A tela abaixo será exibida,

Clique em sim.

 

Na sequência de uma janela pop-up aparece. Selecione a opção "zdemo_screen_painter".

"Programa principal" e clique em continuar.

Clique em sim.

 

Tela seria apresentado da seguinte forma:

Agora volte para a transação SE51. 

Selecione lógica do fluxo.

Clique no layout.

Tela da janela pintor será exibido como esta. 

Aqui nós vamos projetar os campos necessários tela.

Clique no ícone do meio   dicionário / janela de programa campos. Or F6. Ou F6.

Exibida a seguinte tela:

Digite o nome da tabela no nome do campo da tabela.

Clique aqui para carregar do dicionário.

Selecione os campos obrigatórios da tabela MARA do dicionário. Clique em OK ou continuar.

 

Depois de colocar os campos obrigatórios, você pode visualizar a tela abaixo.

Crie o botão da caixa de ferramentas

Selecione o botão, arraste e solte o botão na tela.

Crie o exigido outros botões no mesmo procedimento mencionado acima e atribuir o nome, texto e código de função para cada um.

Depois de criar a tela clique em "salvar" verificar e ativar.

  fluxo de pressionar o botão lógica.

Clique na guia Lista elemento entra OK_CODE.

 

Cole o código abaixo no criado z programa criado anteriormente:  

 *&-------------------------------------------------------------------*  
*& Report ZDEMO_SCREEN_PAINTER
*&
*&-------------------------------------------------------------------*
*& Demo para o pintor da tela.
*&
*&-------------------------------------------------------------------*
REPORT ZDEMO_SCREEN_PAINTER. 
 ******************************************************** 
* Declarações da tabela.
********************************************************
   TABLES: MARA. 
 ******************************************************** 
* Declarações de dados.
********************************************************
DADOS: MATNR Type MARA - MATNR,
ERSDA TYPE MARA-ERSDA,
ERNAM TYPE MARA-ERNAM,
MTART TYPE MARA-MTART,
MATKL TYPE MARA-MATKL,
DISPLAY TYPE C,
SAVE TYPE C,
DELETE TYPE C,
CLEAR TYPE C,
EXIT TYPE C,
OK_CODE LIKE SY-UCOMM.

**************************************************
* CALLING SCREEN.
**************************************************
CALL SCREEN 100.
**************************************************
* Module  STATUS_0100  OUTPUT
**************************************************
*   text
**************************************************
MODULE status_0100 OUTPUT.

*  SET PF-STATUS 'ZMENU'.

*   SET TITLEBAR 'ZMENU_PAINTER'.

  CASE sy-ucomm.

    WHEN 'EXIT'.

      LEAVE PROGRAM.

    WHEN 'BACK'.

      . LEAVE PROGRAM.

    WHEN 'DISPLAY'.

      SELECT SINGLE ersda ernam mtart matkl FROM mara

      INTO (mara-ersda, mara-ernam, mara-mtart, mara-matkl)

       WHERE matnr = mara-matnr.



    WHEN 'CLEAR'.

      CLEAR mara.

  ENDCASE.

ENDMODULE.  " STATUS_0100  OUTPUT
Saída: -

   Digite Material número no material de campo.  Clique no vídeo.



Relevante é mostrado abaixo:



FIM...

Espero que goste do tutorial..




Criar uma Loja online Grátis  -  Criar um Site Grátis Fantástico  -  Criar uma Loja Virtual Grátis  -  Criar um Site Grátis Profissional