cancel
Showing results for 
Search instead for 
Did you mean: 

problem in printing SMARTFORM

Former Member
0 Kudos

Hello experts,

I am having problem in print preview when I am calling a SMARTFORM from a program where I have used selection screen. I don't know what I am doing wrong. Please help me out.

This is the code----


REPORT YL_CN_FI .

TABLES : BKPF, "Accounting Header Data

BSEG, "Accounting Item Data

SKAT, "GL Text

T001W,

ADDR,

YADDR,

BSEC.

DATA : AMT_IN_WRD LIKE SPELL,

AMT_LINE1 LIKE ADDR-LINE0,

AMT_LINE2 LIKE ADDR-LINE0,

GL1 LIKE BSEG-HKONT,

GL2 LIKE BSEG-HKONT,

GLDESC1 LIKE SKAT-TXT50,

GLDESC2 LIKE SKAT-TXT50,

AMT1 LIKE BSEG-WRBTR,

AMT2 LIKE BSEG-WRBTR,

ORD1 LIKE BSEG-AUFNR,

ORD2 LIKE BSEG-AUFNR,

CC1 LIKE BSEG-KOSTL,

CC2 LIKE BSEG-KOSTL,

W_IND,

CNT TYPE N,

TAXCNT TYPE N,

OFFICE LIKE YADDR-ADD6,

TADR_NUM LIKE T001W-ADRNR,

RADI .

--


header text--

DATA BEGIN OF TLINES OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA END OF TLINES.

DATA : HDTEXT LIKE THEAD-TDNAME,

HLINE1 LIKE TLINE-TDLINE,

HLINE2 LIKE TLINE-TDLINE,

HLINE3 LIKE TLINE-TDLINE,

HLINE4 LIKE TLINE-TDLINE,

HLINE5 LIKE TLINE-TDLINE.

DATA : MTEXT LIKE THEAD-TDNAME,

MLINE1 LIKE TLINE-TDLINE,

MLINE2 LIKE TLINE-TDLINE,

MLINE3 LIKE TLINE-TDLINE,

MLINE4 LIKE TLINE-TDLINE,

MLINE5 LIKE TLINE-TDLINE.

DATA: POST_DT LIKE BKPF-BUDAT,

FM_NAME TYPE RS38L_FNAM,

LF_FORMNAME TYPE TDSFNAME.

----


pricing -

DATA BEGIN OF IT_BSEG OCCURS 0.

INCLUDE STRUCTURE BSEG.

DATA END OF IT_BSEG.

DATA BEGIN OF IT_YADDR OCCURS 0.

INCLUDE STRUCTURE YADDR.

DATA END OF IT_YADDR.

DATA BEGIN OF BR_YADDR OCCURS 0.

INCLUDE STRUCTURE YADDR.

DATA END OF BR_YADDR.

--


end of internal table declaration--

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS OPT_CN RADIOBUTTON GROUP RADI .

PARAMETERS OPT_DN RADIOBUTTON GROUP RADI .

SELECT-OPTIONS DOCNO FOR BSEG-BELNR DEFAULT '0007100000'.

PARAMETERS YEAR LIKE BSEG-GJAHR DEFAULT '2006' .

PARAMETERS COMP LIKE BSEG-BUKRS DEFAULT 'FCL'.

SELECTION-SCREEN END OF BLOCK B1.

--


main--

SELECT * FROM BSEG INTO TABLE IT_BSEG

WHERE BUKRS = COMP AND BELNR IN DOCNO

AND GJAHR = YEAR AND KOART = 'D'.

LOOP AT IT_BSEG.

CALL FUNCTION 'Y_ADDRESS' " Customer Address

EXPORTING

VC_FLAG = 'C'

PARTY_CODE = IT_BSEG-KUNNR

IMPORTING

IT_YADDR = IT_YADDR

EXCEPTIONS

OTHERS = 1.

IF IT_BSEG-KUNNR EQ '0000005001' .

SELECT SINGLE * FROM BSEC WHERE BUKRS = IT_BSEG-BUKRS

AND BELNR = IT_BSEG-BELNR AND GJAHR = IT_BSEG-GJAHR.

IF SY-SUBRC EQ 0.

IT_YADDR-ADD1 = BSEC-NAME1.

IT_YADDR-ADD2 = BSEC-NAME2.

IT_YADDR-ADD3 = BSEC-NAME3.

IT_YADDR-ADD4 = BSEC-NAME4.

IT_YADDR-ADD5 = BSEC-ORT01.

IT_YADDR-ADD6 = BSEC-PSTLZ.

ENDIF.

ENDIF.

----


Branch Address -

SELECT SINGLE * FROM T001W

  • where werks = 'PCAB'.

WHERE WERKS = IT_BSEG-GSBER .

TADR_NUM = T001W-ADRNR.

CALL FUNCTION 'Y_ADDRESS'

EXPORTING

VC_FLAG = 'P'

PARTY_CODE = TADR_NUM

IMPORTING

IT_YADDR = BR_YADDR

EXCEPTIONS

OTHERS = 1.

----


Branch Address -

SELECT BUDAT BLART INTO (BKPF-BUDAT, BKPF-BLART) FROM BKPF

WHERE BUKRS = IT_BSEG-BUKRS

AND BELNR = IT_BSEG-BELNR AND GJAHR = IT_BSEG-GJAHR.

ENDSELECT.

POST_DT = BKPF-BUDAT.

CASE BKPF-BLART.

WHEN 'C1' OR 'D1'. OFFICE = '****'.

WHEN 'C2' OR 'D2'. OFFICE = '*****'.

WHEN 'C3' OR 'D3'. OFFICE = '*******'.

ENDCASE.

PERFORM READ_HEADER_TEXT.

PERFORM GET_ITEM.

CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = IT_BSEG-WRBTR

CURRENCY = 'INR'

FILLER = ' '

LANGUAGE = SY-LANGU

IMPORTING

IN_WORDS = AMT_IN_WRD

EXCEPTIONS

NOT_FOUND = 1

TOO_LARGE = 2

OTHERS = 3.

CONCATENATE AMT_IN_WRD-WORD ' ONLY' INTO AMT_IN_WRD-WORD.

CALL FUNCTION 'RKD_WORD_WRAP'

EXPORTING

TEXTLINE = AMT_IN_WRD-WORD

  • DELIMITER = ' '

OUTPUTLEN = 70

IMPORTING

OUT_LINE1 = AMT_LINE1

OUT_LINE2 = AMT_LINE2

  • OUT_LINE3 =

  • TABLE

  • OUT_LINES =

EXCEPTIONS

OUTPUTLEN_TOO_LARGE = 1

OTHERS = 2.

IF OPT_CN = 'X'.

PERFORM ITEM_PRINT_CN.

ELSEIF OPT_DN = 'X'.

PERFORM ITEM_PRINT_DN.

ENDIF.

PERFORM INITALIZE.

ENDLOOP.

--


end of main--

&----


*& Form GET_ITEM

&----


FORM GET_ITEM.

NETVAL = 0.

MATVAL = 0.

DISVAL = 0.

BEDVAL = 0.

FGTURS = 0.

TAXABLE = 0.

FGTVAL = 0.

ENTRYTAX = 0.

SALTAX = 0.

SURCHG = 0.

SALTOT = 0.

TAXCNT = 0.

CNT = 1.

SELECT HKONT WRBTR BSCHL AUFNR KOSTL

INTO (BSEG-HKONT, BSEG-WRBTR, BSEG-BSCHL, BSEG-AUFNR, BSEG-KOSTL)

FROM BSEG

WHERE BUKRS = IT_BSEG-BUKRS

AND GJAHR = IT_BSEG-GJAHR

AND BELNR = IT_BSEG-BELNR

AND KOART NE 'D'.

CASE BSEG-HKONT.

WHEN '0000600000' OR '0000601000' OR '0000603000' OR

'0000604000' OR '0000606000' OR '0000609000'.

MATVAL = BSEG-WRBTR.

WHEN '0000764100'.

IF BSEG-BSCHL = '50'.

DISVAL = BSEG-WRBTR.

ELSE.

PERFORM GLACC.

ENDIF.

WHEN '0000611000'.

FGTVAL = FGTVAL + BSEG-WRBTR. "Changed on 24.08.2007

WHEN '0000760003'.

FGTURS = BSEG-WRBTR.

WHEN '0000570001' OR '0000570002' OR '0000570003' OR

'0000570000' OR '0000570004' OR '0000570005' OR

'0000570006' OR '0000570007' OR '0000570008' OR

'0000570009' OR '0000570010' OR '0000570011' OR

'0000570012' OR '0000570013' OR '0000570014' OR

'0000570015' OR '0000570016' OR '0000570017' OR

'0000570018' OR '0000570019' OR '0000570020'.

TAXCNT = TAXCNT + 1.

CASE TAXCNT.

WHEN 1. SALTAX = BSEG-WRBTR.

WHEN 2. SURCHG = BSEG-WRBTR.

WHEN 3. SALTOT = BSEG-WRBTR.

ENDCASE.

WHEN '0000571001' OR '0000571002' OR '0000571003' OR

'0000571000' OR '0000571004' OR '0000571005' OR

'0000571006' OR '0000571007' OR '0000571008' OR

'0000571009' OR '0000571010' OR '0000571011' OR

'0000571012' OR '0000571013' OR '0000571014' OR

'0000571015' OR '0000571016' OR '0000571017' OR

'0000571018' OR '0000571019' OR '0000571020'.

TAXCNT = TAXCNT + 1.

CASE TAXCNT.

WHEN 1. SALTAX = BSEG-WRBTR.

WHEN 2. SURCHG = BSEG-WRBTR.

WHEN 3. SALTOT = BSEG-WRBTR.

ENDCASE.

WHEN '0000610000'.

BEDVAL = BSEG-WRBTR.

WHEN '0000491110'.

ENTRYTAX = BSEG-WRBTR.

WHEN '0000764500'.

IF BSEG-BSCHL = '50'.

NETVAL = NETVAL - BSEG-WRBTR.

ELSE.

NETVAL = NETVAL + BSEG-WRBTR.

ENDIF.

WHEN OTHERS.

PERFORM GLACC.

ENDCASE.

ENDSELECT.

IF ENTRYTAX EQ 0.

W_IND = '0'.

ELSE.

W_IND = '1'.

ENDIF.

TAXABLE = MATVAL - DISVAL + BEDVAL + ENTRYTAX + FGTURS.

NETVAL = NETVAL + IT_BSEG-WRBTR.

ENDFORM. " GET_ITEM

&----


*& Form READ_HEADER_TEXT

&----


FORM READ_HEADER_TEXT.

CLEAR : HLINE1 ,HLINE2 ,HLINE3, HLINE4, HLINE5 , HDTEXT .

CLEAR TLINES.

REFRESH TLINES.

CONCATENATE IT_BSEG-BELNR IT_BSEG-GJAHR INTO HDTEXT.

CONCATENATE IT_BSEG-BUKRS HDTEXT INTO HDTEXT SEPARATED BY SPACE.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

ID = '0002'

LANGUAGE = SY-LANGU

NAME = HDTEXT

OBJECT = 'BELEG'

  • ARCHIVE_HANDLE = 0

  • IMPORTING

  • HEADER =

TABLES

LINES = TLINES

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8.

LOOP AT TLINES.

CASE SY-TABIX.

WHEN 1. HLINE1 = TLINES-TDLINE.

WHEN 2. HLINE2 = TLINES-TDLINE.

WHEN 3. HLINE3 = TLINES-TDLINE.

WHEN 4. HLINE4 = TLINES-TDLINE.

WHEN 5. HLINE5 = TLINES-TDLINE.

ENDCASE.

ENDLOOP.

************************************************************************

    • EXTRACT TOWARDS TEXT ELEMENT

************************************************************************

MTEXT = '0061003423'.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

ID = '0004'

LANGUAGE = SY-LANGU

NAME = MTEXT

OBJECT = 'VBBK'

  • ARCHIVE_HANDLE = 0

  • IMPORTING

  • HEADER =

TABLES

LINES = TLINES

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8.

LOOP AT TLINES.

CASE SY-TABIX.

WHEN 1. MLINE1 = TLINES-TDLINE.

WHEN 2. MLINE2 = TLINES-TDLINE.

WHEN 3. MLINE3 = TLINES-TDLINE.

WHEN 4. MLINE4 = TLINES-TDLINE.

WHEN 5. MLINE5 = TLINES-TDLINE.

ENDCASE.

ENDLOOP.

ENDFORM. " READ_HEADER_TEXT

&----


*& Form GET_GLDESC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_GLDESC USING P1 P2 .

P2 = ''.

SELECT TXT50 INTO (P2 ) FROM SKAT

WHERE SPRAS = SY-LANGU

AND KTOPL = 'FCOA' AND SAKNR = P1.

ENDSELECT.

ENDFORM. " GET_GLDESC

&----


*& Form GLACC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GLACC.

IF CNT EQ 1.

GL1 = BSEG-HKONT.

AMT1 = BSEG-WRBTR.

ORD1 = BSEG-AUFNR.

CC1 = BSEG-KOSTL.

PERFORM GET_GLDESC CHANGING GL1 GLDESC1.

CNT = CNT + 1.

ELSE.

GL2 = BSEG-HKONT.

AMT2 = BSEG-WRBTR.

ORD2 = BSEG-AUFNR.

CC2 = BSEG-KOSTL.

PERFORM GET_GLDESC CHANGING GL2 GLDESC2.

ENDIF.

ENDFORM. " GLACC

&----


*& Form INITALIZE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM INITALIZE.

CLEAR : HLINE1 ,HLINE2 ,HLINE3, HLINE4, HLINE5 , HDTEXT .

IT_BSEG-KUNNR = ''.

MATVAL = 0.

DISVAL = 0.

FGTVAL = 0.

SALTAX = 0.

GL1 = ''. GL2 = ''.

GLDESC1 = ''. GLDESC2 = ''.

CC1 = ''. CC2 = ''.

ORD1 = ''. ORD2 = ''.

AMT1 = 0. AMT2 = 0.

ENDFORM. " INITALIZE

&----


*& Form ITEM_PRINT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ITEM_PRINT_CN .

LF_FORMNAME = 'YL_CN_FI'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING FORMNAME = LF_FORMNAME

  • variant = ' '

  • direct_call = ' '

IMPORTING FM_NAME = FM_NAME

EXCEPTIONS NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • error handling

ENDIF.

CALL FUNCTION FM_NAME

ENDFORM. " ITEM_PRINT

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Thank you everybody....The problem has been solved. I had to add some function module to add the smartform with the output.

Former Member
0 Kudos

Hi Sumit,

1)Check the declarations of the field structure and internal tables are declared properly within the smart form as well in driver program.

2)Check the function module that has been generated by the smart forms is included properly in the driver program if not call once again in smart form

Regards,

Sravanthi

Former Member
0 Kudos

Hi,

You need to pass all the parameters to u r SMARTFORm function module,giving only "CALL FUNCTION FM_NAME" is not enough,paas all Importing/Exporting/Tables parameters.

Thanks & Regards,

Rock.

Former Member
0 Kudos

I did that...actually It was not coming in that page because of the character limitation. The program is not executing. why??

CALL FUNCTION FM_NAME

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS = ''

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

POST_DT = POST_DT

OFFICE = OFFICE

HLINE1 = HLINE1

HLINE2 = HLINE2

HLINE3 = HLINE3

HLINE4 = HLINE4

HLINE5 = HLINE5

MLINE1 = MLINE1

MLINE2 = MLINE2

W_IND = W_IND

MATVAL = MATVAL

NETVAL = NETVAL

DISVAL = DISVAL

BEDVAL = DISVAL

FGTURS = FGTURS

TAXABLE = TAXABLE

FGTVAL = FGTVAL

ENTRYTAX = ENTRYTAX

SALTAX = SALTAX

SURCHG = SURCHG

SALTOT = SALTOT

AMT_LINE1 = AMT_LINE1

AMT_LINE2 = AMT_LINE2

GL1 = GL1

GL2 = GL2

GLDESC1 = GLDESC1

GLDESC2 = GLDESC2

AMT1 = AMT1

AMT2 = AMT2

ORD1 = ORD1

ORD2 = ORD2

CC1 = CC1

CC2 = CC2

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

IT_YADDR = IT_YADDR

IT_BSEG = IT_BSEG

BR_YADDR = BR_YADDR

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

  • IF SY-SUBRC <> 0.

*

  • ENDIF.

Former Member
0 Kudos

u mean to say you are not getting any preview right,

this can happen if some template is exceeding window limits, in this case smartform doesnot give any error but preview doesnot come,

use tcode smartform_trace and switch on the trace now execute ur program, this time it will stop in debugger if any error or warning is present at runtime, analyse the error or warning by getting the message id and check it in se91