ALV field name size
Hi guru's
How do I increase the field name size on the ALV grid.
Please help me...
Hi Ndumiso,
You can change that at fieldcatalog level
loop at it_fieldcat into wa_fieldcat.
IF wa_fieldcat-fieldname = '<FIELDNAME>'.
wa_fieldcat-outputlen = '40'.
MODIFY it_fieldcat from wa_fieldcat.
ENDIF.
Endloop.
Similar Messages
-
Hi all,
I need to change my field name.
data : begin of it_output,
vbeln type vbak-vbeln,
date type sy-datum,
field2 type string,
endof it_output.
in case like this, when the pass the internal table to ALV FM,
and the field2 will be appear blank in the output screen. My question, how can I set the field name before passing to ALV FM?
CALL METHOD CL_SALV_TABLE=>FACTORY
IMPORTING
R_SALV_TABLE = GR_TABLE
CHANGING
T_TABLE = IT_OUTPUT_ALL[].
GR_FUNCTIONS = GR_TABLE->GET_FUNCTIONS( ).
GR_FUNCTIONS->SET_ALL( ABAP_TRUE ).
GR_TABLE->DISPLAY( ).data: r_columns TYPE REF TO cl_salv_columns_table,
r_column TYPE REF TO cl_salv_column_table.
PERFORM process_columns. "<-- after cl_salv_table=>factory
*& check all options that you can change
FORM process_columns RAISING cx_salv_not_found.
r_columns = r_alvtab->get_columns( ).
r_columns->set_optimize( ).
r_column ?= r_columns->get_column( columnname = 'MANDT' ).
r_column->set_technical( ).
r_columns->set_column_position( columnname = 'CITYTO'
position = 5 ).
r_column ?= r_columns->get_column( columnname = 'CITYTO' ).
r_column->set_cell_type( if_salv_c_cell_type=>text ).
r_column->set_long_text( 'Desde ciudad' ).
MOVE: cl_gui_resources=>list_col_group TO color-col,
'1' TO color-int. "<-- 0 & 1
r_column->set_color( value = color ).
ENDFORM. -
I want to create an ALV with two row fields name
Hi
I want to create an ALV with two row fields name. please suggest how to do it or send some sample code
thanksHi,
see this link
http://****************/Tutorials/ALV/ALVMainPage.htm
http://www.alvrobot.com.ar/tutorial.php
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b09ac4d5-e3ad-2910-6a81-96d1b861928c
http://abapprogramming.blogspot.com/2007/11/alv-check-boxes-sample-code.html
REPORT zalv5 NO STANDARD PAGE HEADING.
Description----
TOPICS INTRODUCED:
1. Learn about the u2018Standardu2019 PF-Status that comes as default.
2. Exclude function codes from u2018Standardu2019 PF-Status and customize it.
TYPE-POOLS: slis.
DATA: BEGIN OF i_data OCCURS 0,
qmnum LIKE qmel-qmnum,
qmart LIKE qmel-qmart,
qmtxt LIKE qmel-qmtxt,
ws_row TYPE i,
ws_char(5) TYPE c,
chk,
END OF i_data.
DATA: report_id LIKE sy-repid.
DATA: ws_title TYPE lvc_title VALUE 'An ALV Report'.
DATA: i_layout TYPE slis_layout_alv.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: i_events TYPE slis_t_event.
DATA: i_header TYPE slis_t_listheader.
DATA: i_extab TYPE slis_t_extab.
SELECT qmnum
qmart
qmtxt
INTO TABLE i_data
FROM qmel
WHERE qmnum <= '00030000010'. LOOP AT i_data. i_data-ws_row = sy-tabix. i_data-ws_char = 'AAAAA'. MODIFY i_data. ENDLOOP. report_id = sy-repid. PERFORM f1000_layout_init CHANGING i_layout. PERFORM f2000_fieldcat_init CHANGING i_fieldcat. PERFORM f3000_build_header CHANGING i_header. PERFORM f4000_events_init CHANGING i_events. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = ' ' i_callback_program = report_id * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_CALLBACK_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_END_OF_LIST = ' ' * i_structure_name = ' ' * I_BACKGROUND_ID = ' ' i_grid_title = ws_title * I_GRID_SETTINGS = is_layout = i_layout it_fieldcat = i_fieldcat * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' i_save = 'A' * IS_VARIANT = it_events = i_events * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IT_ALV_GRAPHICS = * IT_ADD_FIELDCAT = * IT_HYPERLINK = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = i_data EXCEPTIONS program_error = 1 OTHERS = 2 . IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*& Form F1000_Layout_Init
FORM f1000_layout_init USING i_layout TYPE slis_layout_alv.
CLEAR i_layout.
i_layout-colwidth_optimize = 'X'.
i_layout-edit = 'X'.
ENDFORM. " F1000_Layout_Init
*& Form f2000_fieldcat_init
FORM f2000_fieldcat_init CHANGING i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: line_fieldcat TYPE slis_fieldcat_alv.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'QMNUM'. " The field name and the table
line_fieldcat-tabname = 'I_DATA'. " name are the two minimum req.
line_fieldcat-key = 'X'. " Specifies the column as a key (Blue)
line_fieldcat-seltext_m = 'Notification No.'. " Column Header
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'QMART'.
line_fieldcat-ref_tabname = 'I_DATA'.
line_fieldcat-hotspot = 'X'. " Shows the field as a hotspot.
line_fieldcat-seltext_m = 'Notif Type'.
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'QMTXT'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_m = 'Description'.
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'WS_ROW'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_m = 'Row Number'.
APPEND line_fieldcat TO i_fieldcat.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'WS_CHAR'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_l = 'Test Character Field'.
line_fieldcat-datatype = 'CHAR'.
line_fieldcat-outputlen = '15'. " You can specify the width of a
APPEND line_fieldcat TO i_fieldcat. " column.
CLEAR line_fieldcat.
line_fieldcat-fieldname = 'CHK'.
line_fieldcat-tabname = 'I_DATA'.
line_fieldcat-seltext_l = 'Checkbox'.
line_fieldcat-checkbox = 'X'. " Display this field as a checkbox
line_fieldcat-edit = 'X'. " This option ensures that you can
" edit the checkbox. Else it will
" be protected.
APPEND line_fieldcat TO i_fieldcat.
ENDFORM. " f2000_fieldcat_init
*& Form f3000_build_header
FORM f3000_build_header USING i_header TYPE slis_t_listheader.
DATA: gs_line TYPE slis_listheader.
CLEAR gs_line.
gs_line-typ = 'H'.
gs_line-info = 'This is line of type HEADER'.
APPEND gs_line TO i_header.
CLEAR gs_line.
gs_line-typ = 'S'.
gs_line-key = 'STATUS 1'.
gs_line-info = 'This is line of type STATUS'.
APPEND gs_line TO i_header.
gs_line-key = 'STATUS 2'.
gs_line-info = 'This is also line of type STATUS'.
APPEND gs_line TO i_header.
CLEAR gs_line.
gs_line-typ = 'A'.
gs_line-info = 'This is line of type ACTION'.
APPEND gs_line TO i_header.
ENDFORM. " f3000_build_header
*& Form f4000_events_init
FORM f4000_events_init CHANGING i_events TYPE slis_t_event.
DATA: line_event TYPE slis_alv_event.
CLEAR line_event.
line_event-name = 'TOP_OF_PAGE'.
line_event-form = 'F4100_TOP_OF_PAGE'.
APPEND line_event TO i_events.
CLEAR line_event.
line_event-name = 'PF_STATUS_SET'.
line_event-form = 'F4200_PF_STATUS_SET'.
APPEND line_event TO i_events.
ENDFORM. " f3000_events_init
FORM F4100_TOP_OF_PAGE *
FORM f4100_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_header.
ENDFORM.
FORM F4200_PF_STATUS_SET *
FORM f4200_pf_status_set USING i_extab TYPE slis_t_extab.
REFRESH i_extab.
PERFORM f4210_exclude_fcodes CHANGING i_extab.
SET PF-STATUS 'STANDARD' OF PROGRAM 'SAPLSALV' EXCLUDING i_extab.
ENDFORM.
*& Form f4210_exclude_fcodes
FORM f4210_exclude_fcodes USING i_extab TYPE slis_t_extab.
DATA: ws_fcode TYPE slis_extab.
CLEAR ws_fcode.
ws_fcode = '&EB9'. " Call up Report.
APPEND ws_fcode TO i_extab.
ws_fcode = '&ABC'. " ABC Analysis.
APPEND ws_fcode TO i_extab.
ws_fcode = '&NFO'. " Info Select.
APPEND ws_fcode TO i_extab.
ws_fcode = '&LFO'. " Information.
APPEND ws_fcode TO i_extab.
ENDFORM. " f4210_exclude_fcodes
thanks
karthik
reward me if usefull -
Field name of column to be captured after click using Hotspot in block ALV
Dear All ,
A block list ALV Report has been designed using ' RESUSE_ALV_BLOCK_LIST_APPEND' . On a particular cell of the ALV List another screen comes up which gives details of that particular cell by fetching data from a particular Ztable .In the where clause I have already got the parameter which depends on the row no. Row no is being captured by using a structure SELFIELD type SLIS_SELFIELD which gives Row no in the field TABINDEX but the FIELDNAME field is blank .My Column no is a particular date spread across the month which i have to give in where clause .
Further DEBUGGING has given these results . Just after double click on cell a particular program SAPLKKBL opens up and in that perform USER_COMMAND_NEW comes up which has a perform by the name of SELFIELD_GET . In it the field name is captured in the structure ls_selfield .But how to get that particular field name my main program from that standard coding .
Plz help .
Regards,
Bharti JainCheck this ( i have created a prog )
i am writing code:
*declaration of internal tables
DATA I_MAKT TYPE TABLE OF MAKT WITH HEADER LINE.
DATA IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA IT_EVENT TYPE SLIS_T_EVENT.
DATA WA_EVENT LIKE LINE OF IT_EVENT.
*query
START-OF-SELECTION.
SELECT * FROM MAKT INTO TABLE I_MAKT UP TO 70 ROWS.
*function module to get field catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
* I_PROGRAM_NAME =
* I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = 'MAKT'
CHANGING
CT_FIELDCAT = IT_FCAT
*initial function module you must use to use event user command and pf status (custom pf).
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT' <----- add this FM to your code
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_EXCLUDING = IT_EXCLUDING.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 2
IMPORTING
ET_EVENTS = IT_EVENT[]
*modify event table for top of page form.
READ TABLE IT_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.
CLEAR WA_EVENT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = IT_LAYOUT
IT_FIELDCAT = IT_FCAT
I_TABNAME = 'MAKT'
IT_EVENTS = IT_EVENT[]
TABLES
T_OUTTAB = I_MAKT
*at last use this FM to display data
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
FORM USER_COMMAND USING R_UCOMM TYPE SY-UCOMM SELFIELD
TYPE SLIS_SELFIELD.
BREAK-POINT.
MESSAGE 'user command triggered' TYPE 'I'.
ENDFORM.
FORM TOP_OF_PAGE.
BREAK-POINT.
WRITE 'top of pageeeeeee.' COLOR 5 HOTSPOT.
ENDFORM.
<removed by moderator>
Edited by: Thomas Zloch on Feb 21, 2012 -
Dynamic field names in ALV (referencing to the month)
Hi,
I have 12 fields in my ALV, named Monthly Sales 1, Monthly Sales 2 and so on until Monthly Sales 12.
Monthly Sales 12 corresponds to the current month and Monthly Sales 1 is the current month minus 11 months (in terms of the month.)
So the user has requested that instead of Monthly Sales 12, it should display M 06/2007 as the field name.
Or Monthly Sales 11 should display M 05/2007 and so on.
How can this be done?
Please help.
Points will be awarded and all responses will be greatly appreciated.
Thanks,
JohnHi,
I have done some coding for this which is as follows:
TYPE-POOLS : abap, slis.
DATA : BEGIN OF itab OCCURS 0,
month1 TYPE char2,
month2 TYPE char2,
month3 TYPE char2,
month4 TYPE char2,
month5 TYPE char2,
month6 TYPE char2,
month7 TYPE char2,
month8 TYPE char2,
month9 TYPE char2,
month10 TYPE char2,
month11 TYPE char2,
month12 TYPE char2,
month13 TYPE char2,
END OF itab.
DATA wa LIKE LINE OF itab.
DATA : it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA : is_layout TYPE slis_layout_alv.
DATA : len TYPE i VALUE 0,
text TYPE string,
date TYPE sy-datum,
index TYPE numc3.
DATA : ref_table_des TYPE REF TO cl_abap_structdescr.
DATA : l_t_fields TYPE abap_compdescr_tab.
DATA : fs_fields TYPE abap_compdescr.
*To get the fields of internal table
ref_table_des ?=
cl_abap_typedescr=>describe_by_data( wa ).
APPEND LINES OF ref_table_des->components TO l_t_fields.
DESCRIBE TABLE l_t_fields LINES len.
DO len TIMES.
index = sy-index - 1.
CLEAR date.
READ TABLE l_t_fields INTO fs_fields INDEX sy-index.
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
EXPORTING
currdate = sy-datum
backmonths = index
IMPORTING
newdate = date.
CONCATENATE date4(2) date0(4) INTO text SEPARATED BY '/'.
it_fieldcat-fieldname = fs_fields-name.
it_fieldcat-tabname = 'ITAB'.
it_fieldcat-seltext_l = text.
APPEND it_fieldcat.
ENDDO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = it_fieldcat[]
TABLES
t_outtab = itab[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
I feel this is bit generic.
Copy & execute this program.
Reward if its useful.
Regards,
Sail -
Hi
In webdynpro application the ALV list display the field name which is in table description i want to put my preferable field name. Do u all have any idea how is it possibleHello,
U could bult the fildcatalog like this:
* Sales Order Number
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'VBELN'.
L_FIELDCAT-SELTEXT_M = TEXT-002. " Ur own text
L_FIELDCAT-COL_POS = 1.
L_FIELDCAT-KEY = 'X'.
APPEND L_FIELDCAT TO IT_FIELDCAT.
CLEAR L_FIELDCAT.
If useful reward.
Vasanth -
Need to display Long Text as field Name in ALV
Hi,
I am using an ALV Grid Display. Even though i have kept the output field length to be 30 char, the Column header that is being selected is the short name. I would like the Column header to display the long name.
For example: Field "MAKTX"
l_seltext_l = "Description"
L_seltext_s = "Descr"
I want to display "Description" as the field name but it is displaying the short length even though the field is 30 characters wide.
Please help.
Thanks,
UrmilaHi,
along with <b>fieldcat-SELTEXT_L = 'long text'.</b>
try to pass this also..
<b>fieldcat-DDICTXT = 'L'.</b>
so this will allow only long text.
Regards
vijay -
Field names Missing in the (Excel) Mail attachment
Hi ,
I am trying to send my ALV Grid Output as Excel Email attachment using the below code
The problem is that the field names are missing in the receivers Mail.
i.e
*Name* *Emp Code* * Branch* "this is missing
abc 123 ukp
I searched many threads but unable to find the solution for this.
Kindly suggest me regarding this issue.
loop at p_eadd.
if p_eadd-low <> space.
clear reclist.
reclist-rec_type = 'U'. "Internet-adress
reclist-receiver = p_eadd-low.
reclist-express = 'X'.
append reclist.
endif.
endloop.
* endif.
* Send the document
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_type = 'RAW'
document_data = doc_chng
* PUT_IN_OUTBOX = 'X'
tables
object_content = objcont
receivers = reclist
exceptions
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
others = 99.
ld_aplstat = '4'.
case sy-subrc.
when 0.
loop at reclist.
if reclist-receiver = space.
name = reclist-rec_id.
else.
name = reclist-receiver.
endif.
if reclist-retrn_code = 0.
write: / name, ': succesfully sent'.
else.
write: / name, ': error occured'.
endif.
endloop.
ld_aplstat = '0'.
when 1.
write: / 'Too many receivers specified !'.
when 2.
write: / 'No receiver got the document !'.
when 4.
write: / 'Missing send authority !'.
when others.
write: / 'Unexpected error occured !'.
endcase.
*.Tell workflow to go on
clear ls_scma_event.
ls_scma_event-wf_event = cs_wf_events-finished.
ls_scma_event-wf_witem = wf_witem.
ls_scma_event-wf_okey = wf_okey.
call function 'KPEP_MONI_CLOSE_RECORD'
exporting
ls_key = gs_key
ls_scma_event = ls_scma_event
changing
ld_aplstat = ld_aplstat
exceptions
no_id_given = 1
others = 2.
call function 'SAP_CONVERT_TO_XLS_FORMAT'
exporting
i_field_seperator = ' '
i_line_header = 'X'
i_filename = p_file
* I_APPL_KEEP = ' '
tables
i_tab_sap_data = it_final
* CHANGING
* I_TAB_CONVERTED_DATA =
exceptions
conversion_failed = 1
* OTHERS = 2
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Thanks in Advance,
Mr. BenHi Ben,
Follow the code below....
Your internal table it_final will have the attachment data. After you got the attachment data do the following
gc_ret TYPE c VALUE cl_abap_char_utilities=>cr_lf.
lt_attachment TYPE TABLE OF solisti1 ,
gt_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0 WITH HEADER LINE,
CLEAR:gs_attach. <this will have your attachment, declare a structure which contains fields of your excel sheet>
<before this you have to copy all the fields from your final internal table which should be attached to email to gs_attach>
For attaching field names
CONCATENATE gc_ret gs_attach INTO gs_attach.
gs_attach = gs_attach+1.
APPEND gs_attach TO gt_attach.
CLEAR:lt_attachment.
lt_attachment[] = gt_attach[].
SORT lt_attachment .
DELETE ADJACENT DUPLICATES FROM lt_attachment COMPARING ALL FIELDS.
CLEAR gs_attach.
CONCATENATE <field names >
INTO gs_attach SEPARATED BY gc_tab.
INSERT gs_attach INTO lt_attachment INDEX 1.
<field addition ends>
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_type = 'RAW'
document_data = doc_chng
PUT_IN_OUTBOX = 'X'
tables
object_content = objcont
receivers = reclist
contents_bin = lt_attachment
exceptions
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
if sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Regards,
Aravind. -
Getting dump when using do_sum in alv field cat in the output of the report
Dear Freinds,
Iam getting the alv report when i click on the segma field (Sum) on my salary
field iam getting dump. and also if i try to print my alv output iam getting dump , only
happening to my custom report.
i have used the following code pleae correct me .
This perform is used for Layout settings
perform st_layout_build using gs_layout.
form st_layout_build using st_ls_layout type slis_layout_alv.
st_ls_layout-no_input = 'X'.
st_ls_layout-colwidth_optimize = 'X'.
st_ls_layout-zebra = 'X'.
st_ls_layout-detail_popup = 'X'.
endform. " st_layout_build
Field Catalog details
perform st_fieldcat_init changing gt_fieldcat.
form st_fieldcat_init changing fp_i_fieldcat type slis_t_fieldcat_alv.
clear ls_fieldcat.
ls_fieldcat-col_pos = 1.
ls_fieldcat-fieldname = 'ORGUNIT'.
ls_fieldcat-seltext_l = 'Orgunit'.
ls_fieldcat-no_out = 'X'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 2.
ls_fieldcat-fieldname = 'ORGTEXT'.
ls_fieldcat-seltext_l = 'Orgdesc'.
ls_fieldcat-no_out = 'X'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'SALARY'.
ls_fieldcat-seltext_l = 'Salary'.
ls_fieldcat-col_pos = 3.
ls_fieldcat-outputlen = 15.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-datatype = 'CURR'. "CURR
append ls_fieldcat to fp_i_fieldcat.
endform.
Variant
perform st_variant_init using gs_variant g_repid.
form st_variant_init using st_gs_variant type disvariant
st_repid like sy-repid.
clear st_gs_variant.
st_gs_variant-report = st_repid.
endform. " st_variant_init
g_repid = sy-repid.
perform st_comment_build using gt_list_top_of_page[].
form st_comment_build using st_lt_top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.
Listenüberschrift: Typ H
clear ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: not used for this type
ls_line-info = text-000.
append ls_line to st_lt_top_of_page.
endform. " st_comment_build
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_buffer_active = 'X'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_structure_name = 'i_final' "c_i_final "'objec'
i_save = g_save
is_variant = gs_variant
tables
t_outtab = fp_i_pyrol_final
exceptions
program_error = 1
others = 2.
if sy-subrc ne 0.
message e018. " Displaying the ALV GRID has failed
endif.
Please could any one let me know why iam getting dump when iam clicking for total
on my salary field.
Regards
lathaDear Chandu,
my code iam giving in details
types : begin of ty_output_data,
staffno type pernr_d,
staffname type emnam,
grade type stell,
orgunit type orgeh,
orgtext type hr_mcstext,
psgroup type trfgr, " Pay Scale Group
salary type maxbt, "PAD_AMT7S,
rrefunded type pad_amt7s,
leavepay type pad_amt7s,
mshortfal type pad_amt7s, " Medical Shortfall
echkshfal type pad_amt7s, " Execute checkup shortfall
ofindeduc type pad_amt7s, " Other Finance Deduction
mtyprem type pad_amt7s, " maternity premium
vpbonus type pad_amt7s, " VP/Bonus
gratuity type pad_amt7s, " Gratuity
vpay type pad_amt7s, " Variable pay
mallowance type pad_amt7s, " Meal Allowance
overtime type pad_amt7s, " overtime
other type pad_amt7s, " OTHER
pfundeecon type pad_amt7s, " PFund Employee's Contribution
banktrnsfer type pad_amt7s, " Bank Transfer
count type i,
end of ty_output_data.
data : i_final type standard table of ty_output_data.
iam getting all my data in the internal table I_FINAL.
perform get_final_alv using i_final.
form get_final_alv using fp_i_pyrol_final type ty_t_output_data.
*local variable declarations
data : l_v_idx type sy-tabix.
*local work areas
data : l_wa_final type ty_output_data.
g_save = 'A'.
This perform is used for Layout settings
perform st_layout_build using gs_layout.
Field Catalog details
perform st_fieldcat_init changing gt_fieldcat.
Variant
perform st_variant_init using gs_variant g_repid.
g_repid = sy-repid.
perform st_comment_build using gt_list_top_of_page[].
if not fp_i_pyrol_final is initial.
delete adjacent duplicates from fp_i_pyrol_final comparing all fields.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_buffer_active = 'X'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_structure_name = 'i_final' "c_i_final "'objec'
i_save = g_save
is_variant = gs_variant
tables
t_outtab = fp_i_pyrol_final
exceptions
program_error = 1
others = 2.
if sy-subrc ne 0.
message e018. " Displaying the ALV GRID has failed
endif.
endif.
endform. " get_final_alv
form st_layout_build using st_ls_layout type slis_layout_alv.
st_ls_layout-no_input = 'X'.
st_ls_layout-colwidth_optimize = 'X'.
st_ls_layout-zebra = 'X'.
st_ls_layout-detail_popup = 'X'.
endform. " st_layout_build
form st_fieldcat_init changing fp_i_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv.
clear ls_fieldcat.
ls_fieldcat-col_pos = 1.
ls_fieldcat-fieldname = 'ORGUNIT'.
ls_fieldcat-seltext_l = 'Orgunit'.
ls_fieldcat-no_out = 'X'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 2.
ls_fieldcat-fieldname = 'ORGTEXT'.
ls_fieldcat-seltext_l = 'Orgdesc'.
ls_fieldcat-no_out = 'X'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 5.
ls_fieldcat-fieldname = 'STAFFNAME'.
ls_fieldcat-no_out = 'X'.
ls_fieldcat-seltext_l = 'StaffName'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 4.
ls_fieldcat-fieldname = 'STAFFNO'.
ls_fieldcat-no_out = 'X'.
ls_fieldcat-seltext_l = 'StaffNo.'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 6.
ls_fieldcat-fieldname = 'GRADE'.
ls_fieldcat-seltext_l = 'Grade'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 3.
ls_fieldcat-fieldname = 'COUNT'.
ls_fieldcat-seltext_l = 'Headcount'.
append ls_fieldcat to fp_i_fieldcat.
if the field name is 'Salary' then do a sum on this field.
IF fp_fname = c_betrg.
l_wa_fieldcat-do_sum = c_x.
ENDIF.
NOTE : IAM GETTING PROBLEM IN THE BELOW SALARY.
IAM JUST CHECKING ITSELF NOT ALLOWING ME TO EXECUTE
clear ls_fieldcat.
ls_fieldcat-fieldname = 'SALARY'.
ls_fieldcat-seltext_l = 'Salary'.
ls_fieldcat-col_pos = 7.
ls_fieldcat-outputlen = 20.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-datatype = 'CURR'. "CURR
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 9.
ls_fieldcat-fieldname = 'LEAVEPAY'.
ls_fieldcat-seltext_l = 'Leave Pay'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 10.
ls_fieldcat-fieldname = 'MSHORTFAL'.
ls_fieldcat-seltext_l = 'Med.Sfall'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 11.
ls_fieldcat-fieldname = 'ECHKSHFAL'.
ls_fieldcat-seltext_l = 'EX.Chckup.Sfall'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 12.
ls_fieldcat-fieldname = 'OFINDEDUC'.
ls_fieldcat-seltext_l = 'Oth.Fin.Deduction'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-fieldname = 'MTYPREM'.
ls_fieldcat-seltext_l = 'Mat.Premium'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 14.
ls_fieldcat-fieldname = 'VPBONUS'.
ls_fieldcat-seltext_l = 'VP/Bonus'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 15.
ls_fieldcat-fieldname = 'GRATUITY'.
ls_fieldcat-seltext_l = 'Gratuity'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 16.
ls_fieldcat-fieldname = 'VPAY'.
ls_fieldcat-seltext_l = 'Variable Pay'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 17.
ls_fieldcat-fieldname = 'MALLOWANCE'.
ls_fieldcat-seltext_l = 'Meal.Allowance'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 18.
ls_fieldcat-fieldname = 'OVERTIME'.
ls_fieldcat-seltext_l = 'Overtime'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 19.
ls_fieldcat-fieldname = 'OTHER'.
ls_fieldcat-seltext_l = 'Other'.
append ls_fieldcat to fp_i_fieldcat.
pfundeecon
clear ls_fieldcat.
ls_fieldcat-col_pos = 20.
ls_fieldcat-fieldname = 'P FUND EMPLOYEES CONTRIBUTION'.
ls_fieldcat-seltext_l = 'P.Fund.Emp.Contrib'.
append ls_fieldcat to fp_i_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = 21.
ls_fieldcat-fieldname = 'BANKTRNSFER'.
ls_fieldcat-seltext_l = 'Payment'.
append ls_fieldcat to fp_i_fieldcat.
endform. " st_fieldcat_init
form st_variant_init using st_gs_variant type disvariant
st_repid like sy-repid.
clear st_gs_variant.
st_gs_variant-report = st_repid.
endform. " st_variant_init
form st_comment_build using st_lt_top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.
Listenüberschrift: Typ H
clear ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: not used for this type
ls_line-info = text-000.
append ls_line to st_lt_top_of_page.
endform. " st_comment_build
FORM TOP_OF_PAGE *
form top_of_page.
data: l_i_detailheader type slis_t_listheader.
To get the header for ALV
perform detail_header changing l_i_detailheader.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = l_i_detailheader.
endform. "top_of_page
form detail_header changing fp_i_detailheader type slis_t_listheader.
data: l_wa_header type slis_listheader,
l_v_time type slis_edit_mask,
l_v_date type slis_edit_mask,
l_v_abkrs type char5,
l_v_pabrj type char8,
l_v_pagno type char10.
Local Constants
constants: l_c_h type char1 value 'H',
l_c_1 type i value '1',
l_c_edit type char10 value '__.__.____',
l_c_slash type c value '/'. " constant for slash
To display the report Header
l_wa_header-typ = l_c_h.
WRITE sy-repid TO l_wa_header-info LEFT-JUSTIFIED.
write text-014 to l_wa_header-info left-justified.
append l_wa_header to fp_i_detailheader.
clear l_wa_header.
To display the Page no
l_v_pagno = sy-pagno + l_c_1.
l_wa_header-typ = c_s.
l_wa_header-key = text-008. " Page No:
l_wa_header-info = l_v_pagno.
append l_wa_header to fp_i_detailheader.
clear l_wa_header.
To Display the User ID
l_wa_header-typ = c_s.
l_wa_header-key = text-009. " User ID
l_wa_header-info = sy-uname.
append l_wa_header to fp_i_detailheader.
clear l_wa_header.
To Display the Date/Time
l_wa_header-typ = c_s.
l_wa_header-key = text-010. " Date/Time:
l_v_time = sy-uzeit.
l_v_date = sy-datum.
write: sy-uzeit to l_v_time.
write sy-datum to l_v_date using edit mask l_c_edit.
concatenate l_v_date
l_c_slash
l_v_time into l_wa_header-info+0(25) separated by space.
append l_wa_header to fp_i_detailheader.
clear: l_wa_header, l_v_date.
To Display the Report Description
l_wa_header-typ = c_s.
l_wa_header-key = text-011. " Report Description
l_wa_header-info = text-012.
append l_wa_header to fp_i_detailheader.
clear l_wa_header.
append l_wa_header to fp_i_detailheader.
endform. " detail_header
I will be greatful if any one can please help me in removing me the dump.
REGARDS
LATHA. -
How to rename the column field names
hello guys,
i am retrieving my field names from the database and i view it thru HTML.
When i view it,the column names are those which are given while creating tables.
Ex..
fname,lname,phno,
i want it as First Name,Last Name,Phone Number etc ...<%
try {
stmt = con.createStatement();
sql="SELECT fname, lname, gender, email,phnum,sartweblink, sartaddress1, sartaddress2,sartcounty, country,sartpostcode,dob FROM Artist where artistid='" + sartid + "'";
rs=stmt.executeQuery(sql);
rsmd=rs.getMetaData();
int colcount=rsmd.getColumnCount();
for(i=1;i<=colcount;i++)
%>
<tr><td width="200"><FONT face=verdana size=2><%= rsmd.getColumnName(i)%>
<%
%> </FONT>
<font face=verdana size=2>
<% while(rs.next())
fname=rs.getString("fname");
lname=rs.getString("lname");
gender=rs.getString("gender");
email=rs.getString("email");
phnum=rs.getInt("phnum");
weblink=rs.getString("sartweblink");
address1=rs.getString("sartaddress1");
address2=rs.getString("sartaddress2");
county=rs.getString("sartcounty");
country=rs.getString("country");
postcode=rs.getString("sartpostcode");
dob=rs.getString("dob");
%>i make use of metadata..
can anyone tell me how to do this..
thanks in advancewhy not use alias:
your query is
SELECT fname, lname, gender, email
and will be:
SELECT fname FIRSTNAME, lname LASTNAME, gender GENDER, email EMAILADDRESS -
hi frds
Give me table name and field name of OPEN PO QUANTITY ..
thanks
Pari Vendhan.RSee the sample code for the open PO's based on Vendor
and do accordingly
*& Report ZMM_PO_REPORT
REPORT ZMM_PO_REPORT message-Id yb
NO STANDARD PAGE HEADING
LINE-COUNT 60(1)
LINE-SIZE 230.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: lfa1, " Vendor Master
t161, " PO Doc Types
t024, " Purchase Groups
ekko. " PO Header
T Y P E S D E C L A R A T I O N S
Purchase Orders Main Structure
TYPES: BEGIN OF s_po,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bukrs TYPE bukrs, " Company Code
bsart TYPE bbsrt, " PO Type
lifnr TYPE lifnr, " Vendor No
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
END OF s_po.
Purchase Orders History Structure
TYPES: BEGIN OF s_account,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
gjahr TYPE mjahr, " Fiscal Year
belnr TYPE mblnr, " PO Invoice No
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Local Currency
dmbtr TYPE dmbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
shkzg TYPE shkzg, " Dr/Cr Indicator
END OF s_account.
Purchase Orders History Structure(Item Sum)
TYPES: BEGIN OF s_inv_sum,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
END OF s_inv_sum.
Purchase Orders Main Structure
TYPES: BEGIN OF s_rep,
lifnr TYPE lifnr, " Vendor No
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bsart TYPE bbsrt, " PO Type
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
name1 TYPE name1, " Plant
orewr TYPE netpr, " To be Invoiced Price
curr TYPE waers, " Inv Doc Currency
END OF s_rep.
D A T A D E C L A R A T I O N S
DATA: gv_title1 TYPE sylisel, " Report title
gv_dial. " Color flag
C O N S T A N T S D E C L A R A T I O N S
CONSTANTS: c_x VALUE 'X', " Flag X
c_h VALUE 'H', " Debit
c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
" Purchase Order
i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
" PO Invoice Values
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
" PO Invoice Values
i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
" PO Invoice Values
S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
s_bsart FOR t161-bsart,
s_ekgrp FOR t024-ekgrp,
s_bedat FOR ekko-bedat.
SELECTION-SCREEN END OF BLOCK b1.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
ULINE.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Display the Report Output data
PERFORM display_data.
At Line-Selection
AT LINE-SELECTION.
When double clicked on EBELN display the details of Purchase Doc
PERFORM line_sel.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
Validation of Vendor Number
CLEAR lfa1-lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Vendor'(002).
ENDIF.
ENDIF.
Validation of PO Number
CLEAR ekko-ebeln.
IF NOT s_ebeln[] IS INITIAL.
SELECT ebeln UP TO 1 ROWS
INTO ekko-ebeln
FROM ekko
WHERE ebeln IN s_ebeln.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Document Number'(003).
ENDIF.
ENDIF.
Validation of PO Document Type
CLEAR t161-bsart.
IF NOT s_bsart[] IS INITIAL.
SELECT bsart UP TO 1 ROWS
INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
ENDIF.
ENDIF.
Validation of Purchasing Group
CLEAR t024-ekgrp.
IF NOT s_ekgrp[] IS INITIAL.
SELECT ekgrp UP TO 1 ROWS
INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
ENDIF.
ENDIF.
ENDFORM. " validate_screen
*& Form fetch_data
Fetching the PO related data from Database Tables
FORM fetch_data .
CLEAR i_po.
REFRESH i_po.
SELECT a~ebeln " PO No.
b~ebelp " PO Item
a~bstyp " PO Category
a~bukrs " Company Code
a~bsart " PO Type
a~lifnr " Vendor No
a~ekgrp " Purchase Group
a~waers " Currency
a~bedat " PO Date
b~txz01 " Material Text
b~werks " Plant
b~lgort " Storage Location
b~matkl " Material Group
b~menge " PR Quantity
b~meins " UOM
b~bprme " Price Unit
b~netpr " Net price
b~peinh " Price Unit UOM
b~pstyp " Item Category
b~knttp " Account Assignment Category
INTO TABLE i_po
FROM ekko AS a JOIN ekpo AS b
ON a~ebeln = b~ebeln
WHERE a~ebeln IN s_ebeln AND
a~lifnr IN s_lifnr AND
a~ekgrp IN s_ekgrp AND
a~bsart IN s_bsart AND
a~bedat IN s_bedat.
SORT i_po BY ebeln ebelp.
break-point.
IF NOT i_po[] IS INITIAL.
Fetch the PO History/Invoice Details from EKBE Table
CLEAR i_ekbe.
REFRESH i_ekbe.
SELECT ebeln " PO No.
ebelp " PO Item
gjahr " Fiscal Year
belnr " PO Invoice No
menge " PR Quantity
wrbtr " Price in Local Currency
dmbtr " Price in Foreign Currency
waers " Currency
shkzg " Dr/Cr Indicator
INTO TABLE i_ekbe
FROM ekbe
FOR ALL ENTRIES IN i_po
WHERE ebeln = i_po-ebeln AND
ebelp = i_po-ebelp AND
vgabe = c_vgabe.
IF sy-subrc = 0.
SORT i_ekbe BY ebeln ebelp.
LOOP AT i_ekbe.
IF i_ekbe-shkzg = c_h.
i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
ENDIF.
MODIFY i_ekbe.
ENDLOOP.
break-point.
Sum up the Item wise Invoice totals
LOOP AT i_ekbe.
AT END OF ebelp.
READ TABLE i_ekbe INDEX sy-tabix.
SUM.
MOVE-CORRESPONDING i_ekbe TO i_inv.
APPEND i_inv.
ENDAT.
CLEAR i_inv.
ENDLOOP.
SORT i_inv BY ebeln ebelp.
break-point.
ENDIF.
ENDIF.
Move the Vendor Name and Invoice Values to I_rep Internal Table
LOOP AT i_po.
MOVE-CORRESPONDING i_po TO i_rep.
CLEAR i_inv.
READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
ebelp = i_po-ebelp.
IF sy-subrc = 0.
i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
i_rep-curr = i_inv-waers.
ELSE.
i_rep-orewr = i_po-menge * i_po-netpr.
i_rep-curr = i_po-waers.
ENDIF.
break-point.
Get the Vendor Name
CLEAR lfa1-name1.
SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
WHERE lifnr = i_po-lifnr.
IF sy-subrc = 0.
i_rep-name1 = lfa1-name1.
ENDIF.
APPEND i_rep.
CLEAR i_rep.
break-point.
ENDLOOP.
SORT i_rep BY lifnr ebeln ebelp.
DELETE i_rep WHERE orewr LE 0.
break-point.
ENDFORM. " fetch_data
*& Form display_data
Display the Report Output data
FORM display_data .
DATA: lv_flag, " New Flag
lv_rec TYPE i. " No of Records
CLEAR lv_rec.
IF i_rep[] IS INITIAL.
MESSAGE e000 WITH 'No Data found'(022).
ELSE.
LOOP AT i_rep.
Toggle Color
PERFORM toggle_color.
IF lv_flag space.
NEW-LINE.
ENDIF.
At New Purchase Document
AT NEW ebeln.
WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
lv_flag = c_x.
lv_rec = lv_rec + 1.
ENDAT.
WRITE: 1 sy-vline,
12 sy-vline,13(4) i_rep-bsart,
17 sy-vline,18(10) i_rep-lifnr,
28 sy-vline,29(35) i_rep-name1,
64 sy-vline,65(4) i_rep-ekgrp,
69 sy-vline,70(10) i_rep-bedat,
80 sy-vline,81(5) i_rep-ebelp,
86 sy-vline,87(40) i_rep-txz01,
127 sy-vline,128(9) i_rep-matkl,
137 sy-vline,138(1) i_rep-pstyp,
139 sy-vline,140(1) i_rep-knttp,
141 sy-vline,142(4) i_rep-werks,
146 sy-vline,147(4) i_rep-lgort,
151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
165 sy-vline,166(3) i_rep-meins,
169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
185 sy-vline,186(4) i_rep-waers,
190 sy-vline,191(5) i_rep-peinh,
196 sy-vline,197(4) i_rep-bprme,
201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
217 sy-vline,218(4) i_rep-curr,
222 sy-vline,223(7) i_rep-bstyp centered,
230 sy-vline.
NEW-LINE.
hide: i_rep-ebeln.
ENDLOOP.
ULINE.
FORMAT COLOR OFF.
WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
lv_rec COLOR 3.
ENDIF.
ENDFORM. " display_data
*& Form header
Write the Report Header
FORM header .
FORMAT RESET.
header
WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
SKIP.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
12 sy-vline,13(4) 'Type'(007),
17 sy-vline,18(10) 'Vendor'(008) CENTERED,
28 sy-vline,29(35) 'Name'(009) CENTERED,
64 sy-vline,65(4) 'PGrp'(010) CENTERED,
69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
80 sy-vline,81(5) 'Item'(011),
86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
127 sy-vline,128(9) 'Mat.Group'(013),
137 sy-vline,138(1) 'I',
139 sy-vline,140(1) 'A',
141 sy-vline,142(4) 'Plnt'(014),
146 sy-vline,147(4) 'SLoc'(015),
151 sy-vline,152(13) 'Quantity'(016) CENTERED,
165 sy-vline,166(3) 'UoM'(017),
169 sy-vline,170(15) 'Net Value'(018) CENTERED,
185 sy-vline,186(4) 'Curr'(019),
190 sy-vline,191(5) 'Per'(020),
196 sy-vline,197(4) 'Unit'(021),
201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
217 sy-vline,218(4) 'Curr'(019),
222 sy-vline,223(7) 'Doc.Cat'(026),
230 sy-vline.
ULINE.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form LINE_SEL
*When double clicked on EBELN field display the details of Purchase Doc
FORM line_sel.
CASE sy-lsind.
WHEN '1'.
DATA: lv_field(20),
lv_value(10),
lv_bstyp like i_rep-bstyp.
clear: lv_bstyp,lv_value, lv_field.
GET CURSOR FIELD lv_field VALUE lv_value.
IF lv_field = 'I_REP-EBELN'.
IF NOT lv_value IS INITIAL.
READ LINE sy-index FIELD VALUE i_rep-bstyp
INTO lv_bstyp.
READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
if lv_bstyp = 'F'.
SET PARAMETER ID 'BES' FIELD lv_value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
SET PARAMETER ID 'VRT' FIELD lv_value.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
elseif lv_bstyp = 'A'.
SET PARAMETER ID 'ANF' FIELD lv_value.
CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
endif.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " line_sel{code]
<REMOVED BY MODERATOR>
kushagra
Edited by: Alvaro Tejada Galindo on Feb 18, 2008 2:03 PM -
How is it posible to get the File name, size and type from a File out the H
How is it posible to get the File name, size and type from a File out the HttpServletRequest. I want to upload a File from a client and save it on a server with the client name. I want to conrole before saving the name, type and size of the file.How is it posible to get the File name, size and type from a File out the HttpServletRequest.
form JSP
<form name="form" method="post" action="procesuploading.jsp" ENCTYPE="multipart/form-data">
File: <input type="file" name="filename"/
Path: <input type="text" readonly="" name="path" value="c:"/
Saveas: <input type="text" name="saveas"/>
<input name="submit" type="submit" value="Upload" />
</form>
proces JSP
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="FileUploadBean" %>
<jsp:useBean id="TheBean" scope="page" class="FileUploadBean" />
<%
TheBean.doUpload(request);
%>
BEAN
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletInputStream;
public class FileUploadBean {
public void doUpload(HttpServletRequest request) throws IOException
String melding = "";
String filename = request.getParameter("saveas");
String path = request.getParameter("path");
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.java")));
ServletInputStream in = request.getInputStream();
int i = in.read();
System.out.println("filename:"+filename);
System.out.println("path:"+path);
while (i != -1)
pw.print((char) i);
i = in.read();
pw.close();
}Thanks it works great.
Here an excample from my code
import org.apache.commons.fileupload.*;
public class FileUploadBean extends Object implements java.io.Serializable{
String foutmelding = "geen";
String path;
String filename;
public boolean doUpload(HttpServletRequest request) throws IOException
try
// Create a new file upload handler
FileUpload upload = new FileUpload();
// Set upload parameters
upload.setSizeMax(100000);
upload.setSizeThreshold(100000000);
upload.setRepositoryPath("/");
// Parse the request
List items = upload.parseRequest(request);
// Process the uploaded fields
Iterator iter = items.iterator();
while (iter.hasNext())
FileItem item = (FileItem) iter.next();
if (item.isFormField())
String stringitem = item.getString();
else
String filename = "";
int temp = item.getName().lastIndexOf("\\");
filename = item.getName().substring(temp,item.getName().length());
File bestand = new File(path+filename);
if(item.getSize() > SizeMax && SizeMax != -1){foutmelding = "bestand is te groot.";return false;}
if(bestand.exists()){foutmelding ="bestand bestaat al";return false;}
FileOutputStream fOut = new FileOutputStream(bestand);
BufferedOutputStream bOut = new BufferedOutputStream(fOut);
int bytesRead =0;
byte[] data = item.get();
bOut.write(data, 0 , data.length);
bOut.close();
catch(Exception e)
System.out.println("er is een foutontstaan bij het opslaan de een bestand "+e);
foutmelding = "Bestand opsturen is fout gegaan";
return true;
} -
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 Chane field lable to Field name
Hi
I have one transaction FBL5N for customer line item display.
Here in output it display field description. But here i want see the field name. I tried here. But there no option available.
If i press F1 it displays each field description and technical information also. But in this report i have around 156 fields.
Please tell me is there another possibility?
Thanks.you are talking about ALV report column texts..?
why you want Field names , any specific reason. -
Get Table fields name for an SAP table
hi,
i need to pass SAP table name as a parameter to the selection screen of a Report program.
This prog shud give me the table Fields name along with type and length.
Is there any standard SAP report program for the same or i have to write my own logic?
Please advise.
regards,
ags.Hi,
For your requirement you have to write own program in dynamic manner by using field symbol concept.
Use this FM DDIF_FIELDINFO_GET and get the field information of database table.
call function 'DDIF_FIELDINFO_GET'
exporting
tabname = <master> u201C Table name
Tables
DFIES_TAB = <table_field> u201C here you will get field information of table
exceptions
not_found = 1
internal_error = 2
others = 3.
if sy-subrc <> 0.
message text-005 type 'E' .
endif.
Loop <table_field> assignigng <field>
*---here you have to collect the relevant information that you are going to display in your output.
Endloop.
Use any one of ALV or OOALV and display your records.
Regards,
Peranandam
Maybe you are looking for
-
Need refund on printer I returned
I am very frustrated...I had a problem with my hp deskjet 3050 j610a after getting a new Dell computer which has Windows 8 instead of Windows 7 that was on my old computer...I spoke with a customer service rep and they said I could get a "refurbished
-
Setting options in DHCP client ...
Hi everyone, ... Im having problems connecting to my corporate intranet DHCP network and investigating I realize the DHCP server requires a fixed DHCP Option 60 (vendor-class-identifier) with the value "MSFT 5.0". Please, How can I configure this opt
-
Can't get focused a JTextField within a JTable cell
I have a table and I placed a cell editor with a JText field on it for all cell editing, I want to do things when the focus is lost or gained and my app works fine when a cell is double clicked or f2 is pressed, but when a cell is selected (without d
-
PO creation mail sent automatically
HI All, We have found an issue wherein SAP system is automatically sending mail to vendor once a PO is raised against him. The mail just includes PO Number and date in subject line and PO number in the mail. Could you advice how can we prevent such m
-
the keyboard on my ipad 2 is hanging in the middle of my screen. how to I put it back where it's supposed to be?