Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Interanl table output problem

Former Member
0 Kudos

Hi Friends,

I am selecting condition types(kschl) & value(kbetr) from konv table. My requirement is I need to generate output columns(alv output) based on number of or available condition type in internal table.

Internal table records:

cond.recno kschl kbetr

5890 ZBP0 1000

5890 ZBP1 1500

5890 ZFK2 500

Req. output COLUMNS :

Cond recno ZBP0 ZBP1 ZFK2

5890 1000 1500 500.

How to achieve this ?

Note: how many condtion type are available not know until run time.

Pl.Dont give any link, Provide solution to this problem. <removed_by_moderator>

Thanks in advance

senthil kumar

Edited by: Julius Bussche on Sep 4, 2008 10:38 AM

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi senthil,

I have previously done the same requirment befor you need to go for dynamic ALV reporting concept.

Using select distinct kschl

................

into internal table ( which is of single column type )

----


  • FORM build_dyn_itab *

----


  • ........ *

----


FORM build_dyn_itab.

DATA: new_table TYPE REF TO data,

new_line TYPE REF TO data,

wa_it_fldcat TYPE lvc_s_fcat.

    • COLUMN COUNT TO CREATE DYNAMIC INTERNAL TABLE **

DATA: v_colpos TYPE i,

v_colpos_new TYPE i.

    • LOADING THE DYNAMIC FIELD CATELOG TO BE PASSED **

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VBELN'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'P_NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KUNGR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BZIRK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PLTYP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERNAM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 12.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRC'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KWMENG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKIMG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 17.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NONACC'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BRGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KDGRP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'POSNR'.

wa_it_fldcat-datatype = 'NUMC'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRSDT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MVGR2'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNODNV'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SOLD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BILL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIPADDR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 45.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAERK'.

wa_it_fldcat-datatype = 'CUKY'.

wa_it_fldcat-intlen = 5.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'XBLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 16.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MATNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTERM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NTGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KZWI2'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NETWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'HZTMS'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRODH'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGR5'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VGBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'INCO1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'LNAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BOLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WADAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAVWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZDIS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTMS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNOD1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FLAGK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 1.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos_new = v_colpos.

    • CREATE DYNAMIC FIELD COLUMNS **

LOOP AT i_kschl.

v_colpos_new = v_colpos_new + 1.

wa_it_fldcat-col_pos = v_colpos_new.

wa_it_fldcat-fieldname = i_kschl-kschl.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

CLEAR i_kschl.

ENDLOOP.

    • METHOD USED TO OBTAIN DYNAMIC INTERNAL TABLE AS PER CATELOG **

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

  • I_STYLE_TABLE =

it_fieldcatalog = it_fldcat

IMPORTING

ep_table = new_table

  • E_STYLE_FNAME =

EXCEPTIONS

generate_subpool_dir_full = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ASSIGN new_table->* TO <dyn_table>.

CREATE DATA new_line LIKE LINE OF <dyn_table>.

ASSIGN new_line->* TO <dyn_wa>.

ENDFORM.

    • LOADING ALL THE CONDITION TYPES TO BE DISPLAYED AS COLUMNS *

LOOP AT int_output_1.

READ TABLE i_kschl WITH KEY kschl = int_output_1-kschl.

IF sy-subrc <> 0.

i_kschl-kschl = int_output_1-kschl.

APPEND i_kschl.

CLEAR i_kschl.

ENDIF.

ENDLOOP.

      • Building the field catelog to display in the ALV grid format

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZTMS1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZTMS Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZNOD1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZNOD Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

****************************************************************

    • CODED BY RAMA MURTHY **

      • ***

  • REMOVING THE DYNAMIC CONDITION RECORDS COLUMNS WITH NO CONTENT *

      • ***

DATA: dyn_count TYPE i,

count TYPE i.

FIELD-SYMBOLS: <fs4>.

DESCRIBE TABLE <dyn_table> LINES dyn_count.

v_index_new = v_index.

LOOP AT i_kschl .

CLEAR count.

LOOP AT <dyn_table> INTO <dyn_wa>.

ASSIGN COMPONENT i_kschl-kschl OF STRUCTURE <dyn_wa> TO <fs4>.

IF ( ( <fs4> IS INITIAL ) OR ( <fs4> EQ 0 ) ).

count = count + 1.

ELSE.

CLEAR count.

EXIT.

ENDIF.

ENDLOOP.

IF count EQ dyn_count.

CONTINUE.

ELSE.

  • v_index_new = v_index.

*

  • loop at i_kschl.

v_index_new = v_index_new + 1.

wafieldcatlog1-fieldname = i_kschl-kschl.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = i_kschl-kschl.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index_new.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

  • endloop.

ENDIF.

endloop.

Now pass the above field catelog and internal table of type field symbol to the FM 'REUSE_ALV_GRID_DISPLAY'.

With best wishes,

Murthy.

7 REPLIES 7

Former Member
0 Kudos

hi,

Pls check this CHECK TABLE for condition types- T685 from this table based on application area we can get the condition types.

Regards

Lekha

peter_ruiz2
Active Contributor
0 Kudos

hi,

try this...

data:

i_output type ref to data.

field-symbols:

<fs_output> type table,

<fwa_otput> type any,

<fs_field> type any.

DEFINE dfn_fldct.

add 1 to lwa_fldct-col_pos.

lwa_fldct-fieldname = &1.

lwa_fldct-do_sum = &2.

lwa_fldct-reptext = &3.

lwa_fldct-coltext = &3.

lwa_fldct-datatype = &4.

lwa_fldct-outputlen = &5.

lwa_fldct-decimals_o = &6.

lwa_fldct-just = &7.

lwa_fldct-ref_table = &8.

append lwa_fldct to i_fldct.

END-OF-DEFINITION.

sort itab by kschl.

loop at itab into wa_itab.

at new kschl.

dfn_fldct: wa_itab-kschl '' '' 'CHAR' 12 0 'R' ''.

endat.

endloop.

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = i_fldct

IMPORTING

ep_table = i_output

EXCEPTIONS

generate_subpool_dir_full = 1

OTHERS = 2.

assign i_output->* to <fs_output>.

loop at <fs_output> assign <fwa_otput>.

loop at itab into wa_itab.

at new kschl.

assign component wa_itab-kschl of structure <fwa_otput> to <fs_field>.

write: / <fs_field>.

endat.

endloop.

endloop.

regards,

Peter

peter_ruiz2
Active Contributor
0 Kudos

hi,

try this...

data:

i_output type ref to data.

field-symbols:

<fs_output> type table,

<fwa_otput> type any,

<fs_field> type any.

DEFINE dfn_fldct.

add 1 to lwa_fldct-col_pos.

lwa_fldct-fieldname = &1.

lwa_fldct-do_sum = &2.

lwa_fldct-reptext = &3.

lwa_fldct-coltext = &3.

lwa_fldct-datatype = &4.

lwa_fldct-outputlen = &5.

lwa_fldct-decimals_o = &6.

lwa_fldct-just = &7.

lwa_fldct-ref_table = &8.

append lwa_fldct to i_fldct.

END-OF-DEFINITION.

sort itab by kschl.

loop at itab into wa_itab.

at new kschl.

dfn_fldct: wa_itab-kschl '' '' 'CHAR' 12 0 'R' ''.

endat.

endloop.

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = i_fldct

IMPORTING

ep_table = i_output

EXCEPTIONS

generate_subpool_dir_full = 1

OTHERS = 2.

assign i_output->* to <fs_output>.

loop at <fs_output> assign <fwa_otput>.

loop at itab into wa_itab.

at new kschl.

assign component wa_itab-kschl of structure <fwa_otput> to <fs_field>.

write: / <fs_field>.

endat.

endloop.

endloop.

regards,

Peter

0 Kudos

Hi peter,

Thanks for ur reply. Kindly send send me full code, with all required declaration.

Thanks in advance.

Regards,

s.senthil kumar

Former Member
0 Kudos

Hi senthil,

I have previously done the same requirment befor you need to go for dynamic ALV reporting concept.

Using select distinct kschl

................

into internal table ( which is of single column type )

----


  • FORM build_dyn_itab *

----


  • ........ *

----


FORM build_dyn_itab.

DATA: new_table TYPE REF TO data,

new_line TYPE REF TO data,

wa_it_fldcat TYPE lvc_s_fcat.

    • COLUMN COUNT TO CREATE DYNAMIC INTERNAL TABLE **

DATA: v_colpos TYPE i,

v_colpos_new TYPE i.

    • LOADING THE DYNAMIC FIELD CATELOG TO BE PASSED **

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VBELN'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'P_NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KUNGR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BZIRK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PLTYP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERNAM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 12.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRC'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KWMENG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKIMG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 17.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NONACC'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BRGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KDGRP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'POSNR'.

wa_it_fldcat-datatype = 'NUMC'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRSDT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MVGR2'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNODNV'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SOLD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BILL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIPADDR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 45.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAERK'.

wa_it_fldcat-datatype = 'CUKY'.

wa_it_fldcat-intlen = 5.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'XBLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 16.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MATNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTERM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NTGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KZWI2'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NETWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'HZTMS'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRODH'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGR5'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VGBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'INCO1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'LNAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BOLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WADAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAVWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZDIS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTMS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNOD1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FLAGK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 1.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos_new = v_colpos.

    • CREATE DYNAMIC FIELD COLUMNS **

LOOP AT i_kschl.

v_colpos_new = v_colpos_new + 1.

wa_it_fldcat-col_pos = v_colpos_new.

wa_it_fldcat-fieldname = i_kschl-kschl.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

CLEAR i_kschl.

ENDLOOP.

    • METHOD USED TO OBTAIN DYNAMIC INTERNAL TABLE AS PER CATELOG **

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

  • I_STYLE_TABLE =

it_fieldcatalog = it_fldcat

IMPORTING

ep_table = new_table

  • E_STYLE_FNAME =

EXCEPTIONS

generate_subpool_dir_full = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ASSIGN new_table->* TO <dyn_table>.

CREATE DATA new_line LIKE LINE OF <dyn_table>.

ASSIGN new_line->* TO <dyn_wa>.

ENDFORM.

    • LOADING ALL THE CONDITION TYPES TO BE DISPLAYED AS COLUMNS *

LOOP AT int_output_1.

READ TABLE i_kschl WITH KEY kschl = int_output_1-kschl.

IF sy-subrc <> 0.

i_kschl-kschl = int_output_1-kschl.

APPEND i_kschl.

CLEAR i_kschl.

ENDIF.

ENDLOOP.

      • Building the field catelog to display in the ALV grid format

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZTMS1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZTMS Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZNOD1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZNOD Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

****************************************************************

    • CODED BY RAMA MURTHY **

      • ***

  • REMOVING THE DYNAMIC CONDITION RECORDS COLUMNS WITH NO CONTENT *

      • ***

DATA: dyn_count TYPE i,

count TYPE i.

FIELD-SYMBOLS: <fs4>.

DESCRIBE TABLE <dyn_table> LINES dyn_count.

v_index_new = v_index.

LOOP AT i_kschl .

CLEAR count.

LOOP AT <dyn_table> INTO <dyn_wa>.

ASSIGN COMPONENT i_kschl-kschl OF STRUCTURE <dyn_wa> TO <fs4>.

IF ( ( <fs4> IS INITIAL ) OR ( <fs4> EQ 0 ) ).

count = count + 1.

ELSE.

CLEAR count.

EXIT.

ENDIF.

ENDLOOP.

IF count EQ dyn_count.

CONTINUE.

ELSE.

  • v_index_new = v_index.

*

  • loop at i_kschl.

v_index_new = v_index_new + 1.

wafieldcatlog1-fieldname = i_kschl-kschl.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = i_kschl-kschl.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index_new.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

  • endloop.

ENDIF.

endloop.

Now pass the above field catelog and internal table of type field symbol to the FM 'REUSE_ALV_GRID_DISPLAY'.

With best wishes,

Murthy.

0 Kudos

Hi,

Thnks for ur reply. kindly send me ur full code. with necessary comments if possible. I am new to this concept.

Thaks in advance.

regrds.

s.senthil kumar

0 Kudos

Here is the full code.

*----


*

  • INCLUDE ZV_INVPR_RM

*

*----


*

*----


*

  • Begin of Main Processing

*----


*

AT SELECTION-SCREEN.

PERFORM verify_options.

START-OF-SELECTION.

                                              • YVRISA01

***************************************

*----


*

  • Begin of Main Processing

*----


*

PERFORM select_sales_data. "Select sales data

PERFORM select_likp_data. "Select delivery data

PERFORM select_vbpa_data. "Select partner function data

PERFORM select_bkpf_data. "Select accounting data

PERFORM select_kna1_data. "Select customer address data

PERFORM select_lfa1_data. "Select vendor address data

PERFORM select_konv_data. "Select pricing data

PERFORM select_header_data. "Select header pricing "PCR3135-718

PERFORM join_tables. "Join tables for output

                                              • YVRISA01 *************************************

                                              • YVRPRC01 *************************************

*----


*

        • Begin of MAIN LOGIC

***********************************************

  • main report stream

PERFORM select_process. "select records

                                              • YVRPRC01 *************************************

                                              • YVRMNR01 *************************************

*****************************************************

    • Refresh the internal tables before any processing

*****************************************************

REFRESH int_vbrk_2.

REFRESH int_output_2.

****************************************************************

    • Select data and fill the output table as per selection screen

****************************************************************

PERFORM select-vbrk-data.

PERFORM fill_output_table.

                                          • YVRMNR01 *************************************

                                          • YVRSMR01 *************************************

*****************************************************

    • Refresh the internal tables before any processing

******************************************************

REFRESH int_vbrk_3.

REFRESH int_output_3.

REFRESH int_vbkd_3.

*****************************************************************

      • Select data and fill the output table as per selection screen

*****************************************************************

PERFORM select-vbrk-data_3.

PERFORM select_vbkd_data_3.

PERFORM fill_output_table_3.

*****************************************************

    • Check if data was selected as per selection screen

*****************************************************

IF ( int_output_3[] IS INITIAL ).

MESSAGE i031(zm). "No data for specified selection

ENDIF.

***************************************************************

    • Sort the internal table (selected data per selection screen)

***************************************************************

SORT int_output_3 BY zterm vbeln kunag.

                                          • YVRSMR01 *************************************

                                          • ZV_INVPR_R ***********************************

DATA: kschl(4) TYPE c.

SORT int_output BY vbeln posnr.

SORT int_output_3 BY vbeln posnr.

SORT int_output_2 BY vbeln posnr.

SORT int_output_1 BY vbeln posnr.

    • PRM **

  • INTERNAL TABLE TABLE DECLARED TO STORE THE CONDITION TYPES *

  • CREATED ON 19-07-2007 BY RAMA MURTHY **

DATA:BEGIN OF i_kschl OCCURS 0,

kschl LIKE komv-kschl,

END OF i_kschl.

DATA: tot_i_kschl TYPE i.

    • LOADING ALL THE CONDITION TYPES TO BE DISPLAYED AS COLUMNS *

LOOP AT int_output_1.

READ TABLE i_kschl WITH KEY kschl = int_output_1-kschl.

IF sy-subrc <> 0.

i_kschl-kschl = int_output_1-kschl.

APPEND i_kschl.

CLEAR i_kschl.

ENDIF.

ENDLOOP.

    • COUNTING THE CONDITION RECORDS SELECTED **

    • **

  • COMMENTED BY RAMA MURTHY ON 27-07-2007 *

    • **

  • describe table i_kschl lines tot_i_kschl.

    • APPLYING CONDITION TO PREVENT ALV COLUMN LIST FROM EXCEED BEYOND 90 *

    • **

  • COMMENTED BY RAMA MURTHY ON 27-07-2007 *

    • **

  • if tot_i_kschl gt 45.

  • message I167.

  • endif.

  • else.

    • GLOBAL FIELD SYMBOLS USED TO STORE DYNAMIC I_TABLE AND WA **

FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,

<dyn_wa>.

DATA: it_fldcat TYPE lvc_t_fcat.

PERFORM build_dyn_itab.

        • CODED BY MEENAKSHI ****

  • perform get_pricon_text.

    • COMMENTED BY RAMA MURTHY ON 19-07-2007 **

  • loop at int_output into wa_output.

*

*

  • move wa_output-sold to wa_main1-sold.

  • move wa_output-bill to wa_main1-bill.

  • move wa_output-ship to wa_main1-ship.

  • concatenate wa_output-ort01

  • wa_output-regio

  • wa_output-pstlz

  • into wa_main1-shipaddr separated by SPACE.

    • move wa_output-ort01 to wa_main1-ort01.

    • move wa_output-pstlz to wa_main1-pstlz.

    • move wa_output-regio to wa_main1-regio.

*

*

  • move wa_output-waerk to wa_main1-waerk.

  • move wa_output-vbeln to wa_main1-vbeln.

  • move wa_output-posnr to wa_main1-posnr.

  • move wa_output-fkdat to wa_main1-fkdat.

  • move wa_output-aubel to wa_main1-aubel.

  • move wa_output-erdat to wa_main1-erdat.

  • move wa_output-xblnr to wa_main1-xblnr.

  • move wa_output-matnr to wa_main1-matnr.

  • move wa_output-zterm to wa_main1-zterm.

  • move wa_output-ntgew to wa_main1-ntgew.

  • move wa_output-kzwi2 to wa_main1-kzwi2.

  • move wa_output-netwr to wa_main1-netwr.

  • move wa_output-hztms to wa_main1-hztms.

  • move wa_output-prodh to wa_main1-prodh.

  • move wa_output-kvgr5 to wa_main1-kvgr5.

  • move wa_output-vgbel to wa_main1-vgbel.

  • move wa_output-inco1 to wa_main1-inco1.

  • move wa_output-lname1 to wa_main1-lname1.

  • move wa_output-bolnr to wa_main1-bolnr.

  • move wa_output-wadat to wa_main1-wadat.

  • move wa_output-wavwr to wa_main1-wavwr.

  • move wa_output-zdis to wa_main1-zdis.

  • move wa_output-ztms to wa_main1-ztms.

  • move wa_output-znod to wa_main1-znod.

*

*

  • read table int_output_3 with key vbeln = wa_output-vbeln

  • posnr = wa_output-posnr.

*

*

  • move int_output_3-name1 to wa_main1-name1.

  • move int_output_3-kvgrc to wa_main1-kvgrc.

  • move int_output_3-kvgrd to wa_main1-kvgrd.

  • move int_output_3-auart to wa_main1-auart.

  • move int_output_3-kwmeng to wa_main1-kwmeng.

  • move int_output_3-fkimg to wa_main1-fkimg.

  • move int_output_3-nonacc to wa_main1-nonacc.

  • move int_output_3-brgew to wa_main1-brgew.

*

*

  • read table int_output_2 with key vbeln = wa_output-vbeln

  • posnr = wa_output-posnr.

*

  • move int_output_2-kdgrp to wa_main1-kdgrp.

    • move int_output_2-posnr to wa_main1-posnr.

  • move int_output_2-prsdt to wa_main1-prsdt.

  • move int_output_2-mvgr2 to wa_main1-mvgr2.

  • move int_output_2-znodnv to wa_main1-znodnv.

*

*

  • loop at int_output_1 into wa_output_1 where vbeln = wa_output-vbeln

  • and posnr = wa_output-posnr

*.

*

  • move wa_output_1-p_name1 to wa_main1-p_name1.

  • move wa_output_1-kunrg to wa_main1-kunrg.

  • move wa_output_1-fkart to wa_main1-fkart.

  • move wa_output_1-bzirk to wa_main1-bzirk.

  • move 'X' to wa_main1-flagk.

    • move wa_output_1-kschl to wa_main1-kschl." needs to be

**t685t-vtext

************june 19th *************************

**reading the des for con type

*

**read table t_condes with key kschl = wa_output_1-kschl.

    • move t_condes-vtext to wa_main1-vtext.

    • move wa_output_1-kwert to wa_main1-kwert.

  • move wa_output_1-kschl to kschl.

*

  • case kschl.

  • when 'VPRS'.

  • move wa_output_1-kwert to wa_main1-vprs1.

  • when 'ZANT'.

  • move wa_output_1-kwert to wa_main1-zant.

  • when 'ZCOM'.

  • move wa_output_1-kwert to wa_main1-zcom.

  • when 'ZCOS'.

  • move wa_output_1-kwert to wa_main1-zcos.

  • when 'ZDFT'.

  • move wa_output_1-kwert to wa_main1-zdft.

  • when 'ZDIS'.

  • move wa_output_1-kwert to wa_main1-zdis1.

  • when 'ZFDD'.

  • move wa_output_1-kwert to wa_main1-zfdd.

  • when 'ZINC'.

  • move wa_output_1-kwert to wa_main1-zinc.

  • when 'ZL1D'.

  • move wa_output_1-kwert to wa_main1-zl1d.

  • when 'ZL2D'.

  • move wa_output_1-kwert to wa_main1-zl2d.

  • when 'ZL3D'.

  • move wa_output_1-kwert to wa_main1-zl3d.

  • when 'ZL4D'.

  • move wa_output_1-kwert to wa_main1-zl4d.

  • when 'ZQYD'.

  • move wa_output_1-kwert to wa_main1-zqyd.

  • when 'ZRDD'.

  • move wa_output_1-kwert to wa_main1-zrdd.

  • when 'ZTMS'.

  • move wa_output_1-kwert to wa_main1-ztms1.

  • when 'ZTWC'.

  • move wa_output_1-kwert to wa_main1-ztwc.

  • when 'ZWCA'.

  • move wa_output_1-kwert to wa_main1-zwca.

  • when 'ZNOD'.

  • move wa_output_1-kwert to wa_main1-znod1.

  • when 'SKTV'.

  • move wa_output_1-kwert to wa_main1-sktv.

  • when 'ZCAL'.

  • move wa_output_1-kwert to wa_main1-zcal.

  • when 'ZBTS'.

  • move wa_output_1-kwert to wa_main1-zbts.

  • when 'ZSSC'.

  • move wa_output_1-kwert to wa_main1-zssc.

*

*

*

*

*

*

  • endcase.

*

*

************june 19th *************************

  • move wa_output_1-pltyp to wa_main1-pltyp.

  • move wa_output_1-ernam to wa_main1-ernam.

*

    • append wa_main1 to t_main.

  • clear wa_output_1.

  • endloop.

*

*

*

  • append wa_main1 to t_main.

*

  • clear wa_main1.

  • clear wa_output_1.

  • clear wa_output.

  • clear kschl.

*

  • ENDLOOP.

    • COMMENTED BY RAMA MURTHY ON 19-07-2007 ***********************

    • SORT INT_VBRP_1 BY MATNR.

  • SORT t_main BY MATNR.

  • DELETE t_main WHERE NOT MATNR IN s_MATNR.

*

    • SORT INT_VBRP_1 BY KVGR5.

  • SORT t_main BY kvgr5.

  • DELETE t_main WHERE NOT KVGR5 IN s_KVGR5.

*

  • DELETE t_main WHERE flagk ne 'X'.

******************************************************************

    • POPULATING THE DYNAMIC INTERNAL TABLE **

******************************************************************

FIELD-SYMBOLS: <fs2>.

DATA: shipaddr_dup(45) TYPE c,

flag_val TYPE c VALUE 'X'.

DATA : v_index TYPE i,

v_index_new TYPE i,

v_index_cond TYPE i.

    • VARIABLE TO COUNT CONDITION VALUES PER CONDITION TYPES **

LOOP AT int_output INTO wa_output.

ASSIGN COMPONENT 'SOLD' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-sold.

ASSIGN COMPONENT 'BILL' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-bill.

ASSIGN COMPONENT 'SHIP' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-ship.

CONCATENATE wa_output-ort01

wa_output-regio

wa_output-pstlz

INTO shipaddr_dup SEPARATED BY space.

ASSIGN COMPONENT 'SHIPADDR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = shipaddr_dup.

ASSIGN COMPONENT 'WAERK' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-waerk.

ASSIGN COMPONENT 'VBELN' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-vbeln.

ASSIGN COMPONENT 'POSNR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-posnr.

ASSIGN COMPONENT 'FKDAT' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-fkdat.

ASSIGN COMPONENT 'AUBEL' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-aubel.

ASSIGN COMPONENT 'ERDAT' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-erdat.

ASSIGN COMPONENT 'XBLNR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-xblnr.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-matnr.

ASSIGN COMPONENT 'ZTERM' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-zterm.

ASSIGN COMPONENT 'NTGEW' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-ntgew.

ASSIGN COMPONENT 'KZWI2' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-kzwi2 .

ASSIGN COMPONENT 'NETWR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-netwr .

ASSIGN COMPONENT 'HZTMS' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-hztms .

ASSIGN COMPONENT 'PRODH' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-prodh .

ASSIGN COMPONENT 'KVGR5' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-kvgr5 .

ASSIGN COMPONENT 'VGBEL' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-vgbel .

ASSIGN COMPONENT 'INCO1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-inco1 .

ASSIGN COMPONENT 'LNAME1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-lname1 .

ASSIGN COMPONENT 'BOLNR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-bolnr .

ASSIGN COMPONENT 'WADAT' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-wadat .

ASSIGN COMPONENT 'WAVWR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-wavwr .

ASSIGN COMPONENT 'ZDIS1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-zdis1.

ASSIGN COMPONENT 'ZTMS1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-ztms1.

ASSIGN COMPONENT 'ZNOD1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output-znod1.

READ TABLE int_output_3 WITH KEY vbeln = wa_output-vbeln

posnr = wa_output-posnr.

ASSIGN COMPONENT 'NAME1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-name1.

ASSIGN COMPONENT 'KVGRC' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-kvgrc.

ASSIGN COMPONENT 'KVGRD' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-kvgrd.

ASSIGN COMPONENT 'AUART' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-auart.

ASSIGN COMPONENT 'KWMENG' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-kwmeng.

ASSIGN COMPONENT 'FKIMG' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-fkimg.

ASSIGN COMPONENT 'NONACC' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-nonacc.

ASSIGN COMPONENT 'BRGEW' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_3-brgew.

READ TABLE int_output_2 WITH KEY vbeln = wa_output-vbeln

posnr = wa_output-posnr.

ASSIGN COMPONENT 'KDGRP' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_2-kdgrp.

ASSIGN COMPONENT 'PRSDT' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_2-prsdt.

ASSIGN COMPONENT 'MVGR2' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_2-mvgr2.

ASSIGN COMPONENT 'ZNODNV' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = int_output_2-znodnv.

LOOP AT int_output_1 INTO wa_output_1 WHERE vbeln = wa_output-vbeln

AND posnr = wa_output-posnr.

ASSIGN COMPONENT 'P_NAME1' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-p_name1.

ASSIGN COMPONENT 'KUNGR' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-kunrg.

ASSIGN COMPONENT 'FKART' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-fkart.

ASSIGN COMPONENT 'BZIRK' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-bzirk.

ASSIGN COMPONENT 'FLAGK' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = flag_val.

    • CHANGED THE COLUMN POSITIONS OF PLTYP ERNAM FIELDS AS COMPARED TO

  • PREVIOUS STRUCTURE **

ASSIGN COMPONENT 'PLTYP' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-pltyp.

ASSIGN COMPONENT 'ERNAM' OF STRUCTURE <dyn_wa> TO <fs2>.

<fs2> = wa_output_1-ernam.

    • POPULATING DYNAMIC COLUMNS **

PERFORM build_condtyp.

CLEAR wa_output_1.

ENDLOOP.

  • APPENDING THE CONTENTS OF DYNAMIC WORK AREA TO DYNAMIC INTERNAL TABLE.

APPEND <dyn_wa> TO <dyn_table>.

CLEAR <dyn_wa>.

CLEAR wa_output_1.

CLEAR wa_output.

CLEAR kschl.

ENDLOOP.

    • APPLYING SOME REQUIRED VALIDATIONS **

PERFORM filter_dyn_table.

PERFORM pre_cat.

    • BUILD THE FINAL ALV LAYOUT DISPLAY **

IF v_index_cond GT 45.

MESSAGE i167.

ENDIF.

PERFORM build_alv_output.

  • endif. ** commented by VMA.

***********************************************************************

              • SUBROUTENES USED IN THE MAIN PROCESS ***********

***********************************************************************

----


  • FORM build_dyn_itab *

----


  • ........ *

----


FORM build_alv_output.

    • BUILDING FIELD CATELOG FOR ALV **

gd_repid = sy-repid.

    • ALV DISPLAY **

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = gd_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = it_fieldcatalog1[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

  • IT_EVENTS = i_events

  • IT_EVENT_EXIT =

is_print = gd_prntparams

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = <dyn_table>

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM.

    • FORM TO POPULATE THE ROWS CORRESPONDING TO THE COLUMS OF CONDITION

  • TYPES **

FORM build_condtyp.

FIELD-SYMBOLS: <fs1>.

LOOP AT i_kschl WHERE kschl = wa_output_1-kschl.

ASSIGN COMPONENT i_kschl-kschl OF STRUCTURE <dyn_wa> TO <fs1>.

<fs1> = wa_output_1-kwert.

ENDLOOP.

ENDFORM.

*&----


*

*& Form verify_options

*&----


*

FORM verify_options.

SELECT SINGLE stunr

FROM t683t INTO wk_zusaam_stunr

WHERE kalsm = 'ZUSAAM'

AND vtext = 'Net Value for Item'.

IF sy-subrc <> 0.

MESSAGE e999(fr)." WITH text-074.

wk_zusaam_exist = 'N'.

ENDIF.

SELECT SINGLE stunr

FROM t683t INTO wk_zcanam_stunr

WHERE kalsm = 'ZCANAM'

AND vtext = 'Net Value for Item'.

IF sy-subrc <> 0.

MESSAGE e999(fr)." WITH text-075.

wk_zcanam_exist = 'N'.

ENDIF.

*check org in Master

IF NOT s_vkorg-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM tvko

WHERE vkorg IN s_vkorg.

IF sy-subrc <> 0.

MESSAGE e021.

ENDIF.

ENDIF. "PCR 3135-599

*check sold-to party in Master

IF NOT s_kunag-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM kna1

WHERE kunnr IN s_kunag.

IF sy-subrc <> 0.

MESSAGE e024.

ENDIF.

ENDIF. "PCR 3135-599

*check price list type in Master

IF NOT s_pltyp-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM t189

WHERE pltyp IN s_pltyp.

IF sy-subrc <> 0.

MESSAGE e097.

ENDIF.

ENDIF. "PCR 3135-599

*Check Customer Group in Master

IF NOT s_kdgrp-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM t151

WHERE kdgrp IN s_kdgrp.

IF sy-subrc <> 0.

MESSAGE e038.

ENDIF.

ENDIF. "PCR 3135-599

*Check Trade Class in Master

IF NOT s_kvgr5-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM tvv5

WHERE kvgr5 IN s_kvgr5.

IF sy-subrc <> 0.

MESSAGE e025.

ENDIF.

ENDIF. "PCR 3135-599

*check billing type in Master

IF NOT s_fkart-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM tvfk

WHERE fkart IN s_fkart.

IF sy-subrc <> 0.

MESSAGE e073.

ENDIF.

ENDIF. "PCR 3135-599

*check sales document type in Master

IF NOT s_auart-low IS INITIAL. "PCR 3135-599

SELECT SINGLE * FROM tvak

WHERE auart IN s_auart.

IF sy-subrc <> 0.

MESSAGE e082.

ENDIF.

ENDIF. "PCR 3135-599

ENDFORM.

                                        • AT SELECTION SCREEN FORMS

*************************

                                              • YVRISA01 - FORMS

*******************************

*----


*

  • Form SELECT_SALES_DATA

*----


*

  • Select sales data from vbrk, vbrp, vbak, and vbap

*----


*

FORM select_sales_data.

SELECT vbrk~vbeln "Billing Doc

vbrk~fkart "Billing type

vbrk~waerk "Currency

vbrk~knumv "Number of the document condition

vbrk~fkdat "Billing Date

vbrk~inco1 "Terms of Delivery

vbrk~zterm "Payment Terms

vbrk~bukrs "Company Code

vbrk~kunag "Sold-to party

vbrk~xblnr "PO Reference No

vbrp~posnr "Billing Doc Item

vbrp~fkimg "Quantity

vbrp~ntgew "Net Weight

vbrp~netwr "Net Value

vbrp~vgbel "Delivery No

vbrp~vgpos "Delivery Item

vbrp~aubel "Sales Doc

vbrp~aupos "Sales Doc Item

vbrp~matnr "Material

vbrp~prodh "Product Hierarchy

vbrp~wavwr "Cost

vbrp~kzwi2 "Subtotal 2

vbrp~kvgr5 "Trade Class

vbak~erdat "Sales Doc Creation Date

vbak~knumv "Condition no for SD "PCR3135-718

vbap~posnr "Sales Doc Item

INTO TABLE int_vbrk

FROM vbrk

INNER JOIN vbrp ON vbrkvbeln = vbrpvbeln

INNER JOIN vbap ON vbrpaubel = vbapvbeln

AND vbrpaupos = vbapposnr

INNER JOIN vbak ON vbapvbeln = vbakvbeln

WHERE vbrk~vkorg IN s_vkorg

AND vbrk~vbeln IN s_vbeln

AND vbrk~kunag IN s_kunag

AND vbrk~pltyp IN s_pltyp

AND vbrk~kdgrp IN s_kdgrp

AND vbrk~fkart IN s_fkart

AND vbrk~fkdat IN s_fkdat

AND vbrp~kvgr5 IN s_kvgr5

AND vbrp~mvgr2 IN s_mvgr2

AND vbrp~mvgr1 IN s_mvgr1 " added for ZV_INVPR_R

AND vbrp~mvgr3 IN s_mvgr3 " added for ZV_INVPR_R

AND vbrp~mvgr4 IN s_mvgr4 " added for ZV_INVPR_R

AND vbrp~mvgr5 IN s_mvgr5

AND vbak~auart IN s_auart

  • AND ( vbrkkalsm = 'ZUSAAM' OR vbrkkalsm = 'ZCANAM' )"

*added

  • " for ZV_INVPR_R

  • commented on 16-Jul-07

AND vbrk~erdat IN s_erdat " added for ZV_INVPR_R

AND vbrk~waerk IN s_waerk " added for ZV_INVPR_R

AND vbrp~matnr IN s_matnr " added for ZV_INVPR_R

AND vbrk~kunrg IN s_kunrg " added for ZV_INVPR_R

AND vbrk~bzirk IN s_bzirk " added for ZV_INVPR_R

AND vbak~ernam IN s_ernam." added for ZV_INVPR_R

IF int_vbrk[] IS INITIAL.

MESSAGE i999(fr) WITH text-010.

STOP.

ELSE.

SORT int_vbrk BY vbeln posnr.

ENDIF.

ENDFORM. " SELECT_SALES_DATA

*----


*

  • Form SELECT_LIKP_DATA

*----


*

  • Select likp data

*----


*

FORM select_likp_data.

int_delv[] = int_vbrk[].

SORT int_delv[] BY vgbel.

DELETE ADJACENT DUPLICATES FROM int_delv COMPARING vgbel.

IF NOT int_delv[] IS INITIAL.

SELECT likp~vbeln "Delivery number

bolnr "Bill of Lading

wadat_ist "Ship Date

posnr

INTO TABLE int_likp

FROM likp

INNER JOIN lips ON likpvbeln = lipsvbeln

FOR ALL entries IN int_delv

WHERE likp~vbeln = int_delv-vgbel.

ENDIF.

IF NOT int_likp[] IS INITIAL. "3141-218

SORT int_likp BY vbeln posnr.

ENDIF. "3141-218

FREE int_delv. "3141-218

ENDFORM. " SELECT_LIKP_DATA

*----


*

  • Form SELECT_BKPF_DATA

*----


*

  • Select accounting data

*----


*

FORM select_bkpf_data.

    • Create fiscal year range

*if s_fkdat-high is initial.

  • move s_fkdat-low+0(4) to ra_gjahr-low.

  • if s_fkdat-low+2(2) = '12'.

  • wf_year = ra_gjahr-low + 1.

  • move wf_year to ra_gjahr-high.

  • move 'BT' to ra_gjahr-option.

  • move 'I' to ra_gjahr-sign.

  • append ra_gjahr.

  • else.

  • move 'EQ' to ra_gjahr-option.

  • move 'I' to ra_gjahr-sign.

  • append ra_gjahr.

  • endif.

*else.

  • move s_fkdat-low+0(4) to ra_gjahr-low.

  • if s_fkdat-high+2(2) = '12'.

  • wf_year = ra_gjahr-low + 1.

  • move wf_year to ra_gjahr-high.

  • move 'BT' to ra_gjahr-option.

  • move 'I' to ra_gjahr-sign.

  • append ra_gjahr.

  • else.

  • move 'EQ' to ra_gjahr-option.

  • move 'I' to ra_gjahr-sign.

  • append ra_gjahr.

  • endif.

*endif.

  • Select accouting document data

IF NOT int_cust[] IS INITIAL.

IF NOT s_monat IS INITIAL.

IF NOT s_gjahr IS INITIAL.

SELECT bukrs "Company code

belnr "Accounting doc

gjahr "Fiscal year

awkey "Object key

FROM bkpf

INTO TABLE int_bkpf

FOR ALL ENTRIES IN int_cust

WHERE bukrs = int_cust-bukrs

AND belnr BETWEEN '0005000000' AND '0005999999'

AND gjahr IN s_gjahr

AND monat IN s_monat.

ENDIF.

ENDIF.

ENDIF.

IF NOT int_bkpf[] IS INITIAL. "3141-218

SORT int_bkpf BY bukrs awkey.

ENDIF. "3141-218

FREE int_cust. "3141-218

ENDFORM. " SELECT_BKPF_DATA

*----


*

  • Form SELECT_VBFA_DATA

*----


*

  • Select partner function data from vbpa

*----


*

FORM select_vbpa_data.

int_cust[] = int_vbrk[].

SORT int_cust BY vbeln.

DELETE ADJACENT DUPLICATES FROM int_cust COMPARING vbeln.

IF NOT int_cust[] IS INITIAL.

SELECT vbeln "SD Document number

parvw "Partner function

kunnr "Customer number

lifnr "Account number of vendor

FROM vbpa

INTO TABLE int_vbpa

FOR ALL ENTRIES IN int_cust

WHERE vbeln = int_cust-vbeln

AND posnr BETWEEN '000000' AND '999999'.

ENDIF.

IF NOT int_vbpa[] IS INITIAL. "3141-218

SORT int_vbpa BY vbeln parvw.

ENDIF. "3141-218

ENDFORM. " SELECT_VBPA_DATA

*----


*

  • Form SELECT_KNA1_DATA

*----


*

  • Select address data

*----


*

FORM select_kna1_data.

int_custven[] = int_vbpa[]. "3141-218

SORT int_custven BY kunnr. "3141-218

DELETE ADJACENT DUPLICATES

FROM int_custven COMPARING kunnr. "3141-218

IF NOT int_custven[] IS INITIAL. "3141-218

SELECT kunnr "Customer

name1 "Name

ort01 "City

pstlz "Postal Code

regio "Region

FROM kna1

INTO TABLE int_kna1

FOR ALL ENTRIES IN int_custven "3141-218

WHERE kunnr = int_custven-kunnr. "3141-218

ENDIF. "3141-218

IF NOT int_kna1[] IS INITIAL. "3141-218

SORT int_kna1.

ENDIF. "3141-218

FREE int_custven. "3141-218

ENDFORM. " SELECT_KNA1_DATA

*----


*

  • Form SELECT_LFA1_DATA

*----


*

  • Select vendor address data

*----


*

FORM select_lfa1_data.

int_custven[] = int_vbpa[]. "3141-218

SORT int_custven BY lifnr. "3141-218

DELETE ADJACENT DUPLICATES

FROM int_custven COMPARING lifnr. "3141-218

IF NOT int_custven[] IS INITIAL. "3141-218

SELECT lifnr "Vendor

name1 "Name

FROM lfa1

INTO TABLE int_lfa1

FOR ALL ENTRIES IN int_custven "3141-218

WHERE lifnr = int_custven-lifnr. "3141-218

ENDIF. "3141-218

IF NOT int_lfa1[] IS INITIAL. "3141-218

SORT int_lfa1.

ENDIF. "3141-218

FREE int_custven. "3141-218

ENDFORM. " SELECT_LFA1_DATA

*----


*

  • Form SELECT_KONV_DATA

*----


*

  • Select data from konv

*----


*

FORM select_konv_data.

int_price[] = int_vbrk[].

IF NOT int_price[] IS INITIAL. "3141-218

SORT int_price BY vbeln posnr. "3141-218

DELETE ADJACENT DUPLICATES FROM int_price

COMPARING vbeln posnr. "3141-218

ENDIF. "3141-218

IF NOT int_price[] IS INITIAL.

SELECT knumv "Number of the document condition

kposn "Condition item number

kschl "Condition type

krech "Calculation type for condition

kawrt "Condition base value

kbetr "Rate (condition amount orpercentag

kpein "Condition pricing unit

FROM konv

INTO TABLE int_konv

FOR ALL ENTRIES IN int_price

WHERE knumv = int_price-knumv

AND kposn = int_price-posnr

AND ( kschl = 'ZNOD'

OR kschl = 'ZTMS'

OR kschl = 'ZDIS'

OR kschl = 'VPRS' ).

SORT int_konv BY knumv kposn kschl. "3141-218

  • delete int_konv where not kschl in s_kschl. " added for zv_invpr_r

*&*

*loop at int_konv.

  • if not int_konv-kschl in s_kschl.

  • int_konv-flagk = 'X'.

  • modify int_konv.

  • endif.

*

*endloop.

*

ENDIF.

*sort int_konv by knumv kposn kschl. "3141-218

FREE int_price.

ENDFORM. " SELECT_KONV_DATA

*----


*

  • Form SELECT_HEADER_DATA

*----


*

  • Select header pricing data. Select all ZTMS values from

  • the sales document.

*----


*

FORM select_header_data.

int_price[] = int_vbrk[].

IF NOT int_price[] IS INITIAL.

SORT int_price BY knumv1. "3141-218

DELETE ADJACENT DUPLICATES FROM int_price

COMPARING knumv. "3141-218

ENDIF. "3141-218

IF NOT int_price[] IS INITIAL. "3141-218

SELECT knumv "Number of the document condition

kschl "Condition type

krech "Calculation type for condition

kawrt "Condition base value

kbetr "Rate (condition amount or percentage

kpein "Condition pricing unit

kwert "Condition vaue

FROM konv

INTO TABLE int_konv1

FOR ALL ENTRIES IN int_price

WHERE knumv = int_price-knumv1

AND kschl = 'ZTMS'.

ENDIF.

FREE int_price. "3141-218

IF NOT int_konv1[] IS INITIAL. "3141-218

SORT int_konv1 BY knumv.

  • Sum ZTMS values for all items in each SD doc, ie. by Condition No.

LOOP AT int_konv1.

MOVE: int_konv1-kwert TO int_konv2-wavwr,

int_konv1-knumv TO int_konv2-knumv.

COLLECT int_konv2.

ENDLOOP.

ENDIF. "3141-218

FREE int_konv1. "3141-218

SORT int_konv2.

ENDFORM. " SELECT_HEADER_DATA

*----


*

  • Form COL_HEADERS

*----


*

  • Write column headings

*----


*

*FORM col_headers.

    • 1st line

  • FORMAT COLOR 1 ON INTENSIFIED ON.

  • WRITE: / text-006,

  • 130 text-007.

  • ULINE.

*

    • 2nd line

  • FORMAT COLOR 2 ON INTENSIFIED ON.

  • WRITE: / text-008,

  • 129 text-009.

*

  • ULINE.

  • FORMAT RESET.

*

*ENDFORM. " COL_HEADERS

*----


*

  • Form JOIN_TABLES

*----


*

  • Join tables for output

*----


*

FORM join_tables.

SORT int_vbrk BY vgbel vgpos. "3141-218

LOOP AT int_vbrk.

  • Check if billing document is in fiscal year/period

IF NOT s_gjahr IS INITIAL.

IF NOT s_monat IS INITIAL.

READ TABLE int_bkpf WITH KEY bukrs = int_vbrk-bukrs

awkey = int_vbrk-vbeln

BINARY SEARCH.

IF sy-subrc <> 0.

CONTINUE.

ENDIF.

ENDIF.

ENDIF.

MOVE: int_vbrk-kunag TO int_output-sold, "Sold to party

int_vbrk-vbeln TO int_output-vbeln, "Billing doc no

*******Added for ZV_INVPR_R

int_vbrk-posnr TO int_output-posnr, "ITEM

***************************

int_vbrk-fkdat TO int_output-fkdat, "Billing doc date

int_vbrk-aubel TO int_output-aubel, "Sales doc no

int_vbrk-erdat TO int_output-erdat, "Sales doc date

int_vbrk-xblnr TO int_output-xblnr, "PO number

int_vbrk-matnr TO int_output-matnr, "Material

int_vbrk-fkimg TO int_output-fkimg, "Quantity

int_vbrk-ntgew TO int_output-ntgew, "Net weight

int_vbrk-prodh TO int_output-prodh, "Product hierarchy

int_vbrk-kvgr5 TO int_output-kvgr5, "Trade class

int_vbrk-fkart TO int_output-fkart, "Billing type

int_vbrk-vgbel TO int_output-vgbel, "Delivery no

int_vbrk-zterm TO int_output-zterm, "Payment terms

int_vbrk-kzwi2 TO int_output-kzwi2, "Net value beforeadj

int_vbrk-netwr TO int_output-netwr, "Net value after adj

int_vbrk-inco1 TO int_output-inco1, "Incoterms

int_vbrk-waerk TO int_output-waerk. "Currency

  • Move delivery data

READ TABLE int_likp WITH KEY vbeln = int_vbrk-vgbel

BINARY SEARCH.

IF sy-subrc = 0.

MOVE: int_likp-bolnr TO int_output-bolnr, "BOL

int_likp-wadat_ist TO int_output-wadat. "Ship Date

ENDIF.

*&*

*

*read table int_konv with key knumv = int_vbrk-knumv

  • kposn = int_vbrk-posnr

  • kschl in s_kschl.

  • if sy-subrc <> 0.

  • move 'X' to int_output-flagk.

  • endif.

  • Move VPRS value (Cost)

READ TABLE int_konv WITH KEY knumv = int_vbrk-knumv

kposn = int_vbrk-posnr

kschl = 'VPRS'

BINARY SEARCH.

IF sy-subrc = 0.

IF int_konv-krech <> 'C'.

MOVE int_konv-kawrt TO int_output-wavwr.

ELSE.

int_output-wavwr = int_konv-kbetr / int_konv-kpein.

ENDIF.

ENDIF.

  • Move ZNOD value

READ TABLE int_konv WITH KEY knumv = int_vbrk-knumv

kposn = int_vbrk-posnr

kschl = 'ZNOD'

BINARY SEARCH.

IF sy-subrc = 0.

IF int_konv-krech <> 'C'.

MOVE int_konv-kawrt TO int_output-znod1.

ELSE.

MOVE int_konv-kbetr TO int_output-znod1.

ENDIF.

ENDIF.

  • Move ZTMS value

READ TABLE int_konv WITH KEY knumv = int_vbrk-knumv

kposn = int_vbrk-posnr

kschl = 'ZTMS'

BINARY SEARCH.

IF sy-subrc = 0.

IF int_konv-krech <> 'C'.

MOVE int_konv-kawrt TO int_output-ztms1.

ELSE.

MOVE int_konv-kbetr TO int_output-ztms1.

ENDIF.

ENDIF.

  • Move ZDIS value

READ TABLE int_konv WITH KEY knumv = int_vbrk-knumv

kposn = int_vbrk-posnr

kschl = 'ZDIS'

BINARY SEARCH.

IF sy-subrc = 0.

IF int_konv-krech <> 'C'.

MOVE int_konv-kawrt TO int_output-zdis1.

ELSE.

MOVE int_konv-kbetr TO int_output-zdis1.

ENDIF.

ENDIF.

  • Move Bill-to party

READ TABLE int_vbpa WITH KEY vbeln = int_vbrk-vbeln

parvw = 'RE'

BINARY SEARCH.

IF sy-subrc = 0.

MOVE int_vbpa-kunnr TO int_output-bill.

ENDIF.

  • Move Ship-to party

CLEAR int_vbpa.

READ TABLE int_vbpa WITH KEY vbeln = int_vbrk-vbeln

parvw = 'WE'

BINARY SEARCH.

IF sy-subrc = 0.

MOVE int_vbpa-kunnr TO int_output-ship.

ENDIF.

  • Move ship-to address

READ TABLE int_kna1 WITH KEY kunnr = int_vbpa-kunnr

BINARY SEARCH.

IF sy-subrc = 0.

MOVE: int_kna1-ort01 TO int_output-ort01,

int_kna1-regio TO int_output-regio,

int_kna1-pstlz TO int_output-pstlz.

ENDIF.

  • Determine Forwarding Agent

CLEAR int_vbpa.

READ TABLE int_vbpa WITH KEY vbeln = int_vbrk-vbeln

parvw = 'SP'

BINARY SEARCH.

  • Move Forwarding Agent name

IF sy-subrc = 0.

READ TABLE int_lfa1 WITH KEY lifnr = int_vbpa-lifnr

BINARY SEARCH.

IF sy-subrc = 0.

MOVE int_lfa1-lname1 TO int_output-lname1.

ENDIF.

ENDIF.

  • NKA7077 PCR 3135-718 11/05/03 Begin

  • Move the ZTMS price from the header level

CLEAR int_konv2.

READ TABLE int_konv2 WITH KEY knumv = int_vbrk-knumv1

BINARY SEARCH.

IF sy-subrc = 0.

MOVE int_konv2-wavwr TO int_output-hztms.

ENDIF.

  • NKA7077 PCR 3135-718 End

      • 3141-218 09/21/2004 RAH3941 removes identical select

      • by including function call within on change of delivery

  • ON CHANGE OF int_vbrk-vgbel. "3141-218

    • pgw5948 start "PCR 3135-895

  • CLEAR: int_lines.

  • REFRESH: int_lines.

  • MOVE int_vbrk-vgbel TO wf_name_key.

  • CALL FUNCTION 'READ_TEXT'

  • EXPORTING

  • id = 'Z003'

  • language = sy-langu

  • name = wf_name_key

  • object = 'VBBK'

  • TABLES

  • lines = int_lines

  • EXCEPTIONS

  • id = 1

  • language = 2

  • name = 3

  • not_found = 4

  • object = 5

  • reference_check = 6

  • wrong_access_to_archive = 7

  • OTHERS = 8.

*

  • DESCRIBE TABLE int_lines LINES sy-tfill.

  • IF sy-tfill <> 0.

  • READ TABLE int_lines INDEX 1.

  • MOVE int_lines-tdline TO int_output-protext.

  • ENDIF.

    • PGW5948 END "PCR 3135-895

  • ENDON. "3141-218

*

APPEND int_output.

CLEAR int_output.

ENDLOOP.

*delete int_output where flagk = 'X'.

      • BOC RAH3941 09/21/2004 Free memory "3141-218

FREE: int_vbrk,

int_konv,

int_konv2,

int_likp,

int_kna1,

int_vbpa,

int_lfa1.

      • EOC RAH3941 09/21/2004 Free memory "3141-218

ENDFORM. " JOIN_TABLES

                                              • YVRISA01 - FORMS

*******************************

                                              • YVRPRC01 - FORMS

*******************************

*&----


*

*& Form SELECT_PROCESS

*&----


*

  • This form selects the records for processing, building the internal

*

  • tables for print output. Loop through detail recs getting header

*

  • information for each new document and the customer name. For each

*

  • new document gets complete pricing information and stores in table.

*

  • Each output record is populated with header,detail info, and pricing

*

  • type for each item detail record. These are summed by header info

*

  • and vbeln so that each pricing type generates a different output

*

  • record for the document.

*

*----


*

FORM select_process.

  • Select billing info from sales index table.

SELECT vbeln

FROM vrkpa

INTO TABLE int_vrkpa_1

WHERE vkorg IN s_vkorg

AND fkart IN s_fkart

AND kunnr IN s_kunrg

AND kunag IN s_kunag

AND fkdat IN s_fkdat.

SORT int_vrkpa_1.

IF NOT int_vrkpa_1[] IS INITIAL.

  • EXCLUDE CANCELS

SELECT vbeln kunag kunrg fkdat fkart pltyp

waerk bukrs ernam vkorg bzirk knumv

FROM vbrk

INTO TABLE int_vbrk_1

FOR ALL ENTRIES IN int_vrkpa_1

WHERE vbeln = int_vrkpa_1-vbeln

AND pltyp IN s_pltyp

AND fksto NE 'X'

AND bzirk IN s_bzirk.

SORT int_vbrk_1.

IF NOT int_vbrk_1[] IS INITIAL.

DESCRIBE TABLE int_vbrk_1 LINES w_lines.

DO w_lines TIMES.

READ TABLE int_vbrk_1 INTO wa_vbrk_1 INDEX sy-index.

SELECT f~vbeln f~posnr f~matnr f~fklmg

f~netwr q~ernam f~kondm f~aubel f~kvgr5

INTO CORRESPONDING FIELDS OF wa_vbrp_1

FROM vbrp AS f

INNER JOIN vbak AS q ON

f~aubel = q~vbeln

WHERE f~vbeln = wa_vbrk_1-vbeln AND

q~ernam IN s_ernam .

IF sy-subrc = 0.

APPEND wa_vbrp_1 TO int_vbrp_1.

ENDIF.

ENDSELECT.

ENDDO.

SORT int_vbrp_1 BY matnr.

  • DELETE INT_VBRP_1 WHERE NOT MATNR IN s_MATNR.

SORT int_vbrp_1 BY kvgr5.

  • DELETE INT_VBRP_1 WHERE NOT KVGR5 IN s_KVGR5.

SORT int_vbrp_1.

ELSE.

MESSAGE e001(zf) WITH 'No records selected for processing'.

ENDIF.

ELSE.

MESSAGE e001(zf) WITH 'No records selected for processing'.

ENDIF.

LOOP AT int_vbrp_1 INTO wa_vbrp_1.

SELECT SINGLE * FROM makt

WHERE matnr = wa_vbrp_1-matnr.

IF sy-subrc <> 0.

makt-maktx = ' '.

ENDIF.

AT NEW vbeln.

  • Get additional billing document header information

READ TABLE int_vbrk_1 INTO wa_vbrk_1

WITH KEY vbeln = wa_vbrp_1-vbeln.

IF sy-subrc NE 0.

MESSAGE e041(vf) WITH wa_vbrp_1-vbeln.

ENDIF.

  • get payer name

SELECT SINGLE * FROM kna1

WHERE kunnr = wa_vbrk_1-kunrg.

wa_name1 = kna1-name1.

  • Get sold to customer name

SELECT SINGLE * FROM kna1

WHERE kunnr = wa_vbrk_1-kunag.

  • Get pricing

REFRESH int_konv_1.

  • SELECT KPOSN KSCHL FROM KONV "NKA7077 P04-0066 - 243

SELECT kposn kschl kwert FROM konv "NKA7077 P04-0066 - 243

INTO TABLE int_konv_1

WHERE knumv = wa_vbrk_1-knumv.

SORT int_konv_1 BY kschl.

DELETE int_konv_1 WHERE NOT kschl IN s_kschl.

SORT int_konv_1 BY kposn kschl.

ENDAT. . "end of new document no.

CHECK: NOT int_konv_1[] IS INITIAL.

SELECT SINGLE * FROM vbkd

WHERE vbeln = wa_vbrp_1-aubel

AND posnr = '000000'.

IF sy-subrc = 0.

CHECK: vbkd-bstkd IN s_bstkd.

ENDIF.

LOOP AT int_konv_1 INTO wa_konv_1

WHERE kposn = wa_vbrp_1-posnr.

  • Prepare output file for report.

PERFORM prepare_output.

ENDLOOP.

ENDLOOP. " end of details

ENDFORM. " SELECT_PROCESS

*&----


*

*& Form PREPARE_OUTPUT

*&----


*

  • This form moves the intended output data to an output table.

*----


*

FORM prepare_output.

CLEAR wa_output_1.

MOVE: kna1-name1 TO wa_output_1-name1,

kna1-ort01 TO wa_output_1-ort01,

kna1-regio TO wa_output_1-regio,

wa_name1 TO wa_output_1-p_name1,

vbkd-bstkd TO wa_output_1-bstkd,

wa_vbrk_1-kunag TO wa_output_1-kunag,

wa_vbrk_1-kunrg TO wa_output_1-kunrg,

wa_vbrk_1-fkdat TO wa_output_1-fkdat,

wa_vbrk_1-fkart TO wa_output_1-fkart,

wa_vbrp_1-vbeln TO wa_output_1-vbeln,

*********Added to ZV_INVR_R

wa_vbrp_1-posnr TO wa_output_1-posnr,

***************************

wa_konv_1-kschl TO wa_output_1-kschl,

wa_konv_1-kwert TO wa_output_1-kwert,"NKA7077 P04-0066-243

wa_vbrk_1-pltyp TO wa_output_1-pltyp,

wa_vbrp_1-matnr TO wa_output_1-matnr,

makt-maktx TO wa_output_1-maktx,

wa_vbrp_1-fklmg TO wa_output_1-fklmg,

wa_vbrp_1-netwr TO wa_output_1-netwr,

wa_vbrk_1-waerk TO wa_output_1-waerk,

wa_vbrk_1-bukrs TO wa_output_1-bukrs,

wa_vbrp_1-ernam TO wa_output_1-ernam,

wa_vbrk_1-vkorg TO wa_output_1-vkorg,

wa_vbrp_1-kvgr5 TO wa_output_1-kvgr5,

wa_vbrk_1-bzirk TO wa_output_1-bzirk.

*

  • COLLECT WA_OUTPUT_1 INTO INT_OUTPUT_1.

APPEND wa_output_1 TO int_output_1.

DELETE int_output_1 WHERE NOT kschl IN s_kschl. "AddeddforZV_INVPR_R

ENDFORM. " PREPARE_OUTPUT

                                              • YVRPRC01 - FORMS

*******************************

                                              • YVRMNR01- FORMS

********************************

*&----


*

*& Form SELECT-VBRK-DATA VBRP and VBAK

*&----


*

*----


*

*----


*

FORM select-vbrk-data.

SELECT f~vbeln

f~fkdat

  • F~GJAHR "PCR 3135-599

f~kunag

f~bstnk_vf

f~knumv

f~kalsm

f~waerk

f~pltyp

f~kdgrp

f~bukrs "PCR 3135-599

f~logsys "PCR 3135-599

pposnr pmatnr pfkimg paubel paupos pprodh p~kzwi2

p~netwr

p~prsdt "NKA7077 PCR 3135-842

p~wavwr "NKA7077 PCR 3135-020

p~kvgr5

q~erdat "NKA7077 PCR 3135-127

q~auart

r~mvgr2 "SBB8868 PCR# 3484-001

  • INTO CORRESPONDING FIELDS OF INT_VBRK "NKA7077 PCR 3135-842

INTO TABLE int_vbrk_2 "NKA7077 PCR 3135-842

FROM vbrk AS f

INNER JOIN vbrp AS p ON

fvbeln = pvbeln

INNER JOIN vbak AS q ON

paubel = qvbeln

LEFT JOIN vbap AS r ON "SBB8868 PCR# 3484-001

paubel = rvbeln AND "SBB8868 PCR# 3484-001

paupos = rposnr "SBB8868 PCR# 3484-001

WHERE f~fkart IN s_fkart

AND f~vkorg IN s_vkorg

AND f~fkdat IN s_fkdat

AND f~kunag IN s_kunag

AND f~pltyp IN s_pltyp

AND f~kdgrp IN s_kdgrp

AND p~kvgr5 IN s_kvgr5

AND p~mvgr5 IN s_mvgr5 "NKA7077 PCR# 3135-558

AND p~mvgr2 IN s_mvgr2 "NKA7077 PCR 3135-842

AND p~mvgr1 IN s_mvgr1

AND p~mvgr3 IN s_mvgr3

AND p~mvgr4 IN s_mvgr4

AND q~auart IN s_auart

  • AND ( FKALSM = 'ZUSAAM' OR FKALSM = 'ZCANAM' ) "

*commented on 16-Jul-07

AND f~waerk IN s_waerk

AND f~vbeln IN s_vbeln " Added for ZV_INVPR_R

AND f~erdat IN s_erdat " Added for ZV_INVPR_R

AND p~matnr IN s_matnr " Added for ZV_INVPR_R

AND f~kunrg IN s_kunrg " Added for ZV_INVPR_R

AND f~bzirk IN s_bzirk " Added for ZV_INVPR_R

AND q~ernam IN s_ernam. " Added for ZV_INVPR_R

  • NKA7077 PCR 3135-842 Improve performance Begin

  • IF SY-SUBRC = 0.

  • APPEND INT_VBRK.

  • CLEAR INT_VBRK.

  • ENDIF.

  • ENDSELECT.

  • NKA7077 PCR 3135-842 End

  • SBB8868 PCR# 3484-001 Begin

SORT int_vbrk_2 BY vbeln posnr.

LOOP AT int_vbrk_2.

SELECT vbeln

posnr

prsdt

FROM vbkd "Sales Document: Business Data

APPENDING TABLE int_vbkd_2

WHERE vbeln = int_vbrk_2-aubel

AND posnr = int_vbrk_2-aupos.

IF sy-subrc <> 0.

SELECT vbeln

posnr

prsdt

FROM vbkd "Sales Document: Business Data

APPENDING TABLE int_vbkd_2

WHERE vbeln = int_vbrk_2-aubel

AND posnr = '000000'.

ENDIF.

ENDLOOP.

SORT int_vbkd_2 BY vbeln posnr.

  • NKA7077 PCR 3135-127 End

ENDFORM. " SELECT-VBRK-DATA

----


  • FORM FILL_OUTPUT_TABLE *

----


  • ........ *

----


FORM fill_output_table.

LOOP AT int_vbrk_2.

IF int_vbrk_2-vbeln <> wk_prev_vbeln.

CALL FUNCTION 'RV_PRICE_PRINT_REFRESH'

TABLES

tkomv = int_tab_1.

ENDIF.

MOVE int_vbrk_2-vbeln TO int_output_2-vbeln.

MOVE int_vbrk_2-fkdat TO int_output_2-fkdat.

MOVE int_vbrk_2-bstnk_vf TO int_output_2-bstnk.

MOVE int_vbrk_2-kunag TO int_output_2-kunag.

MOVE int_vbrk_2-auart TO int_output_2-auart.

IF int_vbrk_2-kzwi2 = 0.

    • PRM **

PERFORM find_item_netvalue.

    • PRM **

ELSE.

int_output_2-kbetr = int_vbrk_2-kzwi2.

int_output_2-kwert = 0.

int_output_2-ztms = 0.

int_output_2-znodnv = 0. "PCR 3135-558

SELECT SINGLE kwert

INTO int_output_2-kwert

FROM konv

WHERE knumv = int_vbrk_2-knumv AND

kposn = int_vbrk_2-posnr AND

kschl = 'ZDIS'.

SELECT SINGLE kwert

INTO int_output_2-ztms

FROM konv

WHERE knumv = int_vbrk_2-knumv AND

kposn = int_vbrk_2-posnr AND

kschl = 'ZTMS'.

  • NKA7077 PCR 3135-558 03/13/03 Begin

SELECT SINGLE kwert

INTO int_output_2-znodnv

FROM konv

WHERE knumv = int_vbrk_2-knumv AND

kposn = int_vbrk_2-posnr AND

kschl = 'ZNOD'.

  • NKA7077 PCR 3135-558 End

ENDIF.

MOVE int_vbrk_2-posnr TO int_output_2-posnr.

MOVE int_vbrk_2-matnr TO int_output_2-matnr.

MOVE int_vbrk_2-fkimg TO int_output_2-fkimg.

MOVE int_vbrk_2-prodh TO int_output_2-prodh.

MOVE int_vbrk_2-netwr TO int_output_2-netwr.

MOVE int_vbrk_2-vbeln TO wk_prev_vbeln.

MOVE int_vbrk_2-wavwr TO int_output_2-wavwr. "NKA7077 PCR3135-020

MOVE int_vbrk_2-erdat TO int_output_2-erdat. "NKA7077 PCR3135-127

  • NKA7077 PCR# 3135-127 10/16/01 Begin

  • SBB8868 PCR# 3484-001 Begin

MOVE int_vbrk_2-kdgrp TO int_output_2-kdgrp.

MOVE int_vbrk_2-pltyp TO int_output_2-pltyp.

MOVE int_vbrk_2-mvgr2 TO int_output_2-mvgr2.

MOVE int_vbrk_2-kvgr5 TO int_output_2-kvgr5.

  • NKA7077 PCR 3135-842 End

  • Move pricing date from the sales document item level

READ TABLE int_vbkd_2 WITH KEY vbeln = int_vbrk_2-aubel

posnr = int_vbrk_2-aupos.

IF sy-subrc = 0.

MOVE int_vbkd_2-prsdt TO int_output_2-prsdt.

ELSE.

READ TABLE int_vbkd_2 WITH KEY vbeln = int_vbrk_2-aubel

posnr = '000000'.

IF sy-subrc = 0.

MOVE int_vbkd_2-prsdt TO int_output_2-prsdt.

ENDIF.

ENDIF.

APPEND int_output_2.

ENDLOOP.

ENDFORM. " FILL_OUTPUT_TABLE

----


  • FORM find_item_netvalue *

----


  • ........ *

----


FORM find_item_netvalue. "Logics added for SIR-189.

int_output_2-kbetr = 0.

IF int_vbrk_2-kalsm = 'ZUSAAM' AND wk_zusaam_exist = 'Y'.

PERFORM item_function_call.

PERFORM extract_item_value.

ELSE.

IF int_vbrk_2-kalsm = 'ZCANAM' AND wk_zcanam_exist = 'Y'.

PERFORM item_function_call.

PERFORM extract_item_value.

ELSE.

WRITE: / 'Not a ZUSAAM/ZCANAM Pricing Procedure: '.

WRITE: int_vbrk_2-vbeln.

WRITE: ' item: ', int_vbrk_2-posnr.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM ITEM_FUNCTION_CALL *

----


  • ........ *

----


FORM item_function_call.

CLEAR komk.

CLEAR komp.

komk-mandt = sy-mandt.

komk-belnr = int_vbrk_2-vbeln.

komk-knumv = int_vbrk_2-knumv.

komk-waerk = int_vbrk_2-waerk.

komk-kalsm = int_vbrk_2-kalsm.

komk-kappl = 'V'.

komp-kposn = int_vbrk_2-posnr.

CALL FUNCTION 'RV_PRICE_PRINT_ITEM'

EXPORTING

comm_head_i = komk

comm_item_i = komp

IMPORTING

comm_head_e = komk

comm_item_e = komp

TABLES

tkomv = int_tab_1

tkomvd = int_tab_2.

.

ENDFORM.

----


  • FORM extract_item_value_us *

----


  • ........ *

----


FORM extract_item_value.

tab2_index = 1.

READ TABLE int_tab_2 INDEX tab2_index.

IF int_vbrk_2-kalsm = 'ZUSAAM'.

WHILE int_tab_2-stunr <= wk_zusaam_stunr AND sy-subrc = 0.

tab2_index = tab2_index + 1.

READ TABLE int_tab_2 INDEX tab2_index.

ENDWHILE.

ELSE.

IF int_vbrk_2-kalsm = 'ZCANAM'.

WHILE int_tab_2-stunr <= wk_zcanam_stunr AND sy-subrc = 0.

tab2_index = tab2_index + 1.

READ TABLE int_tab_2 INDEX tab2_index.

ENDWHILE.

ENDIF.

ENDIF.

IF tab2_index > 1.

tab2_index = tab2_index - 1.

READ TABLE int_tab_2 INDEX tab2_index.

ENDIF.

IF int_vbrk_2-kalsm = 'ZCANAM' AND int_tab_2-stunr LE wk_zcanam_stunr

.

int_output_2-kbetr = int_tab_2-kwert.

ELSE.

IF int_vbrk_2-kalsm = 'ZUSAAM' AND int_tab_2-stunr LE

wk_zusaam_stunr.

int_output_2-kbetr = int_tab_2-kwert.

ENDIF.

ENDIF.

int_output_2-kwert = 0.

int_output_2-ztms = 0.

int_output_2-znodnv = 0. "PCR 3135-558

LOOP AT int_tab_1.

IF int_tab_1-kschl = 'ZDIS' AND int_tab_1-kposn = int_vbrk_2-posnr.

int_output_2-kwert = int_tab_1-kwert.

ELSE.

IF int_tab_1-kschl = 'ZTMS' AND int_tab_1-kposn =

int_vbrk_2-posnr.

int_output_2-ztms = int_tab_1-kwert.

  • NKA7077 PCR 3135-558 03/13/03 Begin

ELSE.

IF int_tab_1-kschl = 'ZNOD' AND int_tab_1-kposn = int_vbrk_2-posnr

.

int_output_2-znodnv = int_tab_1-kwert.

  • NKA7077 PCR 3135-558 End

ELSE.

IF int_tab_1-kposn > int_vbrk_2-posnr.

EXIT.

ENDIF.

ENDIF. "PCR 3135-558

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

                                              • YVRMNR01- FORMS

********************************

                                          • YVRSMR01 - FORMS

*********************************

*&----


*

*& Form SELECT-VBRK-DATA, concatnenate VBRP VBAK

*----


*

FORM select-vbrk-data_3.

SELECT f~kunag

f~vkorg

f~vbeln

f~fkdat

f~zterm

f~bstnk_vf

f~knumv

f~kalsm

f~inco1

f~waerk

q~auart

q~kvgr5

p~posnr

r~kwmeng

p~fkimg

p~aubel

p~aupos "NKA7077 PCR 3660-005

p~kzwi2

p~netwr

p~brgew

p~gewei

p~matnr

p~wavwr "NKA7077 PCR 3135-020

INTO TABLE int_vbrk_3

FROM vbrk AS f

INNER JOIN vbrp AS p ON

fvbeln = pvbeln

INNER JOIN vbak AS q ON

paubel = qvbeln

INNER JOIN vbap AS r ON

paubel = rvbeln AND

paupos = rposnr

WHERE f~fkart IN s_fkart

AND f~vkorg IN s_vkorg

AND f~fkdat IN s_fkdat

AND f~kunag IN s_kunag

AND f~pltyp IN s_pltyp

AND f~kdgrp IN s_kdgrp

AND p~kvgr5 IN s_kvgr5

AND q~auart IN s_auart

  • AND f~kalsm IN s_kalsm

  • AND ( FKALSM = 'ZUSAAM' OR FKALSM = 'ZCANAM' ) "

*commented on 16-Jul-07

AND f~waerk IN s_waerk

AND f~vbeln IN s_vbeln " Added for ZV_INVPR_R

AND r~mvgr2 IN s_mvgr2 " Added for ZV_INVPR_R

AND p~mvgr1 IN s_mvgr1 " Added for ZV_INVPR_R

AND p~mvgr3 IN s_mvgr3 " Added for ZV_INVPR_R

AND p~mvgr4 IN s_mvgr4 " Added for ZV_INVPR_R

AND p~mvgr5 IN s_mvgr5 " Added for ZV_INVPR_R

AND f~erdat IN s_erdat " Added for ZV_INVPR_R

AND p~matnr IN s_matnr " Added for ZV_INVPR_R

AND f~kunrg IN s_kunrg " Added for ZV_INVPR_R

AND f~bzirk IN s_bzirk " Added for ZV_INVPR_R

AND q~ernam IN s_ernam." Added for ZV_INVPR_R

ENDFORM. " SELECT-VBRK-DATA

**----


*

    • FORM FILL_OUTPUT_TABLE

*

**----


*

    • ........

*

**----


*

FORM fill_output_table_3.

*

**sort int_output by zterm vbeln kunag.

SORT int_vbrk_3 BY vbeln.

LOOP AT int_vbrk_3.

  • NKA7077 PCR 3660-005 07/08/02 Begin

  • Exclude those sales orders that do not meet the pricing date

IF NOT int_vbkd_3[] IS INITIAL.

READ TABLE int_vbkd_3 WITH KEY vbeln = int_vbrk_3-aubel

posnr = int_vbrk_3-aupos.

IF sy-subrc <> 0.

READ TABLE int_vbkd_3 WITH KEY vbeln = int_vbrk_3-aubel

posnr = '000000'.

IF sy-subrc <> 0.

CONTINUE.

ENDIF.

ENDIF.

ENDIF.

  • NKA7077 PCR 3660-005 End

*

IF int_vbrk_3-vbeln <> wk_prev_vbeln_3.

CALL FUNCTION 'RV_PRICE_PRINT_REFRESH'

TABLES

tkomv = int_tab_1_3.

ENDIF.

AT NEW knumv. "Set flag as this is executed only the first time

wk_konv_to_be_read_3 = 'X'.

ENDAT.

IF int_vbrk_3-kzwi2 = 0. "Net Value - Summary Level

PERFORM find_item_netvalue_3.

ELSE.

  • at new knumv.

IF wk_konv_to_be_read_3 = 'X'.

REFRESH int_konv_3.

CLEAR wk_konv_to_be_read_3.

*

SELECT kposn kschl kwert FROM konv

INTO TABLE int_konv_3

WHERE knumv = int_vbrk_3-knumv

AND ( kschl = 'ZDIS'

OR kschl = 'ZTMS'

  • NKA7077 PCR 3135-121 10/10/01 Begin

OR kschl = 'ZFDU' "Functional Discounts

OR kschl = 'ZFDD' "Functional Discounts

OR kschl = 'ZEOD' "Electronic Discount

OR kschl = 'ZDOD' "Designated Order Day

OR kschl = 'ZDOA' "Designated Order Day

OR kschl = 'ZQTY' "Quantity Discount

OR kschl = 'ZHSC' ). "Small Order Charge

  • NKA7077 PCR 3135-121 End

SORT int_konv_3.

ENDIF.

  • endat.

int_output_3-kbetr = int_vbrk_3-kzwi2.

int_output_3-kwert = 0.

int_output_3-ztms = 0.

  • NKA7077 PCR 3141-121 Begin

int_output_3-zfdd = 0.

int_output_3-zfdu = 0.

int_output_3-zeod = 0.

int_output_3-zdod = 0.

int_output_3-zdoa = 0.

int_output_3-zqty = 0.

int_output_3-zhsc = 0.

  • NKA7077 PCR 3141-121 End

CLEAR int_konv_3.

  • Blue Price

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZDIS'.

IF sy-subrc = 0. "PCR 3135-133

int_output_3-kwert = int_konv_3-kwert.

ENDIF.

  • Stat. Value for Payment Terms

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZTMS'.

IF sy-subrc = 0. "PCR 3135-133

int_output_3-ztms = int_konv_3-kwert.

ENDIF.

  • NKA7077 PCR 3135-121 10/10/01 Begin

  • For Functional Discount it will be either ZFDU or ZFDD, not both

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZFDU'.

IF sy-subrc = 0.

int_output_3-zfdu = int_konv_3-kwert.

ENDIF.

  • Functional Discount

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZFDD'.

IF sy-subrc = 0.

int_output_3-zfdd = int_konv_3-kwert.

ENDIF.

  • Electronic Discount

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZEOD'.

IF sy-subrc = 0.

int_output_3-zeod = int_konv_3-kwert.

ENDIF.

  • For Designated Order it will be either ZDOD or ZDOA, not bothD

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZDOD'.

IF sy-subrc = 0.

int_output_3-zdod = int_konv_3-kwert.

ENDIF.

  • Designated Order Day - ZDOA

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZDOA'.

IF sy-subrc = 0.

int_output_3-zdoa = int_konv_3-kwert.

ENDIF.

  • Quantity Discount

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZQTY'.

IF sy-subrc = 0.

int_output_3-zqty = int_konv_3-kwert.

ENDIF.

  • Small Order Charge

READ TABLE int_konv_3 WITH KEY kposn = int_vbrk_3-posnr

kschl = 'ZHSC'.

IF sy-subrc = 0.

int_output_3-zhsc = int_konv_3-kwert.

ENDIF.

  • NKA7077 PCR 3135-121 End

ENDIF.

  • Get product group external to identify non-accessory parts

PERFORM determine_product.

*

MOVE int_vbrk_3-vkorg TO int_output_3-vkorg.

MOVE int_vbrk_3-vbeln TO int_output_3-vbeln.

*********Added to ZV_INV_R

MOVE int_vbrk_3-posnr TO int_output_3-posnr.

**************************

MOVE int_vbrk_3-fkdat TO int_output_3-fkdat.

MOVE int_vbrk_3-zterm TO int_output_3-zterm.

MOVE int_vbrk_3-kvgr5 TO int_output_3-kvgrd.

MOVE int_vbrk_3-bstnk_vf TO int_output_3-bstnk_vf.

MOVE int_vbrk_3-inco1 TO int_output_3-inco1.

MOVE int_vbrk_3-kunag TO int_output_3-kunag.

MOVE int_vbrk_3-auart TO int_output_3-auart.

MOVE int_vbrk_3-fkimg TO int_output_3-fkimg.

MOVE int_vbrk_3-kwmeng TO int_output_3-kwmeng.

MOVE int_vbrk_3-netwr TO int_output_3-netwr.

MOVE int_vbrk_3-brgew TO int_output_3-brgew.

MOVE int_vbrk_3-gewei TO int_output_3-gewei.

MOVE int_vbrk_3-wavwr TO int_output_3-wavwr.

MOVE int_vbrk_3-vbeln TO wk_prev_vbeln_3.

*

  • NKA7077 PCR 3135-121 Begin

  • IF NOT P_DISC IS INITIAL.

SELECT SINGLE kvgr5

FROM knvv INTO int_output_3-kvgrc " changed for ZV_INVPR_R

WHERE kunnr = int_output_3-kunag

AND vkorg = int_output_3-vkorg

AND vtweg = '01'

AND spart = '01'.

  • CLEAR: WF_NAME1, WF_KVGR5.

SELECT SINGLE name1

INTO int_output_3-name1

FROM kna1 AS a

INNER JOIN knvv AS b ON akunnr = bkunnr

WHERE a~kunnr = int_output_3-kunag

AND vkorg = int_output_3-vkorg

AND vtweg = '01'

AND spart = '01'.

  • ENDIF.

  • NKA7077 PCR 3135-121 End

COLLECT int_output_3. "summarize like records

CLEAR int_output_3.

ENDLOOP.

ENDFORM. " FILL_OUTPUT_TABLE

----


  • FORM find_item_netvalue_3

*

----


  • ........ *

----


FORM find_item_netvalue_3. "Logics added for SIR-189.

int_output_3-kbetr = 0.

IF int_vbrk_3-kalsm = 'ZUSAAM' AND wk_zusaam_exist_3 = 'Y'.

PERFORM item_function_call_3.

PERFORM extract_item_value_3.

ELSE.

IF int_vbrk_3-kalsm = 'ZCANAM' AND wk_zcanam_exist_3 = 'Y'.

PERFORM item_function_call_3.

PERFORM extract_item_value_3.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM ITEM_FUNCTION_CALL_3

*

----


  • ........ *

----


FORM item_function_call_3.

CLEAR komk.

CLEAR komp.

komk-mandt = sy-mandt.

komk-belnr = int_vbrk_3-vbeln.

komk-knumv = int_vbrk_3-knumv.

komk-waerk = int_vbrk_3-waerk.

komk-kalsm = int_vbrk_3-kalsm.

komk-kappl = 'V'.

komp-kposn = int_vbrk_3-posnr.

CALL FUNCTION 'RV_PRICE_PRINT_ITEM'

EXPORTING

comm_head_i = komk

comm_item_i = komp

IMPORTING

comm_head_e = komk

comm_item_e = komp

TABLES

tkomv = int_tab_1_3

tkomvd = int_tab_2_3.

.

ENDFORM.

----


  • FORM extract_item_value_us_3

*

----


FORM extract_item_value_3.

tab2_index_3 = 1.

READ TABLE int_tab_2_3 INDEX tab2_index_3.

IF int_vbrk_3-kalsm = 'ZUSAAM'.

WHILE int_tab_2_3-stunr <= wk_zusaam_stunr_3 AND sy-subrc = 0.

tab2_index_3 = tab2_index_3 + 1.

READ TABLE int_tab_2_3 INDEX tab2_index_3.

ENDWHILE.

ELSE.

IF int_vbrk_3-kalsm = 'ZCANAM'.

WHILE int_tab_2_3-stunr <= wk_zcanam_stunr_3 AND sy-subrc = 0.

tab2_index_3 = tab2_index_3 + 1.

READ TABLE int_tab_2_3 INDEX tab2_index_3.

ENDWHILE.

ENDIF.

ENDIF.

IF tab2_index_3 > 1.

tab2_index_3 = tab2_index_3 - 1.

READ TABLE int_tab_2_3 INDEX tab2_index_3.

ENDIF.

IF int_vbrk_3-kalsm = 'ZCANAM' AND int_tab_2_3-stunr LE

wk_zcanam_stunr_3.

int_output_3-kbetr = int_tab_2_3-kwert.

ELSE.

IF int_vbrk_3-kalsm = 'ZUSAAM' AND int_tab_2_3-stunr LE

wk_zusaam_stunr_3.

int_output_3-kbetr = int_tab_2_3-kwert.

ENDIF.

ENDIF.

int_output_3-kwert = 0.

int_output_3-ztms = 0.

  • NKA7077 PCR 3135-121 Begin

int_output_3-zfdu = 0.

int_output_3-zfdd = 0.

int_output_3-zeod = 0.

int_output_3-zdod = 0.

int_output_3-zdoa = 0.

int_output_3-zqty = 0.

int_output_3-zhsc = 0.

  • NKA7077 PCR 3135-121 End

LOOP AT int_tab_1_3.

IF int_tab_1_3-kschl = 'ZDIS' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-kwert = int_tab_1_3-kwert.

ELSE.

IF int_tab_1_3-kschl = 'ZTMS' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-ztms = int_tab_1_3-kwert.

  • NKA7077 PCR 3135-121 10/10/01 Begin

  • For Functional Discount it will be either ZFDU or ZFDD, not both

ELSE.

IF int_tab_1_3-kschl = 'ZFDU' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zfdu = int_tab_1_3-kwert.

  • Move Functional Discount - ZFDD

ELSE.

IF int_tab_1_3-kschl = 'ZFDD' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zfdd = int_tab_1_3-kwert.

  • Move Electronic Discount

ELSE.

IF int_tab_1_3-kschl = 'ZEOD' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zeod = int_tab_1_3-kwert.

  • Move Designated Order Day - ZDOD

ELSE.

IF int_tab_1_3-kschl = 'ZDOD' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zdod = int_tab_1_3-kwert.

  • Move Designated Order Day - ZDOA

ELSE.

IF int_tab_1_3-kschl = 'ZDOA' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zdoa = int_tab_1_3-kwert.

  • Move Quantity Discount

ELSE.

IF int_tab_1_3-kschl = 'ZQTY' AND int_tab_1_3-kposn =

int_vbrk_3-posnr.

int_output_3-zqty = int_tab_1_3-kwert.

  • Move Small Order Charge

ELSE.

IF int_tab_1_3-kschl = 'ZHSC' AND int_tab_1_3-kposn =

int_vbrk_3-posnr

.

int_output_3-zhsc = int_tab_1_3-kwert.

  • NKA7077 PCR 3135-121 End

ELSE.

IF int_tab_1_3-kposn > int_vbrk_3-posnr.

EXIT.

ENDIF.

ENDIF.

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDIF. "PCR 3135-121

ENDLOOP.

ENDFORM.

*&----


*

*& Form DETERMINE_PRODUCT

*&----


*

  • text

*----


*

FORM determine_product.

CLEAR: wf_product_3, wf_product_type_3.

  • Get the external product group from the classification view

SELECT SINGLE atwrt INTO wf_product_3 FROM zv_aiag

WHERE objek = int_vbrk_3-matnr

AND class = 'WALKER-LEGACY'

AND atnam = 'PRODUCT-GROUP-EXTERNAL'

AND klart = '001'.

  • If no classification view, then get it from the product hierarchy

IF sy-subrc <> 0.

SELECT SINGLE prdha INTO wf_product_type_3 FROM mara

WHERE matnr = int_vbrk_3-matnr.

MOVE wf_product_type_3+5(1) TO wf_product_3.

ENDIF.

  • Add quantity to non accessory total if part is not an accessory.

IF wf_product_3 <> 'A'.

int_output_3-nonacc = int_output_3-nonacc + int_vbrk_3-kwmeng.

ENDIF.

ENDFORM. " DETERMINE_PRODUCT

*----


*

  • Form SELECT_VBKD_DATA_3

*----


*

  • Select billing docs based on sales order pricing date

*----


*

FORM select_vbkd_data_3.

IF NOT s_erdat-low IS INITIAL.

  • Select all sales orders with the pricing date on selection screen

SELECT vbeln

posnr

FROM vbkd

INTO TABLE int_vbkd_3

FOR ALL ENTRIES IN int_vbrk_3

WHERE vbeln = int_vbrk_3-aubel

  • and posnr = int_vbrk-aupos

AND prsdt IN s_erdat.

ENDIF.

ENDFORM.

                                          • YVRSMR01 - FORMS

*********************************

                                          • ZV_INVPR_R - FORMS

*******************************

*&----


*

*& Form get_pricon_text

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM get_pricon_text.

SELECT kschl vtext FROM t685t

INTO TABLE t_condes

WHERE spras = 'EN'.

ENDFORM. " get_pricon_text

                                          • ZV_INVPR_R - FORMS

*******************************

                                          • ALV - SLIS - FORMS

*******************************

*&----


*

*& Form pre_cat

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

FORM pre_cat.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'P_NAME1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Payer Name'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KUNGR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Payer Number'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'FKART'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Billing Doc Type'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'BZIRK'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Sales District'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

****************************June 19th 2007 byX1MEENMP****************

*v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'VTEXT'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'Pricing Condition:Name'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

    • COMMENTED BY RAMA MURTHY ON 20-07-2007 **

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'VPRS1'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'VPRS'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZANT'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZANT'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

**v_index = v_index + 1.

    • wafieldcatlog1-fieldname = 'ZCDS'.

    • wafieldcatlog1-tabname = 'T_MAIN'.

    • wafieldcatlog1-seltext_l = 'ZCDS'.

    • wafieldcatlog1-hotspot = ' '.

    • wafieldcatlog1-col_pos = v_index.

    • append wafieldcatlog1 to it_fieldcatalog1.

    • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZCOM'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZCOM'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZCOS'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZCOS'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZDFT'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZDFT'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZDIS1'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZDIS'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZFDD'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZFDD'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZINC'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZINC'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZL1D'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZL1D'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZL2D'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZL2D'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZL3D'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZL3D'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZL4D'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZL4D'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZQYD'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZQYD'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZRDD'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZRDD'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZTMS1'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZTMS'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZTWC'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZTWC'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZWCA'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZWCA'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZNOD1'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZNOD'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'SKTV'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'SKTV'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZCAL'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZCAL'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZBTS'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZBTS'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'ZSSC'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'ZSSC'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

********************************************************************

*v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'VTEXT'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'Pricing Condition:Name'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

*

*v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'KWERT'.

  • wafieldcatlog1-tabname = 'T_MAIN'.

  • wafieldcatlog1-seltext_l = 'Condition Amount'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

****************************June 19th 2007 byX1MEENMP****************

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'PLTYP'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Price List Type'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ERNAM'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'User ID'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'NAME1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Sold To Name'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KVGRC'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Current Trade Class'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KVGRD'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Doc Trade Class'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'AUART'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Doc Type'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KWMENG'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Order Quantity'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'FKIMG'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Bill Quantity'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'NONACC'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Non Acc Order Quantity'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'BRGEW'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Gross Weight'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KDGRP'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Customer Group'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'POSNR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Item Number'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'PRSDT'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Pricing Date'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'MVGR2'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Product Identifier'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZNODNV'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZNOD Net Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'SOLD'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Sold To'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'BILL'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Bill To'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'SHIP'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Ship To'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

                • DO NOT UNCOMMENT ******************************

*

**v_index = v_index + 1.

    • wafieldcatlog1-fieldname = 'ORT01'.

    • wafieldcatlog1-tabname = 'T_MAIN'.

    • wafieldcatlog1-seltext_l = 'Ship To Address:City'.

    • wafieldcatlog1-hotspot = ' '.

    • wafieldcatlog1-col_pos = v_index.

    • append wafieldcatlog1 to it_fieldcatalog1.

    • clear wafieldcatlog1-key.

**

**v_index = v_index + 1.

    • wafieldcatlog1-fieldname = 'PSTLZ'.

    • wafieldcatlog1-tabname = 'T_MAIN'.

    • wafieldcatlog1-seltext_l = 'Ship To Address:Postal Code'.

    • wafieldcatlog1-hotspot = ' '.

    • wafieldcatlog1-col_pos = v_index.

    • append wafieldcatlog1 to it_fieldcatalog1.

    • clear wafieldcatlog1-key.

**************************************************************

*

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'SHIPADDR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Ship To Address'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'WAERK'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Currency'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'VBELN'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Billing Document'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'FKDAT'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Billing Date'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'AUBEL'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Sales Doc Number'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ERDAT'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Created On Date'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'XBLNR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'PO'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'MATNR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Material Number'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZTERM'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Payment Terms'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'NTGEW'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Net Weight'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'KZWI2'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Net Value Before Adj'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'NETWR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Net Value After Adj'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'HZTMS'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZTMS Total'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'PRODH'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Product Hierarchy'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

    • ***

    • COMMENTED ON 26-07-2007 AS INSTRUCTED BY TIM **

    • ***

  • v_index = v_index + 1.

  • wafieldcatlog1-fieldname = 'KVGR5'.

  • wafieldcatlog1-tabname = '<dyn_table>'.

  • wafieldcatlog1-seltext_l = 'Trade Class'.

  • wafieldcatlog1-hotspot = ' '.

  • wafieldcatlog1-col_pos = v_index.

  • append wafieldcatlog1 to it_fieldcatalog1.

  • clear wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'VGBEL'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Delivery Number'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'INCO1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Delv Terms'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'LNAME1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Carrier'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'BOLNR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'BOL'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'WADAT'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Ship Date'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'WAVWR'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Cost'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

****************************************************************

  • FIELD NAMES CHANGED TO ZDIS1 ZTMS1 ZNOD1 FROM ZDIS ZTMS ZNOD *

****************************************************************

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZDIS1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'Blue Price - ZDIS Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZTMS1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZTMS Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

v_index = v_index + 1.

wafieldcatlog1-fieldname = 'ZNOD1'.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = 'ZNOD Value'.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

****************************************************************

    • CODED BY RAMA MURTHY **

      • ***

  • REMOVING THE DYNAMIC CONDITION RECORDS COLUMNS WITH NO CONTENT *

      • ***

DATA: dyn_count TYPE i,

count TYPE i.

FIELD-SYMBOLS: <fs4>.

DESCRIBE TABLE <dyn_table> LINES dyn_count.

v_index_new = v_index.

LOOP AT i_kschl .

CLEAR count.

LOOP AT <dyn_table> INTO <dyn_wa>.

ASSIGN COMPONENT i_kschl-kschl OF STRUCTURE <dyn_wa> TO <fs4>.

IF ( ( <fs4> IS INITIAL ) OR ( <fs4> EQ 0 ) ).

count = count + 1.

ELSE.

CLEAR count.

EXIT.

ENDIF.

ENDLOOP.

IF count EQ dyn_count.

CONTINUE.

ELSE.

  • v_index_new = v_index.

*

  • loop at i_kschl.

v_index_new = v_index_new + 1.

wafieldcatlog1-fieldname = i_kschl-kschl.

wafieldcatlog1-tabname = '<dyn_table>'.

wafieldcatlog1-seltext_l = i_kschl-kschl.

wafieldcatlog1-hotspot = ' '.

wafieldcatlog1-col_pos = v_index_new.

APPEND wafieldcatlog1 TO it_fieldcatalog1.

CLEAR wafieldcatlog1-key.

  • endloop.

ENDIF.

ENDLOOP.

v_index_cond = v_index_new - v_index.

ENDFORM.

                                          • ALV - SLIS - FORMS

----


  • FORM build_dyn_itab *

----


  • ........ *

----


FORM build_dyn_itab.

DATA: new_table TYPE REF TO data,

new_line TYPE REF TO data,

wa_it_fldcat TYPE lvc_s_fcat.

    • COLUMN COUNT TO CREATE DYNAMIC INTERNAL TABLE **

DATA: v_colpos TYPE i,

v_colpos_new TYPE i.

    • LOADING THE DYNAMIC FIELD CATELOG TO BE PASSED **

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VBELN'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'P_NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KUNGR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BZIRK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PLTYP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERNAM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 12.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRC'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGRD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUART'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KWMENG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKIMG'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 17.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NONACC'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BRGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KDGRP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 2.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'POSNR'.

wa_it_fldcat-datatype = 'NUMC'.

wa_it_fldcat-intlen = 6.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRSDT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MVGR2'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNODNV'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SOLD'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BILL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIP'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'SHIPADDR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 45.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAERK'.

wa_it_fldcat-datatype = 'CUKY'.

wa_it_fldcat-intlen = 5.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FKDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'AUBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ERDAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'XBLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 16.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'MATNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTERM'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NTGEW'.

wa_it_fldcat-datatype = 'QUAN'.

wa_it_fldcat-intlen = 19.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KZWI2'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'NETWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'HZTMS'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'PRODH'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'KVGR5'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'VGBEL'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'INCO1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 3.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'LNAME1'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'BOLNR'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 35.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WADAT'.

wa_it_fldcat-datatype = 'DATS'.

wa_it_fldcat-intlen = 10.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'WAVWR'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 18.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZDIS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZTMS1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'ZNOD1'.

wa_it_fldcat-datatype = 'CURR'.

wa_it_fldcat-intlen = 21.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos = v_colpos + 1.

wa_it_fldcat-col_pos = v_colpos.

wa_it_fldcat-fieldname = 'FLAGK'.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 1.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

v_colpos_new = v_colpos.

    • CREATE DYNAMIC FIELD COLUMNS **

LOOP AT i_kschl.

v_colpos_new = v_colpos_new + 1.

wa_it_fldcat-col_pos = v_colpos_new.

wa_it_fldcat-fieldname = i_kschl-kschl.

wa_it_fldcat-datatype = 'CHAR'.

wa_it_fldcat-intlen = 4.

APPEND wa_it_fldcat TO it_fldcat .

CLEAR wa_it_fldcat.

CLEAR i_kschl.

ENDLOOP.

    • METHOD USED TO OBTAIN DYNAMIC INTERNAL TABLE AS PER CATELOG **

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

  • I_STYLE_TABLE =

it_fieldcatalog = it_fldcat

IMPORTING

ep_table = new_table

  • E_STYLE_FNAME =

EXCEPTIONS

generate_subpool_dir_full = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ASSIGN new_table->* TO <dyn_table>.

CREATE DATA new_line LIKE LINE OF <dyn_table>.

ASSIGN new_line->* TO <dyn_wa>.

ENDFORM.

*******************************

----


  • FORM filter_dyn_table *

----


  • ........ *

----


FORM filter_dyn_table.

FIELD-SYMBOLS: <fs3> TYPE ANY.

SORT <dyn_table> BY ('MATNR').

LOOP AT <dyn_table> INTO <dyn_wa>.

UNASSIGN <fs3>.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dyn_wa> TO <fs3>.

IF NOT <fs3> IN s_matnr.

DELETE TABLE <dyn_table> FROM <dyn_wa>.

ENDIF.

ENDLOOP.

SORT <dyn_table> BY ('KVGR5').

LOOP AT <dyn_table> INTO <dyn_wa>.

UNASSIGN <fs3>.

ASSIGN COMPONENT 'KVGR5' OF STRUCTURE <dyn_wa> TO <fs3>.

IF NOT <fs3> IN s_kvgr5.

DELETE TABLE <dyn_table> FROM <dyn_wa>.

ENDIF.

ENDLOOP.

LOOP AT <dyn_table> INTO <dyn_wa>.

UNASSIGN <fs3>.

ASSIGN COMPONENT 'FLAGK' OF STRUCTURE <dyn_wa> TO <fs3>.

IF NOT <fs3> EQ 'X'.

DELETE TABLE <dyn_table> FROM <dyn_wa>.

ENDIF.

ENDLOOP.

ENDFORM.

If you still have any doubdo