Académique Documents
Professionnel Documents
Culture Documents
LV_TITLE = SY-TITLE.
IF P_TEST EQ 'X'.
CONCATENATE LV_TITLE '(Test)'(008) INTO LV_TITLE SEPARATED BY ''.
ENDIF.
TRY.
CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = LR_ALV
CHANGING T_TABLE = GIT_ALV ).
LR_FUNCTIONS = LR_ALV->GET_FUNCTIONS( ).
LR_FUNCTIONS->SET_ALL( ABAP_TRUE ).
LR_DISPLAY = LR_ALV->GET_DISPLAY_SETTINGS( ).
LR_DISPLAY->SET_STRIPED_PATTERN( CL_SALV_DISPLAY_SETTINGS=>TRUE ).
LR_DISPLAY->SET_LIST_HEADER( LV_TITLE ).
LR_COLUMNS = LR_ALV->GET_COLUMNS( ).
LR_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).
LR_COLUMN = LR_COLUMNS->GET_COLUMN('BUY_CURRENCY').
LR_COLUMN->SET_SHORT_TEXT( ' ' ).
LR_COLUMN->SET_MEDIUM_TEXT( 'Buy Currency'(010) ).
LR_COLUMN->SET_LONG_TEXT( 'Buy Currency'(010) ).
LR_COLUMN = LR_COLUMNS->GET_COLUMN('BUY_AMOUNT').
LR_COLUMN->SET_SHORT_TEXT('Buy Amount'(011) ).
LR_COLUMN->SET_MEDIUM_TEXT('Buy Amount'(011) ).
LR_COLUMN->SET_LONG_TEXT( 'Buy Amount'(011) ).
LR_COLUMN = LR_COLUMNS->GET_COLUMN('SELL_CURRENCY').
LR_COLUMN->SET_SHORT_TEXT( ' ' ).
LR_COLUMN->SET_MEDIUM_TEXT( 'Sell Currency'(012) ).
LR_COLUMN->SET_LONG_TEXT( 'Sell Currency'(012) ).
LR_LAYOUT = LR_ALV->GET_LAYOUT( ).
LS_KEY-REPORT = SY-REPID.
LR_LAYOUT->SET_KEY( LS_KEY ).
LR_LAYOUT->SET_SAVE_RESTRICTION( CL_SALV_LAYOUT=>RESTRICT_NONE ).
CATCH CX_SALV_NOT_FOUND.
CATCH CX_SALV_MSG INTO LR_MESSAGE.
ENDTRY.
IF P_SNDMAL = 'X'.
LV_XML = LR_ALV->TO_XML( XML_TYPE = IF_SALV_BS_XML=>C_TYPE_XLSX ).
PERFORM SEND_EMAIL USING LV_XML.
ENDIF.
LR_ALV->DISPLAY( ).
FORM SEND_EMAIL USING PI_XML TYPE XSTRING.
DATA:
LIT_CONTENT TYPE SOLIX_TAB,
LIT_MAIN_TXT TYPE BCSY_TEXT WITH HEADER LINE,
LIT_ATT_HDR TYPE SOLI_TAB,
LR_REC TYPE REF TO IF_RECIPIENT_BCS,
LR_DOC TYPE REF TO CL_DOCUMENT_BCS,
LR_SEND_REQUEST TYPE REF TO CL_BCS,
LR_BCS_EXCEP TYPE REF TO CX_BCS,
LV_C_ADDR TYPE AD_SMTPADR,
LV_XML_LENGTH TYPE I,
LV_ATT_SIZE TYPE SOOD-OBJLEN,
LV_ATT_NAME TYPE STRING,
LV_SENT_TO_ALL TYPE OS_BOOLEAN,
LV_SUBJECT TYPE SO_OBJ_DES,
LWA_ATT_HDR TYPE SOLI.
IF P_TEST EQ 'X'.
CONCATENATE LV_SUBJECT '(Test)'(008) INTO LV_SUBJECT.
ENDIF.
TRY.
* create send request
LR_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
* add recipient
LV_C_ADDR = P_EMAIL.
TRY.
LR_REC = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( LV_C_ADDR ).
CATCH CX_ADDRESS_BCS.
ENDTRY.
* Send document
CALL METHOD LR_SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = LV_SENT_TO_ALL ).
COMMIT WORK.
* exception handling
CATCH CX_BCS INTO LR_BCS_EXCEP.
* WRITE : LR_BCS_EXCEP->ERROR_TYPE.
* EXIT.
ENDTRY.
endform.