Feature Request: Double Click in Tab Field to Create New Tab.
Right now the only way to add a new tab is to *right click* then select new tab.
Also instead of a grey (close) x it should be colorful, less grey.
Hello,
Try using the template code given below. Let me know if you have any questions.
data : GT_EVENTS TYPE SLIS_T_EVENT.
get event
PERFORM BUILD_EVENT_TOPOFPAGE USING GT_EVENTS[].
display alv data
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_xxxxx
IT_FIELDCAT = GT_xxxx
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = T_xxxx
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
get event perform
FORM BUILD_EVENT_TOPOFPAGE USING LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
Read double click event using the below statement
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
INTO LS_EVENT.
IF SY-SUBRC = 0.
ENDIF.
ENDFORM. " BUILD_EVENT_TOPOFPAGE
FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM
LS_SELFIELD TYPE SLIS_SELFIELD.
CASE L_UCOMM.
WHEN <double click>
Perform do_something.
ENDCASE.
ENDFORM. " USER_COMMAND
Best Regards,
Krishna
Similar Messages
-
Feature Request: Double Clicking should be slowed down for Browsing use.
I have a menu on my website that you need to click some what fast - but when I do a normal double click using Opera, FF, or IE it doesn't highlight the entire menu. When I try in Safari it does.
It seems like the other browsers have set the double click up a couple notches some how.This isn't the first instance of someone with mouse issues. It seems Safari is currently ignoring a lot of system wide keyboard and mouse settings, including but not limited to, special function buttons and scroll speeds.
My inital guess is that its a bug just like the others. -
Disabling double click on SAP icon to create new support message
When we double click on SAP icon, it gives pop-up for create message. Please tell me how to disable this message generation from SAP systems.
Thanks.Hi,
i do not think you can deactivate this.
A workaround could be to implement BADI SBCOS001 and use the statement LEAVE_PROGRAM to abort the popup before it is shown.
But this would also deactivate the function "Help->Create Support Message".
Regards,
Christoph -
Populate information when double click on the field name
I have this tree structure with the field names as shown at this picture.
<a href="http://img164.imageshack.us/img164/426/treeaf0.jpg">http://img164.imageshack.us/img164/426/treeaf0.jpg</a>
When I double click on the field name, I would like to populate the values related to the fieldname to the tab form next to the tree structure as should in the picture.
How am I suppose to do this?
My codes as shown below:
*& Report ZSCSDM_RULES_ENGINE_TRANSFORM_v4
*& with Column Tree Structure & ABAP Generic code
REPORT ZSCSDM_MODIFY_TRANSFORM_HERA.
GLOBAL DECLARATION
======================================================================
SCREEN 9000 TABS (WIZARD-GENERATED CODES. DO NOT CHANGE)-------------*
*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TRANSFORM'
Rayden Tree Control Code.
CLASS CL_TREE DEFINITION DEFERRED.
CLASS CL_GUI_CFW DEFINITION LOAD.
TYPES : ITEM_TABLE_TYPE LIKE STANDARD TABLE OF MTREEITM
WITH DEFAULT KEY.
DATA: BEGIN OF ITAB_MO OCCURS 1.
INCLUDE STRUCTURE ZSCSDM_MO.
DATA:END OF ITAB_MO.
DATA: BEGIN OF ITAB_OF OCCURS 1.
INCLUDE STRUCTURE ZSCSDM_OF.
DATA:END OF ITAB_OF.
DATA: BEGIN OF ITAB_OS OCCURS 1.
INCLUDE STRUCTURE ZSCSDM_OS.
DATA:END OF ITAB_OS.
DATA: BEGIN OF ITAB_TREE OCCURS 1,
UNIKEY(100) TYPE C,
PARENT(100) TYPE C,
TYPE(10) TYPE C,
IN_AREA(1) TYPE C,
NAME(14) TYPE C,
DESC(255) TYPE C,
TAG(50) TYPE C,
END OF ITAB_TREE.
DATA: TREE TYPE REF TO CL_GUI_COLUMN_TREE,
DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
REPID TYPE SY-REPID,
DYNNR TYPE SY-DYNNR,
TREE_APPLICATION TYPE REF TO CL_TREE,
LEVEL TYPE I,
AREA_COUNT TYPE I,
AREA_TEXT(30) TYPE C,
AREA_DESC(30) TYPE C,
AREA_KEY(30) TYPE C,
OBJECT_TEXT(30) TYPE C,
NODE_DISABLE(1) TYPE C,
NODE_EXPAND(1) TYPE C,
NODE_IMAGE(46) TYPE c,
NODE_EXP_IMAGE(46) TYPE C,
FIELD_KEY(30) TYPE C,
SELECTED_KEY(30) TYPE C,
SELECTED_ITEM(30) TYPE C,
FIELD_COUNT(9) TYPE N,
TAG_VALUE(255) TYPE C,
TAG_1(255) TYPE C,
TAG_2(255) TYPE C,
PARENT_TAG_VALUE(50) TYPE C,
TEMP_VALUE(100) TYPE C,
COUNTER TYPE I,
IN_AREA(1) TYPE C,
STR_COUNTER TYPE STRING.
DATA: EVENT TYPE CNTL_SIMPLE_EVENT,
EVENTS TYPE CNTL_SIMPLE_EVENTS,
NODE_TABLE TYPE TREEV_NTAB,
ITEM_TABLE TYPE ITEM_TABLE_TYPE,
NODE TYPE TREEV_NODE,
ITEM TYPE MTREEITM,
ITAB_TREE_WA LIKE LINE OF ITAB_TREE,
NODE_WA LIKE LINE OF NODE_TABLE,
ITEM_WA LIKE LINE OF ITEM_TABLE,
OF_WA LIKE LINE OF ITAB_OF,
HIERARCHY_HEADER TYPE TREEV_HHDR.
FIELD-SYMBOLS: <FS_ITAB_TREE_ANY> TYPE ANY,
<FS_NODE_ANY> TYPE ANY,
<FS_OF_DESC> TYPE ANY.
CONSTANTS: BEGIN OF C_TRANSFORM,
TAB1 LIKE SY-UCOMM VALUE 'TRANSFORM_FC1',
TAB2 LIKE SY-UCOMM VALUE 'TRANSFORM_FC2',
END OF C_TRANSFORM.
*&SPWIZARD: DATA FOR TABSTRIP 'TRANSFORM'
CONTROLS: TRANSFORM TYPE TABSTRIP.
DATA: BEGIN OF G_TRANSFORM,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZSCSDM_MODIFY_TRANSFORM_V5',
PRESSED_TAB LIKE SY-UCOMM VALUE C_TRANSFORM-TAB1,
END OF G_TRANSFORM.
DATA: OK_CODE LIKE SY-UCOMM.
SCREEN 9001 FIELDS---------------------------------------------------*
TABLES: ZSCSDM_MO, ZSCSDM_OF, ZSCSDM_OS, ZSCSDM_REF.
DATA: REF_COND TYPE ZSCSDM_REF-REF_COND,
G_EDITOR_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
Rayden Dynamic generate ABAP Code.
SCREEN 9002 FIELDS---------------------------------------------------*
DATA: CODE_EDITOR_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
CODE_EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
TYPES: BEGIN OF DYN_CODE,
LINE(255),
END OF DYN_CODE.
DATA: DYN_CODE_TABLE TYPE TABLE OF DYN_CODE.
INITIALIZATION-------------------------------------------------------*
DATA: INIT_MODE_9001 TYPE I VALUE 0. "0 = CREATE, 1 = EDIT
SCREEN 9001 PBO AND PAI---------------------------------------------------*
DATA: DETAILS_SCREEN(10) TYPE C VALUE 'Transform',
RETURN_RESULT TYPE CHAR9.
CONSTANTS: G_EDITOR_LENGTH TYPE I VALUE 255.
DATA: BEGIN OF G_EDITOR_LINE OCCURS 0,
REF_COND TYPE ZSCSDM_REF-REF_COND,
END OF G_EDITOR_LINE.
TYPES: BEGIN OF G_EDITOR_TABLE_LINE,
LINE(G_EDITOR_LENGTH) TYPE C,
END OF G_EDITOR_TABLE_LINE.
DATA: G_EDITOR_TABLE TYPE TABLE OF G_EDITOR_TABLE_LINE,
G_EDITOR_CONTENTS LIKE STANDARD TABLE OF LINE.
DATA: INSERT_COUNTER TYPE I, INSERT_VALUE(G_EDITOR_LENGTH) TYPE C.
*DATA: NONE_BLANK_COUNTER TYPE I, NONE_BLANK_CHECK(G_EDITOR_LENGTH) TYPE C,
INSERT_COUNTER TYPE I, INSERT_VALUE(G_EDITOR_LENGTH) TYPE C,
OFFSET_LEN_3AT TYPE I,OFFSET_LEN_DOT TYPE I.
SAVE STATUS (SUCCESS=S OR FAIL=F)------------------------------------*
DATA: SAVE_STATUS(1) TYPE C.
Rayden Tree Control Code.
CLASS CL_TREE DEFINITION
CLASS CL_TREE DEFINITION.
PUBLIC SECTION.
METHODS : HANDLE_ITEM_DOUBLE_CLICK
FOR EVENT ITEM_DOUBLE_CLICK
OF CL_GUI_COLUMN_TREE
IMPORTING NODE_KEY ITEM_NAME.
ENDCLASS. "CL_TREE DEFINITION
CLASS CL_TREE IMPLEMENTATION
CLASS CL_TREE IMPLEMENTATION.
METHOD HANDLE_ITEM_DOUBLE_CLICK.
SELECTED_KEY = NODE_KEY.
SELECTED_ITEM = ITEM_NAME.
CLEAR: TAG_VALUE.
PERFORM CLEAR_SCREEN.
IF ITEM_NAME = 'OBJECT'.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = SELECTED_KEY.
IF ITAB_TREE_WA-TYPE = 'OBJECT'.
ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
ENDIF.
IF ITAB_TREE_WA-TYPE = 'FILE'.
ZSCSDM_OF-FILE_NAME = ITAB_TREE_WA-NAME.
ZSCSDM_OF-FILE_DESC = ITAB_TREE_WA-DESC.
" Get the OBJECT of the FILE
SPLIT ITAB_TREE_WA-TAG AT 'T' INTO TAG_1 TAG_2.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = ITAB_TREE_WA-PARENT.
ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
ENDIF.
IF ITAB_TREE_WA-TYPE = 'FIELD'.
ZSCSDM_OS-FIELD_NAME = ITAB_TREE_WA-NAME.
ZSCSDM_OS-FIELD_DESC = ITAB_TREE_WA-DESC.
" Get the FILE of the FIELD
SPLIT ITAB_TREE_WA-TAG AT 'F' INTO TAG_1 TAG_2.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
ZSCSDM_OF-FILE_NAME = ITAB_TREE_WA-NAME.
ZSCSDM_OF-FILE_DESC = ITAB_TREE_WA-DESC.
" Get the OBJECT of the FILE
SPLIT ITAB_TREE_WA-TAG AT 'T' INTO TAG_1 TAG_2.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY TAG = TAG_1.
READ TABLE ITAB_TREE INTO ITAB_TREE_WA WITH KEY UNIKEY = ITAB_TREE_WA-PARENT.
ZSCSDM_MO-OBJECT_ID = ITAB_TREE_WA-NAME.
ZSCSDM_MO-OBJECT_DESC = ITAB_TREE_WA-DESC.
ENDIF.
ENDIF.
ENDMETHOD. "HANDLE_ITEM_DOUBLE_CLICK
ENDCLASS. "CL_TREE IMPLEMENTATION
PROCESSING BLOCK
======================================================================
INITIALIZATION.
PERFORM GET_MEMORY.
ZSCSDM_OS-TG_LAST_CHGED_BY = SY-UNAME.
ZSCSDM_OS-TG_LAST_CHGED_ON = SY-DATUM.
START-OF-SELECTION.
CREATE OBJECT TREE_APPLICATION.
CALL SCREEN 9000.
MODULE PBO_9000 OUTPUT
MODULE PBO_9000 OUTPUT.
IF G_TRANSFORM-PRESSED_TAB = 'TRANSFORM_FC1'.
SET PF-STATUS 'SCREEN_9000' EXCLUDING 'SYN'.
ELSEIF G_TRANSFORM-PRESSED_TAB = 'TRANSFORM_FC2'.
SET PF-STATUS 'SCREEN_9000'.
ENDIF.
SET TITLEBAR 'RWB_TRANSFORM'.
IF TREE IS INITIAL.
REPID = SY-REPID.
DYNNR = SY-DYNNR.
PERFORM INIT_TREE.
ENDIF.
ENDMODULE. "PBO_9000 OUTPUT
MODULE PBO_9001 OUTPUT
MODULE PBO_9001 OUTPUT.
IF INIT_MODE_9001 = 0. "ON FIRST LOAD
CREATE OBJECT G_EDITOR_CONTAINER
EXPORTING
CONTAINER_NAME = 'REF_COND'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
CREATE OBJECT G_EDITOR
EXPORTING
PARENT = G_EDITOR_CONTAINER
WORDWRAP_MODE =
CL_GUI_TEXTEDIT=>WORDWRAP_OFF
CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
CL_GUI_TEXTEDIT=>WORDWRAP_AT_WINDOWBORDER
WORDWRAP_POSITION = G_EDITOR_LENGTH
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
SELECT REF_COND INTO G_EDITOR_LINE FROM ZSCSDM_REF
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T'
AND REF_CON_ID = 1.
APPEND G_EDITOR_LINE-REF_COND TO G_EDITOR_TABLE.
ENDSELECT.
CALL METHOD G_EDITOR->SET_TEXT_AS_R3TABLE
EXPORTING
TABLE = G_EDITOR_TABLE.
CALL METHOD CL_GUI_CFW=>FLUSH.
REFRESH G_EDITOR_TABLE.
SELECT COUNT(*) INTO INIT_MODE_9001 FROM ZSCSDM_OS
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND TG_CREATED_BY <> ''.
IF INIT_MODE_9001 = 0. "CREATE MODE
INIT_MODE_9001 = 1.
ZSCSDM_OS-TG_CREATED_BY = SY-UNAME.
ZSCSDM_OS-TG_CREATED_ON = SY-DATUM.
ZSCSDM_OS-TG_STATUS = 'A'.
ZSCSDM_OS-TRANS_BY_DIRECT = 'X'.
ELSE. "UPDATE MODE
SELECT TG_CREATED_BY TG_CREATED_ON TG_LAST_CHGED_BY TG_LAST_CHGED_ON
TG_STATUS TRANS_BY_DIRECT TRANS_TABLE TRANS_FIELD
TRANS_BY_DEFAULT TRANS_DEF_VAL TRANS_BY_CONCAT
CONCAT_FIELD_1 CONCAT_FIELD_2 CONCAT_FIELD_3 CONCAT_FIELD_4 CONCAT_FIELD_5
CONCAT_FIELD_6 CONCAT_FIELD_7 CONCAT_FIELD_8 CONCAT_FIELD_9 CONCAT_FIELD_10
TRANS_BY_REF
INTO (ZSCSDM_OS-TG_CREATED_BY, ZSCSDM_OS-TG_CREATED_ON,
ZSCSDM_OS-TG_LAST_CHGED_BY, ZSCSDM_OS-TG_LAST_CHGED_ON,
ZSCSDM_OS-TG_STATUS, ZSCSDM_OS-TRANS_BY_DIRECT,
ZSCSDM_OS-TRANS_TABLE, ZSCSDM_OS-TRANS_FIELD,
ZSCSDM_OS-TRANS_BY_DEFAULT, ZSCSDM_OS-TRANS_DEF_VAL,
ZSCSDM_OS-TRANS_BY_CONCAT, ZSCSDM_OS-CONCAT_FIELD_1,
ZSCSDM_OS-CONCAT_FIELD_2, ZSCSDM_OS-CONCAT_FIELD_3,
ZSCSDM_OS-CONCAT_FIELD_4, ZSCSDM_OS-CONCAT_FIELD_5,
ZSCSDM_OS-CONCAT_FIELD_6, ZSCSDM_OS-CONCAT_FIELD_7,
ZSCSDM_OS-CONCAT_FIELD_8, ZSCSDM_OS-CONCAT_FIELD_9,
ZSCSDM_OS-CONCAT_FIELD_10, ZSCSDM_OS-TRANS_BY_REF) FROM ZSCSDM_OS
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
ENDSELECT.
ENDIF.
ENDIF.
PERFORM CHANGE_TRANSFORM_TYPE.
ENDMODULE. "PBO_9001 OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TS 'TRANSFORM'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: SETS ACTIVE TAB
MODULE TRANSFORM_ACTIVE_TAB_SET OUTPUT.
TRANSFORM-ACTIVETAB = G_TRANSFORM-PRESSED_TAB.
CASE G_TRANSFORM-PRESSED_TAB.
WHEN C_TRANSFORM-TAB1.
G_TRANSFORM-SUBSCREEN = '9001'.
WHEN C_TRANSFORM-TAB2.
G_TRANSFORM-SUBSCREEN = '9002'.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE. "TRANSFORM_ACTIVE_TAB_SET OUTPUT
MODULE USER_COMMAND_9000 INPUT
MODULE USER_COMMAND_9000 INPUT.
CASE SY-UCOMM.
G_TRANSFORM-PRESSED_TAB = TRANSFORM-ACTIVETAB.
" IF G_TRANSFORM-PRESSED_TAB =
WHEN 'TRANSFORM_FC1'.
SET PF-STATUS 'SCREEN_9000' EXCLUDING 'SYN'.
MODIFY SCREEN.
WHEN 'TRANSFORM_FC2'.
SET PF-STATUS 'SCREEN_9000'.
MODIFY SCREEN.
WHEN 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
WHEN 'BACK'.
CLEAR SY-UCOMM.
SAVE_STATUS = ''.
PERFORM SET_MEMORY.
SUBMIT ZSCSDM_RULES_ENGINE_NAV_V5.
WHEN 'SAVE'.
PERFORM GET_MEMORY_SAVE_STATUS.
IF SAVE_STATUS = 'S'.
PERFORM SET_MEMORY.
SUBMIT ZSCSDM_RULES_ENGINE_NAV_V5.
ELSE.
PERFORM SET_MEMORY_SAVE_STATUS_RESET.
ENDIF.
ENDCASE.
ENDMODULE. "USER_COMMAND_9000 INPUT
MODULE USER_COMMAND_9001 INPUT
MODULE USER_COMMAND_9001 INPUT.
CASE SY-UCOMM.
WHEN 'SAVE'.
CLEAR SY-UCOMM.
PERFORM CHANGE_TRANSFORM_TYPE.
PERFORM VALIDATE_DIRECT_FIELD.
PERFORM VALIDATE_CONCAT_FIELD.
PERFORM SAVE_TRANSFORM_TYPE.
SELECT FIELD_STATUS CREATED_BY CREATED_ON LAST_CHGED_BY LAST_CHGED_ON
COLUMN_NO KEY_FIELD SEARCH_HELP HASH_TOTAL_IND
VG_CREATED_BY VG_CREATED_ON VG_LAST_CHGED_BY VG_LAST_CHGED_ON
CHECK_DATA_TYPE DT_ERR_TEXT LN_ERR_TEXT DP_ERR_TEXT SN_ERR_TEXT
FIELD_DOMAIN FIELD_DATA_TYPE FIELD_LENGTH FIELD_DECIMAL
FIELD_NEGATIVE DOMAIN_POSS_VAL DOMAIN_ERR_TEXT
MAND_OPT MAND_ERR_TEXT UNIQUE_CHECK UNIQUE_ERR_TEXT
INTO (ZSCSDM_OS-FIELD_STATUS, ZSCSDM_OS-CREATED_BY, ZSCSDM_OS-CREATED_ON,
ZSCSDM_OS-LAST_CHGED_BY, ZSCSDM_OS-LAST_CHGED_ON,
ZSCSDM_OS-COLUMN_NO, ZSCSDM_OS-KEY_FIELD,
ZSCSDM_OS-SEARCH_HELP, ZSCSDM_OS-HASH_TOTAL_IND,
ZSCSDM_OS-VG_CREATED_BY, ZSCSDM_OS-VG_CREATED_ON,
ZSCSDM_OS-VG_LAST_CHGED_BY, ZSCSDM_OS-VG_LAST_CHGED_ON,
ZSCSDM_OS-CHECK_DATA_TYPE, ZSCSDM_OS-DT_ERR_TEXT,
ZSCSDM_OS-LN_ERR_TEXT, ZSCSDM_OS-DP_ERR_TEXT,
ZSCSDM_OS-SN_ERR_TEXT, ZSCSDM_OS-FIELD_DOMAIN,
ZSCSDM_OS-FIELD_DATA_TYPE, ZSCSDM_OS-FIELD_LENGTH,
ZSCSDM_OS-FIELD_DECIMAL, ZSCSDM_OS-FIELD_NEGATIVE,
ZSCSDM_OS-DOMAIN_POSS_VAL, ZSCSDM_OS-DOMAIN_ERR_TEXT,
ZSCSDM_OS-MAND_OPT, ZSCSDM_OS-MAND_ERR_TEXT,
ZSCSDM_OS-UNIQUE_CHECK, ZSCSDM_OS-UNIQUE_ERR_TEXT) FROM ZSCSDM_OS
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
ENDSELECT.
CALL FUNCTION 'ZSCSDM_FM_RULES_ENGINE_MODIFY'
EXPORTING
IN_OBJECT_ID = ZSCSDM_MO-OBJECT_ID
IN_FILE_NAME = ZSCSDM_OF-FILE_NAME
IN_FIELD_NAME = ZSCSDM_OS-FIELD_NAME
IN_FIELD_DESC = ZSCSDM_OS-FIELD_DESC
IN_FIELD_STATUS = ZSCSDM_OS-FIELD_STATUS
IN_CREATED_BY = ZSCSDM_OS-CREATED_BY
IN_CREATED_ON = ZSCSDM_OS-CREATED_ON
IN_LAST_CHGED_BY = ZSCSDM_OS-LAST_CHGED_BY
IN_LAST_CHGED_ON = ZSCSDM_OS-LAST_CHGED_ON
IN_COLUMN_NO = ZSCSDM_OS-COLUMN_NO
IN_KEY_FIELD = ZSCSDM_OS-KEY_FIELD
IN_SEARCH_HELP = ZSCSDM_OS-SEARCH_HELP
IN_HASH_TOTAL_IND = ZSCSDM_OS-HASH_TOTAL_IND
IN_VG_CREATED_BY = ZSCSDM_OS-VG_CREATED_BY
IN_VG_CREATED_ON = ZSCSDM_OS-VG_CREATED_ON
IN_VG_LAST_CHGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY
IN_VG_LAST_CHGED_ON = ZSCSDM_OS-VG_LAST_CHGED_ON
IN_CHECK_DATA_TYPE = ZSCSDM_OS-CHECK_DATA_TYPE
IN_DT_ERR_TEXT = ZSCSDM_OS-DT_ERR_TEXT
IN_LN_ERR_TEXT = ZSCSDM_OS-LN_ERR_TEXT
IN_DP_ERR_TEXT = ZSCSDM_OS-DP_ERR_TEXT
IN_SN_ERR_TEXT = ZSCSDM_OS-SN_ERR_TEXT
IN_FIELD_DOMAIN = ZSCSDM_OS-FIELD_DOMAIN
IN_FIELD_DATA_TYPE = ZSCSDM_OS-FIELD_DATA_TYPE
IN_FIELD_LENGTH = ZSCSDM_OS-FIELD_LENGTH
IN_FIELD_DECIMAL = ZSCSDM_OS-FIELD_DECIMAL
IN_FIELD_NEGATIVE = ZSCSDM_OS-FIELD_NEGATIVE
IN_DOMAIN_POSS_VAL = ZSCSDM_OS-DOMAIN_POSS_VAL
IN_DOMAIN_ERR_TEXT = ZSCSDM_OS-DOMAIN_ERR_TEXT
IN_MAND_OPT = ZSCSDM_OS-MAND_OPT
IN_MAND_ERR_TEXT = ZSCSDM_OS-MAND_ERR_TEXT
IN_UNIQUE_CHECK = ZSCSDM_OS-UNIQUE_CHECK
IN_UNIQUE_ERR_TEXT = ZSCSDM_OS-UNIQUE_ERR_TEXT
IN_TG_CREATED_BY = ZSCSDM_OS-TG_CREATED_BY
IN_TG_CREATED_ON = ZSCSDM_OS-TG_CREATED_ON
IN_TG_LAST_CHGED_BY = ZSCSDM_OS-TG_LAST_CHGED_BY
IN_TG_LAST_CHGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON
IN_TG_STATUS = ZSCSDM_OS-TG_STATUS
IN_TRANS_BY_DIRECT = ZSCSDM_OS-TRANS_BY_DIRECT
IN_TRANS_TABLE = ZSCSDM_OS-TRANS_TABLE
IN_TRANS_FIELD = ZSCSDM_OS-TRANS_FIELD
IN_TRANS_BY_DEFAULT = ZSCSDM_OS-TRANS_BY_DEFAULT
IN_TRANS_DEF_VAL = ZSCSDM_OS-TRANS_DEF_VAL
IN_TRANS_BY_CONCAT = ZSCSDM_OS-TRANS_BY_CONCAT
IN_CONCAT_FIELD_1 = ZSCSDM_OS-CONCAT_FIELD_1
IN_CONCAT_FIELD_2 = ZSCSDM_OS-CONCAT_FIELD_2
IN_CONCAT_FIELD_3 = ZSCSDM_OS-CONCAT_FIELD_3
IN_CONCAT_FIELD_4 = ZSCSDM_OS-CONCAT_FIELD_4
IN_CONCAT_FIELD_5 = ZSCSDM_OS-CONCAT_FIELD_5
IN_CONCAT_FIELD_6 = ZSCSDM_OS-CONCAT_FIELD_6
IN_CONCAT_FIELD_7 = ZSCSDM_OS-CONCAT_FIELD_7
IN_CONCAT_FIELD_8 = ZSCSDM_OS-CONCAT_FIELD_8
IN_CONCAT_FIELD_9 = ZSCSDM_OS-CONCAT_FIELD_9
IN_CONCAT_FIELD_10 = ZSCSDM_OS-CONCAT_FIELD_10
IN_TRANS_BY_REF = ZSCSDM_OS-TRANS_BY_REF
IMPORTING
OUT_RESULT = RETURN_RESULT.
IF RETURN_RESULT = 'SUCCESS'.
MESSAGE S001(ZSCSDM_DMT).
IF ZSCSDM_OS-TRANS_BY_REF = 'X'.
NONE_BLANK_COUNTER = 0.
INSERT_COUNTER = 1.
DELETE FROM ZSCSDM_REF WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T' AND
REF_CON_ID = 1.
CALL METHOD G_EDITOR->GET_TEXT_AS_R3TABLE
IMPORTING
TABLE = G_EDITOR_CONTENTS.
LOOP AT G_EDITOR_CONTENTS INTO NONE_BLANK_CHECK.
IF NONE_BLANK_CHECK <> ''.
NONE_BLANK_COUNTER = NONE_BLANK_COUNTER + 1.
ENDIF.
ENDLOOP.
CLEAR INSERT_VALUE.
LOOP AT G_EDITOR_CONTENTS INTO INSERT_VALUE.
IF INSERT_VALUE <> ''.
ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
ZSCSDM_REF-REF_COND_TYPE = 'T'.
ZSCSDM_REF-REF_CON_ID = 1.
ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
ZSCSDM_REF-NOT_EXIST_IND = ''.
ZSCSDM_REF-REF_COND = INSERT_VALUE.
ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
INSERT INTO ZSCSDM_REF VALUES ZSCSDM_REF.
IF INSERT_COUNTER = NONE_BLANK_COUNTER.
OFFSET_LEN_3AT = STRLEN( INSERT_VALUE ) - STRLEN( '@@@' ).
IF OFFSET_LEN_3AT >= 0.
IF INSERT_VALUE+OFFSET_LEN_3AT(3) NE '@@@'.
OFFSET_LEN_DOT = STRLEN( INSERT_VALUE ) - STRLEN( `.` ).
INSERT_COUNTER = INSERT_COUNTER + 1.
ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
ZSCSDM_REF-REF_COND_TYPE = 'T'.
ZSCSDM_REF-REF_CON_ID = 1.
ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
ZSCSDM_REF-NOT_EXIST_IND = ''.
ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
IF INSERT_VALUE+OFFSET_LEN_DOT(1) EQ '.'.
ZSCSDM_REF-REF_COND = '@@@'.
ELSE.
ZSCSDM_REF-REF_COND = '.@@@'.
ENDIF.
ENDIF.
ELSE.
OFFSET_LEN_DOT = STRLEN( INSERT_VALUE ) - STRLEN( `.` ).
INSERT_COUNTER = INSERT_COUNTER + 1.
ZSCSDM_REF-OBJECT_ID = ZSCSDM_MO-OBJECT_ID.
ZSCSDM_REF-FILE_NAME = ZSCSDM_OF-FILE_NAME.
ZSCSDM_REF-FIELD_NAME = ZSCSDM_OS-FIELD_NAME.
ZSCSDM_REF-REF_COND_TYPE = 'T'.
ZSCSDM_REF-REF_CON_ID = 1.
ZSCSDM_REF-REF_COND_ROW = INSERT_COUNTER.
ZSCSDM_REF-CREATED_BY = ZSCSDM_OS-CREATED_BY.
ZSCSDM_REF-CREATED_ON = ZSCSDM_OS-VG_CREATED_ON.
ZSCSDM_REF-LAST_CHANGED_BY = ZSCSDM_OS-VG_LAST_CHGED_BY.
ZSCSDM_REF-LAST_CHANGED_ON = ZSCSDM_OS-TG_LAST_CHGED_ON.
ZSCSDM_REF-REF_RULE_STATUS = ZSCSDM_OS-TG_STATUS.
ZSCSDM_REF-NOT_EXIST_IND = ''.
ZSCSDM_REF-REF_ERR_TEXT = 'Reference Error: The reference condition did not return any results.'.
IF INSERT_VALUE+OFFSET_LEN_DOT(1) EQ '.'.
ZSCSDM_REF-REF_COND = '@@@'.
ELSE.
ZSCSDM_REF-REF_COND = '.@@@'.
ENDIF.
ENDIF.
INSERT INTO ZSCSDM_REF VALUES ZSCSDM_REF.
ENDIF.
INSERT_COUNTER = INSERT_COUNTER + 1.
ENDIF.
ENDLOOP.
ELSE.
DELETE FROM ZSCSDM_REF WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = ZSCSDM_OF-FILE_NAME
AND FIELD_NAME = ZSCSDM_OS-FIELD_NAME AND REF_COND_TYPE = 'T' AND
REF_CON_ID = 1.
ENDIF.
SAVE_STATUS = 'S'.
PERFORM SET_MEMORY_SAVE_STATUS.
SAVE_STATUS = ''.
ELSE.
SAVE_STATUS = 'F'.
PERFORM SET_MEMORY_SAVE_STATUS.
SAVE_STATUS = ''.
MESSAGE E101(ZSCSDM_DMT).
ENDIF.
ENDCASE.
ENDMODULE. "USER_COMMAND_9001 INPUT
*&SPWIZARD: INPUT MODULE FOR TS 'TRANSFORM'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GETS ACTIVE TAB
MODULE TRANSFORM_ACTIVE_TAB_GET INPUT.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN C_TRANSFORM-TAB1.
G_TRANSFORM-PRESSED_TAB = C_TRANSFORM-TAB1.
WHEN C_TRANSFORM-TAB2.
G_TRANSFORM-PRESSED_TAB = C_TRANSFORM-TAB2.
WHEN OTHERS.
*&SPWIZARD: DO NOTHING
ENDCASE.
ENDMODULE. "TRANSFORM_ACTIVE_TAB_GET INPUT
MODULE STATUS_9002 OUTPUT
MODULE STATUS_9002 OUTPUT.
IF CODE_EDITOR IS INITIAL.
CREATE OBJECT CODE_EDITOR_CONTAINER
EXPORTING
CONTAINER_NAME = 'GEN_CODE'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
CREATE OBJECT CODE_EDITOR
EXPORTING
PARENT = CODE_EDITOR_CONTAINER
WORDWRAP_MODE =
CL_GUI_TEXTEDIT=>WORDWRAP_OFF
CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
CL_GUI_TEXTEDIT=>WORDWRAP_AT_WINDOWBORDER
WORDWRAP_POSITION = G_EDITOR_LENGTH
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>TRUE.
ENDIF.
ENDMODULE. "STATUS_9002 OUTPUT
MODULE USER_COMMAND_9002 INPUT
MODULE USER_COMMAND_9002 INPUT.
ENDMODULE. "USER_COMMAND_9002 INPUT
MODULE F4_INPUT INPUT
MODULE F4_INPUT INPUT.
TYPES: BEGIN OF VALUES,
FIELD_NAME TYPE ZSCSDM_OS-FIELD_NAME,
FIELD_DESC TYPE ZSCSDM_OS-FIELD_DESC,
END OF VALUES.
DATA: PROGNAME TYPE SY-REPID, DYNNUM TYPE SY-DYNNR.
DATA: FILENAME_A TYPE ZSCSDM_OS-FILE_NAME,
F4_VALUES TYPE TABLE OF VALUES.
PROGNAME = SY-REPID.
DYNNUM = SY-DYNNR.
SELECT FILE_NAME INTO (FILENAME_A) FROM ZSCSDM_OF
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME_TRANS = ZSCSDM_OF-FILE_NAME.
ENDSELECT.
SELECT FIELD_NAME FIELD_DESC FROM ZSCSDM_OS
INTO CORRESPONDING FIELDS OF TABLE F4_VALUES
WHERE OBJECT_ID = ZSCSDM_MO-OBJECT_ID AND FILE_NAME = FILENAME_A
AND FIELD_STATUS = 'A'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'FIELD_NAME'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'ZSCSDM_OS-TRANS_FIELD'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = F4_VALUES.
ENDMODULE. "F4_INPUT INPUT
*& Form GET_MEMORY
text
FORM GET_MEMORY.
DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
SY_MOD = SY-MODNO.
CONDENSE SY_MOD NO-GAPS.
CONCATENATE 'TraObjectID-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_MO-OBJECT_ID FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraObjectDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_MO-OBJECT_DESC FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFileName-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_OF-FILE_NAME FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFileDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_OF-FILE_DESC FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFieldName-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_OS-FIELD_NAME FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFieldDesc-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT ZSCSDM_OS-FIELD_DESC FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
ENDFORM. "GET_MEMORY
*& Form GET_MEMORY_SAVE_STATUS
text
FORM GET_MEMORY_SAVE_STATUS.
DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
DATA: CHECK_SAVE_STATUS(1) TYPE C.
SY_MOD = SY-MODNO.
CONDENSE SY_MOD NO-GAPS.
CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT CHECK_SAVE_STATUS FROM MEMORY ID MEM_STR.
FREE MEMORY ID MEM_STR.
CLEAR MEM_STR.
SAVE_STATUS = CHECK_SAVE_STATUS.
ENDFORM. "GET_MEMORY_SAVE_STATUS
*& Form SET_MEMORY
text
FORM SET_MEMORY.
DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
SY_MOD = SY-MODNO.
CONDENSE SY_MOD NO-GAPS.
CONCATENATE 'DtlScreen-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT DETAILS_SCREEN TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraObjectID1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_MO-OBJECT_ID TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraObjectDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_MO-OBJECT_DESC TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFileName1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_OF-FILE_NAME TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFileDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_OF-FILE_DESC TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFieldName1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_OS-FIELD_NAME TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
CONCATENATE 'TraFieldDesc1-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
EXPORT ZSCSDM_OS-FIELD_DESC TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
ENDFORM. "SET_MEMORY
*& Form SET_MEMORY_SAVE_STATUS
text
FORM SET_MEMORY_SAVE_STATUS.
DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
DATA: CHECK_SAVE_STATUS(1) TYPE C.
SY_MOD = SY-MODNO.
CONDENSE SY_MOD NO-GAPS.
CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
IMPORT CHECK_SAVE_STATUS FROM MEMORY ID MEM_STR.
IF CHECK_SAVE_STATUS <> 'F'.
FREE MEMORY ID MEM_STR.
CHECK_SAVE_STATUS = SAVE_STATUS.
EXPORT CHECK_SAVE_STATUS TO MEMORY ID MEM_STR.
ENDIF.
CLEAR MEM_STR.
ENDFORM. "SET_MEMORY_SAVE_STATUS
*& Form SET_MEMORY_SAVE_STATUS_RESET
text
FORM SET_MEMORY_SAVE_STATUS_RESET.
DATA: MEM_STR(40) TYPE C, SY_MOD(2) TYPE C.
DATA: CHECK_SAVE_STATUS(1) TYPE C.
SY_MOD = SY-MODNO.
CONDENSE SY_MOD NO-GAPS.
CONCATENATE 'Save-' SY-UNAME '-' SY_MOD INTO MEM_STR.
FREE MEMORY ID MEM_STR.
CHECK_SAVE_STATUS = ''.
EXPORT CHECK_SAVE_STATUS TO MEMORY ID MEM_STR.
CLEAR MEM_STR.
ENDFORM. "SET_MEMORY_SAVE_STATUS_RESET
*& Form CHANGE_TRANSFORM_TYPE
text
FORM CHANGE_TRANSFORM_TYPE.
IF ZSCSDM_OS-TRANS_BY_DIRECT = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CALL METHOD G_EDITOR->SET_READONLY_MODE
EXPORTING
READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
SET CURSOR FIELD 'ZSCSDM_OS-TRANS_FIELD'.
ELSEIF ZSCSDM_OS-TRANS_BY_DEFAULT = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CALL METHOD G_EDITOR->SET_READONLY_MODE
EXPORTING
READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
SET CURSOR FIELD 'ZSCSDM_OS-TRANS_DEF_VAL'.
ELSEIF ZSCSDM_OS-TRANS_BY_CONCAT = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
SCREEN-INPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CALL METHOD G_EDITOR->SET_READONLY_MODE
EXPORTING
READONLY_MODE = CL_GUI_TEXTEDIT=>TRUE.
SET CURSOR FIELD 'ZSCSDM_OS-CONCAT_FIELD_1'.
ELSEIF ZSCSDM_OS-TRANS_BY_REF = 'X'.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZSCSDM_OS-TRANS_FIELD'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-TRANS_DEF_VAL'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_1'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_2'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_3'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_4'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_5'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_6'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_7'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_8'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_9'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ELSEIF SCREEN-NAME = 'ZSCSDM_OS-CONCAT_FIELD_10'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CALL METHOD G_EDITOR->SET_READONLY_MODE
EXPORTING
READOHello Swathi
I have never used method SET_USER_COMMAND (cl_gui_alv_grid) before so I do not really know its function.
However, you event handler FORM routine belongs to the old-fashioned fm-based ALV lists (e.g. REUSE_ALV_GRID_DISPLAY_LVC) so I doubt whether this will work together.
If you have define a column as HOTSPOT then this trigger the class event HOTSPOT_CLICK.
Correspondingly a double-click on the ALV grid triggers event DOUBLE_CLICK.
For a sample report regarding ALV event handling have a look at the links provided in
2 ALVS IN ONE SCREEN
Regards
Uwe -
Double click on list field in ALV grid control
Hello all,
I developed a report with a ALV grid control. I would like to move some functionality from marking a line and pressing a button in the status line to double clicking a specific field in the output list and execute a command there (i.e. double click on PO number and go to PO display TAC then). Can anybody provide some example coding for that?
Thanks so much for your help!
TorstenHere is your sample program. Copy this code into a z program. Create the screen 100 with a container in it and name it "ALV_CONTAINER". Create the gui-status with "BACK".
report zrich_0001.
tables: ekko.
data: begin of i_alv occurs 0,
ebeln type ekko-ebeln,
end of i_alv.
* CLASS cl_event_receiver DEFINITION Handles Double Click
class cl_event_receiver definition.
public section.
methods handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row e_column.
private section.
endclass.
* CLASS CL_EVENT_RECEIVER IMPLEMENTATION Handles Double Click
class cl_event_receiver implementation.
method handle_double_click.
perform drill_down using e_row-index.
endmethod.
endclass.
data: alv_container type ref to cl_gui_custom_container.
data: event_receiver type ref to cl_event_receiver.
data: alv_grid type ref to cl_gui_alv_grid.
data: layout type lvc_s_layo.
data: fieldcat type lvc_t_fcat.
selection-screen begin of block b1 with frame title text-001 .
select-options: s_ebeln for ekko-ebeln.
selection-screen end of block b1.
start-of-selection.
perform get_data.
call screen 100.
* Module status_0100 OUTPUT
module status_0100 output.
set pf-status '0100'.
set titlebar '0100'.
data: variant type disvariant.
variant-report = sy-repid.
variant-username = sy-uname.
* Create Controls
create object alv_container
exporting
container_name = 'ALV_CONTAINER'.
create object alv_grid
exporting
i_parent = alv_container.
* Create Event Receiver
create object event_receiver.
* Populate Field Catalog
perform get_fieldcatalog.
call method alv_grid->set_table_for_first_display
exporting
is_layout = layout
is_variant = variant
i_save = 'U'
i_structure_name = 'I_ALV'
changing
it_outtab = i_alv[]
it_fieldcatalog = fieldcat[].
* handler for ALV grid
set handler event_receiver->handle_double_click for alv_grid.
endmodule.
* Module USER_COMMAND_0100 INPUT
module user_command_0100 input.
case sy-ucomm.
when 'BACK' or 'CANC'.
if not alv_container is initial.
call method alv_container->free.
clear: alv_container.
free : alv_container.
endif.
if sy-subrc = 0.
set screen 0.
leave screen.
else.
leave program.
endif.
when 'EXIT'.
if not alv_container is initial.
call method alv_container->free.
clear: alv_container.
free : alv_container.
endif.
leave program.
endcase.
endmodule.
* FORM GET_DATA
form get_data.
select * into corresponding fields of table i_alv
from ekko
where ebeln in s_ebeln.
sort i_alv ascending by ebeln.
endform.
* Form Get_Fieldcatalog - Set Up Columns/Headers
form get_fieldcatalog.
data: ls_fcat type lvc_s_fcat.
refresh: fieldcat.
clear: ls_fcat.
ls_fcat-reptext = 'PO Number'.
ls_fcat-coltext = 'PO Number'.
ls_fcat-fieldname = 'EBELN'.
ls_fcat-ref_table = 'I_ALV'.
ls_fcat-outputlen = '12'.
ls_fcat-col_pos = 1.
append ls_fcat to fieldcat.
endform.
* DRILL_DOWN
form drill_down using index.
read table i_alv index index.
if sy-subrc = 0.
set parameter id 'BES' field i_alv-ebeln.
call transaction 'ME23' and skip first screen.
if not alv_container is initial.
call method alv_container->free.
clear: alv_container.
free : alv_container.
endif.
endif.
endform.
Regards,
Rich Heilman -
Double click on the left arrow on the tab bar creates a New Tab at the right hand end.
With Firefox 29.0.1 double clicking on either the left or right hand arrows in the tab bar creates a new tab at the right hand end of the tab bar. This is annoying behaviour that violates standards around UI design single click and double click. A double click should extend the behaviour of the single click rather than doing something completely different (opening a new tab). An example would be , in Word a single click selects a word, a double click selects the sentence and a triple click selects the paragraph. Note that this is a separate issue from double clicking on the tab bar itself to create a new tab.
When there are more tabs on the tab bar than will fit in the viewport the tabs scroll sideways so show the tab in use. I can click the left and right arrows at the ends of the tab bar to scroll the bar in that direction to bring a tab that I want to select into view. I believe that double clicking the left arrow would scroll the bar fully right, exposing the left-most tab. Double clicking the right arrow would scroll the bar fully left exposing the right-most tab.
This is a logical and expected extension of the behaviour of the single click. Single click - scroll once (seems to be about three tab's worth), double click - scroll all the way.
At the moment, if I want to scroll to the left-most tab I have to click the arrow slowly and carefully until I reach it. I used to single click rapidly on the left arrow until the tabs stopped scrolling without having to count how many clicks. It's possible that my rapid single clicks were actually double clicks. Nevertheless, the tab bar would stop scrolling when it reached the end.
Now the behaviour is really annoying and unexpected. A double click on the left arrow scrolls the tabs fully right and then fully left and creates a New Tab at the right hand end. Ditto the right hand arrow in the opposite direction.
While I can (maybe) see that value of a double click on the tab bar itself creating a new tab, double clicking one of the scroll arrows should not produce a new tab.
Double clicks on the tab arrows should scroll the tab bar fully to that end. If the tab bar is already fully scrolled to that end then additional clicks (single, double and triple...) should be ignored.
I like the idea of opening a new tab to the right of the one that currently has focus. This should be a right click context menu option.That shouldn't happen if you click the scroll buttons on the tab bar.
A double-click should act as page up/down and move a full screen and a triple-click should move to the far left (first tab) or the far right (last) tab.
Start Firefox in <u>[[Safe Mode|Safe Mode]]</u> to check if one of the extensions (Firefox/Tools > Add-ons > Extensions) or if hardware acceleration is causing the problem.
*Switch to the DEFAULT theme: Firefox/Tools > Add-ons > Appearance
*Do NOT click the Reset button on the Safe Mode start window
*https://support.mozilla.org/kb/Safe+Mode
*https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes -
Double click on a field in selection screen
hi everybody
I wanted to know if it is possible to double click on a field in a selection screen and go to a transaction and come back on the selection screen
Afterwards processing is done on that field
Thanks for your kind helphi,
I dont think it is poosible.
well there is a sequence in which the events are triggered for a report/Program.
and user actions are handled in the At User Command event. -
Simply put, I do not like like the new color coding "dots" and I do not like having to press the Command key before double clicking to open files in a new window. How hard would have been to include the old version of these two features?
Apple - Mac OS X - Feedback
-
Double click on subscreen field - EXIT_SAPMM06E_007
I have added a new field in a sub screen (SAPLXM06 0301 ) in ME42 transaction using exit 'MM06E005'.
Requirement is to call a transaction when user double clicks on this field. Function code can not be assigned in subscreen hence using sy-ucomm and will assign Function code F2 to the same. When ttry to define/modify the Pf-Status in PBO in exit EXIT_SAPMM06E_007 it gives error not to modify the same. In screen properties double click functionality check box is ticked for field but not working.
How this can be done.
thanks
anyaCan you please check when you double click what happens in debugging.,..?
Nabheet -
I have a database of names. When I go to the database and pull up names I right click on the option "Open in new tab". I would like to bring up 200 names and do the same function simultaaneously to them like, add a vote to their total individual vote count. Is this possible?
I ended up reformating the drive as FAT32 because I still need to use it on my Windows 98SE system also. I did have a problem with the allocation size. I wanted to use 512 bytes but it kept failing so I used the default size(8192 bytes) and then it worked fine. I didn't think there would be a problem formatting as NTFS but since you are having problems I just tried it. It failed at 512 bytes allocation size so I tried again using 4096 bytes, the default, as the allocation size and it failed again. It looks like these drives will not format as NTFS.
Also, I think I figured out what's going on with the ReadyBoost problem. As I said initially it wouldn't work with ReadyBoost then after I had 12GB of data on the drive the ReadyBoost feature started working. After I deleted all the files it quit working again. After doing some reading on the net about Flash drives and ReadyBoost problems it appears that the memory chips on my Lenovo Flash drive are mixed with both fast memory chips that work fine with ReadyBoost and slower memory chips that are too slow for ReadyBoost. Apparently, after I fill up the portion of memory with data that uses the slow chip(s) then ReadyBoost works fine with the fast chip(s). I also verified the Flash drives read and write memory speeds using Vista's Event Viewer. To work with ReadyBoost the Flash drive has to read at a minimum of 2.5MB/s (for 4KB random reads) and write at a minimum of 1.75MB/s (for 512KB random writes).
Let me know what you find out. -
There is a problem when i click the "+" tab to "open a new tab" nothing happens. It use to open new tabs and now it does nothing. Even when i go to "File" and "New Tab" it still does nothing. The only time i can get a new tab to open is if i go to "Help" and click "Firefox Help" then a new tab with firefox help opens.
Hi, were you able to resolve your problem? If so, please mark this question as '''Solved'''. Thanks !
-
Why does the Right-click -> "t" delete a bookmark on the bookmark toolbar, when Right-click -> "t" opens a new tab elsewhere in Firefox. The bookmark toolbar use Right-click -> "w" to open in a new tab. Please change this to "t" to... I keep deleting all my bookmark because you don't make the commands consistent!
If you have accidentally removed bookmarks then use "Organize > Undo" in the bookmarks manager (Bookmarks > Organize Bookmarks) to get them back.<br />
The Organize button is the first of the three buttons on the toolbar in the Library (Bookmarks Manager).<br />
That only works if you haven't closed Firefox.
[https://bugzilla.mozilla.org/show_bug.cgi?id=301888 Bug 301888] – Bookmarks cut instead of opened in new tab from Bookmarks Toolbar Folder
(please do not comment in bug reports; you can vote instead) -
A java virus disabled the click + at the left to open new tab. I have reinstalled firefox but the problem is not fixed. what do i do to fix this?
admins of forum feel free to edit post.Try disabling the Ask Toolbar extension.
-
Add fields into a new tab page
Hi!
I am in cProject 4.0 and there is a functionality to add new tab pages with fields in cProject components. The IMG activity is Collaboration Projects -> Global Enhancements to Project Elements -> Show Additional Tab Page in cProjects.
The help for this activity specified that I only need customized it to works as well. It does not specified if I have to develop some extra BSP or webdynpro to work. I tried to put a new field in a new tab page in Project Definition, but only the new tab was showed. The new tab is empty.
I know that in cProject 3.0 it was necessary a BSP development. Is it necessary develop a BSP in 4.0 too?
Regards,
Rafael SoaresHi Vivek, how are you ?
I hope that you can clarify my doubts !
I created my own Web Dynpro Aplication and assigned it in the customizing from cProjects.
My aplication use fields the others tables (Z) and fields from table DPR_PROJECT (enhance CI_DPR_PROJECT). So, the logic to read and write my Z tables is working, but my problem is How Can I update the fields from CI_DPR_PROJECT structure ?
I imagine that I need to read the container from UI standard, but until the moment I can't resgate these values. In customizing is that if I use the fields from CI_DPR_PROJECT the update will be automatically.
Thank you very much,
Milena -
I open facebook or other site. right click link/photo to open in new tab quickly. Then all tab connection will be connection to website, all page stop loading. Have to close firefox and reopen then only site will load.
You can override how links are opened via the browser.link.open_newwindow.override pref.
*http://kb.mozillazine.org/browser.link.open_newwindow
*1: current tab; 2:new window; 3:new tab;
Use this for links opened via JavaScript.
*http://kb.mozillazine.org/browser.link.open_newwindow.restriction
See also:
*http://kb.mozillazine.org/Prevent_websites_from_disabling_new_window_features
Maybe you are looking for
-
Anyone know how to use a 'home' and 'end' key on the Macbook pro keyboard?
I had a pc before, and the keyboard had home and end keys on the keyboard for quickly moving cursor to end or beginning of word or sentence. I can't figure out if there is something like that on the Macbook pro. It would be really helpful. So does
-
Portal Doesn't Display page with text/plain content type
Hi, I created a WSRP portlet with text/plain content type and added it to my page, but I get the following error message: Error: Could not get markup. The cookie or session is invalid or there is a runtime exception. when I add the portlet to my page
-
Idoc creation problem urgent...
I have a 2 deliveries which has same sold to party 138. The output type defined is ZLDO which is EDI processing. The deliveries are created by batch job. Partner profile is maintained correctly as well condition record also exits for this partner 138
-
Hi, I have a problem where I have to specify xml namespace instance and xmls schema. But I am not sure how to do this in SAAJ. I can set the encoding style using setEncodingStyle but how can I set the namespace instance attribute and xsd attribnute f
-
ClassCastException while passing object from one context to another
I am hoping that someone will bear with me as I think it is my knowledge of classloaders that is tripping me up. I am using Spring and have a SecurityContextImpl object that I want to pass from one web app (WA2) to another web app (WA1). In WA2 I do