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