Displaying a double in a text field, converting to text
I want to do something like the following:
textField.setText(object.getDouble());
so that I can display the value returned by object.getDouble(), which is a double, in a text field. It gives me an error that it's expecting a string though. It will not allow me to cast it to a string either. Anybody know how to do this? Thanks.
String s = "" + myDouble;or
String s = new StringBuffer(myDouble).toString();
myTextField.setText(s);Hope that helped you.
Nille
Similar Messages
-
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 -
Add double quotes (") surrounding each field in GUI_DOWNLOAD
Experts,
Does anyone know if it is possible to add double quotes (") to all fields in .txt file using FM GUI_DOWNLOAD besides manually concatenate the quotes into each field before calling the FM?
For example, output need to be:
"0000123" "NAME1" " 200.00"
Any advice is greatly appreciated.
Best regards,
MinamiIf you are interested, here is a complete solution.
report zrich_0001.
data: it001 type table of t001.
data: xt001 type t001.
data: iflatf type table of string.
data: xflatf type string.
data: filename type string.
data: field_value type string.
field-symbols: <fs>.
* Selection Screen
selection-screen begin of block b1 with frame title text-002 .
parameters: p_file type localfile default
'C:Test.txt'.
selection-screen end of block b1.
start-of-selection.
select * into table it001 from t001.
loop at it001 into xt001.
do.
assign component sy-index of structure xt001 to <fs>.
if sy-subrc <> 0.
exit.
endif.
concatenate '"' <fs> '"' into field_value.
if sy-index = 1.
xflatf = field_value.
else.
concatenate xflatf field_value into xflatf separated by space.
endif.
enddo.
append xflatf to iflatf.
endloop.
filename = p_file.
call method cl_gui_frontend_services=>gui_download
exporting
filename = filename
filetype = 'ASC'
changing
data_tab = iflatf.
Regard,
Rich Heilman -
How can I display an icon, instead of text string, as a validation prompt?
My validate method inside my custom validator is like this:
public void validate(FacesContext context, UIComponent component, Object value) {
Pattern datePattern = Pattern.compile("(\\d{2})/(\\d{2})/(\\d{4})");
Matcher dateMatcher = datePattern.matcher((String)value);
if(!dateMatcher.find()){
((UIInput)component).setValid(false);
FacesMessage message = new FacesMessage();
String msg = "[" + value + "] invalid date";
message.setDetail(msg);
context.addMessage(component.getClientId(context), message);
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_FATAL, "xx", "msg");
throw new ValidatorException(facesMsg);
}My JSP has this:
<h:inputText id="test" value="#{projecthandler.test}">
<f:validator validatorId="DateValidator" />
</h:inputText>
<h:message id="testErrorMessage" for="test"/>The <h:message> tag will kick in if the user has invalid data in the <h:inputText> field and clicks submit.
When the page is regenerated, the user will see a text string reflecting what the issue is.
However, instead of this, I would like to display an icon consisting of a red circle with an exclamation point.
The user is supposed to click on the icon if they want more information. By clicking on the icon,
the user will see a message box, with a description of the error.
This is our standard for applications. I'm trying to put together a demo showing how an existing application
would work in JSF, so I won't be able to talk others into using JSF, unless I can get the validation to display an
icon instead of text.
Edited by: Kazan on Mar 18, 2009 9:31 AM
Edited by: Kazan on Mar 18, 2009 9:33 AM
Edited by: Kazan on Mar 18, 2009 9:36 AMOK, I noticed a bug in my validate method. This is updated to fix the bug, and to include the recomendation about background-image:
public void validate(FacesContext context, UIComponent component, Object value) {
System.out.println("DateValidator.test.1");
Pattern datePattern = Pattern.compile("(\\d{2})/(\\d{2})/(\\d{4})");
Matcher dateMatcher = datePattern.matcher((String)value);
System.out.println("DateValidator.test.1");
if(!dateMatcher.find()){
((UIInput)component).setValid(false);
FacesMessage message = new FacesMessage();
String msg = "<span style='background-image: url(/error.gif)'/>";
message.setDetail(msg);
message.setSeverity(FacesMessage.SEVERITY_FATAL);
context.addMessage(component.getClientId(context), message);
throw new ValidatorException(message);
}When I run this, the litteral string of "<span style='background-image: url(/error.gif)'/>" is printed as the message. It does not interpret this as a span tag with an image url.
Can someone tell me what's going on? -
Display value and description of one field in alv grid
Hi Folks,
I want to display value and description of one field as one column in alv grid.
for example iam having Xfield = 01,02,03.
and 01 iam having text value as xxx,
01 xxx
02 yyy
03 zzz
Im report display the values are displaying as 01,02,03..
but i want to display it as 01 xxx,02 yyy, 03 zzz.
Please do needful.
Thx.Hi, swetha
You can do this with "concatenate".
example:
In you code check where you final internal table is getting filled up before that do this concatenate and then append it.
data t_text type string.
t_text = textfield
CONCATENATE 'Xfield'
t_text
INTO wa_workarea SEPARATED BY space.
cheers,
Bhavana -
How to display subtotal in ALV, where the field is not a numeric.
Hi
We are having a requirement to display the sub total for a field using ALV grid display, where the field is not numeric.
The field is characte, Status field(consists of values Submit, Approve ,Reject), where the subtotal should be value of count of group by status .
say status with submit are 10 records, so after all records with submit status are, displyed, we need to display its subtotal as 10.
Thanks & AdvanceHi Satya,
REPORT z_alv_subtotal.*&---------------------------------------------------------------------*
*& Table declaration
*&---------------------------------------------------------------------*TABLES: ekko.*&---------------------------------------------------------------------*
*& Type pool declaration
TYPE-POOLS: slis. " Type pool for ALV*&---------------------------------------------------------------------*
*& Selection screen
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.*&---------------------------------------------------------------------*
*& Type declaration
*&---------------------------------------------------------------------** Type declaration for internal table to store EKPO data
TYPES: BEGIN OF x_data,
ebeln TYPE char30, " Document no.
ebelp TYPE ebelp, " Item no
matnr TYPE matnr, " Material no
matnr1 TYPE matnr, " Material no
werks TYPE werks_d, " Plant
werks1 TYPE werks_d, " Plant
ntgew TYPE entge, " Net weight
gewe TYPE egewe, " Unit of weight
END OF x_data.*&---------------------------------------------------------------------*
*& Internal table declaration
DATA:* Internal table to store EKPO data
i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
* Internal table for storing field catalog information
i_fieldcat TYPE slis_t_fieldcat_alv,
* Internal table for Top of Page info. in ALV Display
i_alv_top_of_page TYPE slis_t_listheader,
* Internal table for ALV Display events
i_events TYPE slis_t_event,
* Internal table for storing ALV sort information
i_sort TYPE slis_t_sortinfo_alv,
i_event TYPE slis_t_event.*&---------------------------------------------------------------------*
*& Work area declaration
*&---------------------------------------------------------------------*DATA:
wa_ekko TYPE x_data,
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.*&---------------------------------------------------------------------*
*& Constant declaration
*&---------------------------------------------------------------------*CONSTANTS:
c_header TYPE char1
VALUE 'H', "Header in ALV
c_item TYPE char1
VALUE 'S'.*&---------------------------------------------------------------------*
*& Start-of-selection event
*&---------------------------------------------------------------------*START-OF-SELECTION.* Select data from ekpo
SELECT ebeln " Doc no
ebelp " Item
matnr " Material
matnr " Material
werks " Plant
werks " Plant
ntgew " Quantity
gewei " Unit
FROM ekpo
INTO TABLE i_ekpo
WHERE ebeln IN s_ebeln
AND ntgew NE '0.00'. IF sy-subrc = 0.
SORT i_ekpo BY ebeln ebelp matnr .
ENDIF.* To build the Page header
PERFORM sub_build_header.* To prepare field catalog
PERFORM sub_field_catalog.* Perform to populate the layout structure
PERFORM sub_populate_layout.* Perform to populate the sort table.
PERFORM sub_populate_sort.* Perform to populate ALV event
PERFORM sub_get_event.END-OF-SELECTION.* Perform to display ALV report
PERFORM sub_alv_report_display.
*& Form sub_build_header
* To build the header
* No Parameter
FORM sub_build_header .* Local data declaration
DATA: l_system TYPE char10 , "System id
l_r_line TYPE slis_listheader, "Hold list header
l_date TYPE char10, "Date
l_time TYPE char10, "Time
l_success_records TYPE i, "No of success records
l_title(300) TYPE c. " Title
* Title Display
l_r_line-typ = c_header. " header
l_title = 'Test report'(001).
l_r_line-info = l_title.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR l_r_line.* Run date Display
CLEAR l_date.
l_r_line-typ = c_item. " Item
WRITE: sy-datum TO l_date MM/DD/YYYY.
l_r_line-key = 'Run Date :'(002).
l_r_line-info = l_date.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR: l_r_line,
l_date.ENDFORM. " sub_build_header
*& Form sub_field_catalog
* Build Field Catalog
* No Parameter
FORM sub_field_catalog .* Build Field Catalog
PERFORM sub_fill_alv_field_catalog USING: '01' '01' 'EBELN' 'I_EKPO' 'L'
'Doc No'(003) ' ' ' ' ' ' ' ', '01' '02' 'EBELP' 'I_EKPO' 'L'
'Item No'(004) 'X' 'X' ' ' ' ', '01' '03' 'MATNR' 'I_EKPO' 'L'
'Material No'(005) 'X' 'X' ' ' ' ', '01' '03' 'MATNR1' 'I_EKPO' 'L'
'Material No'(005) ' ' ' ' ' ' ' ',
'01' '04' 'WERKS' 'I_EKPO' 'L'
'Plant'(006) 'X' 'X' ' ' ' ', '01' '04' 'WERKS1' 'I_EKPO' 'L'
'Plant'(006) ' ' ' ' ' ' ' ', '01' '05' 'NTGEW' 'I_EKPO' 'R'
'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM. " sub_field_catalog*&---------------------------------------------------------------------*
*& Form sub_fill_alv_field_catalog
*& For building Field Catalog
*& p_rowpos Row position
*& p_colpos Col position
*& p_fldnam Fldname
*& p_tabnam Tabname
*& p_justif Justification
*& p_seltext Seltext
*& p_out no out
*& p_tech Technical field
*& p_qfield Quantity field
*& p_qtab Quantity table
FORM sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.* Local declaration for field catalog
DATA: wa_lfl_fcat TYPE slis_fieldcat_alv. wa_lfl_fcat-row_pos = p_rowpos. "Row
wa_lfl_fcat-col_pos = p_colpos. "Column
wa_lfl_fcat-fieldname = p_fldnam. "Field Name
wa_lfl_fcat-tabname = p_tabnam. "Internal Table Name
wa_lfl_fcat-just = p_justif. "Screen Justified
wa_lfl_fcat-seltext_l = p_seltext. "Field Text
wa_lfl_fcat-no_out = p_out. "No output
wa_lfl_fcat-tech = p_tech. "Technical field
wa_lfl_fcat-qfieldname = p_qfield. "Quantity unit
wa_lfl_fcat-qtabname = p_qtab . "Quantity table IF p_fldnam = 'NTGEW'.
wa_lfl_fcat-do_sum = 'X'.
ENDIF.
APPEND wa_lfl_fcat TO i_fieldcat.
CLEAR wa_lfl_fcat.
ENDFORM. " sub_fill_alv_field_catalog*&---------------------------------------------------------------------*
*& Form sub_populate_layout
* Populate ALV layout
* No Parameter
FORM sub_populate_layout . CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'." Optimization of Col widthENDFORM. " sub_populate_layout*&---------------------------------------------------------------------*
*& Form sub_populate_sort
* Populate ALV sort table
* No Parameter
FORM sub_populate_sort .* Sort on material
wa_sort-spos = '01' .
wa_sort-fieldname = 'MATNR'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.* Sort on plant
wa_sort-spos = '02'.
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
ENDFORM. " sub_populate_sort*&---------------------------------------------------------------------*
*& Form sub_get_event
* Get ALV grid event and pass the form name to subtotal_text
* event
* No Parameter
FORM sub_get_event .
CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
'SUBTOTAL_TEXT'. DATA: l_s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = i_event
EXCEPTIONS
list_type_wrong = 0
OTHERS = 0.* Subtotal
READ TABLE i_event INTO l_s_event
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc = 0.
MOVE c_formname_subtotal_text TO l_s_event-form.
MODIFY i_event FROM l_s_event INDEX sy-tabix.
ENDIF.ENDFORM. " sub_get_event*&---------------------------------------------------------------------*
*& Form sub_alv_report_display
* For ALV Report Display
* No Parameter
FORM sub_alv_report_display .
DATA: l_repid TYPE syrepid .
l_repid = sy-repid .* This function module for displaying the ALV report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sort
it_events = i_event
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = i_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE i000 WITH 'Error in ALV report display'(055).
ENDIF.ENDFORM. " sub_alv_report_display*&---------------------------------------------------------------------*
* FORM sub_alv_top_of_page
* Call ALV top of page
* No parameter
*---------------------------------------------------------------------*FORM sub_alv_top_of_page. "#EC CALLED* To write header for the ALV
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
ENDFORM. "alv_top_of_page*&---------------------------------------------------------------------*
*& Form subtotal_text
* Build subtotal text
* P_total Total
* p_subtot_text Subtotal text info
FORM subtotal_text CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
* Material level sub total
IF p_subtot_text-criteria = 'MATNR'.
p_subtot_text-display_text_for_subtotal
= 'Material level total'(009).
ENDIF.* Plant level sub total
IF p_subtot_text-criteria = 'WERKS'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. "subtotal_text
Regards,
Pravin -
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 -
How to display this 2 character for date field ( \ \ )
hi friends
it's possible to display the character format in text field after you run the form
plz I need your help
thanksHello,
So you mean for the date field you want to show slashes by default. I don't think that forms will support this type of things.
BTW may i know what is the purpose to show like this?
If you use the normal format which is DD/MM/RRRR it will add the slashes automatically. When user will enter date like this 01012010.
-Ammad -
How to display negative values in a screen field of a screen
Hi All,
Please let me know how to display negative values in a screen field of a screen.
thanksHi Kishore,
You can do this method. In the screen , create a text field of CHAR instead fo creating an INT4 field.
I have created a field of CHAR of name say TEXT.
In the main program,
declare a variable of the same name ie. TEXT.
data: TEXT(5) TYPE C.
In PBO, just assign the negative values.
It will work.Since there is automatic conversion between character and integer data types, it will work for positive values as well.
Regards,
Sylendra. -
Call Transaction in ALV Tree Display on Double Click
Hi Experts,
How can i call any Transaction on Double clicking a field in ALV Tree?
I'm able to call the transaction when Double clicked a field but it is not reading the value of the field on which i double click. It calls the transaction skipping the first screen with always the same value of the field.
E.g : Whether i click on Purchase order no. 450000010 or 450000003 it displays the purchase order 4500000010 after it goes to ME23N transaction skipping the first screen.
I am Trying Method ITEM_DOUBLE_CLICK of Class CL_GUI_COLUMN_TREE
by passing the parameter NODE_KEY.But it's not working.
Thanks & Regards,
Vinit Ranjanhi
(also check u have refresh the field)
Check the demo program,In this double click the data fields it will display some field in screen,You can check it
BCALV_GRID_DND_TREE
Thanks
Edited by: dharma raj on Jun 17, 2009 7:41 PM -
Display 80 characters of PO text in ALV grid column?
Hi Guys,
I just want to display only 80 characters of PO Header text in the ALV grid column and the rest should appear when we move the Mouse on to the each ALV grid'd POtext column. So how is it possible 1st tell me how to display 80 characters of PO text.?
in ME23n u can see the PO header text.
Thanks ,
Gopi.Hi Gopi,
Are you displaying ALV in your custom report and you want to show just 80 char in output?
If this is yes:
You can set ALV column width as 80 CHAR while building field catalog.
Column cell will have complete text but when ALV appears it will first show first 80 char.
thnx,
ags. -
How to display an double type variable's value with two decimals?
for exmple, what I do is:
double a = 1.5;
system.out.println(a);
I see 1.5 in the screen, however, I wanna display 1.50. how to do that?
I know how to round an double value, say, 1.555 to 1.56, but I can't find how to display a double value from one decimal to two decimal, any help will be very appreciate!for exmple, what I do is:
double a = 1.5;
system.out.println(a);
I see 1.5 in the screen, however, I wanna display
1.50. how to do that?
you could convert the double to a string and then append a zero to the end
String str = Double.toString(a);
str += "0";
System.out.println(a); -
Double-click on text in dialog programming
Hi,
I have a screen on which I have created a TEXT button and I want to respond it to double click event.
I have selected the attribute 'Respond to Double click' and in the GUI status under F2 put the code 'PICK' and changed in the PAI logic of the program to process certain steps if 'ok-code = 'PICK'.
and it is working fine, when I double click the text button, the ok_code is 'PICK' and the req. steps are carried out. But the problem is, when I single click on the text button also, ok_code is becoming 'PICK' and the same steps are carried out. I want the text button to respond only to double click event not single click.
Pls. let me know how do I achieve it.
Thanks in advance,
Vishnu priyaHi Priya,
To best of my knowledge it is not responding to double click, it it responding to your first click only, then you continue clicking the second time by that time the control goes back to application server withinn which time no user actions are accepted until the control passes back to the presentaion server.
that is why we can not distinguish between single and double click.
try double clicking on SE38 DISPALY or CHANGE Buttons they also respond and it will not give you a message saying DON'T DOUBLE CLICK ME etc.
this is to best of my knowledge.
regards
Ramchander Rao.k -
Why is my screen display black background with white text? How can i change back to black text on white background?
Change it in Settings > General > Accessibility.
-
Not all chinese characters display correctly with non-embedded text
Hi all,
I've updated to the last beta 2 of Flash Player 10.1 (10,1,51,66) and compiled this simple Flex application to illustrate the fact that not all chinese characters can be displayed correctly with non-embedded text (device font).
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
creationComplete="resourceManager.localeChain = ['zh_CN'];"
layout="{new VerticalLayout()}">
<fx:Script>
<![CDATA[
import spark.layouts.VerticalLayout;
]]>
</fx:Script>
<s:Label text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝">
</s:Label>
<mx:Label text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝"/>
</s:Application>
Notice that characters from the Unicode range 0x4F1E .. 0x4А2D are not displayed within <s:Label> component that uses Flash Text Engine (FTE) by default to display the text, but at the same time those characters display just fine within older <mx:Label> component that relies on flash.text.TextField instance to render the text.OK, did not know that "Arial Unicode MS" font is only distributed with Microsoft Office, was looking into relying on this font in case if "simsun.ttc" font is not available at the user's system, by using the following:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="1024" minHeight="768"
creationComplete="resourceManager.localeChain = ['zh_CN']"
layout="{new VerticalLayout()}">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/halo";
s|Label {
fontFamily: "Arial Unicode MS, SimSun, Arial";
</fx:Style>
<fx:Script>
<![CDATA[
import spark.layouts.VerticalLayout;
]]>
</fx:Script>
<s:Label id="sparkLabel" text="伜-伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭-伝"/>
</s:Application>
Tough decision ahead, but accordingly to the survey at codestyle.org (2000 participants from 2007 year and onwards), Arial Unicode MS is present at 62.53%% system surveyed.
ps
My current install of Windows XP already includes the install of Microsoft Office 2007 and I've also enabled/disabled the support of East Asian languages, thus the content of my "fonts" folder differs now significantly from "clean" Windows XP install version.
Nevertheless I found the page with comprehensive lists of standard fonts installed with different releases of Windows that looks viable here: http://www.kayskreations.net/fonts/fonttb.html
Maybe you are looking for
-
SAP transparent table stores condition value of Shipment cost
HI I need to know which SAP transparent table stores condition value of Shipment cost document (specific for Freight condition which derived from Bulkiness group). Background: Minimum load calculation logic In the pricing procedure for shipment cost
-
Changing an Object in the Universe - does this auto show in the document??
Hello I have to make some changes to some Dimension and Detail objects in my Universe as some of the underlying data is changing and so case statements that I have in my objects will need to change. For example, say I have an object called "Colour De
-
Delete of my account - skype name from skype direc...
Hello. I am wish to delete my account (Skype Name from the Skype directory) I have already taken all steps described in: 'Can I delete my Skype account?' ...deleted all personal information (name, e-mail, etc...) I also tried to contact the customer
-
Extended Classic Scenario Pricing issue, can I over come by using SRM-MDM?.
Hi SRM GURU'S, I am using ECC 6.0, SRM 5.5, SUS, LAC, cFolders and SRM-MDM with Extended Classic Scenario. My Question is : In case of Extended classic scenario, there is issue with Pricing and conditions. Is there any possibility to overcome this i
-
Setting AD FS and Azure trust, existing CRM deployment
We're using an ADFS server with an additional WAP server for an on-premise deployment of CRM 2013. We're in the process of implementing Windows Intune and would like to leverage our existing servers. When going through the steps to set up a trust bet