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

Display Field in Multilines

Former Member
0 Likes
582

Haii Experts,

I have a field having its length say 200 characters and i need to display it in four lines say 50 chars per line..in my ALV

is it Possible?

Haii Experts,

I have a field having its length say 200 characters and i need to display it in four lines say 50 chars per line..in my ALV

is it Possible?

4 REPLIES 4
Read only

Former Member
0 Likes
556

yes it is possible ...

REPORT Z_TEST_ALV_EVENTS .

type-pools: slis.

data: x_fieldcat type slis_fieldcat_Alv,

it_fieldcat type slis_t_fieldcat_alv,

x_events type slis_alv_event,

it_events type SLIS_T_EVENT.

data: v_lines type i.

data: begin of itab occurs 0,

vbeln like vbak-vbeln,

posnr like vbap-posnr,

end of itab.

select vbeln

posnr

from vbap

up to 100 rows

into table itab.

x_events-name = 'TOP_OF_PAGE'.

x_events-form = 'TOP_OF_PAGE'.

append x_events to it_events.

clear x_events.

  • call function 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = IT_EVENTS

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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.

*

  • read table it_events into x_events with key name = 'TOP_OF_PAGE'.

  • if sy-subrc = 0.

  • x_events-form = 'TOP_OF_PAGE'.

  • modify it_events from x_events index sy-tabix transporting form .

  • endif.

*

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = sy-repid

I_INTERNAL_TABNAME = 'ITAB'

I_INCLNAME = sy-repid

changing

ct_fieldcat = IT_FIELDCAT

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3

.

if sy-subrc 0.

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

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

endif.

describe table itab lines v_lines.

call function 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = sy-repid

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

IT_EVENTS = IT_EVENTS

tables

t_outtab = ITAB[]

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.

FORM TOP_OF_PAGE.

"show your standard header using write statements.

*

ENDFORM.[/code]

Read only

0 Likes
556

Haii Parminder Ji,

May be i have explained it in wrong way or u mistook it..actually say if i am displaying a field like addr which has 200 chars as its max length..and say it has a value for one row as "this is the field which contains the address of a particular person or office etc.etc.".

Now i want to display this value as

addr

-


this is the field which

contains the address

of a particular person

so on

instead as

addr

-


this is the field which contains the address of a particular person or office etc.etc

Hope you have got it well now..

Best Regards,

rama

Read only

0 Likes
556

I think you need to think of the ALV as behaving like a simple spreadsheet with the ability to display only one line of data per row. So you could simulate the display below by replicating your data 3 extra times e.g.


Row   Customer No     Address
  1   12345           this is the field which
  2   12345           contains the address
  3   12345           of a particular person
  4   12345           so on

but then you have 4 rows in your ALV, rather than one, and when the user sorts and subtotals the report themselves, the fun will really begin!

So I'd suggest you put the data into a long field but force the ALV to only display, say, 40 characters of the field by default (fieldcat-outputlen), and then the user can choose to expand the column wider if they want... also you could hotspot the field and take the user into the customer display transaction to provide all the data they might need to see.

Jonathan

Read only

Former Member
0 Likes
556

or this one may as well help u

The following code demonstrate the same.

TYPE-POOLS: slis.

DATA: BEGIN OF i_data OCCURS 0,

qmnum LIKE qmel-qmnum,

qmart LIKE qmel-qmart,

qmtxt LIKE qmel-qmtxt,

ws_row TYPE i,

ws_char(5) TYPE c,

chk,

END OF i_data.

DATA: report_id LIKE sy-repid.

DATA: ws_title TYPE lvc_title VALUE 'An ALV Report'.

DATA: i_layout TYPE slis_layout_alv.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: i_events TYPE slis_t_event.

DATA: i_header TYPE slis_t_listheader.

SELECT qmnum

qmart

qmtxt

INTO TABLE i_data

FROM qmel

WHERE qmnum <= '00030000010'.

LOOP AT i_data.

i_data-ws_row = sy-tabix.

i_data-ws_char = 'AAAAA'.

MODIFY i_data.

ENDLOOP.

report_id = sy-repid.

PERFORM f1000_layout_init CHANGING i_layout.

PERFORM f2000_fieldcat_init CHANGING i_fieldcat.

PERFORM f3000_build_header CHANGING i_header.

PERFORM f4000_events_init CHANGING i_events.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = report_id

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • i_structure_name = ' '

  • I_BACKGROUND_ID = ' '

i_grid_title = ws_title

  • I_GRID_SETTINGS =

is_layout = i_layout

it_fieldcat = i_fieldcat

  • 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 =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = i_data

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.

&----


*& Form F1000_Layout_Init

&----


FORM f1000_layout_init USING i_layout TYPE slis_layout_alv.

CLEAR i_layout.

i_layout-colwidth_optimize = 'X'.

i_layout-edit = 'X'.

ENDFORM. " F1000_Layout_Init

&----


*& Form f2000_fieldcat_init

&----


FORM f2000_fieldcat_init CHANGING i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: line_fieldcat TYPE slis_fieldcat_alv.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMNUM'. " The field name and the table

line_fieldcat-tabname = 'I_DATA'. " name are the two minimum req.

line_fieldcat-key = 'X'. " Specifies the column as a key (Blue)

line_fieldcat-seltext_m = 'Notification No.'. " Column Header

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMART'.

line_fieldcat-ref_tabname = 'I_DATA'.

line_fieldcat-hotspot = 'X'. " Shows the field as a hotspot.

line_fieldcat-seltext_m = 'Notif Type'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'QMTXT'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_m = 'Description'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'WS_ROW'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_m = 'Row Number'.

APPEND line_fieldcat TO i_fieldcat.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'WS_CHAR'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_l = 'Test Character Field'.

line_fieldcat-datatype = 'CHAR'.

line_fieldcat-outputlen = '15'. " You can specify the width of a

APPEND line_fieldcat TO i_fieldcat. " column.

CLEAR line_fieldcat.

line_fieldcat-fieldname = 'CHK'.

line_fieldcat-tabname = 'I_DATA'.

line_fieldcat-seltext_l = 'Checkbox'.

line_fieldcat-checkbox = 'X'. " Display this field as a checkbox

line_fieldcat-edit = 'X'. " This option ensures that you can

" edit the checkbox. Else it will

" be protected.

APPEND line_fieldcat TO i_fieldcat.

ENDFORM. " f2000_fieldcat_init

&----


*& Form f3000_build_header

&----


FORM f3000_build_header USING i_header TYPE slis_t_listheader.

DATA: gs_line TYPE slis_listheader.

CLEAR gs_line.

gs_line-typ = 'H'.

gs_line-info = 'This is line of type HEADER'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'S'.

gs_line-key = 'STATUS 1'.

gs_line-info = 'This is line of type STATUS'.

APPEND gs_line TO i_header.

gs_line-key = 'STATUS 2'.

gs_line-info = 'This is also line of type STATUS'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'A'.

gs_line-info = 'This is line of type ACTION'.

APPEND gs_line TO i_header.

ENDFORM. " f3000_build_header

&----


*& Form f4000_events_init

&----


FORM f4000_events_init CHANGING i_events TYPE slis_t_event.

DATA: line_event TYPE slis_alv_event.

CLEAR line_event.

line_event-name = 'TOP_OF_PAGE'.

line_event-form = 'F4100_TOP_OF_PAGE'.

APPEND line_event TO i_events.

ENDFORM. " f3000_events_init

-


  • FORM F4100_TOP_OF_PAGE *

-


FORM f4100_top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header.

ENDFORM.

Please reward for the same.