As per business requirement i have develop a smartform for service entrysheet with cost center and business area.While printing smartform for multiple service entry sheet,Headers are coming correctly but line item is display only for last .
*****Start of selection
SELECT essr~lblni
essr~lblne
essr~ernam
essr~erdat
essr~sbnamag
essr~sbnaman
essr~dlort
essr~lbldt
essr~lzvon
essr~lzbis
essr~packno
essr~txz01
essr~ebeln
essr~ebelp
essr~loekz
essr~kzabn
essr~waers
essr~lwert
essr~xblnr
essr~bktxt
ekko~bukrs
ekko~bstyp
ekko~bsart
ekko~aedat
ekko~lifnr
ekko~bedat
ekko~bnddt
ekko~kdatb
ekko~kdate
INTO CORRESPONDING FIELDS OF TABLE it_final
FROM essr INNER JOIN ekko ON ekko~ebeln = essr~ebeln
WHERE essr~lblni in s_lblni
AND essr~sbnamag IN s_sbnam
AND essr~sbnaman IN s_sbna
AND essr~lbldt IN s_lbldt
AND essr~kzabn IN s_kzabn
AND essr~ebeln IN s_ebeln
AND ekko~ekorg IN s_ekorg
AND ekko~ekgrp IN s_ekgrp
AND ekko~lifnr IN s_lifnr
AND ekko~bedat IN s_bedat.
SORT it_final ASCENDING BY lblni.
IF it_final[] IS INITIAL.
MESSAGE ' No data available for selected criteria' TYPE 'E'.
ENDIF.
SELECT lifnr
land1
name1
name2
name3
name4
ort01
ort02
* STR_SUPPL1
pfach
pstl2
pstlz
regio
stras
anred
FROM lfa1
INTO CORRESPONDING FIELDS OF TABLE it_lfa1
FOR ALL ENTRIES IN it_final
WHERE lifnr = it_final-lifnr.
LOOP AT it_final.
READ TABLE it_lfa1 WITH KEY lifnr = it_final-lifnr.
IF sy-subrc = 0.
it_final-land1 = it_lfa1-land1.
it_final-name1 = it_lfa1-name1.
it_final-name2 = it_lfa1-name2.
it_final-name3 = it_lfa1-name3.
it_final-name4 = it_lfa1-name4.
it_final-ort01 = it_lfa1-ort01.
it_final-ort02 = it_lfa1-ort02.
it_final-pfach = it_lfa1-pfach.
it_final-pstl2 = it_lfa1-pstl2.
it_final-pstlz = it_lfa1-pstlz.
it_final-regio = it_lfa1-regio.
it_final-stras = it_lfa1-stras.
it_final-anred = it_lfa1-anred.
ENDIF.
MODIFY it_final.
ENDLOOP.
SELECT * FROM eskn INTO eskn WHERE packno = it_final-lblni.
ENDSELECT.
LOOP AT it_final.
it_final-sakto = eskn-sakto.
it_final-gsber = eskn-gsber.
SHIFT it_final-lifnr LEFT DELETING LEADING '0'.
MODIFY it_final.
ENDLOOP.
***&---------------------------------------------------------------------*
***& Form USRCMD
***&---------------------------------------------------------------------*
*FORM usrcmd USING ucomm TYPE sy-ucomm " For Double
* selfield TYPE slis_selfield.
fm_name = 'ZML_SERVICE_ENTRY'.
* CASE ucomm .
** WHEN '&IC1' .
*
LOOP AT it_final.
* READ TABLE it_final INDEX selfield-tabindex .
it_result-dlort = it_final-dlort.
it_result-ebeln = it_final-ebeln.
it_result-lblni = it_final-lblni.
it_result-lbldt = it_final-lbldt.
it_result-bedat = it_final-bedat.
it_result-ebelp = it_final-ebelp.
it_result-lifnr = it_final-lifnr.
it_result-txz01 = it_final-txz01.
it_result-land1 = it_final-land1.
it_result-name1 = it_final-name1.
it_result-name2 = it_final-name2.
it_result-name3 = it_final-name3.
it_result-name4 = it_final-name4.
it_result-ort01 = it_final-ort01.
it_result-ort02 = it_final-ort02.
it_result-pfach = it_final-pfach.
it_result-waers = it_final-waers.
it_result-pstlz = it_final-pstlz.
it_result-regio = it_final-regio.
it_result-stras = it_final-stras.
it_result-anred = it_final-anred.
it_result-lbldt = it_final-lbldt.
it_final-waers = it_final-waers.
it_result-sakto = it_final-sakto.
it_result-gsber = it_final-gsber.
it_result-lwert = it_final-lwert.
it_result-meins = it_final-meins.
it_result-lblne = it_final-lblne.
it_result-lzvon = it_final-lzvon.
it_result-lzbis = it_final-lzbis.
it_result-xblnr = it_final-xblnr.
it_result-bktxt = it_final-bktxt.
it_result-tdline = it_final-tdline.
it_result-packno = it_final-packno.
APPEND it_result.
ENDLOOP.
LOOP AT it_final.
SELECT * FROM eskl INTO eskl WHERE hpackno = it_final-packno.
ENDSELECT.
LOOP AT it_final.
IF sy-subrc = 0.
it_final-hpackno = eskl-packno.
ENDIF.
MODIFY it_final.
ENDLOOP.
SELECT * FROM esll INTO corresponding fields of TABLE it_esll
FOR ALL ENTRIES IN it_final
WHERE packno = it_final-hpackno.
ENDLOOP.
loop at it_final.
endloop.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZML_SERVICE_ENTRY'
* control_parameters = wa_cparam
* output_options = wa_output
* user_settings = ' '
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
fm_name = l_fmname
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE i398(00) WITH 'Error in displaying form output'(004).
ENDIF.
*loop at it_final.
* loop at t_esll.
CALL FUNCTION l_fmname
EXPORTING
* control_parameters = control
* output_options = output
* it_line = t_esll
lblni_low = s_lblni-low
lblni_high = s_lblni-high
lbldt_fr = s_lbldt-low
lbldt_to = s_lbldt-high
* S_LBLNI = S_LBLNI
TABLES
it_result = it_result
IT_LINE = it_esll
* s_lblni = s_lblni
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno.
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.