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

Read_text

Former Member
0 Likes
467

hi all,

using function module using read_text i need to get the text i write a code could you plz help me. how can i get that text using companycode asset number.where i have to write the code,where i have to call this function module in the loop or outside the loop,

DATA: w_anla TYPE ty_anla,

w_anlz TYPE ty_anlz,

w_output TYPE ty_output.

&----


*& alv declaration

*&

&----


DATA: w_fieldcat TYPE slis_fieldcat_alv,

t_fieldcat TYPE slis_t_fieldcat_alv.

&----


*& global variable declaration

*&

&----


DATA: g_anlkl TYPE anla-anlkl,

g_kostl TYPE anlz-kostl,

g_anln1 TYPE anla-anln1,

g_sernr TYPE anla-sernr,

g_invnr TYPE anla-invnr,

g_aktiv TYPE anla-aktiv.

&----


*& selection screen declaration

*&

&----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS:p_bukrs TYPE anla-bukrs.

SELECT-OPTIONS:s_anlkl FOR g_anlkl,

s_kostl FOR g_kostl,

s_anln1 FOR g_anln1,

s_sernr FOR g_sernr,

s_invnr FOR g_invnr,

s_aktiv FOR g_aktiv.

SELECTION-SCREEN END OF BLOCK b1.

&----


*&initilization declaration

*&

&----


INITIALIZATION.

**clear the work area

CLEAR:w_anla,

w_anlz,

w_output.

  • refresh the internal table

REFRESH:t_anla,

t_anlz,

t_output.

&----


*&At selection screen

*&

&----


AT SELECTION-SCREEN ON p_bukrs.

*validation the company code

PERFORM sub_validate_bukrs.

AT SELECTION-SCREEN.

*validate the asset class

PERFORM sub_validate_assetclass.

*validate the cost center

PERFORM sub_validate_costcenter.

*validate the asset number

PERFORM sub_validate_assetmumber.

*validate the serial number

PERFORM sub_validate_serialnumber.

*validate the model

PERFORM sub_validate_model.

*validate the model

PERFORM sub_validate_date.

&----


*&start of selection

*&

&----


*get the data anla

PERFORM sub_get_anla.

*get the data anlz

PERFORM sub_get_anlz.

&----


*&dispaly the data

*&

&----


PERFORM sub_disp_data.

PERFORM sub_disp_alv.

&----


*& Form SUB_VALIDATE_BUKRS

&----


FORM sub_validate_bukrs.

DATA:l_bukrs TYPE bukrs.

SELECT bukrs

form t001

INTO l_bukrs

UP TO 1 ROWS

WHERE bukrs = p_bukrs.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid company code' p_bukrs.

ENDIF.

ENDFORM. " SUB_VALIDATE_BUKRS

&----


*& Form SUB_VALIDATE_ASSETCLASS

&----


FORM sub_validate_assetclass .

DATA:l_anlkl TYPE anlkl.

SELECT SINGLE anlkl

form anka

INTO l_anlkl

WHERE anlkl IN s_anlkl.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid asset class' s_anlkl.

ENDIF.

ENDFORM. " SUB_VALIDATE_BUKRS

ENDFORM. " SUB_VALIDATE_ASSETCLASS

&----


*& Form SUB_VALIDATE_COSTCENTER

&----


FORM sub_validate_costcenter .

DATA:l_kostl TYPE kostl.

SELECT SINGLE kostl

form anlz

INTO l_kostl

WHERE kostl IN s_kostl.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid asset class' s_anlkl.

ENDIF.

ENDFORM. " SUB_VALIDATE_BUKRS

ENDFORM. " SUB_VALIDATE_COSTCENTER

&----


*& Form SUB_VALIDATE_ASSETMUMBER

&----


  • text

FORM sub_validate_assetmumber .

DATA:l_anln1 TYPE anln1.

SELECT SINGLE anln1

form anlh

INTO l_anln1

WHERE anln1 IN s_anln1.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid asset number' s_anln1.

ENDIF.

ENDFORM. " SUB_VALIDATE_ASSETMUMBER

&----


*& Form SUB_VALIDATE_SERIALNUMBER

&----


  • text

FORM sub_validate_serialnumber .

DATA:l_sernr TYPE am_sernr.

SELECT SINGLE sernr

form anla

INTO l_sernr

WHERE sernr IN s_sernr.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid serial number' s_sernr.

ENDIF.

ENDFORM. " SUB_VALIDATE_SERIALNUMBER

&----


*& Form SUB_VALIDATE_MODEL

&----


  • text

FORM sub_validate_model .

DATA:l_invnr TYPE invnr_anla.

SELECT SINGLE invnr

form anla

INTO l_invnr

WHERE invnr IN s_invnr.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid model' s_invnr.

ENDIF.

ENDFORM. " SUB_VALIDATE_MODEL

&----


*& Form SUB_VALIDATE_DATE

&----


  • text

----


FORM sub_validate_date .

DATA:l_aktiv TYPE aktivd.

SELECT SINGLE aktiv

form anla

INTO l_aktiv

WHERE aktiv IN s_aktiv.

IF sy-subrc <> 0.

MESSAGE e001 WITH 'Invalid date' s_aktiv.

ENDIF.

ENDFORM. " SUB_VALIDATE_DATE

&----


*& Form SUB_GET_ANLA

&----


FORM sub_get_anla .

SELECT bukrs

anln1

anln2

anlkl

sernr

invnr

aktiv

txt50

menge

zugdt

FROM anla

INTO TABLE t_anla

WHERE bukrs = p_bukrs

AND anln1 IN s_anln1.

IF sy-subrc <> 0.

messgae i000.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " SUB_GET_ANLA

&----


*& Form SUB_GET_ANLZ

&----


FORM sub_get_anlz .

SELECT bukrs

anln1

anln2

kostl

stort

FROM anlz

INTO TABLE t_anlz

FOR ALL ENTRIES IN t_anlz

WHERE bukrs = t_anla-bukrs

AND anln1 = t_anla-anln1.

ENDFORM. " SUB_GET_ANLZ

&----


*& Form SUB_DISP_ALV

&----


FORM sub_disp_alv .

PERFORM sub_create_fieldcat USING: '1' 'ANLN1' 'Asset Number',

'2' 'TXT50' 'Asset Number',

'3' 'LTEXT' 'Asset Long Text',

'4' 'INVNR' 'Asset Number',

'5' 'SERNR' 'serial Number',

'6' 'MENGE' 'Quantity',

'7' 'KOSTL' 'Cost Center',

'8' 'STORT' 'Location',

'9' 'ZUGDT' 'Acqusation Date',

'10' '' 'Cost'

'11' '' 'Accumulated depreciation',

'12' '' 'Impairment loss'

'13' '' 'Net book value'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = sy-cprog

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

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = t_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

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

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_output

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

endform. " SUB_DISP_ALV

&----


*& Form SUB_DISP_DATA

&----


form SUB_DISP_DATA .

loop at t_anlz into w_anlz.

*moving anlz data to final output

w_output-bukrs = w_anlz-bukrs.

w_output-anln1 = w_anlz-anln1.

w_output-anln2 = w_anlz-anln2.

w_output-kostl = w_anlz-kostl.

w_output-stort = w_anlz-stort.

clear w_anlz.

read table t_anla into w_anla with key bukrs = w_anlz-bukrs

and anln1 = w_anlz-anln1.

if sy-subrc = 0.

w_output-bukrs = w_anla-bukrs.

w_output-anln1 = w_anla-anln1.

w_output-anln2 = w_anla-anln2.

w_output-anlkl = w_anla-anlkl.

w_output-sernr = w_anla-sernr.

w_output-invnr = w_anla-invnr.

w_output-aktiv = w_anla-aktiv.

w_output-txt50 = w_anla-txt50.

w_output-menge= w_anla-menge.

w_output-zugdt= w_anla-zugdt.

endif.

append w_output to t_output.

clear w_output.

endloop.

endform. " SUB_DISP_DATA

&----


*& Form SUB_CREATE_FIELDCAT

&----


form SUB_CREATE_FIELDCAT using p_pos type char2

p_fname type char10

p_text type char20.

w_fieldcat-col_pos = p_pos.

w_fieldcat-fieldname = p_fname.

w_fieldcat-seltext_m = p_text.

append w_fieldcat to t_fieldcat.

clear w_fieldcat.

1 REPLY 1
Read only

Former Member
0 Likes
373

CHECK THIS

*https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_forums&query=read_text&adv=false&sortby=cm_rnd_rankvalue

ELSE.

I HOPE THIS CODE WILL HELP YOU.

&----


*& Report ZDTK_FI_CRDB

*&

&----


*&

*& AUTHOR : D TARUN KUMAR

*&

*& FUNC CONSULTANT : ABDUL GANI

*&

*& TRANSPORT REQ NO. : RD1K902195

*&

*& PACKAGE : ZTARUN

*&

*& TRANSACTION CODE : ZCRDB

*&

&----


*& DESCRIPTION : CREDIT DEBIT NOTE FOR CUSTOMER OR VENDOR.

&----


REPORT ZDTK_FI_CRDB NO STANDARD PAGE HEADING

LINE-COUNT 65(5)

LINE-SIZE 80

MESSAGE-ID ZTAR_FI

.

&----


*& STRUCTURE DECLARATION

&----


TYPES : BEGIN OF TY_ADDR,

BUKRS TYPE BUKRS, "COMPANY CODE

LIFNR TYPE LIFNR, "VENDOR NO

KUNNR TYPE KUNNR, "CUSTOMJER NO

NAME1 TYPE NAME1, "NAME1

NAME2 TYPE NAME2, "NAME2

ORT01 TYPE ORT01, "CITY

ORT02 TYPE ORT02,

PSTLZ TYPE PSTLZ, "POSTAL CODE

STRAS TYPE STRAS, "STREET

ADRNR TYPE ADRNR, "ADDRESS NO

TELF1 TYPE TELF1, "TELEFHONE NO

TELF2 TYPE TELF2, "TELEFHONE NO 2

TELFX TYPE TELFX, "FAX

END OF TY_ADDR,

  • BEGIN OF TY_LFA1,

  • KUNNR TYPE KUNNR, "CUSTOMJER NO

  • NAME1 TYPE NAME1, "NAME1

  • NAME2 TYPE NAME2, "NAME2

  • ORT01 TYPE ORT01, "CITY

  • ORT02 TYPE ORT02,

  • PSTLZ TYPE PSTLZ, "POSTAL CODE

  • STRAS TYPE STRAS, "STREET

  • ADRNR TYPE ADRNR, "ADDRESS NO

  • TELF1 TYPE TELF1, "TELEFHONE NO

  • TELF2 TYPE TELF2, "TELEFHONE NO 2

  • TELFX TYPE TELFX, "FAX

  • END OF TY_LFA1,

BEGIN OF TY_DOCM,

GJAHR TYPE GJAHR,

BELNR TYPE BELNR_D,

BUDAT TYPE BUDAT,

BLDAT TYPE BLDAT,

BLART TYPE BLART,

BSCHL TYPE BSCHL,

SHKZG TYPE SHKZG,

XBLNR TYPE XBLNR,

DMBTR TYPE DMBTR,

SGTXT TYPE SGTXT,

REBZG TYPE REBZG,

REBZJ TYPE REBZJ,

KUNNR TYPE KUNNR,

LIFNR TYPE LIFNR,

END OF TY_DOCM.

&----


*& TABLE DECLARATION

&----


DATA : T_ADDR TYPE STANDARD TABLE OF TY_ADDR,

&----


*& WORK AREA DECLARATION

&----


W_ADDR TYPE TY_ADDR,

W_DOCM TYPE TY_DOCM,

  • W_LFA1 TYPE TY_LFA1,

&----


*& GLOBLE VARIABLE DECLARATION

&----


G_KUNNR TYPE KUNNR,

G_LIFNR TYPE LIFNR,

DCAMT TYPE DMBTR.

&----


*& INITIALIZATION

&----


INITIALIZATION.

  • CLEAR :

*REFRESH :

&----


*& SELECTION SCREEN DECLARATION

&----


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

SELECTION-SCREEN SKIP 1.

PARAMETERS : S_BUKRS TYPE BSID-BUKRS OBLIGATORY DEFAULT '1000'.

PARAMETERS : S_BELNR TYPE BELNR_D OBLIGATORY DEFAULT '1600000070'.

PARAMETERS : S_GJAHR TYPE GJAHR OBLIGATORY DEFAULT '2008'.

PARAMETERS : ASON TYPE BUDAT OBLIGATORY DEFAULT SY-DATUM.

PARAMETERS : S_KUNNR TYPE KUNNR MODIF ID GP1.

PARAMETERS : S_LIFNR TYPE LIFNR MODIF ID GP2.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN : END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS R1 RADIOBUTTON GROUP RAO DEFAULT 'X' USER-COMMAND hit.

SELECTION-SCREEN COMMENT (50) TEXT-003 FOR FIELD R1.

PARAMETERS R2 RADIOBUTTON GROUP RAO.

SELECTION-SCREEN COMMENT (50) TEXT-004 FOR FIELD R2.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN END OF BLOCK B2.

*SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-005.

*SELECTION-SCREEN SKIP 1.

*SELECTION-SCREEN BEGIN OF LINE.

*PARAMETERS R3 RADIOBUTTON GROUP RAJ DEFAULT 'X' USER-COMMAND hit.

*SELECTION-SCREEN COMMENT (50) TEXT-006 FOR FIELD R1.

*PARAMETERS R4 RADIOBUTTON GROUP RAJ.

*SELECTION-SCREEN COMMENT (50) TEXT-007 FOR FIELD R2.

*SELECTION-SCREEN END OF LINE.

*SELECTION-SCREEN SKIP 1.

*SELECTION-SCREEN : END OF BLOCK B3.

&----


*& AT SELECTION SCREEN

&----


AT SELECTION-SCREEN.

PERFORM VALIDATE_SELECTION.

&----


*& AT SELECTION SCREEN OUTPUT

&----


AT SELECTION-SCREEN OUTPUT.

PERFORM SCREEN_OUTPUT.

&----


*& START OF SELECTION

&----


START-OF-SELECTION.

IF R1 = 'X'.

PERFORM GET_DOCUMENT_L.

ELSEIF R2 = 'X'.

PERFORM GET_DOCUMENT_K.

ENDIF.

&----


*& END OF SELECTION

&----


END-OF-SELECTION.

PERFORM DISPLAY.

&----


*& TOP OF PAGE

&----


*TOP-OF-PAGE.

  • PERFORM PAGE_HEADER.

&----


*& Form VALIDATE_SELECTION

&----


  • text

----


form VALIDATE_SELECTION .

DATA : L_BUKRS TYPE BSID-BUKRS.

SELECT SINGLE BUKRS FROM KNB1

INTO L_BUKRS

WHERE BUKRS = S_BUKRS.

*IF SY-SUBRC <> 0.

*MESSAGE E001.

*LEAVE LIST-PROCESSING.

*ENDIF.

DATA : L_KUNNR TYPE BSID-KUNNR.

SELECT SINGLE KUNNR FROM BSID

INTO L_KUNNR

WHERE KUNNR = S_KUNNR.

*IF SY-SUBRC <> 0.

*MESSAGE E002.

*LEAVE LIST-PROCESSING.

*ENDIF.

endform. " VALIDATE_SELECTION

&----


*& Form SCREEN_OUTPUT

&----


  • text

----


form SCREEN_OUTPUT .

IF R1 = 'X'.

LOOP AT SCREEN.

if screen-group1 = 'GP1'.

SCREEN-active = '0'.

*SCREEN-INTENSIFIED = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-group1 = 'GP2'.

SCREEN-active = '0'.

*SCREEN-INTENSIFIED = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

endform. " SCREEN_OUTPUT

&----


*& Form GET_DOCUMENT_L

&----


  • text

----


FORM GET_DOCUMENT_L .

DATA : MESSG(60).

SELECT SINGLE BUKRS

LIFNR

GJAHR

BELNR

BUDAT

BLDAT

BLART

BSCHL

SHKZG

DMBTR

SGTXT

REBZG

REBZJ FROM BSIK

INTO CORRESPONDING FIELDS OF W_DOCM

WHERE BUKRS = S_BUKRS AND

GJAHR = S_GJAHR AND

BELNR = S_BELNR.

SELECT SINGLE DMBTR FROM BSIK INTO DCAMT

WHERE BELNR = W_DOCM-REBZG AND

GJAHR = W_DOCM-REBZJ.

IF NOT W_DOCM IS INITIAL.

PERFORM GET_LFA1.

ELSE.

SELECT SINGLE BUKRS

LIFNR

GJAHR

BELNR

BUDAT

BLDAT

BLART

BSCHL

SHKZG

DMBTR

SGTXT

REBZG

REBZJ FROM BSAK

INTO CORRESPONDING FIELDS OF W_DOCM

WHERE BUKRS = S_BUKRS AND

GJAHR = S_GJAHR AND

BELNR = S_BELNR.

SELECT SINGLE DMBTR FROM BSAK INTO DCAMT

WHERE BELNR = W_DOCM-REBZG AND

GJAHR = W_DOCM-REBZJ.

IF NOT W_DOCM IS INITIAL.

PERFORM GET_LFA1.

ELSE.

CONCATENATE 'THERE IS NO DOCUMENT NO' S_BELNR S_GJAHR 'FOR VENDOR' INTO MESSG

SEPARATED BY SPACE.

MESSAGE I011 WITH MESSG.

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

ENDFORM. " GET_DOCUMENT_L

&----


*& Form GET_LFA1

&----


  • text

----


FORM GET_LFA1 .

SELECT SINGLE LIFNR

NAME1

NAME2

ORT01

ORT02

PSTLZ

STRAS

ADRNR

TELF1

TELF2

TELFX FROM LFA1 INTO CORRESPONDING FIELDS OF W_ADDR

WHERE LIFNR = W_DOCM-LIFNR.

ENDFORM. " GET_LFA1

&----


*& Form GET_DOCUMENT_K

&----


  • text

----


FORM GET_DOCUMENT_K .

DATA : MESSG(60).

SELECT SINGLE BUKRS

KUNNR

  • LIFNR

GJAHR

BELNR

BUDAT

BLDAT

BLART

BSCHL

SHKZG

DMBTR

SGTXT

REBZG

REBZJ FROM BSID

INTO CORRESPONDING FIELDS OF W_DOCM

WHERE BUKRS = S_BUKRS AND

GJAHR = S_GJAHR AND

BELNR = S_BELNR.

SELECT SINGLE DMBTR FROM BSID INTO DCAMT

WHERE BELNR = W_DOCM-REBZG AND

GJAHR = W_DOCM-REBZJ.

IF NOT W_DOCM IS INITIAL.

PERFORM GET_KNA1.

ELSE.

SELECT SINGLE BUKRS

KUNNR

  • LIFNR

GJAHR

BELNR

BUDAT

BLDAT

BLART

BSCHL

SHKZG

DMBTR

SGTXT

REBZG

REBZJ FROM BSAD

INTO CORRESPONDING FIELDS OF W_DOCM

WHERE BUKRS = S_BUKRS AND

GJAHR = S_GJAHR AND

BELNR = S_BELNR.

SELECT SINGLE DMBTR FROM BSAD INTO DCAMT

WHERE BELNR = W_DOCM-REBZG AND

GJAHR = W_DOCM-REBZJ.

IF NOT W_DOCM IS INITIAL.

PERFORM GET_KNA1.

ELSE.

CONCATENATE 'THERE IS NO DOCUMENT NO' S_BELNR S_GJAHR 'FOR CUSTOMER' INTO MESSG

SEPARATED BY SPACE.

MESSAGE I011 WITH MESSG.

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

ENDFORM. " GET_DOCUMENT_K

&----


*& Form GET_KNA1

&----


  • text

----


FORM GET_KNA1 .

SELECT SINGLE KUNNR

NAME1

NAME2

ORT01

ORT02

PSTLZ

STRAS

ADRNR

TELF1

TELF2

TELFX FROM KNA1 INTO CORRESPONDING FIELDS OF W_ADDR

WHERE KUNNR = W_DOCM-KUNNR.

ENDFORM. " GET_KNA1

&----


*& Form DISPLAY

&----


  • text

----


FORM DISPLAY .

                              • LONG TEXT *************************

*DATA : BEGIN OF inline OCCURS 0,

*

*END OF inline.

*TYPES: BEGIN OF TY_LONGT,

  • tdformat TYPE tdformat,

  • tdline TYPE tdline,

  • END OF TY_LONGT.

*

*DATA : TLONGT TYPE STANDARD TABLE OF TY_LONGT,

  • WLONGT TYPE TY_LONGT.

DATA: BEGIN OF DTEXT OCCURS 50.

*DATA: MATNR LIKE PBIM-MATNR.

INCLUDE STRUCTURE TLINE.

DATA: END OF DTEXT.

DATA: BEGIN OF HTEXT.

INCLUDE STRUCTURE THEAD.

DATA: END OF HTEXT.

DATA: BEGIN OF LTEXT OCCURS 50.

INCLUDE STRUCTURE TLINE.

DATA: END OF LTEXT.

DATA: TNAME LIKE THEAD-TDNAME.

CONCATENATE S_BUKRS W_DOCM-BELNR S_GJAHR '002' INTO TNAME.

*SEPARATED BY SPACE.

DATA : W_STXL TYPE STXL.

SELECT SINGLE * FROM STXL INTO W_STXL

WHERE TDNAME = TNAME.

IF NOT W_STXL IS INITIAL.

*SELECT * FROM PBIM WHERE WERKS IN S_WERKS.

*MOVE PBIM-BDZEI TO TNAME.

*

CALL FUNCTION 'READ_TEXT'

EXPORTING

CLIENT = SY-MANDT

ID = W_STXL-TDID

LANGUAGE = W_STXL-TDSPRAS

NAME = TNAME

OBJECT = W_STXL-TDOBJECT

  • ARCHIVE_HANDLE = 0

  • LOCAL_CAT = ' '

IMPORTING

HEADER = HTEXT

TABLES

LINES = LTEXT

  • EXCEPTIONS

  • ID = 1

  • LANGUAGE = 2

  • NAME = 3

  • NOT_FOUND = 4

  • OBJECT = 5

  • REFERENCE_CHECK = 6

  • WRONG_ACCESS_TO_ARCHIVE = 7

  • OTHERS = 8

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT LTEXT.

IF LTEXT-TDLINE NE ''.

MOVE LTEXT-TDLINE TO DTEXT-TDLINE.

APPEND DTEXT.

ENDIF.

ENDLOOP.

ENDIF.

                              • LONG TEXT *************************

                              • CUSTOMER / VENDOR NO *************************

DATA : CUVE(10).

IF R1 = 'X'.

CUVE = W_ADDR-LIFNR.

ELSEIF R2 = 'X'.

CUVE = W_ADDR-KUNNR.

ENDIF.

                              • CUSTOMER / VENDOR NO *************************

                              • CR / DR DATA *************************

IF DCAMT IS INITIAL.

SELECT SINGLE DMBTR FROM BSIS INTO DCAMT

WHERE BELNR = W_DOCM-REBZG AND

GJAHR = W_DOCM-REBZJ .

  • ( KOART = 'D' OR KOART = 'K' ).

ENDIF.

                              • CR / DR DATA *************************

DATA: CNAME TYPE BUTXT.

SELECT SINGLE BUTXT FROM T001 INTO CNAME

WHERE BUKRS = S_BUKRS.

DATA : NAME(60),

STREET(60),

TELFX(60).

CONCATENATE W_ADDR-NAME1 W_ADDR-NAME2 INTO NAME

SEPARATED BY SPACE.

CONCATENATE W_ADDR-ORT01 W_ADDR-ORT02 'POSTAL CODE :' W_ADDR-PSTLZ INTO STREET

SEPARATED BY SPACE.

CONCATENATE 'Tel No.:' W_ADDR-TELF1 W_ADDR-TELF2 'FAX :' W_ADDR-TELFX INTO TELFX

SEPARATED BY SPACE.

DATA : CRDB(20),

CRDBA(16),

BALC TYPE DMBTR.

IF W_DOCM-SHKZG = 'S'.

CRDB = 'Debit Note No. :'.

CRDBA = 'DEBIT'.

BALC = DCAMT + W_DOCM-DMBTR.

ELSEIF W_DOCM-SHKZG = 'H'.

CRDB = 'Credit Note No. :'.

CRDBA = 'CREDIT'.

BALC = DCAMT - W_DOCM-DMBTR.

ENDIF.

SKIP 5.

*FORMAT INVERSE.

ULINE 03(77).

WRITE : 03 SY-VLINE, 80 '|',

/03 SY-VLINE, NAME, 54 'Party No.:' COLOR 7, CUVE COLOR 7, 80 '|',

/03 SY-VLINE, W_ADDR-STRAS, 80 '|',

/03 SY-VLINE, STREET, 80 '|',

/03 SY-VLINE, TELFX, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 05 CNAME COLOR 2, 80 '|',

/03 SY-VLINE, 36 CRDB RIGHT-JUSTIFIED, 59 W_DOCM-BELNR, 71 W_DOCM-GJAHR, 80 '|',

/03 SY-VLINE, 58 'DATE :', W_DOCM-BUDAT, 80 '|',

/03 SY-VLINE, 80 '|'. ULINE 03(77).

WRITE : /03 SY-VLINE, 80 '|'.

IF NOT DTEXT IS INITIAL.

LOOP AT DTEXT.

WRITE : /03 SY-VLINE, 05 DTEXT-TDLINE COLOR 1, 80 '|'.

ENDLOOP.

ELSEIF W_DOCM-SGTXT NE ''.

WRITE : /03 SY-VLINE, 05 W_DOCM-SGTXT COLOR 1, 80 '|'.

ELSE.

WRITE : /03 SY-VLINE, 80 '|'.

ENDIF.

WRITE : /03 SY-VLINE, 80 '|',

*WRITE : /03 SY-VLINE, TNAME, 80 '|',

  • /03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 08 'WORKING OF INTEREST CALCULATION AS ON ' COLOR 4,

47 ASON COLOR 4, ' [ 360 DAYS BASIS ]' COLOR 4, 80 '|',

/03 SY-VLINE, 80 '|'. ULINE 03(77).

WRITE : /03 SY-VLINE, 11 'DATE', 23 'INVOICE', 41 CRDBA, 55 'BALANCE', 64 'DAYS', 70 'INTEREST', 80 '|',

/03 SY-VLINE, 23 ' AMOUNT', 41 'AMOUNT', 55' AMOUNT', 70 ' @ 8.00% ', 80 '|',

/03 SY-VLINE, 80 '|'. ULINE 03(77).

WRITE : /03 SY-VLINE, 80 '|',

/03 SY-VLINE, 06 W_DOCM-BUDAT, 15 DCAMT, 32 W_DOCM-DMBTR, 47 BALC, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|'. ULINE 03(77).

WRITE : /03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 10 'PREPARED BY', 35 'ACCOUNTANT', 60 'MANAGER', 80 '|',

/03 SY-VLINE, 80 '|',

/03 SY-VLINE, 80 '|'. ULINE 03(77).

ENDFORM. " DISPLAY