Application Development 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: 

REPORTS

Former Member
0 Kudos

HI,

In my requirement, at the last after calculating, i have to send bill to the customer through Email.

How it possible.

is it possible without using scripts?

if yes, expllain abt this

thanks in advance.

sarath

1 ACCEPTED SOLUTION

Former Member
0 Kudos

U will have all the data in the internal table...This u can send via email...

Check below code for sending email..

REPORT ZFR_EMAIL_MANUAL message-id ymsg_send.

tables : rlgrap.

TYPE-POOLS vrm.

CONTROLS : TC_RECEPIENT TYPE TABLEVIEW USING SCREEN 103,

  • TC_SUB_NOTE TYPE TABLEVIEW USING SCREEN 101,

FEATURES TYPE TABLEVIEW USING SCREEN 102.

CONTROLS : TS_MAILTAB TYPE TABSTRIP,

TS_RECP TYPE TABSTRIP.

  • To hold the value of tab index

DATA: TAB_LINES type i. " LIKE SY-TABIX.

DATA: name TYPE vrm_id,

list TYPE vrm_values,

value LIKE LINE OF list,

temp_val like line of list.

DATA : IO_TITLE(50) TYPE C.

DATA : CHANGE(20) TYPE C.

DATA : SENS(20) type C.

DATA : PRIOR(10) type c.

DATA : LANGU(15) type c.

DATA : expirydate type SO_OBJ_EDT.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA : t_reclines LIKE SY-TABIX.

DATA: lt_pdf_nuc_data TYPE STANDARD TABLE OF SOLISTI1.

data w_lt_pdf_nuc_data like line of lt_pdf_nuc_data.

data : lt_upload type standard table of SOLISTI1 with header line.

data : io_size type string.

data : l_cline TYPE SOLISTI1.

**Selection screen to collect the path where attachments are stored.

*selection-screen : begin of block b1 with frame title text-001.

*select-options : p_path1 for /SAPDMC/LSSCREEN-PATHFIL_PC

*default 'C:\TESTHEM\TEST.PDF' option EQ sign I no intervals obligatory.

*selection-screen : end of block b1.

  • To hold info pertaining to SAPoffice: Description of Imported Object

  • Components

DATA: I_OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.

  • A structure to hold SAPoffice: Single List with Column Length 255

DATA: I_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.

  • Structure to hold mail subject

DATA: WA_DOC_CHNG LIKE SODOCCHGI1.

  • Structure to hold SAPoffice: Structure of the API Recipient List

DATA: I_RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.

  • data : objhead like solisti1 occurs 1 with header line.

DATA : COLS1 LIKE LINE OF TC_RECEPIENT-COLS.

DATA: SELECTION_TAB LIKE SOOS1 OCCURS 10 WITH HEADER LINE.

data : begin of receiver,

name type SOS04-L_ADR_NAME,

rec_type type SOMLRECI1-REC_TYPE,

express type SOMLRECI1-EXPRESS,

copy type SOMLRECI1-COPY,

blind_copy type SOMLRECI1-BLIND_COPY,

end of receiver.

data : rec_temp like receiver occurs 0 with header line.

data : wa_rec_temp like line of rec_temp.

data : recepient_LINES like sy-loopc.

*DATA : BEGIN OF NOTE OCCURS 0,

  • NOTE_DATA(72) TYPE C,

  • END OF NOTE.

*DATA : BEGIN OF ATTACH OCCURS 0,

  • DESCR(30) TYPE C,

  • path like p_path1-low,

  • SIZE(15) TYPE C,

  • ATT_TYP(3) TYPE C,

  • END OF ATTACH.

*

data : x_save , x_variant type disvariant,

x_layout type lvc_s_layo.

data: gt_fieldcat_lvc type lvc_t_fcat with header line.

class lcl_events_d0100 definition deferred.

types : begin of g_ty_s_event,

double_click type char1,

end of g_ty_s_event,

begin of g_ty_s_test,

event type g_ty_s_event,

end of g_ty_s_test.

data: gs_test type g_ty_s_test,

alv type ref to cl_gui_alv_grid,

container type ref to cl_gui_custom_container,

gr_events_d0100 type ref to lcl_events_d0100.

constants: con_true type char1 value 'X'.

CLASS lcl_events_d0100 DEFINITION.

PUBLIC SECTION.

METHODS:

double_click for event double_click

of cl_gui_alv_grid

importing e_row

e_column

es_row_no.

ENDCLASS.

TS_RECP-ACTIVETAB = 'REC'.

*Selection screen to collect the path where attachments are stored.

selection-screen : begin of block b1 with frame title text-001.

select-options : p_path1 for rlgrap-filename

default 'C:\TEST.TXT' option EQ sign I no intervals obligatory.

selection-screen : end of block b1.

DATA : BEGIN OF ATTACH OCCURS 0,

DESCR(30) TYPE C,

path like p_path1-low,

SIZE(25) TYPE C,

ATT_TYP(3) TYPE C,

END OF ATTACH.

DATA number TYPE sy-dynnr.

TS_mailtab-activetab = 'DOCS'.

number = '0101'.

gs_test-event-double_click = 'X'.

*

CONSTANTS:

line_length TYPE i VALUE 254.

TYPES: begin of mytable_line,

line(line_length) type C,

end of mytable_line.

  • table to exchange text

data mytable type table of mytable_line.

data :

  • Create reference to the custom container

custom_container TYPE REF TO cl_gui_custom_container,

  • Create reference to the TextEdit control

editor TYPE REF TO cl_gui_textedit,

repid LIKE sy-repid.

*

call screen 100.

CLASS lcl_events_d0100 IMPLEMENTATION.

----


  • METHOD double_click *

----


  • ........ *

----


method double_click.

perform d0100_event_double_click using e_row

e_column.

endmethod.

ENDCLASS.

&----


*& Module PFSTATUS OUTPUT

&----


  • text

----


module PFSTATUS output.

SET PF-STATUS 'MAIL'.

set titlebar '001'.

endmodule. " PFSTATUS OUTPUT

&----


*& Module USER_COMMAND INPUT

&----


  • text

----


module USER_COMMAND input.

save_ok = ok_code.

CLEAR ok_code.

IF save_ok = 'OK'.

MESSAGE i888(sabapdocu) WITH 'MYTABSTRIP-ACTIVETAB ='

ts_mailtab-activetab.

ELSE.

ts_mailtab-activetab = save_ok.

CASE save_ok.

WHEN 'DOCS'.

number = '0101'.

WHEN 'ATTR'.

number = '0102'.

WHEN 'ATTM'.

number = '0104'.

when 'SEND'.

perform SEND_DATA.

when 'BACK'.

leave program.

ENDCASE.

ENDIF.

endmodule. " USER_COMMAND INPUT

&----


*& Module reciever_selec INPUT

&----


  • text

----


module reciever_selec input.

CALL FUNCTION 'SO_WIND_RECEIVER_SELECT'

EXPORTING

SINGLE_SELECTION = ' '

NO_ORG_SELECT = ' '

TABLES

selection_tab = SELECTION_TAB

EXCEPTIONS

PARAMETER_ERROR = 1

X_ERROR = 2

OTHERS = 3

.

receiver-name = selection_tab-adr_name.

receiver-rec_type = selection_tab-rectp.

endmodule. " reciever_selec INPUT

&----


*& Module POPUP_EDITOR INPUT

&----


  • text

----


MODULE POPUP_EDITOR INPUT.

*CASE SY-UCOMM.

*WHEN 'EDIT'.

*CALL FUNCTION 'TRM_COMMENT_POPUP_EDIT'

  • EXPORTING

  • TITEL = 'EDITOR'

  • READ_ONLY = ''

  • TABLES

  • TEXTLINES = NOTE.

*ENDCASE.

*sy-ucomm = ''.

ENDMODULE. " POPUP_EDITOR INPUT

&----


*& Module INTI_LISTBOX OUTPUT

&----


  • text

----


MODULE INTI_LISTBOX OUTPUT.

clear list.

value-key = 'CH01'.

value-text = 'Changeable'.

APPEND value TO list.

value-key = 'CH02'.

value-text = 'Changeable by author'.

APPEND value TO list.

value-key = 'CH03'.

value-text = 'Not changeable'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'CHANGE'

values = list[].

if change is initial.

change = 'CH01'.

endif.

clear list.

value-key = 'SE01'.

value-text = 'Standard'.

APPEND value TO list.

value-key = 'SE02'.

value-text = 'Confidential'.

APPEND value TO list.

value-key = 'SE03'.

value-text = 'Functional'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'SENS'

values = list[].

if sens is initial.

sens = 'SE01'.

endif.

clear list.

value-key = 'L'.

value-text = 'Low'.

APPEND value TO list.

value-key = 'M'.

value-text = 'Medium'.

APPEND value TO list.

value-key = 'H'.

value-text = 'High'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'PRIOR'

values = list[].

clear list.

if prior is initial.

prior = 'M'.

endif.

select sptxt from T002T into value-text where SPRAS = 'E'.

value-key = value-text.

append value to list.

endselect.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'LANGU'

values = list[].

if langu is initial.

langu = 'English'.

endif.

clear io_size.

*describe table note lines io_size.

*io_size = io_size * 255.

*concatenate io_size ' bytes' into io_size.

*

describe table mytable lines io_size.

io_size = io_size * 255.

concatenate io_size ' bytes' into io_size.

*io_size = temp_size + 'bytes'.

ENDMODULE. " INTI_LISTBOX OUTPUT

&----


*& Module show_calendar INPUT

&----


  • text

----


MODULE show_calendar INPUT.

CALL FUNCTION 'F4_DATE'

EXPORTING

DATE_FOR_FIRST_MONTH = SY-DATUM

IMPORTING

SELECT_DATE = expirydate.

ENDMODULE. " show_calendar INPUT

&----


*& Module check_date INPUT

&----


  • text

----


MODULE check_date INPUT.

if expirydate <= sy-datum and not expirydate is initial.

message e000.

endif.

ENDMODULE. " check_date INPUT

&----


*& Form SEND_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SEND_DATA .

WA_DOC_CHNG-OBJ_DESCR = IO_TITLE.

CASE CHANGE.

WHEN 'CH01'.

WA_DOC_CHNG-NO_CHANGE = 'X'.

when 'CH02'.

WA_DOC_CHNG-NO_CHANGE = 'X'.

when 'CH03'.

WA_DOC_CHNG-NO_CHANGE = ' '.

endcase.

CASE SENS.

WHEN 'SE01'.

WA_DOC_CHNG-SENSITIVTY = 'O'.

WHEN 'SE02'.

WA_DOC_CHNG-SENSITIVTY = 'P'.

WHEN 'SE03'.

WA_DOC_CHNG-SENSITIVTY = 'F'.

ENDCASE.

CASE PRIOR.

WHEN 'L'.

WA_DOC_CHNG-PRIORITY = 9.

WA_DOC_CHNG-OBJ_PRIO = 9.

WHEN 'M'.

WA_DOC_CHNG-PRIORITY = 5.

WA_DOC_CHNG-OBJ_PRIO = 5.

WHEN 'H'.

WA_DOC_CHNG-PRIORITY = 1.

WA_DOC_CHNG-OBJ_PRIO = 1.

endcase.

WA_DOC_CHNG-OBJ_LANGU = LANGU.

WA_DOC_CHNG-OBJ_EXPDAT = EXPIRYDATE.

*I_OBJTXT[] = NOTE[].

I_OBJTXT[] = mytable.

DESCRIBE TABLE I_objtxt LINES TAB_LINES .

READ TABLE I_objtxt INDEX TAB_LINES into l_cline.

WA_DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 +

STRLEN( l_cline ).

CLEAR I_OBJPACK-TRANSF_BIN.

I_OBJPACK-HEAD_START = 1.

I_OBJPACK-HEAD_NUM = 0.

I_OBJPACK-BODY_START = 1.

I_OBJPACK-BODY_NUM = TAB_LINES.

I_OBJPACK-DOC_TYPE = 'RAW'. "'RAW'.

APPEND I_OBJPACK.

*objhead = 'objectheader'.

data : lt_index type sy-tabix.

data : doc_type(3) type c.

data : descr like I_OBJPACK-OBJ_DESCR.

data : temp_data like P_PATH1-LOW.

data : temp1 type string.

LOOP AT P_PATH1.

temp1 = p_path1-low.

descr = p_path1-low.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = descr

LANG = 'E'

IMPORTING

RSTRING = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '\'

STRING = descr

IMPORTING

HEAD = descr

TAIL = temp_data.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = descr

LANG = 'E'

IMPORTING

RSTRING = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '.'

STRING = descr

IMPORTING

HEAD = TEMP_DATA

TAIL = DOC_TYPE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = temp1

FILETYPE = 'BIN'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

REPLACEMENT = '#'

TABLES

DATA_TAB = Lt_upload.

DESCRIBE TABLE lt_upload LINES TAB_LINES.

DESCRIBE TABLE lt_pdf_nuc_data lines lt_index.

lt_index = lt_index + 1.

LOOP AT LT_UPLOAD.

w_lt_pdf_nuc_data-LINE = LT_UPLOAD-LINE.

append W_LT_PDF_NUC_DATA to lt_pdf_nuc_data.

ENDLOOP.

I_OBJPACK-TRANSF_BIN = 'X'.

I_OBJPACK-HEAD_START = 0.

I_OBJPACK-HEAD_NUM = 0.

I_OBJPACK-BODY_START = lt_index.

I_OBJPACK-BODY_NUM = TAB_LINES.

I_OBJPACK-DOC_TYPE = doc_type.

  • I_OBJPACK-OBJ_NAME = 'Subject'.

I_OBJPACK-OBJ_DESCR = descr.

I_OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND I_OBJPACK.

endloop.

LOOP AT rec_temp.

I_RECLIST-RECEIVER = rec_temp-NAME.

I_RECLIST-REC_TYPE = rec_temp-REC_TYPE.

I_RECLIST-EXPRESS = rec_temp-EXPRESS.

I_RECLIST-COPY = rec_temp-COPY.

I_RECLIST-BLIND_COPY = rec_temp-BLIND_COPY.

APPEND I_RECLIST.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = WA_DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = I_OBJPACK

  • OBJECT_HEADER = objhead

CONTENTS_BIN = lt_pdf_nuc_data

CONTENTS_TXT = I_OBJTXT

RECEIVERS = I_RECLIST

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

OPERATION_NO_AUTHORIZATION = 4

OTHERS = 99.

case sy-subrc.

when 1.

message e004.

when 2.

message e005.

when 3.

message e006.

when 0.

SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.

leave program.

endcase.

ENDFORM. " SEND_DATA

&----


*& Module populate_rectp OUTPUT

&----


  • text

----


MODULE populate_rectp OUTPUT.

clear list.

value-key = 'B'.

value-text = 'SAP user name'.

APPEND value TO list.

value-key = 'A'.

value-text = 'External address'.

APPEND value TO list.

value-key = 'H'.

value-text = 'Organization unit'.

APPEND value TO list.

value-key = 'C'.

value-text = 'Shared distribution list'.

APPEND value TO list.

value-key = 'P'.

value-text = 'Private distribution list'.

APPEND value TO list.

value-key = 'U'.

value-text = 'Internet address'.

APPEND value TO list.

value-key = 'R'.

value-text = 'Remote Mail address'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'RECEIVER-REC_TYPE'

values = list.

ENDMODULE. " populate_rectp OUTPUT

" recepient_save INPUT

&----


*& Module display_attach OUTPUT

&----


  • text

----


MODULE display_attach OUTPUT.

create object container

exporting

container_name = 'CATT'.

create object alv

exporting

i_parent = container.

x_save = 'X'.

x_variant-report = sy-repid.

x_layout-no_toolbar = 'X'.

perform d0100_set_grid_events.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'DESCR'.

gt_fieldcat_lvc-coltext = 'Description'.

gt_fieldcat_lvc-outputlen = 30.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'PATH'.

gt_fieldcat_lvc-coltext = 'PATH'.

gt_fieldcat_lvc-no_out = 'X'.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'SIZE'.

gt_fieldcat_lvc-coltext = 'SIZE'.

gt_fieldcat_lvc-outputlen = 15.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'ATT_TYP'.

gt_fieldcat_lvc-coltext = 'Type'.

gt_fieldcat_lvc-outputlen = 3.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

data : FILE_NAME like p_path1-low,

FILE_TYPE(3) TYPE C,

file_size type I,

TEMP2 LIKE P_PATH1-LOW,

TEMP3 LIKE RLGRAP-FILENAME.

  • lt_index type sy-tabix.

IF ATTACH[] IS INITIAL.

loop at p_path1.

FILE_NAME = p_path1-low.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = FILE_NAME

LANG = 'E'

IMPORTING

RSTRING = FILE_NAME.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '\'

STRING = FILE_NAME

IMPORTING

HEAD = FILE_NAME

TAIL = TEMP2

exceptions

not_found = 1.

if sy-subrc <> 0.

message e009.

endif.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = FILE_NAME

LANG = 'E'

IMPORTING

RSTRING = FILE_NAME.

attach-descr = FILE_NAME.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '.'

STRING = FILE_NAME

IMPORTING

HEAD = TEMP2

TAIL = FILE_TYPE.

attach-att_typ = FILE_TYPE.

TEMP3 = P_PATH1-LOW.

attach-path = temp3.

CALL FUNCTION 'GUI_GET_FILE_INFO'

EXPORTING

FNAME = TEMP3

IMPORTING

FILE_SIZE = file_size.

DATA : TEMP4(12) TYPE C.

TEMP4 = FILE_SIZE.

CONCATENATE TEMP4 'BYTES' INTO ATTACH-SIZE.

append attach.

endloop.

ENDIF.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

I_STRUCTURE_NAME = 'ATTACH'

CHANGING

CT_FIELDCAT = gt_fieldcat_lvc[].

call method alv->set_table_for_first_display

exporting

is_variant = x_variant

i_save = x_save

i_default = 'X'

is_layout = x_layout

changing

it_fieldcatalog = gt_fieldcat_lvc[]

it_outtab = ATTACH[].

ENDMODULE. " display_attach OUTPUT

&----


*& Module recepient_move OUTPUT

&----


  • text

----


MODULE recepient_move OUTPUT.

MOVE-CORRESPONDING wa_rec_temp TO receiver.

ENDMODULE. " recepient_move OUTPUT

&----


*& Module recepient_get_lines OUTPUT

&----


  • text

----


MODULE recepient_get_lines OUTPUT.

RECEPIENT_LINES = SY-LOOPC.

ENDMODULE. " recepient_get_lines OUTPUT

&----


*& Module recepient_modify INPUT

&----


  • text

----


MODULE recepient_modify INPUT.

read table rec_temp with key name = receiver-name.

if sy-subrc <> 0.

MOVE-CORRESPONDING receiver TO wa_rec_temp.

APPEND WA_rec_temp TO rec_temp.

TC_RECEPIENT-lines = TC_RECEPIENT-lines + 1.

else.

move-corresponding receiver to wa_rec_temp.

modify rec_temp from wa_rec_temp transporting express copy blind_copy

where name = receiver-name.

endif.

TC_RECEPIENT-lines = TC_RECEPIENT-lines + 1.

ENDMODULE. " recepient_modify INPUT

&----


*& Module clear_rec_temp INPUT

&----


  • text

----


MODULE clear_rec_temp INPUT.

clear rec_temp[] .

clear rec_temp.

clear wa_rec_temp.

ENDMODULE. " clear_rec_temp INPUT

&----


*& Module recepient-exists INPUT

&----


  • text

----


MODULE recepient-exists INPUT.

*data : recid type CVDIOBJID.

data : temp_rec_type type SO_ESCAPE.

data : w_rec like line of rec_temp.

data : temp(241) type c.

temp = receiver-name.

if not receiver-name is initial.

if not receiver-rec_type is initial.

CALL FUNCTION 'CVV1_FIND_RECIPIENT'

EXPORTING

ADDRESS_STRING = temp " receiver-name

SINGLE_SELECTION = 'X'

IMPORTING

  • RECID = recid

TYPEID = temp_rec_type.

if sy-subrc = 0.

clear w_rec.

if temp_rec_type = 'A' or temp_rec_type is initial.

temp_rec_type = 'U'.

endif.

receiver-rec_type = temp_rec_type.

read table rec_temp into w_rec with key name = receiver-name.

if sy-subrc = 0.

if w_rec-rec_type <> temp_rec_type.

w_rec-rec_type = temp_rec_type.

modify rec_temp from w_rec transporting rec_type where name =

receiver-name.

endif.

endif.

endif.

if sy-subrc = 1.

endif.

else.

message e002.

endif.

endif.

ENDMODULE. " recepient-exists INPUT

&----


*& Form d0100_event_double_click

&----


  • text

----


  • -->P_E_ROW text

  • -->P_E_COLUMN text

----


form d0100_event_double_click using e_row type lvc_s_row

e_column type lvc_s_col."#EC *

read table attach index e_row.

CALL FUNCTION 'WS_EXECUTE'

EXPORTING

INFORM = ' '

PROGRAM = attach-path.

endform. " d0100_event_double_click

&----


*& Form d0100_set_grid_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form d0100_set_grid_events.

create object gr_events_d0100.

if gs_test-event-double_click eq con_true.

set handler gr_events_d0100->double_click

for alv.

endif.

endform.

&----


*& Module edit_note OUTPUT

&----


  • text

----


MODULE edit_note OUTPUT.

IF editor IS INITIAL.

repid = sy-repid.

  • Create obejct for custom container

CREATE OBJECT custom_container

EXPORTING

container_name = 'C_NOTES'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Create obejct for the TextEditor control

CREATE OBJECT editor

EXPORTING

wordwrap_mode =

cl_gui_textedit=>wordwrap_at_fixed_position

wordwrap_position = line_length

wordwrap_to_linebreak_mode = cl_gui_textedit=>true

parent = custom_container

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

gui_type_not_supported = 5

others = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

ENDMODULE. " edit_note OUTPUT

&----


*& Module save_note INPUT

&----


  • text

----


MODULE save_note INPUT.

CALL METHOD EDITOR->GET_TEXT_AS_R3TABLE

  • EXPORTING

  • ONLY_WHEN_MODIFIED = FALSE

IMPORTING

TABLE = mytable

  • IS_MODIFIED =

  • EXCEPTIONS

  • ERROR_DP = 1

  • ERROR_CNTL_CALL_METHOD = 2

  • ERROR_DP_CREATE = 3

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

ENDMODULE. " save_note INPUT

Message was edited by:

Ramesh Babu Chirumamilla

1 REPLY 1

Former Member
0 Kudos

U will have all the data in the internal table...This u can send via email...

Check below code for sending email..

REPORT ZFR_EMAIL_MANUAL message-id ymsg_send.

tables : rlgrap.

TYPE-POOLS vrm.

CONTROLS : TC_RECEPIENT TYPE TABLEVIEW USING SCREEN 103,

  • TC_SUB_NOTE TYPE TABLEVIEW USING SCREEN 101,

FEATURES TYPE TABLEVIEW USING SCREEN 102.

CONTROLS : TS_MAILTAB TYPE TABSTRIP,

TS_RECP TYPE TABSTRIP.

  • To hold the value of tab index

DATA: TAB_LINES type i. " LIKE SY-TABIX.

DATA: name TYPE vrm_id,

list TYPE vrm_values,

value LIKE LINE OF list,

temp_val like line of list.

DATA : IO_TITLE(50) TYPE C.

DATA : CHANGE(20) TYPE C.

DATA : SENS(20) type C.

DATA : PRIOR(10) type c.

DATA : LANGU(15) type c.

DATA : expirydate type SO_OBJ_EDT.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA : t_reclines LIKE SY-TABIX.

DATA: lt_pdf_nuc_data TYPE STANDARD TABLE OF SOLISTI1.

data w_lt_pdf_nuc_data like line of lt_pdf_nuc_data.

data : lt_upload type standard table of SOLISTI1 with header line.

data : io_size type string.

data : l_cline TYPE SOLISTI1.

**Selection screen to collect the path where attachments are stored.

*selection-screen : begin of block b1 with frame title text-001.

*select-options : p_path1 for /SAPDMC/LSSCREEN-PATHFIL_PC

*default 'C:\TESTHEM\TEST.PDF' option EQ sign I no intervals obligatory.

*selection-screen : end of block b1.

  • To hold info pertaining to SAPoffice: Description of Imported Object

  • Components

DATA: I_OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.

  • A structure to hold SAPoffice: Single List with Column Length 255

DATA: I_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.

  • Structure to hold mail subject

DATA: WA_DOC_CHNG LIKE SODOCCHGI1.

  • Structure to hold SAPoffice: Structure of the API Recipient List

DATA: I_RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.

  • data : objhead like solisti1 occurs 1 with header line.

DATA : COLS1 LIKE LINE OF TC_RECEPIENT-COLS.

DATA: SELECTION_TAB LIKE SOOS1 OCCURS 10 WITH HEADER LINE.

data : begin of receiver,

name type SOS04-L_ADR_NAME,

rec_type type SOMLRECI1-REC_TYPE,

express type SOMLRECI1-EXPRESS,

copy type SOMLRECI1-COPY,

blind_copy type SOMLRECI1-BLIND_COPY,

end of receiver.

data : rec_temp like receiver occurs 0 with header line.

data : wa_rec_temp like line of rec_temp.

data : recepient_LINES like sy-loopc.

*DATA : BEGIN OF NOTE OCCURS 0,

  • NOTE_DATA(72) TYPE C,

  • END OF NOTE.

*DATA : BEGIN OF ATTACH OCCURS 0,

  • DESCR(30) TYPE C,

  • path like p_path1-low,

  • SIZE(15) TYPE C,

  • ATT_TYP(3) TYPE C,

  • END OF ATTACH.

*

data : x_save , x_variant type disvariant,

x_layout type lvc_s_layo.

data: gt_fieldcat_lvc type lvc_t_fcat with header line.

class lcl_events_d0100 definition deferred.

types : begin of g_ty_s_event,

double_click type char1,

end of g_ty_s_event,

begin of g_ty_s_test,

event type g_ty_s_event,

end of g_ty_s_test.

data: gs_test type g_ty_s_test,

alv type ref to cl_gui_alv_grid,

container type ref to cl_gui_custom_container,

gr_events_d0100 type ref to lcl_events_d0100.

constants: con_true type char1 value 'X'.

CLASS lcl_events_d0100 DEFINITION.

PUBLIC SECTION.

METHODS:

double_click for event double_click

of cl_gui_alv_grid

importing e_row

e_column

es_row_no.

ENDCLASS.

TS_RECP-ACTIVETAB = 'REC'.

*Selection screen to collect the path where attachments are stored.

selection-screen : begin of block b1 with frame title text-001.

select-options : p_path1 for rlgrap-filename

default 'C:\TEST.TXT' option EQ sign I no intervals obligatory.

selection-screen : end of block b1.

DATA : BEGIN OF ATTACH OCCURS 0,

DESCR(30) TYPE C,

path like p_path1-low,

SIZE(25) TYPE C,

ATT_TYP(3) TYPE C,

END OF ATTACH.

DATA number TYPE sy-dynnr.

TS_mailtab-activetab = 'DOCS'.

number = '0101'.

gs_test-event-double_click = 'X'.

*

CONSTANTS:

line_length TYPE i VALUE 254.

TYPES: begin of mytable_line,

line(line_length) type C,

end of mytable_line.

  • table to exchange text

data mytable type table of mytable_line.

data :

  • Create reference to the custom container

custom_container TYPE REF TO cl_gui_custom_container,

  • Create reference to the TextEdit control

editor TYPE REF TO cl_gui_textedit,

repid LIKE sy-repid.

*

call screen 100.

CLASS lcl_events_d0100 IMPLEMENTATION.

----


  • METHOD double_click *

----


  • ........ *

----


method double_click.

perform d0100_event_double_click using e_row

e_column.

endmethod.

ENDCLASS.

&----


*& Module PFSTATUS OUTPUT

&----


  • text

----


module PFSTATUS output.

SET PF-STATUS 'MAIL'.

set titlebar '001'.

endmodule. " PFSTATUS OUTPUT

&----


*& Module USER_COMMAND INPUT

&----


  • text

----


module USER_COMMAND input.

save_ok = ok_code.

CLEAR ok_code.

IF save_ok = 'OK'.

MESSAGE i888(sabapdocu) WITH 'MYTABSTRIP-ACTIVETAB ='

ts_mailtab-activetab.

ELSE.

ts_mailtab-activetab = save_ok.

CASE save_ok.

WHEN 'DOCS'.

number = '0101'.

WHEN 'ATTR'.

number = '0102'.

WHEN 'ATTM'.

number = '0104'.

when 'SEND'.

perform SEND_DATA.

when 'BACK'.

leave program.

ENDCASE.

ENDIF.

endmodule. " USER_COMMAND INPUT

&----


*& Module reciever_selec INPUT

&----


  • text

----


module reciever_selec input.

CALL FUNCTION 'SO_WIND_RECEIVER_SELECT'

EXPORTING

SINGLE_SELECTION = ' '

NO_ORG_SELECT = ' '

TABLES

selection_tab = SELECTION_TAB

EXCEPTIONS

PARAMETER_ERROR = 1

X_ERROR = 2

OTHERS = 3

.

receiver-name = selection_tab-adr_name.

receiver-rec_type = selection_tab-rectp.

endmodule. " reciever_selec INPUT

&----


*& Module POPUP_EDITOR INPUT

&----


  • text

----


MODULE POPUP_EDITOR INPUT.

*CASE SY-UCOMM.

*WHEN 'EDIT'.

*CALL FUNCTION 'TRM_COMMENT_POPUP_EDIT'

  • EXPORTING

  • TITEL = 'EDITOR'

  • READ_ONLY = ''

  • TABLES

  • TEXTLINES = NOTE.

*ENDCASE.

*sy-ucomm = ''.

ENDMODULE. " POPUP_EDITOR INPUT

&----


*& Module INTI_LISTBOX OUTPUT

&----


  • text

----


MODULE INTI_LISTBOX OUTPUT.

clear list.

value-key = 'CH01'.

value-text = 'Changeable'.

APPEND value TO list.

value-key = 'CH02'.

value-text = 'Changeable by author'.

APPEND value TO list.

value-key = 'CH03'.

value-text = 'Not changeable'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'CHANGE'

values = list[].

if change is initial.

change = 'CH01'.

endif.

clear list.

value-key = 'SE01'.

value-text = 'Standard'.

APPEND value TO list.

value-key = 'SE02'.

value-text = 'Confidential'.

APPEND value TO list.

value-key = 'SE03'.

value-text = 'Functional'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'SENS'

values = list[].

if sens is initial.

sens = 'SE01'.

endif.

clear list.

value-key = 'L'.

value-text = 'Low'.

APPEND value TO list.

value-key = 'M'.

value-text = 'Medium'.

APPEND value TO list.

value-key = 'H'.

value-text = 'High'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'PRIOR'

values = list[].

clear list.

if prior is initial.

prior = 'M'.

endif.

select sptxt from T002T into value-text where SPRAS = 'E'.

value-key = value-text.

append value to list.

endselect.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'LANGU'

values = list[].

if langu is initial.

langu = 'English'.

endif.

clear io_size.

*describe table note lines io_size.

*io_size = io_size * 255.

*concatenate io_size ' bytes' into io_size.

*

describe table mytable lines io_size.

io_size = io_size * 255.

concatenate io_size ' bytes' into io_size.

*io_size = temp_size + 'bytes'.

ENDMODULE. " INTI_LISTBOX OUTPUT

&----


*& Module show_calendar INPUT

&----


  • text

----


MODULE show_calendar INPUT.

CALL FUNCTION 'F4_DATE'

EXPORTING

DATE_FOR_FIRST_MONTH = SY-DATUM

IMPORTING

SELECT_DATE = expirydate.

ENDMODULE. " show_calendar INPUT

&----


*& Module check_date INPUT

&----


  • text

----


MODULE check_date INPUT.

if expirydate <= sy-datum and not expirydate is initial.

message e000.

endif.

ENDMODULE. " check_date INPUT

&----


*& Form SEND_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SEND_DATA .

WA_DOC_CHNG-OBJ_DESCR = IO_TITLE.

CASE CHANGE.

WHEN 'CH01'.

WA_DOC_CHNG-NO_CHANGE = 'X'.

when 'CH02'.

WA_DOC_CHNG-NO_CHANGE = 'X'.

when 'CH03'.

WA_DOC_CHNG-NO_CHANGE = ' '.

endcase.

CASE SENS.

WHEN 'SE01'.

WA_DOC_CHNG-SENSITIVTY = 'O'.

WHEN 'SE02'.

WA_DOC_CHNG-SENSITIVTY = 'P'.

WHEN 'SE03'.

WA_DOC_CHNG-SENSITIVTY = 'F'.

ENDCASE.

CASE PRIOR.

WHEN 'L'.

WA_DOC_CHNG-PRIORITY = 9.

WA_DOC_CHNG-OBJ_PRIO = 9.

WHEN 'M'.

WA_DOC_CHNG-PRIORITY = 5.

WA_DOC_CHNG-OBJ_PRIO = 5.

WHEN 'H'.

WA_DOC_CHNG-PRIORITY = 1.

WA_DOC_CHNG-OBJ_PRIO = 1.

endcase.

WA_DOC_CHNG-OBJ_LANGU = LANGU.

WA_DOC_CHNG-OBJ_EXPDAT = EXPIRYDATE.

*I_OBJTXT[] = NOTE[].

I_OBJTXT[] = mytable.

DESCRIBE TABLE I_objtxt LINES TAB_LINES .

READ TABLE I_objtxt INDEX TAB_LINES into l_cline.

WA_DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 +

STRLEN( l_cline ).

CLEAR I_OBJPACK-TRANSF_BIN.

I_OBJPACK-HEAD_START = 1.

I_OBJPACK-HEAD_NUM = 0.

I_OBJPACK-BODY_START = 1.

I_OBJPACK-BODY_NUM = TAB_LINES.

I_OBJPACK-DOC_TYPE = 'RAW'. "'RAW'.

APPEND I_OBJPACK.

*objhead = 'objectheader'.

data : lt_index type sy-tabix.

data : doc_type(3) type c.

data : descr like I_OBJPACK-OBJ_DESCR.

data : temp_data like P_PATH1-LOW.

data : temp1 type string.

LOOP AT P_PATH1.

temp1 = p_path1-low.

descr = p_path1-low.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = descr

LANG = 'E'

IMPORTING

RSTRING = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '\'

STRING = descr

IMPORTING

HEAD = descr

TAIL = temp_data.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = descr

LANG = 'E'

IMPORTING

RSTRING = descr.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '.'

STRING = descr

IMPORTING

HEAD = TEMP_DATA

TAIL = DOC_TYPE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = temp1

FILETYPE = 'BIN'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

REPLACEMENT = '#'

TABLES

DATA_TAB = Lt_upload.

DESCRIBE TABLE lt_upload LINES TAB_LINES.

DESCRIBE TABLE lt_pdf_nuc_data lines lt_index.

lt_index = lt_index + 1.

LOOP AT LT_UPLOAD.

w_lt_pdf_nuc_data-LINE = LT_UPLOAD-LINE.

append W_LT_PDF_NUC_DATA to lt_pdf_nuc_data.

ENDLOOP.

I_OBJPACK-TRANSF_BIN = 'X'.

I_OBJPACK-HEAD_START = 0.

I_OBJPACK-HEAD_NUM = 0.

I_OBJPACK-BODY_START = lt_index.

I_OBJPACK-BODY_NUM = TAB_LINES.

I_OBJPACK-DOC_TYPE = doc_type.

  • I_OBJPACK-OBJ_NAME = 'Subject'.

I_OBJPACK-OBJ_DESCR = descr.

I_OBJPACK-DOC_SIZE = TAB_LINES * 255.

APPEND I_OBJPACK.

endloop.

LOOP AT rec_temp.

I_RECLIST-RECEIVER = rec_temp-NAME.

I_RECLIST-REC_TYPE = rec_temp-REC_TYPE.

I_RECLIST-EXPRESS = rec_temp-EXPRESS.

I_RECLIST-COPY = rec_temp-COPY.

I_RECLIST-BLIND_COPY = rec_temp-BLIND_COPY.

APPEND I_RECLIST.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = WA_DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

TABLES

PACKING_LIST = I_OBJPACK

  • OBJECT_HEADER = objhead

CONTENTS_BIN = lt_pdf_nuc_data

CONTENTS_TXT = I_OBJTXT

RECEIVERS = I_RECLIST

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

OPERATION_NO_AUTHORIZATION = 4

OTHERS = 99.

case sy-subrc.

when 1.

message e004.

when 2.

message e005.

when 3.

message e006.

when 0.

SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.

leave program.

endcase.

ENDFORM. " SEND_DATA

&----


*& Module populate_rectp OUTPUT

&----


  • text

----


MODULE populate_rectp OUTPUT.

clear list.

value-key = 'B'.

value-text = 'SAP user name'.

APPEND value TO list.

value-key = 'A'.

value-text = 'External address'.

APPEND value TO list.

value-key = 'H'.

value-text = 'Organization unit'.

APPEND value TO list.

value-key = 'C'.

value-text = 'Shared distribution list'.

APPEND value TO list.

value-key = 'P'.

value-text = 'Private distribution list'.

APPEND value TO list.

value-key = 'U'.

value-text = 'Internet address'.

APPEND value TO list.

value-key = 'R'.

value-text = 'Remote Mail address'.

APPEND value TO list.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'RECEIVER-REC_TYPE'

values = list.

ENDMODULE. " populate_rectp OUTPUT

" recepient_save INPUT

&----


*& Module display_attach OUTPUT

&----


  • text

----


MODULE display_attach OUTPUT.

create object container

exporting

container_name = 'CATT'.

create object alv

exporting

i_parent = container.

x_save = 'X'.

x_variant-report = sy-repid.

x_layout-no_toolbar = 'X'.

perform d0100_set_grid_events.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'DESCR'.

gt_fieldcat_lvc-coltext = 'Description'.

gt_fieldcat_lvc-outputlen = 30.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'PATH'.

gt_fieldcat_lvc-coltext = 'PATH'.

gt_fieldcat_lvc-no_out = 'X'.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'SIZE'.

gt_fieldcat_lvc-coltext = 'SIZE'.

gt_fieldcat_lvc-outputlen = 15.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

gt_fieldcat_lvc-fieldname = 'ATT_TYP'.

gt_fieldcat_lvc-coltext = 'Type'.

gt_fieldcat_lvc-outputlen = 3.

append gt_fieldcat_lvc.

clear gt_fieldcat_lvc.

data : FILE_NAME like p_path1-low,

FILE_TYPE(3) TYPE C,

file_size type I,

TEMP2 LIKE P_PATH1-LOW,

TEMP3 LIKE RLGRAP-FILENAME.

  • lt_index type sy-tabix.

IF ATTACH[] IS INITIAL.

loop at p_path1.

FILE_NAME = p_path1-low.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = FILE_NAME

LANG = 'E'

IMPORTING

RSTRING = FILE_NAME.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '\'

STRING = FILE_NAME

IMPORTING

HEAD = FILE_NAME

TAIL = TEMP2

exceptions

not_found = 1.

if sy-subrc <> 0.

message e009.

endif.

CALL FUNCTION 'STRING_REVERSE'

EXPORTING

STRING = FILE_NAME

LANG = 'E'

IMPORTING

RSTRING = FILE_NAME.

attach-descr = FILE_NAME.

CALL FUNCTION 'STRING_SPLIT'

EXPORTING

DELIMITER = '.'

STRING = FILE_NAME

IMPORTING

HEAD = TEMP2

TAIL = FILE_TYPE.

attach-att_typ = FILE_TYPE.

TEMP3 = P_PATH1-LOW.

attach-path = temp3.

CALL FUNCTION 'GUI_GET_FILE_INFO'

EXPORTING

FNAME = TEMP3

IMPORTING

FILE_SIZE = file_size.

DATA : TEMP4(12) TYPE C.

TEMP4 = FILE_SIZE.

CONCATENATE TEMP4 'BYTES' INTO ATTACH-SIZE.

append attach.

endloop.

ENDIF.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

I_STRUCTURE_NAME = 'ATTACH'

CHANGING

CT_FIELDCAT = gt_fieldcat_lvc[].

call method alv->set_table_for_first_display

exporting

is_variant = x_variant

i_save = x_save

i_default = 'X'

is_layout = x_layout

changing

it_fieldcatalog = gt_fieldcat_lvc[]

it_outtab = ATTACH[].

ENDMODULE. " display_attach OUTPUT

&----


*& Module recepient_move OUTPUT

&----


  • text

----


MODULE recepient_move OUTPUT.

MOVE-CORRESPONDING wa_rec_temp TO receiver.

ENDMODULE. " recepient_move OUTPUT

&----


*& Module recepient_get_lines OUTPUT

&----


  • text

----


MODULE recepient_get_lines OUTPUT.

RECEPIENT_LINES = SY-LOOPC.

ENDMODULE. " recepient_get_lines OUTPUT

&----


*& Module recepient_modify INPUT

&----


  • text

----


MODULE recepient_modify INPUT.

read table rec_temp with key name = receiver-name.

if sy-subrc <> 0.

MOVE-CORRESPONDING receiver TO wa_rec_temp.

APPEND WA_rec_temp TO rec_temp.

TC_RECEPIENT-lines = TC_RECEPIENT-lines + 1.

else.

move-corresponding receiver to wa_rec_temp.

modify rec_temp from wa_rec_temp transporting express copy blind_copy

where name = receiver-name.

endif.

TC_RECEPIENT-lines = TC_RECEPIENT-lines + 1.

ENDMODULE. " recepient_modify INPUT

&----


*& Module clear_rec_temp INPUT

&----


  • text

----


MODULE clear_rec_temp INPUT.

clear rec_temp[] .

clear rec_temp.

clear wa_rec_temp.

ENDMODULE. " clear_rec_temp INPUT

&----


*& Module recepient-exists INPUT

&----


  • text

----


MODULE recepient-exists INPUT.

*data : recid type CVDIOBJID.

data : temp_rec_type type SO_ESCAPE.

data : w_rec like line of rec_temp.

data : temp(241) type c.

temp = receiver-name.

if not receiver-name is initial.

if not receiver-rec_type is initial.

CALL FUNCTION 'CVV1_FIND_RECIPIENT'

EXPORTING

ADDRESS_STRING = temp " receiver-name

SINGLE_SELECTION = 'X'

IMPORTING

  • RECID = recid

TYPEID = temp_rec_type.

if sy-subrc = 0.

clear w_rec.

if temp_rec_type = 'A' or temp_rec_type is initial.

temp_rec_type = 'U'.

endif.

receiver-rec_type = temp_rec_type.

read table rec_temp into w_rec with key name = receiver-name.

if sy-subrc = 0.

if w_rec-rec_type <> temp_rec_type.

w_rec-rec_type = temp_rec_type.

modify rec_temp from w_rec transporting rec_type where name =

receiver-name.

endif.

endif.

endif.

if sy-subrc = 1.

endif.

else.

message e002.

endif.

endif.

ENDMODULE. " recepient-exists INPUT

&----


*& Form d0100_event_double_click

&----


  • text

----


  • -->P_E_ROW text

  • -->P_E_COLUMN text

----


form d0100_event_double_click using e_row type lvc_s_row

e_column type lvc_s_col."#EC *

read table attach index e_row.

CALL FUNCTION 'WS_EXECUTE'

EXPORTING

INFORM = ' '

PROGRAM = attach-path.

endform. " d0100_event_double_click

&----


*& Form d0100_set_grid_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form d0100_set_grid_events.

create object gr_events_d0100.

if gs_test-event-double_click eq con_true.

set handler gr_events_d0100->double_click

for alv.

endif.

endform.

&----


*& Module edit_note OUTPUT

&----


  • text

----


MODULE edit_note OUTPUT.

IF editor IS INITIAL.

repid = sy-repid.

  • Create obejct for custom container

CREATE OBJECT custom_container

EXPORTING

container_name = 'C_NOTES'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Create obejct for the TextEditor control

CREATE OBJECT editor

EXPORTING

wordwrap_mode =

cl_gui_textedit=>wordwrap_at_fixed_position

wordwrap_position = line_length

wordwrap_to_linebreak_mode = cl_gui_textedit=>true

parent = custom_container

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

gui_type_not_supported = 5

others = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

ENDMODULE. " edit_note OUTPUT

&----


*& Module save_note INPUT

&----


  • text

----


MODULE save_note INPUT.

CALL METHOD EDITOR->GET_TEXT_AS_R3TABLE

  • EXPORTING

  • ONLY_WHEN_MODIFIED = FALSE

IMPORTING

TABLE = mytable

  • IS_MODIFIED =

  • EXCEPTIONS

  • ERROR_DP = 1

  • ERROR_CNTL_CALL_METHOD = 2

  • ERROR_DP_CREATE = 3

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

ENDMODULE. " save_note INPUT

Message was edited by:

Ramesh Babu Chirumamilla