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

so text display

Former Member
0 Likes
1,132

Hi Friends,

i wrote a report for diplaying SALES ORDER TEXTS FOR PERTICULAR MATERIALS FOR ALL SALES ORGS FOR THEIRE COREESPONDING LANGUAGES.

THE O/P COMING FINE.

BUT THOSE MATERILAS DONT HAVE SATES ORDER TEXT THAT ARE NOT COMING. I WANT DISPALY LIST OF MATERIALS DONT HAVE SALES ORDER TEXTS IN OUT PUT.

PLS CHECK THE CODE BELOW. PLS

TABLES: mara,

mvke.

TYPE-POOLS: slis.

DATA : BEGIN OF it_data OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

vtweg LIKE mvke-vtweg,

END OF it_data.

DATA : BEGIN OF it_final OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

sotext LIKE tline-tdline,

potext LIKE tline-tdline,

TDSPRAS LIKE STXH-TDSPRAS,

END OF it_final.

data : begin of it_stxh occurs 0,

TDobject like stxh-TDOBJECT,

TDNAME like stxh-TDOBJECT,

TDid like stxh-TDid,

TDSPRAS like stxh-TDSPRAS,

end of it_stxh.

DATA: t_lines TYPE tline OCCURS 0 WITH HEADER LINE.

DATA: it_mara LIKE mara OCCURS 0 WITH HEADER LINE.

DATA: v_textname LIKE thead-tdname.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

l_layout TYPE slis_layout_alv,

l_repid LIKE sy-repid.

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

SELECT-OPTIONS : s_matnr FOR mara-matnr.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN.

PERFORM material_validation.

START-OF-SELECTION.

*Getting the required data from table MVKE

PERFORM get_data.

*Getting the SO and PO Texts for the materials

PERFORM get_texts.

*Displaying the SO and PO Texts along with the material Number

PERFORM disp_data.

&----


*& Form material_validation

&----


  • text

----


FORM material_validation.

SELECT matnr

FROM mara

INTO TABLE it_mara

WHERE matnr IN s_matnr.

IF sy-subrc NE 0.

MESSAGE e000(0) WITH 'INVALID MATERIAL NUMBER' s_matnr.

ENDIF.

ENDFORM. " material_validation

&----


*& Form get_data

&----


  • text

----


FORM get_data.

*Getting data from MVKE Table

SELECT matnr

vkorg

vtweg FROM mvke INTO TABLE it_data

WHERE matnr IN s_matnr.

*For Material Number to be 18 digits

LOOP AT it_data.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = it_data-matnr

IMPORTING

output = it_data-matnr.

MODIFY it_data.

ENDLOOP.

ENDFORM. " get_data

&----


*& Form get_texts

&----


  • text

----


FORM get_texts.

LOOP AT it_data.

*Populating material number and sales org into final table

MOVE it_data-matnr TO it_final-matnr.

MOVE it_data-vkorg TO it_final-vkorg.

*For the TextName of SO Text

CONCATENATE it_data-matnr it_data-vkorg it_data-vtweg INTO v_textname.

select TDOBJECT TDNAME TDID TDSPRAS from stxh into table it_stxh

where TDOBJECT = 'MVKE' and

TDNAME = v_textname and

TDID = '0001'.

loop at it_stxh.

MOVE IT_STXH-TDSPRAS TO IT_FINAL-TDSPRAS.

*Reading the SO Text

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = '0001'

language = it_stxh-tdspras

name = v_textname

object = 'MVKE'

TABLES

lines = t_lines

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.

  • READ TABLE t_lines INDEX 1.

loop at t_lines.

  • READ TABLE t_lines INDEX 1.

MOVE t_lines-tdline TO it_final-sotext.

append it_final.

clear it_final.

endloop.

ENDIF.

endloop.

CLEAR : v_textname,t_lines,t_lines[].

ENDLOOP.

ENDFORM. " get_texts

&----


*& Form disp_data

&----


  • text

----


FORM disp_data.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = 1.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'VKORG'.

wa_fieldcat-seltext_m = 'Sales Organization'.

wa_fieldcat-col_pos = 2.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'TDSPRAS'.

wa_fieldcat-seltext_m = 'LANGUAGE KEY'.

wa_fieldcat-col_pos = 3.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'SOTEXT'.

wa_fieldcat-seltext_m = 'Sales Order Text'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-outputlen = 40.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

l_repid = sy-repid.

l_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = l_repid

is_layout = l_layout

it_fieldcat = it_fieldcat[]

i_default = 'X'

TABLES

t_outtab = it_final

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.

pls help me logic my question pls.

regards,

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
962

Check this code:

TABLES: mara,

mvke.

TYPE-POOLS: slis.

DATA : BEGIN OF it_data OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

vtweg LIKE mvke-vtweg,

END OF it_data.

DATA : BEGIN OF it_final OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

sotext LIKE tline-tdline,

potext LIKE tline-tdline,

TDSPRAS LIKE STXH-TDSPRAS,

END OF it_final.

data : begin of it_stxh occurs 0,

TDobject like stxh-TDOBJECT,

TDNAME like stxh-TDOBJECT,

TDid like stxh-TDid,

TDSPRAS like stxh-TDSPRAS,

end of it_stxh.

DATA: t_lines TYPE tline OCCURS 0 WITH HEADER LINE.

DATA: it_mara LIKE mara OCCURS 0 WITH HEADER LINE.

DATA: v_textname LIKE thead-tdname.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

l_layout TYPE slis_layout_alv,

l_repid LIKE sy-repid.

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

SELECT-OPTIONS : s_matnr FOR mara-matnr.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN.

PERFORM material_validation.

START-OF-SELECTION.

*Getting the required data from table MVKE

PERFORM get_data.

*Getting the SO and PO Texts for the materials

PERFORM get_texts.

*Displaying the SO and PO Texts along with the material Number

PERFORM disp_data.

&----


*& Form material_validation

&----


  • text

-


FORM material_validation.

SELECT matnr

FROM mara

INTO TABLE it_mara

WHERE matnr IN s_matnr.

IF sy-subrc NE 0.

MESSAGE e000(0) WITH 'INVALID MATERIAL NUMBER' s_matnr.

ENDIF.

ENDFORM. " material_validation

&----


*& Form get_data

&----


  • text

-


FORM get_data.

*Getting data from MVKE Table

SELECT matnr

vkorg

vtweg FROM mvke INTO TABLE it_data

WHERE matnr IN s_matnr.

*For Material Number to be 18 digits

LOOP AT it_data.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = it_data-matnr

IMPORTING

output = it_data-matnr.

MODIFY it_data.

ENDLOOP.

ENDFORM. " get_data

&----


*& Form get_texts

&----


  • text

-


FORM get_texts.

LOOP AT it_data.

*Populating material number and sales org into final table

MOVE it_data-matnr TO it_final-matnr.

MOVE it_data-vkorg TO it_final-vkorg.

*For the TextName of SO Text

CONCATENATE it_data-matnr it_data-vkorg it_data-vtweg INTO v_textname.

select TDOBJECT TDNAME TDID TDSPRAS from stxh into table it_stxh

where TDOBJECT = 'MVKE' and

TDNAME = v_textname and

TDID = '0001'.

if sy-subrc = 0.

loop at it_stxh.

MOVE IT_STXH-TDSPRAS TO IT_FINAL-TDSPRAS.

*Reading the SO Text

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = '0001'

language = it_stxh-tdspras

name = v_textname

object = 'MVKE'

TABLES

lines = t_lines

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.

  • READ TABLE t_lines INDEX 1.

loop at t_lines.

  • READ TABLE t_lines INDEX 1.

MOVE t_lines-tdline TO it_final-sotext.

append it_final.

endloop.

else.

MOVE space TO it_final-sotext.

append it_final.

ENDIF.

endloop.

else.

MOVE space TO it_final-sotext.

append it_final.

endif.

clear it_final.

CLEAR : v_textname,t_lines,t_lines[].

ENDLOOP.

ENDFORM. " get_texts

&----


*& Form disp_data

&----


  • text

-


FORM disp_data.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = 1.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'VKORG'.

wa_fieldcat-seltext_m = 'Sales Organization'.

wa_fieldcat-col_pos = 2.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'TDSPRAS'.

wa_fieldcat-seltext_m = 'LANGUAGE KEY'.

wa_fieldcat-col_pos = 3.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'SOTEXT'.

wa_fieldcat-seltext_m = 'Sales Order Text'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-outputlen = 40.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

l_repid = sy-repid.

l_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = l_repid

is_layout = l_layout

it_fieldcat = it_fieldcat[]

i_default = 'X'

TABLES

t_outtab = it_final

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.

Edited by: Joyjit Ghosh on Aug 5, 2008 11:29 PM

2 REPLIES 2
Read only

Former Member
0 Likes
963

Check this code:

TABLES: mara,

mvke.

TYPE-POOLS: slis.

DATA : BEGIN OF it_data OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

vtweg LIKE mvke-vtweg,

END OF it_data.

DATA : BEGIN OF it_final OCCURS 1,

matnr LIKE mara-matnr,

vkorg LIKE mvke-vkorg,

sotext LIKE tline-tdline,

potext LIKE tline-tdline,

TDSPRAS LIKE STXH-TDSPRAS,

END OF it_final.

data : begin of it_stxh occurs 0,

TDobject like stxh-TDOBJECT,

TDNAME like stxh-TDOBJECT,

TDid like stxh-TDid,

TDSPRAS like stxh-TDSPRAS,

end of it_stxh.

DATA: t_lines TYPE tline OCCURS 0 WITH HEADER LINE.

DATA: it_mara LIKE mara OCCURS 0 WITH HEADER LINE.

DATA: v_textname LIKE thead-tdname.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

l_layout TYPE slis_layout_alv,

l_repid LIKE sy-repid.

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

SELECT-OPTIONS : s_matnr FOR mara-matnr.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN.

PERFORM material_validation.

START-OF-SELECTION.

*Getting the required data from table MVKE

PERFORM get_data.

*Getting the SO and PO Texts for the materials

PERFORM get_texts.

*Displaying the SO and PO Texts along with the material Number

PERFORM disp_data.

&----


*& Form material_validation

&----


  • text

-


FORM material_validation.

SELECT matnr

FROM mara

INTO TABLE it_mara

WHERE matnr IN s_matnr.

IF sy-subrc NE 0.

MESSAGE e000(0) WITH 'INVALID MATERIAL NUMBER' s_matnr.

ENDIF.

ENDFORM. " material_validation

&----


*& Form get_data

&----


  • text

-


FORM get_data.

*Getting data from MVKE Table

SELECT matnr

vkorg

vtweg FROM mvke INTO TABLE it_data

WHERE matnr IN s_matnr.

*For Material Number to be 18 digits

LOOP AT it_data.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = it_data-matnr

IMPORTING

output = it_data-matnr.

MODIFY it_data.

ENDLOOP.

ENDFORM. " get_data

&----


*& Form get_texts

&----


  • text

-


FORM get_texts.

LOOP AT it_data.

*Populating material number and sales org into final table

MOVE it_data-matnr TO it_final-matnr.

MOVE it_data-vkorg TO it_final-vkorg.

*For the TextName of SO Text

CONCATENATE it_data-matnr it_data-vkorg it_data-vtweg INTO v_textname.

select TDOBJECT TDNAME TDID TDSPRAS from stxh into table it_stxh

where TDOBJECT = 'MVKE' and

TDNAME = v_textname and

TDID = '0001'.

if sy-subrc = 0.

loop at it_stxh.

MOVE IT_STXH-TDSPRAS TO IT_FINAL-TDSPRAS.

*Reading the SO Text

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = '0001'

language = it_stxh-tdspras

name = v_textname

object = 'MVKE'

TABLES

lines = t_lines

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.

  • READ TABLE t_lines INDEX 1.

loop at t_lines.

  • READ TABLE t_lines INDEX 1.

MOVE t_lines-tdline TO it_final-sotext.

append it_final.

endloop.

else.

MOVE space TO it_final-sotext.

append it_final.

ENDIF.

endloop.

else.

MOVE space TO it_final-sotext.

append it_final.

endif.

clear it_final.

CLEAR : v_textname,t_lines,t_lines[].

ENDLOOP.

ENDFORM. " get_texts

&----


*& Form disp_data

&----


  • text

-


FORM disp_data.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-seltext_m = 'Material Number'.

wa_fieldcat-col_pos = 1.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'VKORG'.

wa_fieldcat-seltext_m = 'Sales Organization'.

wa_fieldcat-col_pos = 2.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'TDSPRAS'.

wa_fieldcat-seltext_m = 'LANGUAGE KEY'.

wa_fieldcat-col_pos = 3.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'SOTEXT'.

wa_fieldcat-seltext_m = 'Sales Order Text'.

wa_fieldcat-col_pos = 4.

wa_fieldcat-outputlen = 40.

wa_fieldcat-emphasize = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

l_repid = sy-repid.

l_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = l_repid

is_layout = l_layout

it_fieldcat = it_fieldcat[]

i_default = 'X'

TABLES

t_outtab = it_final

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.

Edited by: Joyjit Ghosh on Aug 5, 2008 11:29 PM

Read only

0 Likes
962

Hi joyjith,

thanks for your kindly help. the report working fine.

i have small doubt in F.module READ_TEXT.

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = '0001'

language = it_stxh-tdspras

name = v_textname

object = 'MVKE'

what is mean by id = '0001' passing to id ?? not others?

mean why we passing only '0001' not 0002 and so on.

explain pls.

regards,