Módulo: DRAWBACK
Funcionalidade: CE Reports Formulários
Data/Hora da Publicação: 27/07/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:38:36
Descrição da Nota: IMPRESSÃO LADO A LADO DOS FORMULÁRIOS DO DRAWBACK (EXCEL)
Sintoma
Dependendo do número de registros, a geração dos formulários é muito demorada.
Solução
O programa foi ajustado para gerar apenas a primeira via do documento, as demais vias são copiadas
através de formulas no excel.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08738 Data: 27/07/2009 Hora: 14:45:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08738
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00107
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
06782 - 00001 - 7.0 - 00006 - RUD EXPORTAÇÃO (FABRICANTE EXPORTADOR) INTERMEDIARIO IMPORTAÇÃO
08477 - 00002 - 7.0 - 00009 - CODE INSPECTOR
----------------------------------------------------------------------------------------------------
IMPRESSÃO LADO A LADO DOS FORMULÁRIOS DO DRAWBACK (EXCEL)
----------------------------------------------------------------------------------------------------
Palavras Chave:
FORMULÁRIOS DRAWBACK EXCEL IMPRESSÃO LADO A LADO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCRR002
REPS /PWS/ZYCRR004
REPS /PWS/ZYCRR005
REPS /PWS/ZYCRR006
REPS /PWS/ZYCRR007
REPS /PWS/ZYCRR008
REPS /PWS/ZYCRR034
REPS /PWS/ZYCRR035
REPS /PWS/ZYCRR036
----------------------------------------------------------------------------------------------------
*Após a aplicaçao desta nota aplicar a nota 8764.
*Depois da aplicação desta nota será necessario atualizar os parametros dos formularios através da
*transação /PWS/ZYCR003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR002
...
ADD v_linharod TO current_row.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 2 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
APPEND itab_zycit476.
DELETE FROM /pws/zycit476 WHERE nrseqd EQ p_nrseqd
AND tipo EQ 'E'.
INSERT /pws/zycit476 FROM TABLE itab_zycit476.
ENDFORM.
FORM trata_procurador CHANGING p_proc.
FREE v_tab.
CLEAR: v_tab, f_tab.
REFRESH: v_tab, f_tab.
SELECT * FROM /pws/zycrt003
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR004
...
'ITENS'
p_t_sect_height[]
CHANGING
v_linhaite.
PERFORM get_section_rows
USING
'RODA1'
p_t_sect_height[]
CHANGING
v_linhasub.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'RODA2'
p_t_sect_height[]
CHANGING
v_linhasub2.
* << Fim da exclusão
DESCRIBE TABLE p_t_items LINES v_lines.
CLEAR: current_item, v_completo.
WHILE v_completo NE 'X'.
CLEAR: v_completo.
ADD 1 TO p_header-anexo.
PERFORM append_new_section
USING
'CAB'
current_row
CHANGING
...
...
current_row = current_row + v_linhasub.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 4 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
IF wa_exel_temp-sheet EQ 'RODA1'.
wa_exel_temp-sheet = 'RODA2'.
ENDIF.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
DELETE FROM /pws/zycit474 WHERE nrseqd EQ p_nrseqd
AND pasta EQ 'I'.
INSERT /pws/zycit474 FROM TABLE itab_zycit474.
ENDFORM.
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR005
...
'ITENS'
p_t_sect_height[]
CHANGING
v_linhaite.
PERFORM get_section_rows
USING
'RODA1'
p_t_sect_height[]
CHANGING
v_linhasub.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'RODA2'
p_t_sect_height[]
CHANGING
v_linhasub2.
* << Fim da exclusão
DESCRIBE TABLE p_t_items LINES v_lines.
CLEAR: current_item, v_completo.
WHILE v_completo NE 'X'.
CLEAR: v_completo.
ADD 1 TO p_header-anexo.
PERFORM append_new_section
USING
'CAB'
current_row
CHANGING
...
...
current_row = current_row + v_linhasub.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 4 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
IF wa_exel_temp-sheet EQ 'RODA1'.
wa_exel_temp-sheet = 'RODA2'.
ENDIF.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
DELETE FROM /pws/zycit474 WHERE nrseqd EQ p_nrseqd
AND pasta EQ 'E'.
INSERT /pws/zycit474 FROM TABLE itab_zycit474.
ENDFORM.
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR006
...
ADD v_linharod TO current_row.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 2 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
APPEND itab_zycit476.
DELETE FROM /pws/zycit476 WHERE nrseqd EQ p_nrseqd
AND tipo EQ 'I'.
INSERT /pws/zycit476 FROM TABLE itab_zycit476.
ENDFORM.
FORM trata_procurador CHANGING p_proc.
FREE v_tab.
CLEAR: v_tab, f_tab.
REFRESH: v_tab, f_tab.
SELECT * FROM /pws/zycrt003
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR007
...
DELETE itab_itens WHERE c1 EQ space
AND c5 EQ space
AND vlimp EQ space
AND vlexp EQ space.
PERFORM get_section_rows
USING
'VIA 1'
p_t_sect_height[]
CHANGING
v_linhav1.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'VIA 2'
p_t_sect_height[]
CHANGING
v_linhav2.
PERFORM get_section_rows
USING
'VIA 5'
p_t_sect_height[]
CHANGING
v_linhav5.
PERFORM get_section_rows
USING
'PROTOCOLO'
p_t_sect_height[]
CHANGING
v_linhapt.
* << Fim da exclusão
CLEAR: current_item.
PERFORM append_new_section
USING
'VIA 1'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
p_header
...
...
p_t_sect_height[]
current_item
CHANGING
filled_section_height
p_t_excel_content[]
subrc.
ADD 1 TO current_row.
ENDDO.
current_row = v_linhav1 + 1.
PERFORM add_page_break
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
USING
current_row
CHANGING
p_t_excel_content[].
itab_exel_temp[] = p_t_excel_content[].
v_linhav3 = v_linhav4 = v_linhav2.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD v_linhav1 TO wa_exel_temp-row.
IF wa_exel_temp-sheet EQ 'VIA 1'.
wa_exel_temp-sheet = 'VIA 2'.
ENDIF.
IF wa_exel_temp-sheet IS INITIAL.
ADD 1 TO wa_exel_temp-row.
ENDIF.
APPEND wa_exel_temp TO p_t_excel_content.
ADD v_linhav2 TO wa_exel_temp-row.
APPEND wa_exel_temp TO p_t_excel_content.
ADD v_linhav3 TO wa_exel_temp-row.
APPEND wa_exel_temp TO p_t_excel_content.
ADD v_linhav4 TO wa_exel_temp-row.
IF wa_exel_temp-sheet EQ 'VIA 2'.
wa_exel_temp-sheet = 'VIA 5'.
ENDIF.
IF wa_exel_temp-sheet IS INITIAL.
ADD 2 TO wa_exel_temp-row.
ENDIF.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
current_row = v_linhav1 + v_linhav2 + v_linhav3 +
v_linhav4 + v_linhav5 + 1.
PERFORM append_new_section
USING
'PROTOCOLO'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
* << Fim da exclusão
USING
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
p_header
'PROTOCOLO'
* << Fim da exclusão
current_row
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
p_t_matrix[]
p_t_report_fields[]
* << Fim da exclusão
CHANGING
p_t_excel_content[].
ENDFORM.
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
v_devlme LIKE bsak-wrbtr,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR008
...
p_rep_param-spras
p_rep_param-file_id
CHANGING
p_t_sect_height[].
PERFORM get_section_rows
USING
'CAPA (1)'
p_t_sect_height[]
CHANGING
v_linhacab.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'CAPA (2)'
p_t_sect_height[]
CHANGING
v_linhacab2.
PERFORM get_section_rows
USING
'CAPA (3)'
p_t_sect_height[]
CHANGING
v_linhacab3.
* << Fim da exclusão
PERFORM append_new_section
USING
'CAPA (1)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (1)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab TO current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM append_new_section
USING
'CAPA (2)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (2)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab2 TO current_row.
PERFORM append_new_section
USING
'CAPA (3)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (3)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab3 TO current_row.
* << Fim da exclusão
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDFORM.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR034
...
USING
p_header TYPE any
p_rep_param TYPE /pws/zycrt013
p_t_matrix TYPE t_matrix
p_t_report_fields TYPE t_rep_fields
CHANGING
p_t_excel_content TYPE t_excel_content
p_t_sect_height TYPE t_sect_height.
DATA: current_row TYPE i VALUE 1.
DATA:
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
v_linhacab TYPE i,
v_linhacab2 TYPE i,
v_linhacab3 TYPE i.
* << Fim da exclusão
* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE
v_linhacab 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[].
PERFORM get_section_rows
USING
'CAPA (01)'
p_t_sect_height[]
CHANGING
v_linhacab.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'CAPA (01)'
p_t_sect_height[]
CHANGING
v_linhacab2.
PERFORM get_section_rows
USING
'CAPA (01)'
p_t_sect_height[]
CHANGING
v_linhacab3.
* << Fim da exclusão
PERFORM append_new_section
USING
'CAPA (01)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (01)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab TO current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM append_new_section
USING
'CAPA (01)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (01)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab2 TO current_row.
PERFORM append_new_section
USING
'CAPA (01)'
current_row
CHANGING
p_t_excel_content[].
PERFORM fill_header_fields
USING
wa_cabecalho
'CAPA (01)'
current_row
p_t_matrix[]
p_t_report_fields[]
CHANGING
p_t_excel_content[].
ADD v_linhacab3 TO current_row.
* << Fim da exclusão
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDFORM.
FORM trata_procurador CHANGING p_proc.
FREE v_tab.
CLEAR: v_tab, f_tab.
REFRESH: v_tab, f_tab.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR035
...
ADD v_linharod TO current_row.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 2 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
ENDFORM.
FORM trata_procurador CHANGING p_proc.
FREE v_tab.
CLEAR: v_tab, f_tab.
REFRESH: v_tab, f_tab.
SELECT * FROM /pws/zycrt003
INTO TABLE itab_zycrt003.
LOOP AT itab_zycrt003.
MOVE itab_zycrt003-name TO v_tab.
APPEND v_tab.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCRR036
...
'ITENS'
p_t_sect_height[]
CHANGING
v_linhaite.
PERFORM get_section_rows
USING
'RODA1'
p_t_sect_height[]
CHANGING
v_linhasub.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
PERFORM get_section_rows
USING
'RODA2'
p_t_sect_height[]
CHANGING
v_linhasub2.
* << Fim da exclusão
DESCRIBE TABLE p_t_items LINES v_lines.
CLEAR: current_item, v_completo.
WHILE v_completo NE 'X'.
CLEAR: v_completo.
ADD 1 TO p_header-anexo.
PERFORM append_new_section
USING
'CAB'
current_row
CHANGING
...
...
current_row = current_row + v_linhasub.
PERFORM add_page_break
USING
current_row
CHANGING
p_t_excel_content[].
ENDWHILE.
itab_exel_temp[] = p_t_excel_content[].
SUBTRACT 1 FROM current_row.
section_rows = current_row.
* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE
DO 4 TIMES.
LOOP AT itab_exel_temp INTO wa_exel_temp.
ADD current_row TO wa_exel_temp-row.
IF wa_exel_temp-sheet EQ 'RODA1'.
wa_exel_temp-sheet = 'RODA2'.
ENDIF.
APPEND wa_exel_temp TO p_t_excel_content.
ENDLOOP.
ADD section_rows TO current_row.
ENDDO.
* << Fim da exclusão
DELETE FROM /pws/zycit474 WHERE nrseqd EQ p_nrseqd
AND pasta EQ 'M'.
INSERT /pws/zycit474 FROM TABLE itab_zycit474.
ENDFORM.
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',
...