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.
7.0
Produto:
Nota
Descrição
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)'
...