Application Development and Automation 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: 
Read only

Column Alignment in ALV

Former Member
0 Likes
7,759

Pl. help, how to align column. I am trying to make a RG Part 1 register.

Everything is fine but not able to align.

I am using *fcat-just = 'C'. " (R)ight (L)eft (C)ent but it doesnot work.

FORM LAYOUT .


  PERFORM FCAT USING  'SERIALNO'    'ITAB' '' 'SR.NO.'   'SERIALNO'    'J_1IPART1'  ''.
  PERFORM FCAT USING 'CPUDT'  'ITAB' '' 'DATE' 'CPUDT'  'J_1IPART1'  ''.
  PERFORM FCAT USING 'MAKTX'   'ITAB' '' 'MATERIAL' 'MAKTX'   'J_1IPART1'  ''.
  PERFORM FCAT USING 'MEINS'   'ITAB' '' 'UOM' 'MEINS'   'J_1IPART1'  ''.
  PERFORM FCAT USING 'RCT' 'ITAB' ' ' 'RCT. QTY' 'RCT' 'J_1IPART1' ' '.
  PERFORM FCAT USING 'ISS'   'ITAB' '' 'ISS. QTY' 'ISS'   'J_1IPART1'  ''.
  PERFORM FCAT USING 'MBLNR'   'ITAB' '' 'GRN NO' 'MBLNR'   'J_1IPART1'  ''.

  REPID = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING

         I_CALLBACK_PROGRAM       = REPID
         IT_FIELDCAT              = F1

*         IT_SORT                  = GT_SORT
         I_SAVE                   = 'X'
         IT_EVENTS                = GT_EVENTS[]

     TABLES
          T_OUTTAB                 = ITAB.
  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.                    " LAYOUT


*&---------------------------------------------------------------------*
*&      Form  FCAT
*&---------------------------------------------------------------------*
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
  ADD 1 TO POS.
  F2-COL_POS       = POS.
*  F2-ROW_POS  = 2.

  F2-FIELDNAME     = P_FIELD.
  F2-TABNAME       = P_TABLE.
  F2-SELTEXT_M     = P_TEXT.
  F2-REF_FIELDNAME = P_RFIELD.
  F2-REF_TABNAME   = P_RTABLE.
  F2-DO_SUM        = P_SUM.
  F2-NO_OUT        = P_DISP.
  APPEND F2 TO F1.
  CLEAR F2.
ENDFORM.                " FCAT

<Added code tags>

Edited by: Suhas Saha on Sep 13, 2011 12:32 PM

1 ACCEPTED SOLUTION
Read only

deepak_dhamat
Active Contributor
0 Likes
3,935

Hi ,

You are assigning fcat-just = 'C'. but you are passing F1 fieldcat to reuse alv grid

so change F1-just = "C' . as peryour requrment for each column .

regards

Deepak.

15 REPLIES 15
Read only

deepak_dhamat
Active Contributor
0 Likes
3,936

Hi ,

You are assigning fcat-just = 'C'. but you are passing F1 fieldcat to reuse alv grid

so change F1-just = "C' . as peryour requrment for each column .

regards

Deepak.

Read only

0 Likes
3,935

I tried but error is coming.

Below is the complete code:

pl. find whole code

DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,

F2 TYPE SLIS_FIELDCAT_ALV,

L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA L_POS TYPE I VALUE 5. "position of the column

DATA R_POS TYPE I VALUE 3. "position of the column

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

*DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

FORM LAYOUT .

PERFORM FCAT USING 'SERIALNO' 'ITAB' '' 'SR.NO.' 'SERIALNO' 'J_1IPART1' ''.

PERFORM FCAT USING 'CPUDT' 'ITAB' '' 'DATE' 'CPUDT' 'J_1IPART1' ''.

PERFORM FCAT USING 'MAKTX' 'ITAB' '' 'MATERIAL' 'MAKTX' 'J_1IPART1' ''.

PERFORM FCAT USING 'MEINS' 'ITAB' '' 'UOM' 'MEINS' 'J_1IPART1' ''.

PERFORM FCAT USING 'RCT' 'ITAB' ' ' 'RCT. QTY' 'RCT' 'J_1IPART1' ' '.

PERFORM FCAT USING 'ISS' 'ITAB' '' 'ISS. QTY' 'ISS' 'J_1IPART1' ''.

PERFORM FCAT USING 'MBLNR' 'ITAB' '' 'GRN NO' 'MBLNR' 'J_1IPART1' ''.

*wa_fcat-just = 'C'. " (R)ight (L)eft (C)ent

REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = F1

  • IT_SORT = GT_SORT

I_SAVE = 'X'

IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = ITAB.

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. " LAYOUT

&----


*& Form FCAT

&----


FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.

ADD 1 TO POS.

F2-COL_POS = POS.

  • F2-ROW_POS = 2.

F1-just = 'C'.

F2-FIELDNAME = P_FIELD.

F2-TABNAME = P_TABLE.

F2-SELTEXT_M = P_TEXT.

F2-REF_FIELDNAME = P_RFIELD.

F2-REF_TABNAME = P_RTABLE.

F2-DO_SUM = P_SUM.

F2-NO_OUT = P_DISP.

APPEND F2 TO F1.

CLEAR F2.

ENDFORM. " FCAT

FORM F_BUILD_EVENTCAT .

CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.

FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.

APPEND FS_EVENTCAT TO GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'END_OF_LIST'.

FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.

APPEND FS_EVENTCAT TO GT_EVENTS.

ENDFORM.

Read only

0 Likes
3,935

hi ,

pass

F2-just = 'C'.

regards

Deepak.

Read only

0 Likes
3,935

when you are using F2 to append into table, Y have you assigned F1-just .. It should be F2-just = 'C'.

Read only

0 Likes
3,935

Error comes:

Read only

0 Likes
3,935

Whats the error?

Read only

0 Likes
3,935

P.l. find the code again:

TABLES:MARA,MARD, J_1IPART1.

*Varriable declaration.

TYPE-POOLS SLIS.

DATA : POS TYPE I.

DATA REPID LIKE SY-REPID.

DATA : F1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

F2 TYPE SLIS_FIELDCAT_ALV,

L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA L_POS TYPE I VALUE 5. "position of the column

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

*DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

*Internal table declaration.

*DATA BEGIN OF IT_SORT OCCURS 5.

  • INCLUDE TYPE SLIS_SORTINFO_ALV.

*DATA END OF IT_SORT.

DATA : Begin of ITAB OCCURS 3,

LABST LIKE MARD-LABST,

SERIALNO LIKE J_1IPART1-SERIALNO,

CPUDT LIKE J_1IPART1-CPUDT,

MBLNR LIKE J_1IPART1-MBLNR,

BWART LIKE J_1IPART1-BWART,

RISIND LIKE J_1IPART1-RISIND,

MATNR LIKE MARA-MATNR,

MAKTX LIKE J_1IPART1-MAKTX,

MENGE LIKE J_1IPART1-MENGE,

MEINS LIKE J_1IPART1-MEINS,

RCT LIKE J_1IPART1-MENGE,

ISS LIKE J_1IPART1-MENGE,

BAL TYPE P decimals 3,

OP TYPE P decimals 3,

TOT1 TYPE P decimals 3,

TOT2 TYPE P decimals 3,

TOT3 TYPE P decimals 3,

END OF ITAB,

WA LIKE ITAB,

Edited by: rkschd on Sep 13, 2011 10:43 AM

Read only

0 Likes
3,935

Eception comes:

The function module allows to specify only fields of particular type under IT_FIELDCAT.

The field F1 specified here is a different field type.

Read only

0 Likes
3,935

Does the error come when you replace


F1-just = 'C'.

with



F2-just = 'C'.

Also make sure that in your FM to call the alv, you replace

it_fieldcat = F1

with

it_fieldcat = F1[]

In teh first line you are passing the header line to a table type parameter.

Suzie

Read only

0 Likes
3,935

Oh. greate.

Proble. Solved.

Thanks a lot.

Read only

0 Likes
3,935

Thanks

Suzie and Deepak .

Read only

0 Likes
3,935

All the table columns has been aligned.

If I have to align fields separately then separate fileds has to be defined

i.e.

IT_FIELDCAT-FIELDNAME = 'MAKTX'.

IT_FIELDCAT-SELTEXT_M = 'ITEM NAME.'.

IT_FIELDCAT-OUTPUTLEN = 35.

APPEND IT_FIELDCAT.

and the like??

Read only

0 Likes
3,935

Hi,

Pass the alignment in the perform like below


PERFORM FCAT USING 'SERIALNO' 'ITAB' '' 'SR.NO.' 'SERIALNO' 'J_1IPART1' '' 'C'."here 'C' for center
PERFORM FCAT USING 'CPUDT' 'ITAB' '' 'DATE' 'CPUDT' 'J_1IPART1' '' 'L'."here 'L' for Left
PERFORM FCAT USING 'MAKTX' 'ITAB' '' 'MATERIAL' 'MAKTX' 'J_1IPART1' '' 'R'."here 'R' for RIGHT
PERFORM FCAT USING 'MEINS' 'ITAB' '' 'UOM' 'MEINS' 'J_1IPART1' '' 'C'.
PERFORM FCAT USING 'RCT' 'ITAB' ' ' 'RCT. QTY' 'RCT' 'J_1IPART1' ' ' 'L'.
PERFORM FCAT USING 'ISS' 'ITAB' '' 'ISS. QTY' 'ISS' 'J_1IPART1' '' 'R'.

FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP p_JUST. "Add the p_Just for alignment
ADD 1 TO POS.
F2-COL_POS = POS.
* F2-ROW_POS = 2.
F1-just = P_JUST."Pass the p_JUST 
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_M = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT

Now each and every column will align according to passing your value in the Perform.

Regards,

DHina..

Edited by: Dhina DMD on Sep 13, 2011 10:56 AM

Read only

0 Likes
3,935

Gr8 , This is also working but we have to define it in IT_Fieldcat as well.

Read only

0 Likes
3,935

Hi

In same application not able to bring sigma sign.

Everythign except sigma and subtotal sign coming.

I have use like that

RCT LIKE J_1IPART1-MENGE,

and showing RCT in my column after some condition.

MENGE is type NUMC.

Can you help.

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV. "DDD

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

*Internal table declaration.

DATA BEGIN OF IT_SORT OCCURS 5. "DDD

INCLUDE TYPE SLIS_SORTINFO_ALV. "DDD

DATA END OF IT_SORT. "DDD

FORM LAYOUT .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = F1[]

IS_LAYOUT = L_LAYOUT

IT_SORT = GT_SORT "DDD

I_SAVE = 'X'

IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = ITAB.

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 FCAT

&----


FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP P_JUST.

ADD 1 TO POS.

F2-COL_POS = POS.

  • F2-ROW_POS = 2.

  • F2-JUST = 'R'.

F2-JUST = P_JUST.

  • F2_LAYOUT-ZEBRA = 'X'.

F2-FIELDNAME = P_FIELD.

F2-TABNAME = P_TABLE.

F2-SELTEXT_M = P_TEXT.

F2-REF_FIELDNAME = P_RFIELD.

F2-REF_TABNAME = P_RTABLE.

F2-DO_SUM = P_SUM.

F2-NO_OUT = P_DISP.

APPEND F2 TO F1.

CLEAR F2.

ENDFORM. " FCAT

&----


*& Form LSORT

&----


FORM LSORT USING P_FIELD P_TABLE P_UP. "DDD

ADD 1 TO L_POS. "DDD

IT_SORT-SPOS = L_POS. "DDD

IT_SORT-FIELDNAME = P_FIELD. "DDD

IT_SORT-TABNAME = P_TABLE. "DDD

IT_SORT-UP = P_UP. "DDD

APPEND IT_SORT. "DDD

ENDFORM. " LSORT "DDD

*----


FORM F_BUILD_EVENTCAT .

CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.

FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.

APPEND FS_EVENTCAT TO GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'END_OF_LIST'.

FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.

APPEND FS_EVENTCAT TO GT_EVENTS.

ENDFORM. " F_BUILD_EVENTCAT

Edited by: rkschd on Sep 14, 2011 7:49 AM

Edited by: rkschd on Sep 14, 2011 7:57 AM