¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

report abap

  • Creado 25/11/2024
  • Modificado 25/11/2024
  • 354 Vistas
0
Cargando...

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

*& Programa criado por Jaqueline Cristine Rosa de Souza (estagiária) para estudo

*& 25/01/2024

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


REPORT z_ponto_menu_jq.


TABLES sscrfields.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001"Começo do bloco.


SELECTION-SCREEN SKIP 1"Pula uma linha.


SELECTION-SCREEN BEGIN OF LINE"Seleciona uma linha do bloco.

SELECTION-SCREENPOSITION 10PUSHBUTTON (66but01 USER-COMMAND but01"Posição e tamanho.

SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN SKIP 1.


SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREENPOSITION 10PUSHBUTTON (66but02 USER-COMMAND but02.

SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN SKIP 1.


SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREENPOSITION 10PUSHBUTTON (66but03 USER-COMMAND but03.

SELECTION-SCREEN END OF LINE.


SELECTION-SCREEN END OF BLOCK b1"Fim do bloco.


*INITIALIZATION - Esse comando força a execução de processos antes mesmo de

*mostrar a tela de seleção, funciona como o PBO de um Module Pool.

INITIALIZATION"É executado antes de mostrar a tela

  PERFORM f_valida"Modularização de código.

  AT SELECTION-SCREEN.

  PERFORM f_executa.


FORM f_valida.

  LOOP AT SCREEN.

    CASE screen-name.

      WHEN 'BUT01'.

        but01 'Cadastrar Estagiário'.

      WHEN 'BUT02'.

        but02 'Registrar Ponto'.

      WHEN 'BUT03'.

        but03 'Consultar Registro de Ponto'.

    ENDCASE.

  ENDLOOP.

ENDFORM.

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

*&      Form  F_EXECUTA

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_executa .

  IF sscrfields-ucomm EQ 'BUT01'.

    SUBMIT ('Z_PONTO_CAD_JQ'VIA SELECTION-SCREEN AND RETURN.

  ENDIF.

    IF sscrfields-ucomm EQ 'BUT02'.

    SUBMIT ('Z_PONTO_REGISTRO_JQ'VIA SELECTION-SCREEN AND RETURN.

  ENDIF.

    IF sscrfields-ucomm EQ 'BUT03'.

    SUBMIT ('Z_PONTO_CONSULTA_JAQ 'VIA SELECTION-SCREEN AND RETURN.

  ENDIF.


ENDFORM.

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

*& Programa criado por Jaqueline Cristine Rosa de Souza (estagiária) para estudo

*& 25/01/2024

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

REPORT z_ponto_cad_jq.


TABLES zcad_est_jq.


DATAlv_valida      TYPE abap_bool,

      it_zcad_est_jq TYPE TABLE OF zcad_est_jq.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERSp_matr TYPE zed_matr_estag_jq OBLIGATORY.

PARAMETERSp_nome TYPE zed_nome_estag_jq OBLIGATORY.

PARAMETERSp_cpf  TYPE zed_cpf_estag     OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.


START-OF-SELECTION.

  PERFORM f_valida_dados.

  PERFORM f_grava_dados.

  PERFORM f_exibe_mensagem.


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

*&      Form  F_VALIDA_DADOS

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_valida_dados.

  IF p_matr IS INITIAL.

    lv_valida abap_true.

  ENDIF.

  IF p_nome IS INITIAL.

    lv_valida abap_true.

  ENDIF.

  IF p_cpf IS INITIAL.

    lv_valida abap_true.

  ENDIF.

ENDFORM.

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

*&      Form  F_GRAVA_DADOS

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_grava_dados.

  IF lv_valida <> abap_false.

    lv_valida abap_false.

  ELSE.

    APPEND INITIAL LINE TO it_zcad_est_jq ASSIGNING FIELD-SYMBOL(<fs_zcad_est_jq>).

    <fs_zcad_est_jq>-matr_estag p_matr.

    <fs_zcad_est_jq>-nome_estag p_nome.

    <fs_zcad_est_jq>-cpf_estag  p_cpf.


    IF linesit_zcad_est_jq 0.

      MODIFY zcad_est_jq FROM TABLE it_zcad_est_jq.

    ELSE.

      lv_valida abap_true.

    ENDIF.

  ENDIF.

ENDFORM.

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

*&      Form  F_EXIBE_MENSAGEM

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_exibe_mensagem.

  IF lv_valida abap_true.

    MESSAGE 'Nenhum dado foi gravado' TYPE 'E'.

  ENDIF.

ENDFORM.

END-OF-SELECTION.


IF sy-subrc IS INITIAL.

  COMMIT WORK.

  WRITE 'Dados do estagiário salvo com sucesso'.

ENDIF.

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

*& Programa criado por Jaqueline Cristine Rosa de Souza (estagiária) para estudo

*& 25/01/2024

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

REPORT z_ponto_registro_jq.


TABLES zponto_est_jaq.


DATAlv_matr,

      lv_data,

      lv_hora,

      lv_tp_registro    TYPE c LENGTH VALUE 'X',

      it_zponto_est_jaq TYPE TABLE OF zponto_est_jaq.


START-OF-SELECTION.

  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.


  SELECTION-SCREEN BEGIN OF LINE.

  PARAMETERSp_entrad RADIOBUTTON GROUP e.

  SELECTION-SCREEN COMMENT (30TEXT-002 FOR FIELD p_entrad.

  SELECTION-SCREEN END OF LINE.

  SELECTION-SCREEN BEGIN OF LINE.

  PARAMETERSp_saida  RADIOBUTTON GROUP e.

  SELECTION-SCREEN COMMENT (30TEXT-003 FOR FIELD p_saida.

  SELECTION-SCREEN END OF LINE.


  SELECTION-SCREEN END OF BLOCK b1.

  PERFORM f_valida USING 'menor_5_minutos'.

  PERFORM f_grava_ponto.


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

*&      Form  F_VALIDA

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

*       text

*----------------------------------------------------------------------*

*      -->P_0069   text

*----------------------------------------------------------------------*

FORM f_valida  USING p_check.

  CASE p_check.

    WHEN 'menor_5_minutos'.

      DATAw_time LIKE sy-uzeit.

      DATAw_seconds TYPE i.

      w_seconds 300.

      w_time sy-uzeit w_seconds.


      SELECT FROM zponto_est_jaq

        INTO TABLE @DATA(it_zponto_est_jaq)

        WHERE

        matr_estag @sy-uname AND

        data_pont_estag @sy-datum AND

        hora_pont_estag > @w_time.


      IF sy-subrc AND linesit_zponto_est_jaq 0.

        MESSAGE 'Não é permitido registros de ponto em menos de 5 minutos entre eles' TYPE 'E'.

      ENDIF.

    WHEN 'campo_vazio'.

      MESSAGE 'TODOS OS CAMPOS SÃO OBRIGATÓRIOS' TYPE 'E'.

  ENDCASE.

ENDFORM.

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

*&      Form  F_GRAVA_PONTO

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_grava_ponto .


  APPEND INITIAL LINE TO it_zponto_est_jaq ASSIGNING FIELD-SYMBOL(<fs_zponto_est_jaq>).

  <fs_zponto_est_jaq>-matr_estag sy-uname.

  <fs_zponto_est_jaq>-data_pont_estag sy-datum.

  <fs_zponto_est_jaq>-hora_pont_estag  sy-uzeit.

  IF p_entrad abap_true.

    <fs_zponto_est_jaq>-tp_registro  'E'.

  ENDIF.

  IF p_saida abap_true.

    <fs_zponto_est_jaq>-tp_registro  'S'.

  ENDIF.

  MODIFY zponto_est_jaq FROM TABLE it_zponto_est_jaq.


ENDFORM.

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

*& Programa criado por Jaqueline Cristine Rosa de Souza (estagiária) para estudo

*& 25/01/2024

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

REPORT z_ponto_consulta_jaq.


TABLES zponto_est_jaq.


DATAit_zponto_est_jaq TYPE TABLE OF zponto_est_jaq,

      cl_table          TYPE REF TO cl_salv_table.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERSp_matr TYPE zed_matr_estag_jq,

            p_data TYPE zed_pont_estag_jq.

SELECTION-SCREEN END OF BLOCK b1.


PERFORM f_recuperar_dados.

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

*&      Form  F_RECUPERAR_DADOS

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_recuperar_dados .

  IF p_matr IS INITIAL AND p_data IS INITIAL.

    MESSAGE 'Informe um ou mais filtros' TYPE 'I'.

    EXIT.

  ELSE.

    IF p_matr IS NOT INITIAL AND p_data IS NOT INITIAL.

      SELECT FROM zponto_est_jaq

        INTO TABLE it_zponto_est_jaq

        WHERE matr_estag p_matr AND

        data_pont_estag p_data.


      IF sy-subrc <> 0.

        MESSAGE 'nenhum registro encontrado' TYPE 'I'.

      ELSE.

        PERFORM f_exibe_alv.

      ENDIF.

    ENDIF.


    IF p_matr IS NOT INITIAL AND p_data IS INITIAL.

      SELECT FROM zponto_est_jaq

        INTO TABLE it_zponto_est_jaq

        WHERE matr_estag p_matr.


      IF sy-subrc <> 0.

        MESSAGE 'nenhum registro encontrado' TYPE 'I'.

      ELSE.

        PERFORM f_exibe_alv.

      ENDIF.

    ENDIF.


    IF p_data IS NOT INITIAL AND p_matr IS INITIAL.

      SELECT FROM zponto_est_jaq

        INTO TABLE it_zponto_est_jaq

        WHERE data_pont_estag p_data.


      IF sy-subrc <> 0.

        MESSAGE 'nenhum registro encontrado' TYPE 'I'.

      ELSE.

        PERFORM f_exibe_alv.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

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

*&      Form  F_EXIBE_ALV

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM f_exibe_alv .

  CALL METHOD cl_salv_table=>factory

    EXPORTING

      list_display abap_true "apresenta o alv como um write

    IMPORTING

      r_salv_table cl_table

    CHANGING

      t_table      it_zponto_est_jaq.


  CALL METHOD cl_table->display.

ENDFORM.

Jaqueline Cristine
Se unió el 04/09/2024
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

buen aporte saludos!

Respondido el 02/12/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?