Dear Experts,
Thank you for your helpful suggestions. I tried to fetch only the PO number of sales order number by adding that field name i.e. BSTNK_VF into a ztable. Also created workarea (WA_ITAB like Ztable). Hence this WA_ITAB will fetch the data and display on the smartform.
But I am unable to print the value of this field in the smartform. All the naming conventions are proper but still no value gets displayed.
Also, sharing the code of the program below for your reference.
REPORT ZXX_XXX_CUSTOMERINVOICE.
TYPE-POOLS: slis.
TABLES : VBRK,VBRP,ADRC,KNA1,KONV,VBAK.
TABLES : nast.
DATA : VBELN TYPE VBRK-VBELN.
DATA : BSTKD TYPE VBKD-BSTKD.
DATA : KTGRD TYPE KNVV-KTGRD.
DATA : FMNAME TYPE rs38l_fnam,
control TYPE ssfctrlop,
errtab TYPE tsferror.
DATA : itab TYPE STANDARD TABLE OF zcust_inv,
wa_itab type zcust_inv,
itab1 TYPE STANDARD TABLE OF zcust_inv,
wa_itab1 type zcust_inv,
itab2 TYPE STANDARD TABLE OF zcust_inv,
wa_itab2 type zcust_inv.
DATA:
it_vbrp TYPE STANDARD TABLE OF vbrp,
it_vbpa TYPE STANDARD TABLE OF vbpa,
it_vbak TYPE STANDARD TABLE OF vbak,
it_adrc TYPE STANDARD TABLE OF adrc,
it_konv TYPE STANDARD TABLE OF konv,
it_konv1 TYPE STANDARD TABLE OF konv,
it_j_1iexchdr TYPE STANDARD TABLE OF j_1iexchdr,
wa_vbpa type vbpa,
wa_vbak type vbak,
wa_adrc TYPE adrc,
wa_konv TYPE konv,
wa_konv1 TYPE konv,
wa_j_1iexchdr TYPE j_1iexchdr.
data : tdname TYPE thead-tdname,
tdname1 TYPE thead-tdname,
temp type TABLE OF tline WITH HEADER LINE.
DATA: amount_in_words TYPE spell-word,
lv_amount type pc207-betrg,
pos type posnr.
START-OF-SELECTION.
form entry using return_code us_screen.
perform get_data.
perform fetch_data.
perform processing.
ENDFORM.
FORM GET_DATA .
vbeln = nast-objky.
select a~vbeln a~fkart a~kunag a~knumv a~fkdat A~ERDAT A~BSTNK_VF
b~posnr b~matnr b~arktx b~netwr b~fkimg b~vrkme b~werks
from vbrk as A INNER JOIN vbrp as B
on b~vbeln = a~vbeln
into CORRESPONDING FIELDS OF TABLE itab
where a~vbeln = vbeln.
if itab[] is NOT INITIAL.
select * from j_1iexchdr
INTO CORRESPONDING FIELDS OF TABLE it_j_1iexchdr
FOR ALL ENTRIES IN itab
where rdoc = itab-vbeln.
SELECT * FROM vbpa
INTO CORRESPONDING FIELDS OF TABLE it_vbpa
FOR ALL ENTRIES IN itab
WHERE kunnr = itab-kunag and parvw in ('WE' , 'AG').
SELECT * from konv
into CORRESPONDING FIELDS OF TABLE it_konv
FOR ALL ENTRIES IN itab
where knumv = itab-knumv and kschl in ('PR00' , 'JHCS' , 'JECS' , 'JEXP' ,'JCST' ,'JLST','ZROU' ).
SELECT * from konv
into CORRESPONDING FIELDS OF TABLE it_konv1
FOR ALL ENTRIES IN itab
where knumv = itab-knumv and kschl in ('PR00' , 'JHCS' , 'JECS' , 'JEXP' ,'JCST' ,'JLST' ).
endif.
if it_vbpa[] is NOT INITIAL.
select * from adrc
INTO CORRESPONDING FIELDS OF TABLE it_adrc
FOR ALL ENTRIES IN it_vbpa
where ADDRNUMBER = it_vbpa-adrnr.
ENDIF.
ENDFORM.
FORM FETCH_DATA .
loop at itab INTO wa_itab.
clear pos.
pos = wa_itab-posnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = wa_itab-posnr
IMPORTING
OUTPUT = wa_itab-posnr.
wa_itab-fkimg = wa_itab-fkimg.
read TABLE it_vbpa into wa_vbpa with key kunnr = wa_itab-kunag.
read TABLE it_adrc into wa_adrc with key addrnumber = wa_vbpa-adrnr.
wa_itab-name1 = wa_adrc-name1.
wa_itab-city1 = wa_adrc-city1.
wa_itab-STR_SUPPL1 = wa_adrc-STR_SUPPL1.
wa_itab-STR_SUPPL2 = wa_adrc-STR_SUPPL2.
wa_itab-STREET = wa_adrc-STREET.
wa_itab-POST_CODE1 = wa_adrc-POST_CODE1.
loop at it_konv into wa_konv where knumv = wa_itab-knumv.
CASE WA_KONV-KSCHL.
WHEN 'PR00'.
wa_itab-total = wa_itab-total + WA_KONV-KWERT.
* wa_itab-per = wa_itab-per + WA_KONV-Kbetr.
WHEN 'JEXP'.
wa_itab-EXC = wa_itab-EXC + WA_KONV-KWERT.
WHEN 'JECS'.
wa_itab-CESS = wa_itab-CESS + WA_KONV-KWERT.
WHEN 'JHCS'.
wa_itab-SH = wa_itab-sh + WA_KONV-KWERT.
* when 'JCST'.
* wa_itab-VAT = wa_itab-VAT + WA_KONV-KWERT.
* when 'JLST'.
wa_itab-LST = wa_itab-LST + WA_KONV-KWERT.
when 'ZROU'.
wa_itab-r_off = wa_itab-r_off + wa_konv-kbetr.
ENDCASE.
endloop.
read TABLE it_vbpa into wa_vbpa with key kunnr = wa_itab-kunag parvw = 'WE'.
SELECT SINGLE KTGRD INTO KTGRD FROM KNVV
WHERE KUNNR = wa_vbpa-kunnr.
IF KTGRD = '01'.
LOOP AT IT_KONV INTO WA_KONV
WHERE KSCHL = 'JCST' OR KSCHL = 'JLST'.
IF WA_KONV-MWSK1 = 'V1' or WA_KONV-MWSK1 = 'V3'.
wa_itab-ADD_VAT_WORD = 'VATMum 5%'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'V2'.
wa_itab-ADD_VAT_WORD = 'VAT @5%'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C1'.
wa_itab-ADD_VAT_WORD = 'CST 5%'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C2'.
wa_itab-ADD_VAT_WORD = 'CST 2%'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C3'.
wa_itab-ADD_VAT_WORD = 'CST(STO)'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C4'.
wa_itab-ADD_VAT_WORD = 'CST formH'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C5'.
wa_itab-ADD_VAT_WORD = 'CST formE1'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ELSEIF WA_KONV-MWSK1 = 'C6'.
wa_itab-ADD_VAT_WORD = 'CST formE2'.
wa_itab-ADD_VAT = WA_KONV-KWERT + wa_itab-ADD_VAT.
ENDIF.
ENDLOOP.
ENDIF.
loop at it_konv1 into wa_konv1 where knumv = wa_itab-knumv and kposn = pos and kschl = 'PR00'.
wa_itab-per = wa_itab-per + WA_KONV1-Kbetr.
wa_itab-***_VAL = wa_itab-***_VAL + WA_KONV1-KWERT.
endloop.
loop at it_konv1 into wa_konv1 where knumv = wa_itab-knumv and kposn = pos and kschl = 'JEXP'.
wa_itab-tdpay = wa_itab-tdpay + WA_KONV1-KWERT.
endloop.
wa_itab-total1 = wa_itab-total + wa_itab-EXC + wa_itab-cess + wa_itab-sh + wa_itab-add_vat + wa_itab-r_off .
lv_amount = wa_itab-***_val.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
AMT_IN_NUM = lv_amount
IMPORTING
AMT_IN_WORDS = wa_itab-***_WORDS
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
.
REPLACE all OCCURRENCES OF 'Rupees' in wa_itab-***_WORDS with 'RUPEES'.
CLEAR lv_amount.
lv_amount = wa_itab-EXC.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
AMT_IN_NUM = lv_amount
IMPORTING
AMT_IN_WORDS = wa_itab-EXC_WORDS
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
.
REPLACE all OCCURRENCES OF 'Rupees' in wa_itab-EXC_WORDS with 'RUPEES'.
CLEAR lv_amount.
lv_amount = wa_itab-cess.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
AMT_IN_NUM = lv_amount
IMPORTING
AMT_IN_WORDS = wa_itab-CESS_WORDS
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
.
REPLACE all OCCURRENCES OF 'Rupees' in wa_itab-CESS_WORDS with 'RUPEES'.
CLEAR lv_amount.
lv_amount = wa_itab-sh.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
AMT_IN_NUM = lv_amount
IMPORTING
AMT_IN_WORDS = wa_itab-sh_WORDS
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
.
REPLACE all OCCURRENCES OF 'Rupees' in wa_itab-SH_WORDS with 'RUPEES'.
lv_amount = wa_itab-total1.
CALL FUNCTION 'HR_IN_CHG_INR_WRDS'
EXPORTING
AMT_IN_NUM = lv_amount
IMPORTING
AMT_IN_WORDS = wa_itab-total1_words
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
.
REPLACE all OCCURRENCES OF 'Rupees' in wa_itab-TOTAL1_WORDS with 'RUPEES'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_itab-vbeln
IMPORTING
OUTPUT = wa_itab-vbeln.
TDNAME = wa_itab-vbeln.
CLEAR: temp[] , temp.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z003'
LANGUAGE = 'E'
NAME = TDNAME
OBJECT = 'VBBK'
TABLES
LINES = temp
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
LOOP AT temp.
CONCATENATE wa_itab-lr temp-tdline INTO wa_itab-lr
SEPARATED BY space.
ENDLOOP.
CLEAR: temp[] , temp.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z005'
LANGUAGE = 'E'
NAME = TDNAME
OBJECT = 'VBBK'
TABLES
LINES = temp
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
LOOP AT temp.
CONCATENATE wa_itab-VEHICLENO temp-tdline INTO wa_itab-VEHICLENO
SEPARATED BY space.
ENDLOOP.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = wa_itab-posnr
IMPORTING
OUTPUT = wa_itab-posnr.
CONCATENATE vbeln wa_itab-posnr INTO TDNAME1.
CLEAR: temp[] , temp.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z002'
LANGUAGE = 'E'
NAME = TDNAME1
OBJECT = 'VBBP'
TABLES
LINES = temp
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
LOOP AT temp.
CONCATENATE wa_itab-nopck temp-tdline INTO wa_itab-nopck
SEPARATED BY space.
ENDLOOP.
CLEAR: temp[] , temp.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z003'
LANGUAGE = 'E'
NAME = TDNAME1
OBJECT = 'VBBP'
TABLES
LINES = temp
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
LOOP AT temp.
CONCATENATE wa_itab-avgperpck temp-tdline INTO wa_itab-avgperpck
SEPARATED BY space.
ENDLOOP.
SELECT SINGLE J_1IEXCD FROM J_1IMOCUST INTO WA_itab-ecc
WHERE kunnr = wa_itab-kunag.
READ TABLE it_j_1iexchdr into wa_j_1iexchdr with key rdoc = wa_itab-vbeln.
IF WA_ITAB-ERDAT <= '20150331'. "'31.3.2015'.
CLEAR: temp[] , temp.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z007'
LANGUAGE = 'E'
NAME = TDNAME
OBJECT = 'VBBK'
TABLES
LINES = temp
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
LOOP AT temp.
CONCATENATE wa_itab-exnum temp-tdline INTO wa_itab-exnum
SEPARATED BY space.
ENDLOOP.
ELSE. " WA_ITAB-ERDAT > '20150331'. "'31.3.2015'.
wa_itab-exnum = wa_j_1iexchdr-exnum.
ENDIF.
wa_itab-exdat = wa_j_1iexchdr-exdat.
wa_itab-dt = wa_j_1iexchdr-exdat.
wa_itab-prepare_time = wa_j_1iexchdr-cputm.
modify itab from wa_itab transporting rate posnr fkimg name1 city1 str_suppl1 str_suppl2 street post_code1
***_val exc cess sh total total1 ***_words exc_words cess_words sh_words lr vehicleno ecc total1_words
exnum exdat dt prepare_time vat lst nopck avgperpck per tdpay add_vat_word add_vat r_off
where vbeln = wa_itab-vbeln and posnr = wa_itab-posnr.
clear : wa_vbpa,wa_adrc,wa_konv,wa_j_1iexchdr.
clear wa_itab.
endloop.
ENDFORM.
FORM PROCESSING .
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZSD_SSF_CUSTOMER_INVOICE1'
IMPORTING
FM_NAME = FMNAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
ENDIF.
CALL FUNCTION FMNAME
EXPORTING VBELN = VBELN
IS_NAST = NAST
TABLES
ITAB = ITAB
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
ENDIF.
CALL FUNCTION 'SSF_READ_ERRORS'
IMPORTING
errortab = errtab.
IF NOT errtab IS INITIAL
ENDIF.
ENDFORM.
Please guide asap.