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: 

help me -urgent

Former Member
0 Kudos

Hi abapers

ALV column position is not working properly, actualyy it works fine upto column position 3 not working for 4.

Automatically column 4, the field sales order come to column 2th position, why it is happening, can anyone guess it.

FORM fieldcat .

MOVE sy-repid TO i_repid.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-decimals_out = 2.

ls_fcat-col_pos = 1.

ls_fcat-fieldname = 'KUNNR'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sold to Party'.

ls_fcat-emphasize = 'C310'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 2.

ls_fcat-fieldname = 'LABNR'.

ls_fcat-outputlen = 20.

ls_fcat-seltext_m = 'Window Start Status'.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-emphasize = 'C510'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 3.

ls_fcat-fieldname = 'EMATN'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_m = 'Window End Status'.

ls_fcat-emphasize = 'C410'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 4.

ls_fcat-fieldname = 'VBELN'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sale Order'.

ls_fcat-emphasize = 'C710'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

endform.

Thanks in advance.

Regards

Rajaram

1 ACCEPTED SOLUTION

Former Member
0 Kudos

You might have passed the Structure Name to I_STRUCTURE_NAME in the FM "REUSE_ALV_GRID_DISPLAY" or might be any other FM.

So the fieldcat which you are appending has no significance, whether you add it at the first position or the last position.

Hope your question is answered. If not paste the complete code.

Regards,

Pavan P.

12 REPLIES 12

Former Member
0 Kudos

Hi Raja

check this sample code and try like this

tables: mara.
 
* Global ALV Data Declarations
type-pools slis.
 
* Miscellanous Data Declarations
data: fieldcat type slis_t_fieldcat_alv.
 
* Internal Tables
data: begin of ialv occurs 0,
      matnr type mara-matnr,
      mtart type mara-mtart,
      werks type marc-werks,
      maktx type makt-maktx,
      end of ialv .
 
select-options: s_mtart for ialv-mtart.
 
start-of-selection.
 
  perform get_data.
  perform call_alv.
 
 
*********************************************************************
*       FORM GET_DATA.
*********************************************************************
form get_data.
 
  select * into corresponding fields of table ialv
            from mara
             inner join marc
               on mara~matnr = marc~matnr
                    where mara~mtart in s_mtart.
 
  loop at ialv.
 
* Get material description
    select single maktx into ialv-maktx
             from makt
                 where matnr = ialv-matnr
                   and spras = sy-langu.
 
    modify ialv.
 
  endloop.
 
  sort ialv ascending by matnr werks.
 
endform.
 
************************************************************************
*  CALL_ALV
************************************************************************
form call_alv.
 
  data: it_sort type slis_t_sortinfo_alv.
  data: wa_sort like line of it_sort.
 
  wa_sort-spos = '1'.
  wa_sort-fieldname = 'MATNR'.
  wa_sort-tabname  = 'IALV'.
  wa_sort-up  = 'X'.
  append wa_sort to it_sort.
 
  wa_sort-spos = '2'.
  wa_sort-fieldname = 'MAKTX'.
  wa_sort-tabname  = 'IALV'.
  wa_sort-up  = 'X'.
  append wa_sort to it_sort.
 
  perform build_field_catalog.
 
* Call ABAP List Viewer (ALV)
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            it_fieldcat = fieldcat
            it_sort     = it_sort
       tables
            t_outtab    = ialv.
 
endform.
 
************************************************************************
*      Form  BUILD_Fieldcatalog - Set Up Columns/Headers
************************************************************************
form build_field_catalog.
 
  data: ls_fcat type slis_t_fieldcat_alv with header line.
  data: columnno(3) type n value '0'.
  refresh: fieldcat.
 
  clear: ls_fcat.
  ls_fcat-reptext_ddic    = 'Material'.
  ls_fcat-fieldname  = 'MATNR'.
  ls_fcat-outputlen  = '18'.
  columnno = columnno + 1.
  ls_fcat-col_pos    = columnno.
  ls_fcat-ref_fieldname  = 'MATNR'.
  ls_fcat-ref_tabname  = 'MARA'.
  append ls_fcat to fieldcat.
 
  clear: ls_fcat.
  ls_fcat-reptext_ddic    = 'Plant'.
  ls_fcat-fieldname  = 'WERKS'.
  ls_fcat-outputlen  = '4'.
  columnno = columnno + 1.
  ls_fcat-col_pos    = columnno.
  append ls_fcat to fieldcat.
 
  clear: ls_fcat.
  ls_fcat-reptext_ddic    = 'Description'.
  ls_fcat-fieldname  = 'MAKTX'.
  ls_fcat-outputlen  = '30'.
  columnno = columnno + 1.
  ls_fcat-col_pos    = columnno.
  append ls_fcat to fieldcat.
 
endform.

check this link

http://abapcode.blogspot.com/search/label/ALV%20grid

Reward all helpfull answers

Regards

Pavan

Former Member
0 Kudos

Hi

Declare the internal table also in the same order as u desing the field catelog and check.....

former_member588853
Active Contributor
0 Kudos

HI

your coding is correct for appending fields,

The BEST WAY is --

put a break point and look into the internal table fieldscatalog data,see the colposition for the fields and rest all, youself will sort out the bug.

rewards if useful,

regards,

nazeer

Former Member
0 Kudos

HI.

check your internal table declaration .and check values of internal table in dubugging mode.

reward all helpfull answers.

Regards.

surya

Former Member
0 Kudos

You might have passed the Structure Name to I_STRUCTURE_NAME in the FM "REUSE_ALV_GRID_DISPLAY" or might be any other FM.

So the fieldcat which you are appending has no significance, whether you add it at the first position or the last position.

Hope your question is answered. If not paste the complete code.

Regards,

Pavan P.

0 Kudos

This is my complete code, can you tell me why it is like that.

REPORT ZSAB_MAT.

TABLES : ekkn,ekko,EKPO,EKET,VBEP,LFA1.

TYPE-POOLS : slis, ICON.

DATA : DATE1 TYPE SY-DATUM.

data : begin of itab occurs 0,

VBELN like ekkn-VBELN, "SALE ORDER

VBELP LIKE EKKN-VBELP, "LINE ITEM

BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE

KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY

VBELN1 like VBEP-VBELN, "SALE ORDER1

POSNR1 LIKE VBEP-POSNR, "LINE ITEM

EDATU LIKE VBEP-EDATU, "END DATE

EMATN LIKE EKPO-EMATN, "STATUS

BMENG LIKE VBEP-BMENG, "DAYS

TDDAT LIKE VBEP-TDDAT, "START DATE

LMENG LIKE VBEP-LMENG, "DAYS -START DATE

LABNR LIKE EKPO-LABNR, "STATUS

PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS

EKGRP like ekko-EKGRP, "PURCHASING GROUP

EBELN LIKE EKKN-EBELN, "PO NO

EBELP like ekkn-EBELP, "LINE ITEM

EINDT LIKE EKET-EINDT, "DELIVERY DATE

MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER

TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT

LIFNR LIKE EKKO-LIFNR, "VENDOR

MENGE LIKE EKPO-MENGE, "QUANTITY

WEMNG LIKE EKET-WEMNG, "GR QTY

WAMNG LIKE EKET-WAMNG, "BAL QTY

MEINS LIKE EKPO-MEINS, "OUn

NETPR LIKE EKPO-NETPR, "PRICE

LOEKZ LIKE EKPO-LOEKZ, "DELETED

LIFNR1 LIKE LFA1-LIFNR, "VENDOR

NAME1 LIKE LFA1-NAME1, "VENDOR NAME

WERKS LIKE EKPO-WERKS, "PLANT

end of itab.

DATA : BEGIN OF it_final OCCURS 0,

KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY

LABNR LIKE EKPO-LABNR, "STATUS

EMATN LIKE EKPO-EMATN, "STATUS

VBELN like ekkn-VBELN, "SALE ORDER

VBELP LIKE EKKN-VBELP, "LINE ITEM

BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE

EDATU LIKE VBEP-EDATU, "END DATE

TDDAT LIKE VBEP-TDDAT, "START DATE

PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS

EKGRP like ekko-EKGRP, "PURCHASING GROUP

EBELN LIKE EKKN-EBELN, "PO NO

EBELP like ekkn-EBELP, "LINE ITEM

EINDT LIKE EKET-EINDT, "DELIVERY DATE

MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER

TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT

NAME1 LIKE LFA1-NAME1, "VENDOR NAME

MENGE LIKE EKPO-MENGE, "QUANTITY

WEMNG LIKE EKET-WEMNG, "GR QTY

WAMNG LIKE EKET-WAMNG, "BAL QTY

MEINS LIKE EKPO-MEINS, "OUn

NETPR LIKE EKPO-NETPR, "PRICE

WERKS LIKE EKPO-WERKS, "PLANT

END OF it_final.

DATA: color TYPE TABLE OF lvc_s_scol WITH HEADER LINE,

st_layout TYPE slis_layout_alv.

DATA : fcat TYPE slis_t_fieldcat_alv,

ls_fcat LIKE LINE OF fcat,

fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0.

DATA :i_repid LIKE sy-repid,

gs_layout TYPE slis_layout_alv,

week type n.

SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: zso FOR ekkn-vbeln.

SELECT-OPTIONS: zpgr FOR ekko-EKGRP.

SELECT-OPTIONS: ZPL FOR EKPO-WERKS.

SELECTION-SCREEN END OF BLOCK bk1.

gs_layout-colwidth_optimize = 'X'.

select A~VBELN

A~VBELP

A~EBELN

A~EBELP

B~MATNR

B~TXZ01

B~MENGE

B~MEINS

B~NETPR

B~WERKS

B~LOEKZ

C~EINDT

C~WEMNG

D~EKGRP

D~LIFNR

D~BEDAT

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM EKKN AS A

INNER JOIN EKPO AS B ON AEBELN = BEBELN

AND AEBELP = BEBELP

INNER JOIN EKET AS C ON AEBELN = CEBELN

AND AEBELP = CEBELP

INNER JOIN EKKO AS D ON AEBELN = DEBELN

WHERE A~VBELN IN ZSO

AND D~EKGRP IN ZPGR

AND B~WERKS IN ZPL.

LOOP AT ITAB.

ITAB-WAMNG = ITAB-MENGE - ITAB-WEMNG.

SELECT SINGLE VBELN KUNNR

FROM VBAK INTO (ITAB-VBELN , ITAB-KUNNR )

WHERE VBELN = ITAB-VBELN.

SELECT SINGLE VBELN EDATU

FROM VBEP INTO (ITAB-VBELN , ITAB-EDATU)

WHERE VBELN = ITAB-VBELN.

DATE1 = SY-DATUM.

ITAB-BMENG = ITAB-EDATU - DATE1.

if itab-BMENG < 0.

ITAB-EMATN = 'OVER DUE'.

elseif itab-BMENG ge 0 AND itab-BMENG le 10.

ITAB-EMATN = 'CRITICAL'.

elseif itab-BMENG > 10.

ITAB-EMATN = 'UNDER FOLLOW-UP'.

endif.

SELECT SINGLE VBELN POSNR TDDAT

FROM VBEP INTO (ITAB-VBELN1 , ITAB-POSNR1 , ITAB-TDDAT)

WHERE VBELN = ITAB-VBELN AND

POSNR = ITAB-VBELP.

ITAB-LMENG = ITAB-TDDAT - DATE1.

if itab-LMENG < 0.

ITAB-LABNR = 'OVER DUE'.

elseif itab-LMENG ge 0 AND itab-LMENG le 10.

ITAB-LABNR = 'CRITICAL'.

elseif itab-LMENG > 10.

ITAB-LABNR = 'UNDER FOLLOW-UP'.

endif.

IF ITAB-WAMNG LE 0 OR

ITAB-LOEKZ = 'L' OR

ITAB-LOEKZ = 'S'.

ITAB-PLNUM = 'CLOSED'.

ELSE.

ITAB-PLNUM = 'OPEN'.

ENDIF.

SELECT SINGLE LIFNR NAME1

FROM LFA1 INTO (ITAB-LIFNR1 , ITAB-NAME1)

WHERE LIFNR = ITAB-LIFNR.

MODIFY ITAB.

ENDLOOP.

loop at itab.

move-corresponding itab to it_final.

append it_final.

endloop.

perform edit_mask.

i_repid = sy-repid.

PERFORM fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = fcat

i_save = 'A'

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat .

MOVE sy-repid TO i_repid.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-decimals_out = 2.

ls_fcat-col_pos = 1.

ls_fcat-fieldname = 'KUNNR'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sold to Party'.

ls_fcat-emphasize = 'C310'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 2.

ls_fcat-fieldname = 'LABNR'.

ls_fcat-outputlen = 20.

ls_fcat-seltext_m = 'Window Start Status'.

ls_fcat-tabname = 'IT_FINAL'.

ls_fcat-emphasize = 'C510'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 3.

ls_fcat-fieldname = 'EMATN'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_m = 'Window End Status'.

ls_fcat-emphasize = 'C410'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 4.

ls_fcat-fieldname = 'VBELN'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Sale Order'.

ls_fcat-emphasize = 'C710'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 5.

ls_fcat-fieldname = 'VBELP'.

ls_fcat-outputlen = 5.

ls_fcat-seltext_m = 'Item'.

ls_fcat-emphasize = 'C710'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 6.

ls_fcat-fieldname = 'EBELN'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'PO Number'.

ls_fcat-emphasize = 'C710'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 7.

ls_fcat-fieldname = 'EBELP'.

ls_fcat-outputlen = 5.

ls_fcat-seltext_m = 'PO Item'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 8.

ls_fcat-fieldname = 'EKGRP'.

ls_fcat-outputlen = 3.

ls_fcat-seltext_m = 'Pur.Group'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 9.

ls_fcat-fieldname = 'BEDAT'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'PO Doc.Date'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 10.

ls_fcat-fieldname = 'EINDT'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'PO Delivery Date'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 11.

ls_fcat-fieldname = 'MATNR'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Material Number'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 12.

ls_fcat-fieldname = 'TXZ01'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_m = 'Description'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 13.

ls_fcat-fieldname = 'NAME1'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Vendor'.

ls_fcat-emphasize = 'C110'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 14.

ls_fcat-fieldname = 'MENGE'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'PO Quantity'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 15.

ls_fcat-fieldname = 'WEMNG'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Quantity Recvd'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 16.

ls_fcat-fieldname = 'WAMNG'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Bal Qty'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 17.

ls_fcat-fieldname = 'MEINS'.

ls_fcat-outputlen = 2.

ls_fcat-seltext_m = 'OUn'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 18.

ls_fcat-fieldname = 'NETPR'.

ls_fcat-outputlen = 8.

ls_fcat-seltext_m = 'NetPrice'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 19.

ls_fcat-fieldname = 'TDDAT'.

ls_fcat-outputlen = 15.

ls_fcat-seltext_m = 'Window Start date'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 20.

ls_fcat-fieldname = 'EDATU'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'Window End date'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 21.

ls_fcat-fieldname = 'PLNUM'.

ls_fcat-outputlen = 10.

ls_fcat-seltext_m = 'PO Status'.

ls_fcat-emphasize = 'C610'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ls_fcat-col_pos = 22.

ls_fcat-fieldname = 'WERKS'.

ls_fcat-outputlen = 5.

ls_fcat-seltext_m = 'Plant'.

ls_fcat-emphasize = 'C210'.

APPEND ls_fcat TO fcat.

clear ls_fcat.

ENDFORM. " fieldcat

&----


*& Form edit_mask

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM edit_mask .

loop at it_final.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = it_final-vbeln

IMPORTING

OUTPUT = it_final-vbeln.

modify it_final.

endloop.

ENDFORM. " edit_mask

0 Kudos

Can u say in which order do u want to display the list

Presentlyi'm getting int his order

Sold to party, Window Start Status, window end status, Sale order, Item , PO number , PO item, Purch grp, PO Doc Date, PO delivery, Material Number, Description, vendor, PO quantity, Quantity Recvd, Bal QTY, OUN, net price, windows start date, windows end date , Po status, Plant

Regards

Pavan

0 Kudos

Is it, but, am not getting in that order, what could be the problem.

what you are getting is my requirement.

but am getting in the order of

Sold to party, Sales order, Item, PO Number, PO Item, Purch grp, PO Doc Date, PO delivery, Material Number, Description, vendor, PO quantity, Quantity Recvd, Bal QTY, OUN, net price, windows end date ,window end status, windows start date, Window Start Status, Po status, Plant .

can you guess it.

Regards

Rajaram

0 Kudos

Ok do one thing interchange all your column positions and check it again if not interchange the values for all columns. Because for this particular you cant debug also. If u want to debug the alv grid on the menu bar type /h and press enter then try it. Or else transport it to quality and check over there bcz it may be sometimes depend on your user profile settings also check that also once

Regards

Pavan

0 Kudos

nothing is changed, it is showing in the same order,

what can i do now.

Regards

Rajaram

0 Kudos

Hi Raja

Try like this i had made some modifications in your code plz check whether any displacement or not??? try to create another report and in that report paste this code.

*&---------------------------------------------------------------------*
*& Report  ZSDN                                                        *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZSDN                                    .
TABLES : ekkn,ekko,EKPO,EKET,VBEP,LFA1.

TYPE-POOLS : slis, ICON.

DATA : DATE1 TYPE SY-DATUM.

data : begin of itab occurs 0,

      VBELN like ekkn-VBELN, "SALE ORDER
      VBELP LIKE EKKN-VBELP, "LINE ITEM
      BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
      KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
      VBELN1 like VBEP-VBELN, "SALE ORDER1
      POSNR1 LIKE VBEP-POSNR, "LINE ITEM
      EDATU LIKE VBEP-EDATU, "END DATE
      EMATN LIKE EKPO-EMATN, "STATUS
      BMENG LIKE VBEP-BMENG, "DAYS
      TDDAT LIKE VBEP-TDDAT, "START DATE
      LMENG LIKE VBEP-LMENG, "DAYS -START DATE
      LABNR LIKE EKPO-LABNR, "STATUS
      PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
      EKGRP like ekko-EKGRP, "PURCHASING GROUP
      EBELN LIKE EKKN-EBELN, "PO NO
      EBELP like ekkn-EBELP, "LINE ITEM
      EINDT LIKE EKET-EINDT, "DELIVERY DATE
      MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
      TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
      LIFNR LIKE EKKO-LIFNR, "VENDOR
      MENGE LIKE EKPO-MENGE, "QUANTITY
      WEMNG LIKE EKET-WEMNG, "GR QTY
      WAMNG LIKE EKET-WAMNG, "BAL QTY
      MEINS LIKE EKPO-MEINS, "OUn
      NETPR LIKE EKPO-NETPR, "PRICE
      LOEKZ LIKE EKPO-LOEKZ, "DELETED
      LIFNR1 LIKE LFA1-LIFNR, "VENDOR
      NAME1 LIKE LFA1-NAME1, "VENDOR NAME
      WERKS LIKE EKPO-WERKS, "PLANT


      end of itab.

DATA : BEGIN OF it_final OCCURS 0,

      KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
      LABNR LIKE EKPO-LABNR, "STATUS
      EMATN LIKE EKPO-EMATN, "STATUS
      VBELN like ekkn-VBELN, "SALE ORDER
      VBELP LIKE EKKN-VBELP, "LINE ITEM
      BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
      EDATU LIKE VBEP-EDATU, "END DATE
      TDDAT LIKE VBEP-TDDAT, "START DATE
      PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
      EKGRP like ekko-EKGRP, "PURCHASING GROUP
      EBELN LIKE EKKN-EBELN, "PO NO
      EBELP like ekkn-EBELP, "LINE ITEM
      EINDT LIKE EKET-EINDT, "DELIVERY DATE
      MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
      TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
      NAME1 LIKE LFA1-NAME1, "VENDOR NAME
      MENGE LIKE EKPO-MENGE, "QUANTITY
      WEMNG LIKE EKET-WEMNG, "GR QTY
      WAMNG LIKE EKET-WAMNG, "BAL QTY
      MEINS LIKE EKPO-MEINS, "OUn
      NETPR LIKE EKPO-NETPR, "PRICE
      WERKS LIKE EKPO-WERKS, "PLANT




 END OF it_final.

 DATA: color TYPE TABLE OF lvc_s_scol WITH HEADER LINE,
      st_layout TYPE slis_layout_alv.



DATA : fcat TYPE slis_t_fieldcat_alv,
      ls_fcat LIKE LINE OF fcat,
      fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY
      WITH HEADER LINE INITIAL SIZE 0.
DATA :i_repid LIKE sy-repid,
     gs_layout   TYPE slis_layout_alv,
     week type n.



SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: zso FOR ekkn-vbeln.
SELECT-OPTIONS: zpgr FOR ekko-EKGRP.
SELECT-OPTIONS: ZPL FOR EKPO-WERKS.

SELECTION-SCREEN END OF BLOCK bk1.

gs_layout-colwidth_optimize = 'X'.

select A~VBELN
      A~VBELP
      A~EBELN
      A~EBELP
      B~MATNR
      B~TXZ01
      B~MENGE
      B~MEINS
      B~NETPR
      B~WERKS
      B~LOEKZ
      C~EINDT
      C~WEMNG
      D~EKGRP
      D~LIFNR
      D~BEDAT
      INTO CORRESPONDING FIELDS OF TABLE ITAB
      FROM EKKN AS A
      INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
      AND A~EBELP = B~EBELP
      INNER JOIN EKET AS C ON A~EBELN = C~EBELN
      AND A~EBELP = C~EBELP
      INNER JOIN EKKO AS D ON A~EBELN = D~EBELN
      WHERE A~VBELN IN ZSO
      AND D~EKGRP IN ZPGR
      AND B~WERKS IN ZPL.


LOOP AT ITAB.

 ITAB-WAMNG = ITAB-MENGE - ITAB-WEMNG.


 SELECT SINGLE VBELN KUNNR
 FROM VBAK INTO (ITAB-VBELN , ITAB-KUNNR )
 WHERE VBELN = ITAB-VBELN.


 SELECT SINGLE VBELN EDATU
 FROM VBEP INTO (ITAB-VBELN , ITAB-EDATU)
 WHERE VBELN = ITAB-VBELN.

 DATE1 =  SY-DATUM.

 ITAB-BMENG = ITAB-EDATU - DATE1.

 if itab-BMENG  < 0.

   ITAB-EMATN = 'OVER DUE'.

 elseif itab-BMENG ge 0 AND itab-BMENG le 10.
   ITAB-EMATN = 'CRITICAL'.

 elseif itab-BMENG > 10.
   ITAB-EMATN = 'UNDER FOLLOW-UP'.
 endif.


 SELECT SINGLE VBELN POSNR TDDAT
 FROM VBEP INTO (ITAB-VBELN1 , ITAB-POSNR1 , ITAB-TDDAT)
 WHERE VBELN = ITAB-VBELN AND
 POSNR = ITAB-VBELP.



 ITAB-LMENG = ITAB-TDDAT - DATE1.

 if itab-LMENG  < 0.

   ITAB-LABNR = 'OVER DUE'.

 elseif itab-LMENG ge 0 AND itab-LMENG le 10.
   ITAB-LABNR = 'CRITICAL'.

 elseif itab-LMENG > 10.
   ITAB-LABNR = 'UNDER FOLLOW-UP'.
 endif.


 IF ITAB-WAMNG LE 0 OR
    ITAB-LOEKZ = 'L' OR
    ITAB-LOEKZ = 'S'.
    ITAB-PLNUM = 'CLOSED'.
 ELSE.
    ITAB-PLNUM = 'OPEN'.
 ENDIF.

 SELECT SINGLE LIFNR NAME1
 FROM LFA1 INTO (ITAB-LIFNR1 , ITAB-NAME1)
 WHERE LIFNR = ITAB-LIFNR.


 MODIFY ITAB.

ENDLOOP.


 loop at itab.
   move-corresponding itab to it_final.
   append it_final.
 endloop.

 perform edit_mask.
 i_repid = sy-repid.
 PERFORM fieldcat.




 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     i_callback_program      = i_repid
     i_callback_user_command = 'USER_COMMAND'
     it_fieldcat             = fcat
     i_save                  = 'A'
   TABLES
     t_outtab                = it_final
   EXCEPTIONS
     program_error           = 1
     OTHERS                  = 2.



*&---------------------------------------------------------------------*
*&      Form  fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fieldcat .
MOVE sy-repid TO i_repid.

ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-decimals_out = 2.
ls_fcat-col_pos = 1.
ls_fcat-fieldname = 'KUNNR'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Sold to Party'.
ls_fcat-emphasize = 'C310'.
APPEND ls_fcat TO fcat.
clear ls_fcat.

 ls_fcat-col_pos           =  6.
 ls_fcat-fieldname = 'LABNR'.
 ls_fcat-outputlen = 20.
 ls_fcat-seltext_m = 'Window Start Status'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C510'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  5.
 ls_fcat-fieldname = 'EMATN'.
 ls_fcat-outputlen = 15.
 ls_fcat-seltext_m = 'Window End Status'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C410'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  2.
 ls_fcat-fieldname = 'VBELN'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Sale Order'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C710'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  3.
 ls_fcat-fieldname = 'VBELP'.
 ls_fcat-outputlen = 5.
 ls_fcat-seltext_m = 'Item'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C710'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  4.
 ls_fcat-fieldname = 'EBELN'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'PO Number'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C710'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  7.
 ls_fcat-fieldname = 'EBELP'.
 ls_fcat-outputlen = 5.
 ls_fcat-seltext_m = 'PO Item'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  8.
 ls_fcat-fieldname = 'EKGRP'.
 ls_fcat-outputlen = 3.
 ls_fcat-seltext_m = 'Pur.Group'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  9.
 ls_fcat-fieldname = 'BEDAT'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'PO Doc.Date'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  10.
 ls_fcat-fieldname = 'EINDT'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'PO Delivery Date'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  11.
 ls_fcat-fieldname = 'MATNR'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Material Number'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  12.
 ls_fcat-fieldname = 'TXZ01'.
 ls_fcat-outputlen = 15.
 ls_fcat-seltext_m = 'Description'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  13.
 ls_fcat-fieldname = 'NAME1'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Vendor'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C110'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  14.
 ls_fcat-fieldname = 'MENGE'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'PO Quantity'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  15.
 ls_fcat-fieldname = 'WEMNG'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Quantity Recvd'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  16.
 ls_fcat-fieldname = 'WAMNG'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Bal Qty'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  17.
 ls_fcat-fieldname = 'MEINS'.
 ls_fcat-outputlen = 2.
 ls_fcat-seltext_m = 'OUn'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  18.
 ls_fcat-fieldname = 'NETPR'.
 ls_fcat-outputlen = 8.
 ls_fcat-seltext_m = 'NetPrice'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  19.
 ls_fcat-fieldname = 'TDDAT'.
 ls_fcat-outputlen = 15.
 ls_fcat-seltext_m = 'Window Start date'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  20.
 ls_fcat-fieldname = 'EDATU'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'Window End date'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  21.
 ls_fcat-fieldname = 'PLNUM'.
 ls_fcat-outputlen = 10.
 ls_fcat-seltext_m = 'PO Status'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C610'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.

 ls_fcat-col_pos           =  22.
 ls_fcat-fieldname = 'WERKS'.
 ls_fcat-outputlen = 5.
 ls_fcat-seltext_m = 'Plant'.
 ls_fcat-tabname = 'IT_FINAL'.
 ls_fcat-emphasize = 'C210'.
 APPEND ls_fcat TO fcat.
 clear ls_fcat.


ENDFORM.                    " fieldcat
*&---------------------------------------------------------------------*
*&      Form  edit_mask
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM edit_mask .
loop at it_final.

   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
     EXPORTING
       INPUT  = it_final-vbeln
     IMPORTING
       OUTPUT = it_final-vbeln.

    modify it_final.

 endloop.

ENDFORM.                    " edit_mask

Regards

Pavan

check now and if the fields position are not changed then chnage accordingly to your requirement position

Message was edited by:

Pavan praveen

Former Member
0 Kudos

hi Raja,

1... Add this line to all the fields

ls_fcat-tabname = 'IT_FINAL'.

you have added this to the first 2 fields only

2.... pass the parameter I_BYPASSING_BUFFER = 'X'. For the ALV FM

3... run the program BALVBUFDEL to delete ALV buffer