CE PLUS - Nota 003751

Módulo: DRAWBACK

Funcionalidade: Relatórios

Data/Hora da Publicação: 24/05/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:09:14

Descrição da Nota: AJUSTE NO PROGRAMA PARA TRAZER A DESCRIÇÃO DE CADA NCM

Sintoma

O programa não estava trazendo a descrição do NCM.

 

 

Solução

Foi tratado no programa para buscar a descrição de cada NCM.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO DO RUD EXPORTAÇÃO, IMPORTAÇÃO E TERMO

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 03751 Data: 24/05/2007 Hora: 14:42:12

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 03751

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00167

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

03358  - 00001 - 6.0    - 00026  - DESENVOLVIMENTO DO RUD EXPORTAÇÃO, IMPORTAÇÃO E TERMO

----------------------------------------------------------------------------------------------------

AJUSTE NO PROGRAMA PARA TRAZER A DESCRIÇÃO DE CADA NCM

----------------------------------------------------------------------------------------------------

Palavras Chave:

 

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYCRR002

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCRR002

 

...

       local_neg    TYPE t001w-j_1bbranch,

       cnpjmask(18) TYPE c,

       sy_datlo(25) TYPE c,

       anexo        TYPE /pws/zycit476-anexo,

       pagina       TYPE i,

       p_proc1      TYPE /pws/zycrt003-name,

       p_proc2      TYPE /pws/zycrt003-name.

INCLUDE TYPE /pws/zycit244 AS zycit244.

TYPES:  END OF s_cabecalho.

TYPES: BEGIN OF s_itens.

* >> Início da exclusão:

TYPES: nrre       TYPE /pws/zycit259-nrre,

       dtre       TYPE /pws/zycit259-dtre,

       j_1bnbm    TYPE /pws/zycit259-j_1bnbm,

       gewei      TYPE /pws/zycit259-gewei,

       ntgew      TYPE /pws/zycit259-ntgew,

       qtd_iten   TYPE /pws/zycit259-qtd_iten,

       meins      TYPE /pws/zycit259-meins,

       vl_fob     TYPE /pws/zycit259-vlfob,

       waersfob   TYPE /pws/zycit259-waersfob,

       vl_cif     TYPE /pws/zycit259-vlcif,

       maktx      TYPE makt-maktx,

       subtot     TYPE c,

       j_1bnbmtot TYPE /pws/zycit259-j_1bnbm,

       ntgewtot   TYPE /pws/zycit259-ntgew,

       qtd_tot    TYPE /pws/zycit259-qtd_iten,

       vl_fobtot  TYPE /pws/zycit259-vlfob,

       vl_ciftot  TYPE /pws/zycit259-vlcif.

* << Fim da exclusão

* >> Início da inclusão:

TYPES: nrre            TYPE /pws/zycit259-nrre,

       dtre            TYPE /pws/zycit259-dtre,

       j_1bnbm         TYPE /pws/zycit259-j_1bnbm,

       gewei           TYPE /pws/zycit259-gewei,

       ntgew           TYPE /pws/zycit259-ntgew,

       qtd_iten        TYPE /pws/zycit259-qtd_iten,

       meins           TYPE /pws/zycit259-meins,

       vl_fob          TYPE /pws/zycit259-vlfob,

       waersfob        TYPE /pws/zycit259-waersfob,

       vl_cif          TYPE /pws/zycit259-vlcif,

       maktx           TYPE makt-maktx,

       subtot          TYPE c,

       j_1bnbmtot      TYPE /pws/zycit259-j_1bnbm,

       ntgewtot        TYPE /pws/zycit259-ntgew,

       qtd_tot         TYPE /pws/zycit259-qtd_iten,

       vl_fobtot       TYPE /pws/zycit259-vlfob,

       vl_ciftot       TYPE /pws/zycit259-vlcif,

       descr_ncmt(200) TYPE c,

       descr_ncm(200)  TYPE c.

* << Fim da inclusão

TYPES: END OF s_itens,

       t_itens TYPE STANDARD TABLE OF s_itens.

TYPES: BEGIN OF s_tot_ncm.

TYPES: peso    TYPE /pws/zycit259-ntgew,

       qtd     TYPE /pws/zycit259-qtd_iten,

       fob     TYPE /pws/zycit259-vlfob,

       cif     TYPE /pws/zycit259-vlcif,

       totpeso TYPE /pws/zycit259-ntgew,

       totqtd  TYPE /pws/zycit259-qtd_iten,

       totfob  TYPE /pws/zycit259-vlfob,

...

 

...

END OF s_tot_ncm,

t_tot_ncm TYPE STANDARD TABLE OF s_tot_ncm.

TYPE-POOLS vrm.

DATA: list  TYPE vrm_values,

      value LIKE LINE OF list.

DATA: v_total    TYPE /pws/zycit259-vlcif,

      v_peso     TYPE /pws/zycit259-ntgew,

      v_quant    TYPE /pws/zycit259-qtd_iten,

      v_vlemb    TYPE /pws/zycit259-vlfob,

      v_totncm   TYPE i,

* >> Início da exclusão:

      v_ncm      TYPE /pws/zycit259-j_1bnbm.

* << Fim da exclusão

* >> Início da inclusão:

      v_ncm      TYPE /pws/zycit259-j_1bnbm,

      v_descrncm(200) TYPE c.

* << Fim da inclusão

DATA: BEGIN OF v_tab OCCURS 200,

        value(40) TYPE c,

      END OF v_tab.

DATA: BEGIN OF f_tab OCCURS 10.

        INCLUDE STRUCTURE help_value.

DATA: END OF f_tab.

DATA: wa_cabecalho  TYPE s_cabecalho,

      it_itens     TYPE t_itens.

DATA: wa_gen_param     TYPE /pws/zycrt012,

      wa_rep_param     TYPE /pws/zycrt013,

      it_matrix        TYPE t_matrix,

      it_report_fields TYPE t_rep_fields.

DATA: it_excel_content TYPE t_excel_content,

      it_sect_height   TYPE t_sect_height,

      it_generation_options TYPE t_generation_options.

DATA:  BEGIN OF itab_zycrt003 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycrt003.

DATA: END OF itab_zycrt003.

* >> Início da inclusão:

DATA:  BEGIN OF itab_t604n OCCURS 0.

        INCLUDE STRUCTURE t604n.

DATA: END OF itab_t604n.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF BLOCK b1.

PARAMETERS: p_nrseqd TYPE /pws/zycit244-nrseqd  OBLIGATORY MODIF ID key.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2.

PARAMETERS: p_proc1 TYPE /pws/zycrt003-name,

            p_proc2 TYPE /pws/zycrt003-name.

SELECTION-SCREEN END OF BLOCK b2.

PARAMETERS: p_passwd(132) TYPE c LOWER CASE.

PARAMETERS: p_option TYPE xfeld NO-DISPLAY.

AT SELECTION-SCREEN OUTPUT.

...

 

...

         /pws/zycit259~meins /pws/zycit259~vlfob

         /pws/zycit259~waersfob /pws/zycit259~vlcif

         makt~maktx

  FROM ( /pws/zycit259 INNER JOIN makt

          ON /pws/zycit259~codmat = makt~matnr )

       INTO TABLE p_t_itens

       WHERE /pws/zycit259~nrseqd EQ p_cabecalho-zycit244-nrcompos

         AND makt~spras EQ 'P'.

  it_itens[] = p_t_itens[].

  REFRESH p_t_itens.

* >> Início da inclusão: FORM SELECT_DATA

  SELECT *

  FROM t604n

  INTO TABLE itab_t604n

  FOR ALL ENTRIES IN it_itens

  WHERE steuc = it_itens-j_1bnbm

  AND spras = sy-langu.

* << Fim da inclusão

  LOOP AT it_itens.

    COLLECT it_itens INTO p_t_itens.

  ENDLOOP.

  SORT p_t_itens BY j_1bnbm.

  LOOP AT p_t_itens INTO wa_itens.

    v_tabix = sy-tabix.

    CHECK wa_itens-subtot NE 'X'.

    ON CHANGE OF wa_itens-j_1bnbm.

* >> Início da inclusão: FORM SELECT_DATA

      READ TABLE itab_t604n WITH KEY steuc = wa_itens-j_1bnbm

                                     spras = sy-langu.

      IF sy-subrc = 0.

        CONCATENATE 'NCM'

                    wa_itens-j_1bnbm

                    itab_t604n-text1

                    itab_t604n-text2

                    itab_t604n-text3

                    itab_t604n-text4

                    itab_t604n-text5

                    INTO wa_itens-descr_ncm SEPARATED BY space.

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

      ENDIF.

* << Fim da inclusão

      IF v_tabix NE 1.

* >> Início da exclusão: FORM SELECT_DATA

        MOVE: v_ncm   TO wa_itens-j_1bnbmtot,

              'X'     TO wa_itens-subtot,

              v_peso  TO wa_itens-ntgewtot,

              v_total TO wa_itens-vl_ciftot,

              v_vlemb TO wa_itens-vl_fobtot,

              v_quant TO wa_itens-qtd_tot.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

        MOVE: v_ncm      TO wa_itens-j_1bnbmtot,

              'X'        TO wa_itens-subtot,

              v_peso     TO wa_itens-ntgewtot,

              v_total    TO wa_itens-vl_ciftot,

              v_vlemb    TO wa_itens-vl_fobtot,

              v_quant    TO wa_itens-qtd_tot,

              v_descrncm TO wa_itens-descr_ncmt.

* << Fim da inclusão

        INSERT wa_itens INTO p_t_itens INDEX v_tabix.

      ENDIF.

      CLEAR: v_ncm,

             v_peso,

             v_total,

             v_vlemb,

* >> Início da exclusão: FORM SELECT_DATA

             v_quant.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

             v_quant,

             v_descrncm.

* << Fim da inclusão

    ENDON.

* >> Início da exclusão: FORM SELECT_DATA

    MOVE wa_itens-j_1bnbm TO v_ncm.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

    MOVE: wa_itens-j_1bnbm TO v_ncm,

          wa_itens-descr_ncm TO v_descrncm.

* << Fim da inclusão

    ADD: wa_itens-ntgew TO v_peso,

         wa_itens-vl_cif TO v_total,

         wa_itens-vl_fob TO v_vlemb,

         wa_itens-qtd_iten TO v_quant.

  ENDLOOP.

  DESCRIBE TABLE p_t_itens LINES v_line.

  ADD 1 TO v_line.

  MOVE: v_ncm    TO wa_itens-j_1bnbmtot,

        'X'      TO wa_itens-subtot,

        v_peso   TO wa_itens-ntgewtot,

        v_total  TO wa_itens-vl_ciftot,

        v_vlemb  TO wa_itens-vl_fobtot,

* >> Início da exclusão: FORM SELECT_DATA

        v_quant  TO wa_itens-qtd_tot.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

        v_quant  TO wa_itens-qtd_tot,

        v_descrncm TO wa_itens-descr_ncmt.

* << Fim da inclusão

  INSERT wa_itens INTO p_t_itens INDEX v_line.

ENDFORM.

FORM create_excel_content_table

     USING

        p_header          TYPE any

        p_t_items         TYPE table

        p_rep_param       TYPE /pws/zycrt013

        p_t_matrix        TYPE t_matrix

        p_t_report_fields TYPE t_rep_fields

     CHANGING

...

 

...

        v_linesub   TYPE f,

        v_linesub2  TYPE f,

        v_linerod   TYPE f,

        v_linencm   TYPE f,

        v_resto     TYPE f,

        v_linhacab  TYPE i,

        v_linhaite  TYPE i,

        v_linhasub  TYPE i,

        v_linhasub2 TYPE i,

        v_linharod  TYPE i,

* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        v_linhancm  TYPE i.

* << Fim da exclusão

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        v_linhancm  TYPE i,

        v_descrncm(100)  TYPE c.

* << Fim da inclusão

  DATA: wa_itens TYPE s_itens,

        wa_iteanexo TYPE s_itens,

        wa_totanexo TYPE s_tot_ncm,

        wa_total    TYPE s_tot_ncm.

  PERFORM select_row_height_cache

  USING

  p_rep_param-spras

  p_rep_param-file_id

  CHANGING

  p_t_sect_height[].

...

 

...

    remaining_item_space = v_linetot - v_linecab - v_linesub -

                           v_linesub2 - v_linerod.

    has_remaining_space = abap_true.

    CLEAR wa_totanexo.

    WHILE has_remaining_space = abap_true.

      REFRESH it_section_content[].

      IF v_lineite <= remaining_item_space.

        CLEAR wa_itens.

        READ TABLE p_t_items INTO wa_itens INDEX current_item.

        IF wa_itens-subtot = ' '.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

          IF wa_itens-descr_ncm <> v_descrncm

          AND NOT wa_itens-descr_ncm IS INITIAL.

            PERFORM append_new_section

                    USING

                       'VIA I (9)'

                       current_row

                    CHANGING

                       it_section_content[].

            PERFORM fill_items_fields

                    USING

                       p_t_items[]

                       'VIA I (9)'

                       current_row

                       p_t_matrix[]

                       p_t_report_fields[]

                       p_t_sect_height[]

                       current_item

                    CHANGING

                       filled_section_height

                       it_section_content[]

                       subrc.

            IF subrc = 0.

              IF filled_section_height <= remaining_item_space.

                APPEND LINES OF it_section_content TO p_t_excel_content.

                ADD 1 TO current_item.

                ADD v_linhaite TO current_row.

               SUBTRACT filled_section_height FROM remaining_item_space.

                v_descrncm = wa_itens-descr_ncm.

              ENDIF.

            ENDIF.

          ENDIF.

* << Fim da inclusão

          PERFORM append_new_section

                  USING

                     'VIA I (3)'

                     current_row

                  CHANGING

                     p_t_excel_content[].

          PERFORM fill_items_fields

                  USING

                     p_t_items[]

                     'VIA I (3)'

...