-Marreta de Ouro - Z_thor 470

download -Marreta de Ouro - Z_thor 470

If you can't read please download the document

description

-Marreta de Ouro - Z_thor 470

Transcript of -Marreta de Ouro - Z_thor 470

*&---------------------------------------------------------------------**& Report Z_THOR **& CRIADO POR: ELIEL SILVA - MM/ABAP **&---------------------------------------------------------------------** Simbolos de texto* 001 Parametros para a marretagem*&---------------------------------------------------------------------** Textos de seleo* P_FIELD Nome do campo* P_KEY01 Campo chave 1* P_KEY02 Campo chave 2* P_KEY03 Campo chave 3* P_KEY04 Campo chave 4* P_TABLE Nome da tabela* P_TEST Modo Teste* P_VAL01 Valor 01* P_VAL02 Valor 02* P_VAL03 Valor 03* P_VAL04 Valor 04* P_VALOR Marretar com valor*&---------------------------------------------------------------------**&---------------------------------------------------------------------**& Report Z_THOR **& CRIADO POR: ELIEL SILVA - MM/ABAP **&---------------------------------------------------------------------*REPORT z_thor NO STANDARD PAGE HEADING LINE-SIZE 255.TABLES: dd02l.DATA: v_where(100), v_where2(100), v_where3(100), v_where4(100), v_set(100), v_erro(1), v_count TYPE i.DATA: dref TYPE REF TO data.FIELD-SYMBOLS: TYPE ANY.FIELD-SYMBOLS: TYPE ANY.SELECTION-SCREEN SKIP 2.SELECTION-SCREEN BEGIN OF BLOCK bloc1 WITH FRAME TITLE text-001.PARAMETERS: p_table TYPE dd03vt-tabname OBLIGATORY.PARAMETERS: p_field TYPE dd03vt-fieldname OBLIGATORY.PARAMETERS: p_valor TYPE dd03vt-fieldname OBLIGATORY.SELECTION-SCREEN SKIP 1.PARAMETERS: p_key01 TYPE dd03vt-fieldname OBLIGATORY.PARAMETERS: p_val01(50) TYPE c OBLIGATORY.PARAMETERS: p_key02 TYPE dd03vt-fieldname.PARAMETERS: p_val02(50) TYPE c.PARAMETERS: p_key03 TYPE dd03vt-fieldname.PARAMETERS: p_val03(50) TYPE c.PARAMETERS: p_key04 TYPE dd03vt-fieldname.PARAMETERS: p_val04(50) TYPE c.SELECTION-SCREEN SKIP 1.PARAMETERS: p_test(1) TYPE c DEFAULT 'X'.SELECTION-SCREEN END OF BLOCK bloc1.********************************************************************AT SELECTION-SCREEN. SELECT SINGLE * FROM dd02l INTO dd02l WHERE tabname = p_table. IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'TABELA ' p_table ' NO EXISTE!'. ELSE. CREATE DATA dref TYPE (p_table). ASSIGN dref->* TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'TABELA ' p_table ' NO EXISTE!'. ENDIF. ASSIGN COMPONENT p_field OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'Campo ' p_field ' NO EXISTE!'. ENDIF. ASSIGN COMPONENT p_key01 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'Campo chave 1 ' p_key01 ' NO EXISTE!'. ENDIF. IF NOT p_key02 IS INITIAL. ASSIGN COMPONENT p_key02 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'Campo chave 2 ' p_key02 ' NO EXISTE!'. ENDIF. ENDIF. IF NOT p_key03 IS INITIAL. ASSIGN COMPONENT p_key03 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'Campo chave 3 ' p_key03 ' NO EXISTE!'. ENDIF. ENDIF. IF NOT p_key04 IS INITIAL. ASSIGN COMPONENT p_key04 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zmsg) WITH 'Campo chave 4 ' p_key03 ' NO EXISTE!'. ENDIF. ENDIF. IF p_val01 NE space AND p_key01 EQ space. MESSAGE e000(zmsg) WITH 'Preencher o Campo Chave 01.'. ENDIF. IF p_val02 NE space AND p_key02 EQ space. MESSAGE e000(zmsg) WITH 'Preencher o Campo Chave 02.'. ENDIF. IF p_val03 NE space AND p_key03 EQ space. MESSAGE e000(zmsg) WITH 'Preencher o Campo Chave 03.'. ENDIF. IF p_val04 NE space AND p_key04 EQ space. MESSAGE e000(zmsg) WITH 'Preencher o Campo Chave 04.'. ENDIF. ENDIF.********************************************************************START-OF-SELECTION. CONCATENATE p_field ' = ' ' ''' p_valor '''' INTO v_set. CONCATENATE p_key01 ' = ' ' ''' p_val01 '''' INTO v_where. IF p_key02 NE space. CONCATENATE p_key02 ' = ' ' ''' p_val02 '''' INTO v_where2. ENDIF. IF p_key03 NE space. CONCATENATE p_key03 ' = ' ' ''' p_val03 '''' INTO v_where3. ENDIF. IF p_key04 NE space. CONCATENATE p_key04 ' = ' ' ''' p_val04 '''' INTO v_where4. ENDIF. ASSIGN COMPONENT p_field OF STRUCTURE TO . SELECT (p_field) FROM (p_table) INTO WHERE (v_where) AND (v_where2) AND (v_where3) AND (v_where4). IF sy-subrc = 0. ADD 1 TO v_count. ENDIF. ENDSELECT. IF p_test EQ space. IF v_count GT 0. UPDATE (p_table) SET (v_set) WHERE (v_where) AND (v_where2) AND (v_where3) AND (v_where4). IF sy-subrc = 0. WRITE: / 'MARRETA EFETUADA COM SUCESSO NA TABELA:', p_table. WRITE: / 'Foram encontrados ', v_count, ' registro(s).'. ELSE. WRITE: / 'Houve um erro durante o Update.'. ENDIF. ELSE. WRITE: / 'NAO FORAM ENCONTRADOS DADOS NA TABELA:', p_table. ENDIF. ELSE. "p_test EQ space. IF v_count GT 0. WRITE: / 'TESTE EFETUADO COM SUCESSO PARA A TABELA:', p_table. WRITE: / 'CAMPOS ENTRADOS SO CONSISTENTES.'. WRITE: / 'Foram encontrados ', v_count, ' registro(s).'. ELSE. WRITE: / 'TESTE EFETUADO COM SUCESSO PARA A TABELA:', p_table. WRITE: / 'CAMPOS ENTRADOS SO CONSISTENTES.'. WRITE: / 'Mas no foram encontrados registros.'. ENDIF. ENDIF.END-OF-SELECTION.