CE PLUS - Nota 005554

Módulo: DRAWBACK

Funcionalidade: CE Reports Formulários

Data/Hora da Publicação: 03/01/2008 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:18:37

Descrição da Nota: PERFORMANCE

Sintoma

Ajustes para melhorar a performance do formulário.

 

 

Solução

Ajustes para melhorar a performance do formulário.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ADICIONADA A DESCRIÇÃO DOS NCM'S

Informações Complementares

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

Nota Número 05554 Data: 03/01/2008 Hora: 11:03:56

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

 

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

Nota Número              : 05554

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00028

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

Referência às notas relacionadas:

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

 

04982  - 00001 - 7.0    - 00003  - ADICIONADA A DESCRIÇÃO DOS NCM'S

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

PERFORMANCE

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

Palavras Chave:

RUD IMPORTAÇÃO EXPORTAÇÃO DRAWBACK ISENÇÃO

 

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

Objetos da nota:

REPS /PWS/ZYCRR002

REPS /PWS/ZYCRR006

REPT /PWS/ZYCRR002

REPT /PWS/ZYCRR006

 

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

Modificações efetuadas em REPS /PWS/ZYCRR002

 

...

        v_linhaite  TYPE i,

        v_linhasub  TYPE i,

        v_linhasub2 TYPE i,

        v_linharod  TYPE i,

        v_linhancm  TYPE i,

        v_descrncm(100)  TYPE c.

  DATA: wa_itens TYPE s_itens,

        wa_iteanexo TYPE s_itens,

        wa_totanexo TYPE s_tot_ncm,

        wa_total    TYPE s_tot_ncm.

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

 DATA: linha_a TYPE i.

* << Fim da inclusão

  PERFORM select_row_height_cache

  USING

  p_rep_param-spras

  p_rep_param-file_id

  CHANGING

  p_t_sect_height[].

  DESCRIBE TABLE p_t_items[] LINES total_items.

  PERFORM get_section_height

          USING

             'REPORT'

...

 

...

               current_row

               p_t_matrix[]

               p_t_report_fields[]

            CHANGING

               p_t_excel_content[].

    ADD v_linhacab TO current_row.

    remaining_item_space = v_linetot - v_linecab - v_linesub -

                           v_linesub2 - v_linerod.

    has_remaining_space = abap_true.

    CLEAR wa_totanexo.

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

    WHILE has_remaining_space = abap_true.

* << Fim da exclusão

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

    PERFORM append_new_section

            USING

               'VIA I (3)'

               current_row

            CHANGING

               p_t_excel_content[].

    CLEAR: linha_a.

    WHILE has_remaining_space = abap_true AND

          current_item <= total_items.

* << Fim da inclusão

      REFRESH it_section_content[].

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

      IF linha_a < 30.

* << Fim da inclusão

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

      IF v_lineite <= remaining_item_space.

* << Fim da exclusão

        CLEAR wa_itens.

        READ TABLE p_t_items INTO wa_itens INDEX current_item.

        IF wa_itens-subtot = ' '.

...

 

...

                       p_t_sect_height[]

                       current_item

                    CHANGING

                       filled_section_height

                       it_section_content[]

                       subrc.

            IF subrc = 0.

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

              IF filled_section_height <= remaining_item_space.

* << Fim da exclusão

                APPEND LINES OF it_section_content TO p_t_excel_content.

                ADD 1 TO current_item.

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

                ADD v_linhaite TO current_row.

* << Fim da exclusão

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

                ADD 1 TO current_row.

                ADD 1 TO linha_a.

* << Fim da inclusão

               SUBTRACT filled_section_height FROM remaining_item_space.

                v_descrncm = wa_itens-descr_ncm.

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

              ENDIF.

* << Fim da exclusão

            ENDIF.

          ENDIF.

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

          PERFORM append_new_section

                  USING

                     'VIA I (3)'

                     current_row

                  CHANGING

                     p_t_excel_content[].

* << Fim da exclusão

          PERFORM fill_items_fields

                  USING

                     p_t_items[]

                     'VIA I (3)'

                     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.

            it_iteanexo[] = it_section_content[].

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

            IF filled_section_height LE remaining_item_space.

* << Fim da exclusão

              READ TABLE p_t_items INTO wa_iteanexo INDEX current_item.

              IF wa_iteanexo-subtot IS INITIAL.

                wa_totanexo-peso = wa_totanexo-peso + wa_iteanexo-ntgew.

               wa_totanexo-qtd = wa_totanexo-qtd + wa_iteanexo-qtd_iten.

                wa_totanexo-fob = wa_totanexo-fob + wa_iteanexo-vl_fob.

                wa_totanexo-cif = wa_totanexo-cif + wa_iteanexo-vl_cif.

                wa_total-totpeso =

                                wa_total-totpeso + wa_iteanexo-ntgew.

                wa_total-totqtd =

                               wa_total-totqtd + wa_iteanexo-qtd_iten.

                wa_total-totfob =

                                wa_total-totfob + wa_iteanexo-vl_fob.

                wa_total-totcif =

                                wa_total-totcif + wa_iteanexo-vl_cif.

              ENDIF.

            ENDIF.

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

          ENDIF.

* << Fim da exclusão

        ELSE.

          PERFORM append_new_section

                  USING

                     'VIA I (8)'

                     current_row

                  CHANGING

                     p_t_excel_content[].

          PERFORM fill_items_fields

                  USING

                     p_t_items[]

...

 

...

                     p_t_matrix[]

                     p_t_report_fields[]

                     p_t_sect_height[]

                     current_item

                  CHANGING

                     filled_section_height

                     it_section_content[]

                     subrc.

        ENDIF.

        IF subrc = 0.

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

          IF filled_section_height <= remaining_item_space.

* << Fim da exclusão

            APPEND LINES OF it_section_content TO p_t_excel_content.

            ADD 1 TO current_item.

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

            ADD v_linhaite TO current_row.

* << Fim da exclusão

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

            ADD 1 TO current_row.

            ADD 1 TO linha_a.

* << Fim da inclusão

            SUBTRACT filled_section_height FROM remaining_item_space.

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

          ENDIF.

* << Fim da exclusão

        ELSE.

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

          ADD 1 TO current_row.

* << Fim da inclusão

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

          ADD v_linhaite TO current_row.

* << Fim da exclusão

          SUBTRACT v_lineite FROM remaining_item_space.

        ENDIF.

      ELSE.

        has_remaining_space = abap_false.

      ENDIF.

    ENDWHILE.

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

    IF linha_a < 30.

      current_row = current_row + 30 - linha_a.

    ENDIF.

* << Fim da inclusão

    PERFORM append_new_section

            USING

               'VIA I (4)'

               current_row

            CHANGING

               p_t_excel_content[].

    PERFORM fill_header_fields

            USING

               wa_totanexo

               'VIA I (4)'

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCRR006

 

...

        v_linhaite  TYPE i,

        v_linhasub  TYPE i,

        v_linhasub2 TYPE i,

        v_linharod  TYPE i,

        v_linhancm  TYPE i,

        v_descrncm(100)  TYPE c.

  DATA: wa_itens TYPE s_itens,

        wa_iteanexo TYPE s_itens,

        wa_totanexo TYPE s_tot_ncm,

        wa_total    TYPE s_tot_ncm.

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

 DATA: linha_a TYPE i.

* << Fim da inclusão

  PERFORM select_row_height_cache

  USING

  p_rep_param-spras

  p_rep_param-file_id

  CHANGING

  p_t_sect_height[].

  DESCRIBE TABLE p_t_items[] LINES total_items.

  PERFORM get_section_height

          USING

             'REPORT'

...

 

...

               current_row

               p_t_matrix[]

               p_t_report_fields[]

            CHANGING

               p_t_excel_content[].

    ADD v_linhacab TO current_row.

    remaining_item_space = v_linetot - v_linecab - v_linesub -

                           v_linesub2 - v_linerod.

    has_remaining_space = abap_true.

    CLEAR wa_totanexo.

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

    WHILE has_remaining_space = abap_true.

* << Fim da exclusão

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

    PERFORM append_new_section

            USING

               'VIA I (3)'

               current_row

            CHANGING

               p_t_excel_content[].

    CLEAR: linha_a.

    WHILE has_remaining_space = abap_true AND

          current_item <= total_items.

* << Fim da inclusão

      REFRESH it_section_content[].

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

      IF v_lineite <= remaining_item_space.

* << Fim da exclusão

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

      IF linha_a < 30.

* << Fim da inclusão

        CLEAR wa_itens.

        READ TABLE p_t_items INTO wa_itens INDEX current_item.

        IF wa_itens-subtot = ' '.

...

 

...

                       p_t_sect_height[]

                       current_item

                    CHANGING

                       filled_section_height

                       it_section_content[]

                       subrc.

            IF subrc = 0.

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

              IF filled_section_height <= remaining_item_space.

* << Fim da exclusão

                APPEND LINES OF it_section_content TO p_t_excel_content.

                ADD 1 TO current_item.

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

                ADD v_linhaite TO current_row.

* << Fim da exclusão

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

                ADD 1 TO current_row.

                ADD 1 TO linha_a.

* << Fim da inclusão

               SUBTRACT filled_section_height FROM remaining_item_space.

                v_descrncm = wa_itens-descr_ncm.

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

              ENDIF.

* << Fim da exclusão

            ENDIF.

          ENDIF.

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

          PERFORM append_new_section

                  USING

                     'VIA I (3)'

                     current_row

                  CHANGING

                     p_t_excel_content[].

* << Fim da exclusão

          PERFORM fill_items_fields

                  USING

                     p_t_items[]

                     'VIA I (3)'

                     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.

            it_iteanexo[] = it_section_content[].

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

            IF filled_section_height LE remaining_item_space.

* << Fim da exclusão

              READ TABLE p_t_items INTO wa_iteanexo INDEX current_item.

              IF wa_iteanexo-subtot IS INITIAL.

               wa_totanexo-peso = wa_totanexo-peso + wa_iteanexo-ntgew .

               wa_totanexo-qtd = wa_totanexo-qtd + wa_iteanexo-qtd_vinc.

               wa_totanexo-fob = wa_totanexo-fob + wa_iteanexo-vlfob   .

               wa_totanexo-fobt = wa_totanexo-fobt + wa_iteanexo-vlfobt.

                wa_total-totpeso =

                                wa_total-totpeso + wa_iteanexo-ntgew.

                wa_total-totqtd =

                                wa_total-totqtd + wa_iteanexo-qtd_vinc.

                wa_total-totfemb =

                                wa_total-totfemb + wa_iteanexo-vlfob.

                wa_total-totfob =

                                wa_total-totfob + wa_iteanexo-vlfobt.

              ENDIF.

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

            ENDIF.

* << Fim da exclusão

          ENDIF.

        ELSE.

          PERFORM append_new_section

                  USING

                     'VIA I (7)'

                     current_row

                  CHANGING

                     p_t_excel_content[].

          PERFORM fill_items_fields

                  USING

...

 

...

                     p_t_matrix[]

                     p_t_report_fields[]

                     p_t_sect_height[]

                     current_item

                  CHANGING

                     filled_section_height

                     it_section_content[]

                     subrc.

        ENDIF.

        IF subrc = 0.

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

          IF filled_section_height <= remaining_item_space.

* << Fim da exclusão

            APPEND LINES OF it_section_content TO p_t_excel_content.

            ADD 1 TO current_item.

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

            ADD v_linhaite TO current_row.

* << Fim da exclusão

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

            ADD 1 TO current_row.

            ADD 1 TO linha_a.

* << Fim da inclusão

            SUBTRACT filled_section_height FROM remaining_item_space.

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

          ENDIF.

* << Fim da exclusão

        ELSE.

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

          ADD 1 TO current_row.

* << Fim da inclusão

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

          ADD v_linhaite TO current_row.

* << Fim da exclusão

          SUBTRACT v_lineite FROM remaining_item_space.

        ENDIF.

      ELSE.

        has_remaining_space = abap_false.

      ENDIF.

    ENDWHILE.

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

    IF linha_a < 30.

      current_row = current_row + 30 - linha_a.

    ENDIF.

* << Fim da inclusão

    PERFORM append_new_section

            USING

               'VIA I (4)'

               current_row

            CHANGING

               p_t_excel_content[].

    PERFORM fill_header_fields

            USING

               wa_totanexo

               'VIA I (4)'

...