Created
September 5, 2019 07:13
-
-
Save kgorin8/6ce20978597819968230f025193e3b34 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*&---------------------------------------------------------------------* | |
*& Report ZSDN_WDY_OTR_EDITOR | |
*& | |
*&---------------------------------------------------------------------* | |
REPORT zsdn_wdy_otr_translator. | |
TABLES: wdy_component. | |
********************************************************************** | |
* Global Types Declaration * | |
********************************************************************** | |
TYPES: BEGIN OF gsty_wd_out_tab, | |
btn_01 TYPE c LENGTH 10, | |
component_name TYPE wdy_component_name, | |
view_name TYPE wdy_view_name, | |
END OF gsty_wd_out_tab. | |
TYPES: gtty_wd_out_tab TYPE TABLE OF gsty_wd_out_tab. | |
TYPES: BEGIN OF gsty_wdy_cname_f4, | |
component_name TYPE wdy_component_name, | |
description TYPE wdy_md_description, | |
END OF gsty_wdy_cname_f4. | |
********************************************************************** | |
* CLASS lcl_handle_events DEFINITION | |
********************************************************************** | |
* | |
********************************************************************** | |
CLASS lcl_handle_events DEFINITION. | |
PUBLIC SECTION. | |
METHODS: | |
on_link_click | |
FOR EVENT link_click OF cl_salv_events_table | |
IMPORTING row column. | |
ENDCLASS. "lcl_handle_events DEFINITION | |
********************************************************************** | |
* Global Data Declaration * | |
********************************************************************** | |
DATA: gt_wd_otr TYPE gtty_wd_out_tab. | |
DATA: go_event_handler TYPE REF TO lcl_handle_events. | |
********************************************************************** | |
* SELECTION SCREEN * | |
********************************************************************** | |
SELECTION-SCREEN: BEGIN OF BLOCK b1. | |
SELECT-OPTIONS: pcname FOR wdy_component-component_name OBLIGATORY. | |
PARAMETERS: pslangu TYPE sylangu MATCHCODE OBJECT h_t002 OBLIGATORY. | |
PARAMETERS: pdlangu TYPE sylangu MATCHCODE OBJECT h_t002 OBLIGATORY. | |
SELECTION-SCREEN: END OF BLOCK b1. | |
********************************************************************** | |
* SEARCH HELP * | |
********************************************************************** | |
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pcname-low. | |
* Create Search Help | |
DATA: lt_wdy_component TYPE TABLE OF gsty_wdy_cname_f4. | |
FIELD-SYMBOLS:<lw_wdy_component> TYPE gsty_wdy_cname_f4. | |
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_wdy_component | |
FROM wdy_component | |
WHERE component_name IN pcname. | |
LOOP AT lt_wdy_component ASSIGNING <lw_wdy_component>. | |
SELECT SINGLE * INTO CORRESPONDING FIELDS OF <lw_wdy_component> | |
FROM wdy_componentt | |
WHERE component_name = <lw_wdy_component>-component_name | |
AND langu = sy-langu. | |
ENDLOOP. | |
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' | |
EXPORTING | |
retfield = 'COMPONENT_NAME' | |
dynprofield = 'PCNAME' | |
dynpprog = sy-cprog | |
dynpnr = sy-dynnr | |
value_org = 'S' | |
TABLES | |
value_tab = lt_wdy_component. | |
********************************************************************** | |
* Text Initialization * | |
********************************************************************** | |
INITIALIZATION. | |
%_pcname_%_app_%-text = 'WD Component Name'. | |
%_pslangu_%_app_% = 'Source Language'. | |
%_pdlangu_%_app_% = 'Destination Language'. | |
********************************************************************** | |
* START of SELECTION * | |
********************************************************************** | |
START-OF-SELECTION. | |
DATA: gr_table TYPE REF TO cl_salv_table, | |
gr_display TYPE REF TO cl_salv_display_settings, | |
gr_functions TYPE REF TO cl_salv_functions, | |
gr_events TYPE REF TO cl_salv_events_table, | |
gr_columns TYPE REF TO cl_salv_columns_table, | |
gr_column TYPE REF TO cl_salv_column_table, | |
l_color TYPE lvc_s_colo. | |
FIELD-SYMBOLS:<lw_wd_otr> TYPE gsty_wd_out_tab. | |
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_wd_otr | |
FROM wdy_view | |
WHERE component_name IN pcname | |
AND version = 'A' | |
AND type = 'CL_WDY_MD_VIEW'. | |
LOOP AT gt_wd_otr ASSIGNING <lw_wd_otr>. | |
<lw_wd_otr>-btn_01 = 'Translate'. | |
ENDLOOP. | |
* Create ALV table | |
cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = gt_wd_otr ). | |
* Set zebra layout | |
gr_display = gr_table->get_display_settings( ). | |
gr_display->set_striped_pattern( cl_salv_display_settings=>true ). | |
* Display all standard function | |
gr_functions = gr_table->get_functions( ). | |
gr_functions->set_all( abap_true ). | |
* Set the column BTN_01 as a link to tranlate | |
gr_columns = gr_table->get_columns( ). | |
gr_column ?= gr_columns->get_column( 'BTN_01' ). | |
l_color-col = '4'. | |
l_color-int = '1'. | |
l_color-inv = '0'. | |
gr_column->set_color( l_color ). | |
gr_column->set_cell_type( 5 ). | |
* Set event hadler | |
gr_events = gr_table->get_event( ). | |
CREATE OBJECT go_event_handler. | |
SET HANDLER go_event_handler->on_link_click FOR gr_events. | |
* Set event hadler | |
gr_table->display( ). | |
********************************************************************** | |
* CLASS lcl_handle_events IMPLEMENTATION | |
********************************************************************** | |
* | |
********************************************************************** | |
CLASS lcl_handle_events IMPLEMENTATION. | |
METHOD on_link_click. | |
DATA: l_object_name TYPE trobj_name. | |
DATA: lw_wd_compview TYPE gsty_wd_out_tab. | |
IF column = 'BTN_01'. | |
READ TABLE gt_wd_otr INDEX row INTO lw_wd_compview. | |
CONCATENATE lw_wd_compview-component_name '%' | |
lw_wd_compview-view_name INTO l_object_name. | |
CONDENSE l_object_name NO-GAPS. | |
CALL FUNCTION 'SOTR_API_WB_TRANSLATE' | |
EXPORTING | |
source_langu = pslangu | |
target_langu = pdlangu | |
pgmid = 'LIMU' | |
object = 'WDYV' | |
obj_name = l_object_name | |
EXCEPTIONS | |
no_entry_found = 1 | |
internal_error = 2 | |
no_authorization = 3 | |
error_in_context = 4 | |
user_cancelled = 5 | |
error_in_transport_request = 6 | |
OTHERS = 7 | |
. | |
IF sy-subrc <> 0. | |
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno | |
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. | |
ENDIF. | |
ENDIF. | |
ENDMETHOD. "on_single_click | |
ENDCLASS. "lcl_handle_events IMPLEMENTATION | |
"on_double_click |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment