-Marreta de Ouro - Z_thor 46c

download -Marreta de Ouro - Z_thor 46c

If you can't read please download the document

description

-Marreta de Ouro - Z_thor 46c

Transcript of -Marreta de Ouro - Z_thor 46c

*&---------------------------------------------------------------------**& 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, j_1baj, dd03vt.*DATA: help_infos LIKE help_info,* dynpselect LIKE dselc OCCURS 0,* dynpvaluetab LIKE dval OCCURS 0.DATA: v_where(100), v_where2(100), v_where3(100), v_where4(100), v_where5(100), v_count TYPE i, v_string(72), " Aux para montar cdigo fonte v_index LIKE sy-tabix.DATA: BEGIN OF t_where OCCURS 0.DATA: onde(500) TYPE c.DATA: END OF t_where.*DATA: v_repid LIKE sy-repid,* v_dynnr LIKE sy-dynnr,* v_dynprofield LIKE help_info-dynprofld,* v_retfield LIKE dfies-fieldname.TYPES: BEGIN OF t_type, line(72), END OF t_type.DATA: t_fonte TYPE STANDARD TABLE OF t_type WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 500 WITH HEADER LINE.*DATA: BEGIN OF itab_tabela OCCURS 0,* tabname LIKE dd02l-tabname,* END OF itab_tabela.DATA: dref TYPE REF TO data.FIELD-SYMBOLS: TYPE ANY.FIELD-SYMBOLS: TYPE ANY.FIELD-SYMBOLS: TYPE ANY.SELECTION-SCREEN SKIP 1.SELECTION-SCREEN BEGIN OF BLOCK bloc1 WITH FRAME TITLE text-001.PARAMETERS: p_table LIKE rsrd1-tbma_val OBLIGATORY.PARAMETERS: p_field TYPE dd03vt-fieldname OBLIGATORY.PARAMETERS: p_valor(100) TYPE c OBLIGATORY.PARAMETERS: p_field2 TYPE dd03vt-fieldname.PARAMETERS: p_valor2(100) TYPE c.SELECTION-SCREEN SKIP 1.SELECTION-SCREEN BEGIN OF BLOCK bloc2 WITH FRAME TITLE text-002.PARAMETERS: p_key01 TYPE dd03vt-fieldname OBLIGATORY.PARAMETERS: p_val01(70) TYPE c OBLIGATORY.*SELECT-OPTIONS: p_val01 FOR dd03vt-fieldname." OBLIGATORY.PARAMETERS: p_key02 TYPE dd03vt-fieldname.PARAMETERS: p_val02(70) TYPE c.PARAMETERS: p_key03 TYPE dd03vt-fieldname.PARAMETERS: p_val03(70) TYPE c.PARAMETERS: p_key04 TYPE dd03vt-fieldname.PARAMETERS: p_val04(70) TYPE c.PARAMETERS: p_key05 TYPE dd03vt-fieldname.PARAMETERS: p_val05(70) TYPE c.SELECTION-SCREEN END OF BLOCK bloc2.SELECTION-SCREEN SKIP 1.PARAMETERS: p_test(1) TYPE c DEFAULT 'X'.SELECTION-SCREEN END OF BLOCK bloc1.*SELECT-OPTIONS s_taxtyp FOR j_1baj-taxtyp NO-DISPLAY.PARAMETERS: p_prog LIKE trdir-name. "nome do programaPARAMETERS: p_line(5) TYPE n. "numero da linhaPARAMETERS: p_code LIKE sy-lisel. "cdigo a inserir*&---------------------------------------------------------------------*AT SELECTION-SCREEN. SELECT SINGLE * FROM dd02l INTO dd02l WHERE tabname = p_table. IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'TABELA ' p_table ' NO EXISTE!'. ELSE. CREATE DATA dref TYPE (p_table). ASSIGN dref->* TO . IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'TABELA ' p_table ' NO EXISTE!'. ENDIF. ASSIGN COMPONENT p_field OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'Campo ' p_field ' NO EXISTE!'. ENDIF. IF p_field2 NE space. ASSIGN COMPONENT p_field2 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'Campo ' p_field2 ' NO EXISTE!'. ENDIF. ENDIF. ASSIGN COMPONENT p_key01 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'Campo ' 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(zscprod) WITH 'Campo ' 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(zscprod) WITH 'Campo ' 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(zscprod) WITH 'Campo ' p_key04 ' NO EXISTE!'. ENDIF. ENDIF. IF NOT p_key05 IS INITIAL. ASSIGN COMPONENT p_key05 OF STRUCTURE TO . IF sy-subrc NE 0. MESSAGE e000(zscprod) WITH 'Campo ' p_key05 ' NO EXISTE!'. ENDIF. ENDIF. IF p_valor2 NE space AND p_field2 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo de Marretao 2.'. ENDIF. IF p_val01 NE space AND p_key01 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo Chave 01.'. ENDIF. IF p_val02 NE space AND p_key02 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo Chave 02.'. ENDIF. IF p_val03 NE space AND p_key03 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo Chave 03.'. ENDIF. IF p_val04 NE space AND p_key04 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo Chave 04.'. ENDIF. IF p_val05 NE space AND p_key05 EQ space. MESSAGE e000(zscprod) WITH 'Preencher o Campo Chave 05.'. ENDIF. ENDIF.*&---------------------------------------------------------------------*AT LINE-SELECTION. IF sy-lisel(8) EQ 'ZXCVZXCV'.*======================================================================**======================================================================**======================================================================** L o cdigo fonte do programa e transfere o contedo de cada linha* para a tabela interna T_FONTE READ REPORT p_prog INTO t_fonte.* Soma ao ndice encontrado do evento INITIALIZATION 1 para inserir o v_index = p_line + 1.* CONCATENATE 'if sy-datum >'* '*'* '20070218'* '*.'* INTO v_string.** TRANSLATE v_string USING '*'''. v_string = p_code. t_fonte-line = v_string. INSERT t_fonte INDEX v_index.* Atualiza o programa com as modificaes IF sy-subrc = 0. INSERT REPORT p_prog FROM t_fonte STATE 'A'. WRITE: / 'OK'. ENDIF.*======================================================================**======================================================================**======================================================================* ENDIF.*&---------------------------------------------------------------------*INITIALIZATION.*&---------------------------------------------------------------------*START-OF-SELECTION.* SELECT taxtyp* FROM j_1baj* INTO s_taxtyp-low* WHERE taxgrp = 'ICMS'.* s_taxtyp-sign = 'I'.* s_taxtyp-option = 'EQ'.* APPEND s_taxtyp.* ENDSELECT. CONCATENATE p_key01 ' = ' ' ''' p_val01 '''' INTO v_where. t_where-onde = v_where. IF p_key02 NE space. CONCATENATE p_key02 ' = ' ' ''' p_val02 '''' INTO v_where2. CONCATENATE v_where 'and' v_where2 INTO t_where-onde SEPARATED BY space. ENDIF. IF p_key03 NE space AND p_key02 NE space. CONCATENATE p_key03 ' = ' ' ''' p_val03 '''' INTO v_where3. CONCATENATE v_where 'and' v_where2 'and' v_where3 INTO t_where-onde SEPARATED BY space. ENDIF. IF p_key04 NE space AND p_key03 NE space AND p_key02 NE space. CONCATENATE p_key04 ' = ' ' ''' p_val04 '''' INTO v_where4. CONCATENATE v_where 'and' v_where2 'and' v_where3 'and' v_where4 INTO t_where-onde SEPARATED BY space. ENDIF. IF p_key05 NE space AND p_key04 NE space AND p_key03 NE space AND p_key02 NE space. CONCATENATE p_key05 ' = ' ' ''' p_val05 '''' INTO v_where5. CONCATENATE v_where 'and' v_where2 'and' v_where3 'and' v_where4 'and' v_where5 INTO t_where-onde SEPARATED BY space. ENDIF. APPEND t_where. SELECT * FROM (p_table) INTO WHERE (t_where). IF sy-subrc = 0. ADD 1 TO v_count. ENDIF. IF p_test EQ space. IF v_count GT 0. UNASSIGN . ASSIGN COMPONENT p_field OF STRUCTURE TO . = p_valor. IF p_field2 NE space. UNASSIGN . ASSIGN COMPONENT p_field2 OF STRUCTURE TO . = p_valor2. ENDIF. UPDATE (p_table) FROM . 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. 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.' HOTSPOT. WRITE: / 'Foram encontrados ', v_count, ' registro(s).'. ENDIF. ENDIF. ENDSELECT. CLEAR: v_count. IF sy-subrc NE 0. WRITE: / 'TESTE EFETUADO COM SUCESSO PARA A TABELA:', p_table. WRITE: / 'CAMPOS ENTRADOS SO CONSISTENTES.'. WRITE: / 'Mas no foram encontrados registros.'. ENDIF.END-OF-SELECTION.