‎2011 Sep 13 7:56 AM
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
‎2011 Sep 13 8:12 AM
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.
‎2011 Sep 13 8:12 AM
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.
‎2011 Sep 13 8:21 AM
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.
‎2011 Sep 13 8:25 AM
‎2011 Sep 13 8:41 AM
when you are using F2 to append into table, Y have you assigned F1-just .. It should be F2-just = 'C'.
‎2011 Sep 13 8:57 AM
‎2011 Sep 13 9:03 AM
‎2011 Sep 13 9:04 AM
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
‎2011 Sep 13 9:13 AM
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.
‎2011 Sep 13 9:20 AM
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 = F1with
it_fieldcat = F1[]In teh first line you are passing the header line to a table type parameter.
Suzie
‎2011 Sep 13 9:26 AM
‎2011 Sep 13 9:28 AM
‎2011 Sep 13 9:42 AM
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??
‎2011 Sep 13 9:50 AM
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
‎2011 Sep 13 10:42 AM
Gr8 , This is also working but we have to define it in IT_Fieldcat as well.
‎2011 Sep 14 6:49 AM
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