12-15-2006 5:57 PM
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
12-15-2006 6:03 PM
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
12-15-2006 6:03 PM
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