Getting subtotals using classes for ALV report
Hi,
This is regarding getting subtotals.How do I access the GET_SUBTOTALS private method of a class to get the subtotals ?What are the steps to be followed?
Thanks
hi
Take a look at this sample code.
Define and implement an event handler method for event subtotal_text. Register this event with SET HANDLER.
2. Call a subroutine within this method and pass the event parameters to that subroutine.
3. Event parameters ep_subtot_line and e_event_data contain reference variables to generic data type DATA. This is why you must use field symbols in the subroutine:
FORM method_subtotal_text USING es_subtottxt_info TYPE lvc_s_stxt ep_subtot_line TYPE REF TO data e_event_data TYPE REF TO cl_alv_event_data.
DATA ls_sflight LIKE sflight.
FIELD-SYMBOLS: <fs1> STRUCTURE sflight DEFAULT ls_sflight, <fs2>.
IF es_subtottxt_info-criteria = 'PLANETYPE'.
ASSIGN ep_subtot_line->* TO <fs1>.
ASSIGN e_event_data->m_data->* TO <fs2>.
CONCATENATE es_subtottxt_info-keyword ': ' <fs1>-planetype INTO <fs2>.
ENDIF.
please reward if useful
Similar Messages
-
For all classes used in the alv reports.
we need the list of required classes used in alv reports this urgent .
please help me.Hi Navid,
Check <b>SLIS Package/Dev.Class for node Classes</b>,
here u will find all required <b>classes for ALV including ALV Hierarchical,AVL Tree, ALV HTML.</b>
Classes.
CL_ALVHT_HTMLINPUT-> ALV: HTML Input (Control Proxy)
CL_ALVHT_HTML_PAGE-> ALV HTML Page
CL_ALVHT_HTML_TEMPLATE-> ALV: HTML Templates
CL_ALVHT_TAGSTREAM-> ALV
CL_ALVHT_UI_ELEMENT-> ALV: HTML User Input Element
CL_ALV_BDS-> BDS Access and Data Retention
CL_ALV_CHANGED_DATA_PROTOCOL-> Message Log for Data Entry
CL_ALV_DD_DOUBLE_LISTBOX-> Management Class for two D&D List Boxes
CL_ALV_DD_LISTBOX-> D&D List Box
CL_ALV_EVENT_DATA-> Changing Data Container for Events
CL_ALV_EVENT_TOOLBAR_SET-> ALV Context Menu
CL_ALV_GRAPHICS-> ALV Graphic (Integration with GFW)
CL_ALV_GRAPHICS_CU-> Customizing of ALV Graphics
CL_ALV_LISTBOX_DRAGOBJ->
CL_ALV_OI BDS-> Access and Data Retention
CL_ALV_TABLE_CREATE-> Dynamic Creation of ALV Data Table
CL_ALV_TREE_BASE-> Basis Class ALV Tree Control
CL_ALV_VARIANT-> ALV Variant Management
CL_GUI_ALV_GRID-> ALV List Viewer
CL_GUI_ALV_GRID_BASE-> Basis Class for ALV Grid
CL_GUI_ALV_TREE-> ALV Tree Control
Regards,
Raghav
Message was edited by:
Raghavendra L -
Can somebody give some real time questions for alv report
hi guru
can somebody give some real time questions for alv report.
answers also.
regards
subhasis.hi,
The ALV is a set of function modules and classes and their methods which are added to program code. Developers can use the functionality of the ALV in creating new reports, saving time which might otherwise have been spent on report enhancement
The common features of report are column alignment, sorting, filtering, subtotals, totals etc. <b>To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).</b>
Using ALV, we can have three types of reports:
1. Simple Report
2. Block Report
3. Hierarchical Sequential Report
<b>Reward useful points</b>
Siva -
How to find the check box selected while using Class in ALV grid display
hi,
I am displaying the ALV report using Class
For Example: CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'ACC1'
IS_VARIANT = GS_VARIANT
I_SAVE = 'A' "XSAVE
IS_LAYOUT = LOUT
CHANGING IT_FIELDCATALOG = IT_FIELD
IT_OUTTAB = ACC_NO[].
In output i am getting 10 customer with check box, how do i find that customer number is selected.HI,
Once user selects a check box, he would CLICK on a button ( say PROCESS )inorder to do the processing for the selected records. So in the PAI, under the EVENT ( OK CODE ) of the Button ( say PROCESS ), write the following code.
CALL METHOD MYGRID->check_changed_data.
Now,
Loop at acc_no where check = `X`.
Do the processing.
endloop.
Best regards,
Prashant -
How to get the actual data in ALV report
I am doing some upgradation work in that i am using Submit & And return and also i am using some function modules like LIST FROM MEMORY , LIST TO TXT wnd WRITE LIST , it gives output in normal list format , But i need to print in ALV report .
With the use of set table for 1st display i got the ALV report but not with actual data, (some junk value is showing) , So can any 1 suggest me how to get the actual data in ALV report, With the use of Any Function Module or with Coding,
with regards,Hi Saravana
I am sure you must be getting the values in tables of table parameters from every FM.
consolidate the values from tables of all FMs in one table and built ALV for that table only.
I hope this way you can show the actual data in ALV.
thanks
Lalit -
How to get the total pages in ALV report?
Hi guys,
Since I used page breaks can somebody please help me on how to get the total pages in ALV report?sincerely please...thanks guys.automatic display total page.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
r -
Send some sample program for ALV reports
Hi all ,
send some sample program for ALV reports for learing purpose
tahnks.Hi ,
Resource Master
Program YPPCRR *
Program type Report Program *
Title Resource Master Dara for Updation *
Author Naga Raju *
Requested By Balaji *
Date Written 24.05.2007 *
Specification Id F2-DP-FS-2-0002 *
Transport Request *
On-line Documentation
Description
This Program updates the Location Mater through the Transaction
/SAPAPO/LOC3 Based on the User Selection
Update
Reset
No Action
Output
ALV List output of the main Program
ALV List output of the Error Log
REPORT YPPCRR NO STANDARD PAGE HEADING
LINE-SIZE 120
LINE-COUNT 62(4)
MESSAGE-ID yap..
Global data
Include where all the data declarations are coded.
INCLUDE YPPCRR_data.
*Initialization
INITIALIZATION.
perform init_variant.
Constants
CONSTANTS: c_formname_top_of_page TYPE slis_formname
VALUE 'F_TOP_OF_PAGE'.
Selection-Screen
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-040.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:p_prs RADIOBUTTON GROUP ztyp USER-COMMAND ucom DEFAULT 'X'.
SELECTION-SCREEN COMMENT 3(28) text-003.
position 40.
parameters: p_file1 TYPE rlgrap-filename.
SELECTION-SCREEN END OF LINE.
skip 5.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_aps RADIOBUTTON GROUP ztyp.
SELECTION-SCREEN COMMENT 3(28) text-004.
position 40.
parameters: p_file2 type rlgrap-filename.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = syst-repid
DYNPRO_NUMBER = SYST-DYNNR
field_name = p_file1
STATIC = ' '
MASK = ' '
CHANGING
file_name = p_file1
EXCEPTIONS
MASK_TOO_LONG = 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.
START-OF-SELECTION.
if p_prs = 'X'.
PERFORM f_read_datum1 TABLES t_res_head
USING p_file1
CHANGING w_subrc.
elseif p_aps = 'X'.
PERFORM f_read_datum2 TABLES t_res_head
USING p_file2
CHANGING w_subrc.
endif.
IF w_subrc = 0.
Validations
PERFORM VALIDATION.
PERFORM display_alv.
IF SY-UCOMM = '&F03'
or SY-UCOMM = '&F12'
or SY-UCOMM = '&F15'.
LEAVE LIST-PROCESSING.
ELSE.
ENDIF.
ELSE.
Message s100 with text-002.
ENDIF.
END-OF-SELECTION.
Forms part*
INCLUDE YPPCRR_forms.
*& Include YPPCRR_DATA
Type-Pools
TYPE-POOLS: slis.
*TYPES
DATA: BEGIN OF tl_res_head.
INCLUDE STRUCTURE ypp_res_head.
DATA: END OF tl_res_head.
DATA: BEGIN OF tl_res_head_val.
INCLUDE STRUCTURE ypp_resv.
DATA: END OF tl_res_head_val.
DATA : BEGIN OF ty_errlog ,
counter type i,
type(2) ,
name(10) TYPE c,
vrsioid(22) TYPE c,
restype TYPE c,
message(80) TYPE c,
END OF ty_errlog.
Global Variables
DATA : gc_flag(1) TYPE c,
w_val_err_flag(1) type c.
DATA: w_filename TYPE rlgrap-filename,
w_subrc TYPE sy-subrc,
w_t_res_head TYPE slis_t_fieldcat_alv,
wa_t_res_head TYPE slis_fieldcat_alv.
DATA : wa_date(10) TYPE c,
wa_time(10) TYPE c,
wa_title(40) TYPE c,
wa_type(4) TYPE c .
DATA: BAPI_RUN_YES_NO TYPE C.
*Structure
*INTERNAL TABLES USED BY ALV
DATA:
it_fieldcat_alv TYPE slis_t_fieldcat_alv,
IT_FIELDCAT_ALV_ERR TYPE SLIS_T_FIELDCAT_ALV,
it_status TYPE slis_formname VALUE 'F_MAIN',
it_user_command TYPE slis_formname VALUE 'F_USER_COMMAND',
it_events TYPE slis_t_event,
it_event_exit TYPE slis_t_event_exit,
it_list_comments TYPE slis_t_listheader,
it_excluding TYPE slis_t_extab,
it_sort TYPE slis_t_sortinfo_alv.
*Internal Table Declarations
DATA : BEGIN OF t_imex OCCURS 0 ,
string(256) TYPE c,
END OF t_imex.
DATA : fcode TYPE TABLE OF sy-ucomm.
DATA : fcode_bdc TYPE TABLE OF sy-ucomm.
DATA : fcode_error TYPE TABLE OF sy-ucomm.
DATA : fcode_final TYPE TABLE OF sy-ucomm.
STRUCTURE and WORKARES
*Internal Table Declarations
DATA : t_res_head like tl_res_head occurs 0 WITH HEADER LINE.
DATA : t_res_head_val like tl_res_head_val occurs 0 with header line.
data :l_res_head LIKE LINE OF t_res_head.
DATA : w_file TYPE string.
*DATA : wa_vrsioid(22) type c,
wa_locno(20) type c,
wa_calendar(2) type c,
wa_planner(3) type c.
DATA: T_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: RESOURCE_HEAD LIKE BAPI10004RESHEAD OCCURS 0 WITH HEADER LINE,
RESOURCE_HEAD_X LIKE BAPI10004RESHEADX OCCURS 0 WITH HEADER LINE,
RESOURCE_TEXT LIKE BAPI10004RESTEXT OCCURS 0 WITH HEADER LINE,
RESOURCE_TEXT_X LIKE BAPI10004RESTEXTX OCCURS 0 WITH HEADER LINE.
data : t_errlog like ty_errlog occurs 0 with header line.
DATA : wk_lines TYPE i,
wk_errlines TYPE i,
wk_count TYPE i.
DATA: g_tabname TYPE slis_tabname VALUE 'T_RES_HEAD'.
Variables to be used by ALV
DATA:
wk_variant LIKE disvariant,
wx_variant LIKE disvariant,
wk_variant_save(1) TYPE c,
wk_exit(1) TYPE c,
wk_repid LIKE sy-repid,
wk_user_specific(1) TYPE c,
wk_callback_ucomm TYPE slis_formname,
wk_callback_status TYPE slis_formname,
wk_callback_status1 TYPE slis_formname,
wk_print TYPE slis_print_alv,
wk_layout TYPE slis_layout_alv,
wk_html_top_of_page TYPE slis_formname,
wk_fieldcat_alv LIKE LINE OF it_fieldcat_alv,
wk_excluding LIKE LINE OF it_excluding,
wk_events LIKE LINE OF it_events,
wk_event_exit LIKE LINE OF it_event_exit,
wk_list_comments LIKE LINE OF it_list_comments,
wk_list1_comments LIKE LINE OF it_list_comments,
wk_list2_comments LIKE LINE OF it_list_comments,
wk_sort LIKE LINE OF it_sort.
*DATA :gc_delete_flag(1).
*& Include YAPOLOC_FORMS
FORM display_alv .
PERFORM f_fieldcat_build.
PERFORM f_event_build.
PERFORM f_exclude_build.
PERFORM f_print_build.
PERFORM f_layout_build.
PERFORM f_display_data.
ENDFORM. " display_alv
*& Form f_fieldcat_build
text
FORM f_fieldcat_build .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = wk_repid
i_structure_name = 'YPP_RESV'
i_inclname = wk_repid
CHANGING
ct_fieldcat = it_fieldcat_alv.
ENDFORM. " F_FIELDCAT_BUILD
*& Form F_EVENT_BUILD
text
> p1 text* < p2 text
FORM f_event_build .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events.
READ TABLE it_events WITH KEY
name = slis_ev_top_of_page INTO wk_events.
IF sy-subrc = 0.
MOVE c_formname_top_of_page TO wk_events-form.
MODIFY it_events FROM wk_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_EVENT_BUILD
*& Form F_EXCLUDE_BUILD
text
--> p1 text
<-- p2 text
FORM f_exclude_build .
wk_excluding = '&GRAPH'. "Graphic
APPEND wk_excluding TO it_excluding.
ENDFORM. " F_EXCLUDE_BUILD
*& Form F_PRINT_BUILD
text
--> p1 text
<-- p2 text
FORM f_print_build .
wk_print-no_print_listinfos = 'X'.
ENDFORM. " F_PRINT_BUILD
*& Form F_LAYOUT_BUILD
text
--> p1 text
<-- p2 text
FORM f_layout_build .
wk_layout-zebra = 'X'.
WK_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
wk_layout-detail_popup = 'X'.
wk_layout-detail_initial_lines = 'X'.
wk_layout-detail_titlebar = 'Details '.
ENDFORM. " F_LAYOUT_BUILD
*& Form F_DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM f_display_data .
wk_callback_ucomm = 'CALLBACK_UCOMM'.
IF sy-ucomm = 'UPD' OR sy-ucomm = space .
wk_callback_status = 'CALLBACK_STATUS'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'SIWB_WALLPAPER'
i_callback_program = wk_repid
i_callback_html_top_of_page = 'HTML_TOP_OF_PAGE'
i_callback_pf_status_set = wk_callback_status
i_callback_user_command = wk_callback_ucomm
it_sort = it_sort
i_default = 'X'
i_save = 'A'
is_variant = wk_variant
is_layout = wk_layout
it_fieldcat = it_fieldcat_alv
it_events = it_events
it_event_exit = it_event_exit
it_excluding = it_excluding
is_print = wk_print
TABLES
t_outtab = t_res_head_val.
ENDFORM. " F_DISPLAY_DATA
ALV for Error Log
*& Form display_alv_ERR
text
--> p1 text
<-- p2 text
FORM display_alv_err .
PERFORM f_fieldcat_build_err.
PERFORM f_event_build_err.
PERFORM f_exclude_build_err.
PERFORM f_print_build_err.
PERFORM f_layout_build_err.
PERFORM f_display_data_err.
ENDFORM. " display_alv_ERR
*& Form F_FIELDCAT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_fieldcat_build_err .
BREAK-POINT.
REFRESH it_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = wk_repid
i_internal_tabname = 'TY_ERRLOG'
i_structure_name = 'YPP_ERR_LOG'
i_inclname = wk_repid
CHANGING
ct_fieldcat = it_fieldcat_alv_err.
LOOP AT it_fieldcat_alv INTO wk_fieldcat_alv.
CASE wk_fieldcat_alv-fieldname.
WHEN 'COUNTER'.
wk_fieldcat_alv-seltext_s = text-023.
wk_fieldcat_alv-seltext_m = text-023.
wk_fieldcat_alv-seltext_l = text-023.
wk_fieldcat_alv-reptext_ddic = text-023.
wk_fieldcat_alv-edit = 'X'.
WHEN 'TYPE'.
wk_fieldcat_alv-seltext_s = text-009.
wk_fieldcat_alv-seltext_m = text-009.
wk_fieldcat_alv-seltext_l = text-009.
wk_fieldcat_alv-reptext_ddic = text-009.
wk_fieldcat_alv-edit = 'X'.
WHEN 'NAME'.
wk_fieldcat_alv-seltext_s = text-010.
wk_fieldcat_alv-seltext_m = text-010.
wk_fieldcat_alv-seltext_l = text-010.
wk_fieldcat_alv-reptext_ddic = text-010.
wk_fieldcat_alv-edit = 'X'.
WHEN 'VRSIOID'.
wk_fieldcat_alv-seltext_s = text-011.
wk_fieldcat_alv-seltext_m = text-011.
wk_fieldcat_alv-seltext_l = text-011.
wk_fieldcat_alv-reptext_ddic = text-011.
wk_fieldcat_alv-edit = 'X'.
WHEN 'RESTYPE'.
wk_fieldcat_alv-seltext_s = text-012.
wk_fieldcat_alv-seltext_m = text-012.
wk_fieldcat_alv-seltext_l = text-012.
wk_fieldcat_alv-reptext_ddic = text-012.
wk_fieldcat_alv-edit = 'X'.
WHEN 'MESSAGE'.
wk_fieldcat_alv-seltext_s = text-013.
wk_fieldcat_alv-seltext_m = text-013.
wk_fieldcat_alv-seltext_l = text-013.
wk_fieldcat_alv-reptext_ddic = text-013.
wk_fieldcat_alv-edit = 'X'.
WHEN OTHERS.
ENDCASE.
MODIFY it_fieldcat_alv FROM wk_fieldcat_alv.
ENDLOOP.
ENDFORM. " F_FIELDCAT_BUILD_err
*& Form F_EVENT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_event_build_err .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events.
READ TABLE it_events WITH KEY name = slis_ev_top_of_page
INTO wk_events.
IF sy-subrc = 0.
MOVE c_formname_top_of_page TO wk_events-form.
MODIFY it_events FROM wk_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_EVENT_BUILD_err
*& Form F_EXCLUDE_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_exclude_build_err .
wk_excluding = '&GRAPH'. "Graphic
APPEND wk_excluding TO it_excluding.
ENDFORM. " F_EXCLUDE_BUILD_err
*& Form F_PRINT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_print_build_err .
wk_print-no_print_listinfos = 'X'.
ENDFORM. " F_PRINT_BUILD_err
*& Form F_LAYOUT_BUILD_err
text
--> p1 text
<-- p2 text
FORM f_layout_build_err .
wk_layout-zebra = 'X'.
WK_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
wk_layout-detail_popup = 'X'.
wk_layout-detail_initial_lines = 'X'.
wk_layout-detail_titlebar = 'Details '.
ENDFORM. " F_LAYOUT_BUILD_err
*& Form F_DISPLAY_DATA_err
text
--> p1 text
<-- p2 text
FORM f_display_data_err .
wk_callback_ucomm = 'CALLBACK_UCOMM'.
IF SY-UCOMM ne '&F03'.
wk_callback_status = 'CALLBACK_STATUS'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'SIWB_WALLPAPER'
i_callback_program = wk_repid
i_callback_pf_status_set = wk_callback_status
i_callback_user_command = wk_callback_ucomm
it_sort = it_sort
i_default = 'X'
i_save = 'A'
is_variant = wk_variant
is_layout = wk_layout
it_fieldcat = it_fieldcat_alv_err
it_events = it_events
it_event_exit = it_event_exit
it_excluding = it_excluding
is_print = wk_print
TABLES
t_outtab = t_errlog.
KEEP EERRLOG BUTTON
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD' IMMEDIATELY.
ENDFORM. "f_display_data_err
**& Form F_TOP_OF_PAGE
text
FORM f_top_of_page.
CLEAR: it_list_comments[],
wk_list_comments,
wk_list1_comments,
wk_list2_comments.
wk_list_comments-typ = 'H'. "H=Header,S=Selection, A=Action
wk_list_comments-key = ''.
CASE sy-ucomm.
WHEN ''.
wk_list_comments-info = text-030.
WHEN 'UPD'.
IF t_errlog[] IS INITIAL.
wk_list_comments-info = text-031.
ELSE.
wk_list_comments-info = text-032.
ENDIF.
WHEN 'ERRLOG'.
wk_list_comments-info = text-032.
WHEN '&F03'.
wk_list_comments-info = text-031.
WHEN '&F15'.
wk_list_comments-info = text-031.
WHEN '&F12'.
wk_list_comments-info = text-031.
ENDCASE.
APPEND wk_list_comments TO it_list_comments.
WRITE sy-datum TO wa_date.
WRITE sy-uzeit TO wa_time.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = 'User:'.
wk_list1_comments-info = sy-uname.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments.
APPEND wk_list2_comments TO it_list_comments.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = ' Run Date : '.
wk_list1_comments-info = wa_date.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments .
APPEND wk_list2_comments TO it_list_comments.
wk_list_comments-typ = 'S'. "H=Header, S=Selection, A=Action
wk_list_comments-key = ''.
wk_list_comments-info = 'Run Time : '.
wk_list1_comments-info = wa_time.
CONCATENATE wk_list_comments wk_list1_comments
INTO wk_list2_comments .
APPEND wk_list2_comments TO it_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
it_list_commentary = it_list_comments.
ENDFORM. "F_TOP_OF_PAGE
FORM USER_COMMAND_SAMPLE *
--> UCOMM *
--> SELFIELD *
FORM callback_ucomm USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
DATA: v_langu(2) ,
v_loctype TYPE /sapapo/c_loctype.
data err_flg(1).
IF bapi_run_yes_no IS INITIAL.
CASE sy-ucomm.
WHEN 'UPD'.
bapi_run_yes_no = 'X'.
LOOP AT t_res_head_val WHERE val_err_msg EQ space.
v_langu = 'EN'.
refresh tables
REFRESH : resource_head ,
resource_head_x ,
resource_text ,
resource_text_x,
t_return.
CLEAR : resource_head ,
resource_head_x ,
resource_text ,
resource_text_x,
t_return .
resource_head-resource = t_res_head-name .
resource_head-restype = t_res_head-restype.
resource_head-location = t_res_head-locno.
CLEAR : v_loctype .
SELECT SINGLE loctype FROM /sapapo/loc CLIENT SPECIFIED
INTO v_loctype
WHERE mandt = sy-mandt
AND locno = t_res_head-locno.
resource_head-loctype = v_loctype.
resource_head-calendar = t_res_head-calendar.
resource_head-type = t_res_head-type.
IF t_res_head-type = '03'.
resource_head-dimension_bucket = t_res_head-dimension_bucket.
ELSE.
resource_head-dimension_bucket = space.
ENDIF.
APPEND resource_head.
CLEAR resource_head.
resource_head_x-resource = t_res_head-name.
resource_head_x-restype = 'X'.
resource_head_x-location = 'X'.
resource_head_x-loctype = 'X'.
resource_head_x-calendar = 'X'.
resource_head_x-type = 'X'.
IF t_res_head-type = '03'.
resource_head_x-dimension_bucket = 'X'.
ELSE.
resource_head_x-dimension_bucket = space.
ENDIF.
APPEND resource_head_x.
CLEAR resource_head_x.
resource_text-resource = t_res_head-name.
resource_text-langu = v_langu.
resource_text-res_short_text = t_res_head-text.
APPEND resource_text.
CLEAR resource_text.
resource_text_x-resource = t_res_head-name.
resource_text_x-langu = v_langu.
resource_text_x-res_short_text = 'X'.
APPEND resource_text_x.
CLEAR resource_text_x.
call bapi
CALL FUNCTION 'BAPI_RSSRVAPS_SAVEMULTI_30A'
EXPORTING
logical_system = 'AD2CLNT200'
business_system_group = 'BSG001'
commit_control = 'E'
NO_CREATE = ' '
TABLES
resource_head = resource_head
resource_head_x = resource_head_x
resource_text = resource_text
resource_text_x = resource_text_x
return = t_return.
IF sy-subrc = 0.
LOOP AT t_return WHERE type = 'E'
OR type = 'A'.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE t_return-message TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDLOOP.
IF not t_errlog[] is initial..
IF sy-subrc = 0.
ERROR POP UP
MESSAGE text-007 type 'I'.
ELSE.
err_flg = 'X'.
SUCC POP UP
MESSAGE text-008 type 'I'.
ENDIF.
ELSE. "NE 0
LOOP AT t_return WHERE type = 'E'
OR type = 'A'.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE t_return-message TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDLOOP.
IF sy-subrc = 0.
ELSE.
MOVE t_res_head_val-counter TO t_errlog-counter.
MOVE t_res_head_val-type TO t_errlog-type.
MOVE t_res_head_val-name TO t_errlog-name.
MOVE t_res_head_val-vrsioid TO t_errlog-vrsioid.
MOVE t_res_head_val-restype TO t_errlog-restype.
MOVE 'Error in Creation' TO t_errlog-message.
APPEND t_errlog.
CLEAR t_errlog..
ENDIF.
ENDIF.
ENDLOOP.
gc_flag = 'X'.
REFRESH fcode.
if err_flg = 'X'.
MESSAGE text-008 type 'I'.
endif.
ENDCASE.
ENDIF.
IF NOT t_errlog[] IS INITIAL.
wk_list_comments-info = text-032.
APPEND wk_list_comments TO it_list_comments.
APPEND 'UPD' TO fcode_error.
APPEND 'ERRLOG' TO fcode_error.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode_error.
PERFORM display_alv_err.
ELSE.
ENDIF.
ENDFORM. "CALLBACK_UCOMM=
*& Form CALLBACK_STATUS
text
-->RT_EXTAB text
FORM callback_status USING rt_extab TYPE slis_t_extab.
IF bapi_run_yes_no IS NOT INITIAL .
IF t_errlog[] IS INITIAL.
REFRESH fcode.
APPEND 'UPD' TO fcode.
APPEND 'ERRLOG' TO fcode.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'ERRLOG'.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode IMMEDIATELY .
ENDIF.
ELSE.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'ERRLOG' IMMEDIATELY .
ENDIF.
ENDFORM. "CALLBACK_STATUS
*& Form CALLBACK_STATUS1
text
-->RT_EXTAB text
FORM callback_status1 USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD'.
ENDFORM. " CALLBACK_STATUS
*& Form CALLBACK_STATUS2
text
-->RT_EXTAB text
FORM callback_status2 USING rt_extab TYPE slis_t_extab.
REFRESH fcode_final.
IF sy-ucomm NE '&F03'.
APPEND 'UPD' TO fcode_final.
APPEND 'ERRLOG' TO fcode_final.
SET PF-STATUS 'ZSTANDARD' EXCLUDING fcode_final.
ELSE.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD'.
ENDIF.
ENDFORM. "CALLBACK_STATUS2
*& Form callback_ucomm_E
text
-->UCOMM text
-->SELFIELD text
FORM callback_ucomm_e USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE sy-ucomm.
WHEN 'ERRLOG' .
PERFORM display_alv_err.
WHEN '&F03'.
SET PF-STATUS 'ZSTANDARD' EXCLUDING 'UPD' IMMEDIATELY .
PERFORM display_alv .
ENDCASE.
ENDFORM. "CALLBACK_UCOMM=
*& Form init_variant
text
--> p1 text
<-- p2 text
FORM init_variant .
CLEAR: wk_variant.
wk_repid = sy-repid.
wk_variant-report = wk_repid.
wk_variant-username = sy-uname.
wk_variant_save = 'A'. "All types
ENDFORM. " init_variant
*& Form f_read_datum1
text
-->P_T_RES_HEAD text
-->P_P_FILE1 text
<--P_W_SUBRC text
FORM f_read_datum1 TABLES p_t_res_head STRUCTURE ypp_res_head
USING p_p_file1
CHANGING p_w_subrc.
DATA : iexcel LIKE zexcel_read OCCURS 0 WITH HEADER LINE.
CLEAR p_w_subrc.
CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_p_file1
i_begin_col = 1
i_begin_row = 1
i_end_col = 62
i_end_row = 50000
TABLES
intern = iexcel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
p_w_subrc = 0 .
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT iexcel WHERE row > 2.
IF iexcel-col = '0001'.
p_t_res_head-type = iexcel-value.
ENDIF.
IF iexcel-col = '0002'.
p_t_res_head-name = iexcel-value.
ENDIF.
IF iexcel-col = '0003'.
p_t_res_head-vrsioid = iexcel-value.
ENDIF.
IF iexcel-col = '0004'.
p_t_res_head-restype = iexcel-value.
ENDIF.
IF iexcel-col = '0005'.
p_t_res_head-locno = iexcel-value.
ENDIF.
IF iexcel-col = '0006'.
p_t_res_head-tzone = iexcel-value.
ENDIF.
IF iexcel-col = '0007'.
p_t_res_head-calendar = iexcel-value.
ENDIF.
IF iexcel-col = '0008'.
p_t_res_head-planner = iexcel-value.
ENDIF.
IF iexcel-col = '0009'.
p_t_res_h -
How to use class for Translate..codepage/numer format
In the Unicode context, TRANSLATE... CODEPAGE/NUMBER FORMAT is not allowed.
this is the class to be used for Translate Codepage/number format.statement
Unicode Error : In the Unicode context, TRANSLATE... CODEPAGE/NUMBER FORMAT is not allowed.
Before Unicode
TRANSLATE T143T-TBTXT FROM CODE PAGE '1100' TO CODE PAGE '1105'.
After Unicode
Use class for Translate codepage to codepage.
Data : g_codepage LIKE tcp0c-charco VALUE '1100'.
CONSTANTS: c_unicodecp(4) VALUE '1105'.
PERFORM translate_codepage USING g_codepage
c_unicodecp
CHANGING T143T.
FORM translate_codepage USING P_G_CODEPAGE
P_C_UNICODECP
CHANGING P_T143T.
DATA: converter TYPE REF TO cl_abap_conv_obj.
DATA: l_out TYPE string.
DATA: l_fromcode TYPE cpcodepage.
DATA: l_tocode TYPE cpcodepage.
l_fromcode = P_G_CODEPAGE.
l_tocode = P_C_UNICODECP.
CREATE OBJECT converter
EXPORTING
incode = l_fromcode
miss = '.'
broken = '.'
use_f1 = 'X'
outcode = l_tocode
EXCEPTIONS
invalid_codepage = 1
internal_error = 2.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
WHEN 2.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
ENDCASE.
ENDIF.
CALL METHOD converter->convert
EXPORTING
inbuff = P_T143T
inbufflg = 0
outbufflg = 0
IMPORTING
outbuff = l_out
EXCEPTIONS
internal_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
WHEN 2.
MESSAGE ID 'FES' TYPE 'E' NUMBER '024' RAISING unknown_error.
ENDCASE.
ENDIF.
P_T143T = l_out.
ENDFORM. " translate_codepage -
OO Design--do ABAP Persistent Classes make sense for ALV reports in NW2004?
Hello experts,
At our company, we started using ABAP OO in the last year.
I am on NW-2004 . We just acquired a business that is on 4.6C.
We have a lot of customization to bring into our system. There are a lot of reports with common queries that span multiple tables.
I would like to follow the best practice for OO design and create global classes for the data access layer the business logic layer and the UI layer. For the UI layer, I will be utilizing the SALV class, since NW2004 doesn't have ABAP WebDynpro (we don't have a java stack available for development and software change management).
For the data access layer, I would like to use the persistent classes, but without the query manager, it just doesn't make sense.
Thomas Jung said in a blog that he sometimes used SQL to get the keys and then used persistent classes to retrieve the remaining data. But for straight ALV reporting, that just seems inefficient. But it could be that I am just not familiar enough with the technology.
I am looking for suggestions on how to design the data access layer for these intense and commonly used queries.
(Ironically, we will upgrade to NW2004s after this migration -- ouch!)
All ideas are appreciated.
Thanks.Hi Kimberly,
the main advantage of persistent objects is that their state can be saved in the database. If a persistent object changes in your program, these changes can be reflected in the corresponding database field(s). Thus, persistent objects are very useful when doing CRUD (create, read, update and delete) operations with business objects.
However, if you just want to read data (for simple reporting) but do not plan to implement any of the other CRUD operations, I doubt if a persistency layer is necessary since this causes extra effort during design time and runtime. In that case, simple SELECT statements seem to be more appropriate.
Regards,
David -
Subtotals and Totals In ALV Report
Hi Experts,
I have a problem in my current scenario,
I have 3 fields,
KUNNR, WAERS, DMBTR.
000001 USD 100.00
000001 USD 200.00
000002 USD 100.00
000002 USD 400.00
000002 EUR 300.00
000002 EUR 100.00
The above mentioned is the data I have in my internal table & in my ALV report as well, Which is fine...!
Now I need Subtotals for each customer,
Means for customer 000001 The subtotal is 300 (USD)
Means for customer 000002 The subtotal is 500 (USD)
Means for customer 000002 The subtotal is 400 (EUR)
At the end I need grand totals.
USD 800
EUR 400.
Currently My field catalog is given below.
FIELDCATALOG-COL_POS = COL_POS.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = TEXT-106.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
what else I need to do for getting individual subtotals by currency and customers.
Thanks & regards,
Dileep .CHi Deelip,
FOR TOTAL:
there is a property of fieldcatalog, that is do_sum.
USE COED LIKE:
PERFORM fieldcat USING:
'1' 'KUNNR' 'I_MARD' 'CUSTOMER NO' ,
'2' 'DMBTR' 'I_MARD' 'CURRENCY' ,
FORM fieldcat USING value(p_0029)
value(p_0030)
value(p_0031)
value(p_0032)
wa_fieldcat-col_pos = p_0029.
wa_fieldcat-fieldname = p_0030.
wa_fieldcat-tabname = p_0031.
wa_fieldcat-reptext = p_0032.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " FIELDCAT
in final output you will get the total of currency field.
FOR SUB TOTAL:
decleare: i_sort type standard table of slis_sortinfo_alv,
wa_sort type slis_t_sortinfo_alv.
wa_sort-spos = '1'.
wa_sort-fieldname = 'KUNNR'.
wa_sort-tablename = 'i_final'
wa_sort-up = 'x'
wa_sort-subtot = 'X'.
wa_sort-spos = '2'.
wa_sort-fieldname = 'WAERS'.
wa_sort-tablename = 'i_final'
wa_sort-up = 'x'
wa_sort-subtot = 'X'.
append wa_tab to i_sort.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = it_fieldcat
it_sort = i_sort
Hope this can solve your pbs.
Regards,
Tutun -
In my ALV report I need to add descriptions for totals
Col1 Col2 Col3
Sum1 #Value #Value #Value
Sum2 #Value #Value #Value
Sum3 #Value #Value #Value
How to add text Sum1, Sum2, Sum3 to the report?
I tried to use subtotals_text and totals_text in slis_layout_alv for REUSE_ALV_GRID_DISPLAY but that did not work out. I also tried to look for methods using CL_SALV_TABLE class and have not been able to find a solution yet.
Edited by: Megan Flores on Feb 25, 2008 8:28 PMit's a package in the systems above 6.4 with new ALV. There are nice examples. Main package is SALV.
/wg -
I have a ALV report output with LINE-SIZE 1023. But when I try to execute the report in background the output row is not coming in one line but in 2 lines. When we run the report in background I gave the printer as 'LOCL' (local) and displayed in spool. In the PRINT SETTINGS I don't see FORMAT for 65 X 1023. Do I need to create one? If yes, how to create it? Or if there is any other way go get all the cloumns in one row of a ALV output.
Thank you.Hi,
<b>Change the font on the X_65_255 paper size :-</b>
This tip was taken from the SAP-R3 mailing list, <b>and is by Sheila Tichener</b>.
If you need to use a large line-size to get all your data in I know the sap version of X_65_255 for hp laser jet 4 gives an unnecessarily small font . You can change it in SPAD (or copy to Y_65_255) as follows.
<b>Example:</b>
Choose Device formats, Change
hplj4
x_65_255
Execute
Double click on printer initialisation
Change from:-
# select Courier 16.67 CPI normal font
e(s0p16.67h0s0b4099T
to:-
# select arial 24 cpi 15 point normal
e(s0p24h15v0s0b16602T
Also bold as follows:-
# select arial 24 cpi 15 point bold
e(s0p24h15v0s3b16602T
Also the error you get when changing a format in the output screen is only a warning and can be overidden by pressing the green tick.
If the sap standard formats don't fit your requirements you can create your own eg Y_65_170 . It seems to be the numbers in the name that somehow triggers which one the abap chooses
Regards
Sudheer -
How to get this output format in ALV report
Hi.
Can any one pls let me know how to get the following output format in ALV report.Following are the outputfields
companycode location position approver
300 800 01 watson
null null 03 candy
null null 04 smith
null null 05 michael
one empty line after this again
300 800 01 ryant
null null 02 gyan
null null 03 fermi
null null 04 ogata
*Note: Null indicates empty space .( i.e I need to get empty space in output where ever null is there.)
Thanks in advance.
Kind Regards,
samiulla.hi,
u can use 'REUSE_ALV_LIST_DISPLAY'
or
'REUSE_ALV_GRID_DISPLAY' function modules.
SAMPLE CODE :
*& Report Y101982CHD
* TABLES
TABLES: vbak. " standard table
* Type Pools *
TYPE-POOLS: slis.
* Global Structure Definitions *
*-- Structure to hold data from table CE1MCK2
TYPES: BEGIN OF tp_itab1,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
werks LIKE vbap-werks,
lgort LIKE vbap-lgort,
END OF tp_itab1.
*-- Data Declaration
DATA: t_itab1 TYPE TABLE OF tp_itab1.
DATA : i_fieldcat TYPE slis_t_fieldcat_alv.
* Selection Screen *
*--Sales document-block
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
SELECTION-SCREEN END OF BLOCK b1.
*--Display option - block
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETERS: alv_list RADIOBUTTON GROUP g1,
alv_grid RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b2.
*file download - block
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
PARAMETERS: topc AS CHECKBOX,
p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b3.
* Initialization. *
* At Selection Screen *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_DXFILENAME_4_DYNP'
EXPORTING
dynpfield_filename = 'P_FILE'
dyname = sy-cprog
dynumb = sy-dynnr
filetype = 'P' "P-->Physical
location = 'P' "P Presentation Srever
server = space.
AT SELECTION-SCREEN ON s_vbeln.
PERFORM vbeln_validate.
* Start Of Selection *
START-OF-SELECTION.
*-- Fetching all the required data into the internal table
PERFORM select_data.
* End Of Selection *
END-OF-SELECTION.
IF t_itab1[] IS NOT INITIAL.
IF topc IS NOT INITIAL.
PERFORM download.
MESSAGE 'Data Download Completed' TYPE 'S'.
ENDIF.
PERFORM display.
ELSE.
MESSAGE 'No Records Found' TYPE 'I'.
ENDIF.
* Top Of Page Event *
TOP-OF-PAGE.
*& Form : select_data
* Description : Fetching all the data into the internal tables
* parameters : none
FORM select_data .
SELECT vbeln
posnr
werks
lgort
INTO CORRESPONDING FIELDS OF TABLE t_itab1
FROM vbap
WHERE vbeln IN s_vbeln.
IF sy-subrc <> 0.
MESSAGE 'Enter The Valid Sales Document Number'(t04) TYPE 'I'.
EXIT.
ENDIF.
ENDFORM. " select_data
*& Form : display
* decription : to display data in given format
* parameters : none
FORM display .
IF alv_list = 'X'.
PERFORM build_fieldcat TABLES i_fieldcat[]
USING :
*-Output-field Table Len Ref fld Ref tab Heading Col_pos
'VBELN' 'T_ITAB1' 10 'VBAP' 'VBELN' '' 1,
'POSNR' 'T_ITAB1' 6 'VBAP' 'POSNR' '' 2,
'WERKS' 'T_ITAB1' 4 'VBAP' 'WERKS' '' 3,
'LGORT' 'T_ITAB1' 4 'VBAP' 'LGORT' '' 4.
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'*
*EXPORTING*
*i_callback_program = sy-repid*
** i_callback_pf_status_set = c_pf_status*
*i_callback_user_command = 'USER_COMMAND '*
** it_events = t_alv_events[]*
*it_fieldcat = i_fieldcat[]*
*TABLES*
*t_outtab = t_itab1[]*
*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.*
ENDIF.
IF alv_grid = 'X'.
PERFORM build_fieldcat TABLES i_fieldcat[]
USING :
*-Output-field Table Len Ref fld Ref tab Heading Col_pos
'VBELN' 'T_ITAB1' 10 'VBAP' 'VBELN' '' 1,
'POSNR' 'T_ITAB1' 6 'VBAP' 'POSNR' '' 2,
'WERKS' 'T_ITAB1' 4 'VBAP' 'WERKS' '' 3,
'LGORT' 'T_ITAB1' 4 'VBAP' 'LGORT' '' 4.
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'*
*EXPORTING*
*i_callback_program = sy-repid*
** i_callback_pf_status_set = c_pf_status*
*i_callback_user_command = 'USER_COMMAND '*
*it_fieldcat = i_fieldcat*
*TABLES*
*t_outtab = t_itab1[]*
*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.*
*ENDIF.*
ENDFORM. " display
*& Form : vbeln_validate
* description : to validate sales document number
* parameters : none
FORM vbeln_validate .
DATA: l_vbeln TYPE vbak-vbeln.
SELECT SINGLE vbeln
FROM vbak
INTO l_vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc NE 0.
MESSAGE 'ENTER THE VALID SALES DOCUMENT NO:' TYPE 'I'.
EXIT.
ENDIF.
ENDFORM. " vbeln_validate
*& Form :build_fieldcat
* Description : This routine fills field-catalogue
* Prameters : none
FORM build_fieldcat TABLES fpt_fieldcat TYPE slis_t_fieldcat_alv
USING fp_field TYPE slis_fieldname
fp_table TYPE slis_tabname
fp_length TYPE dd03p-outputlen
fp_ref_tab TYPE dd03p-tabname
fp_ref_fld TYPE dd03p-fieldname
fp_seltext TYPE dd03p-scrtext_l
fp_col_pos TYPE sy-cucol.
*-- Local data declaration
DATA: wl_fieldcat TYPE slis_fieldcat_alv.
*-- Clear WorkArea
wl_fieldcat-fieldname = fp_field.
wl_fieldcat-tabname = fp_table.
wl_fieldcat-outputlen = fp_length.
wl_fieldcat-ref_tabname = fp_ref_tab.
wl_fieldcat-ref_fieldname = fp_ref_fld.
wl_fieldcat-seltext_l = fp_seltext.
wl_fieldcat-col_pos = fp_col_pos.
*-- Update Field Catalog Table
APPEND wl_fieldcat TO fpt_fieldcat.
ENDFORM. "build_fieldcat
*& Form : download
* description : To Download The Data
* Parameters : none
FORM download .
DATA: l_file TYPE string.
l_file = p_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_file
filetype = 'ASC'
TABLES
data_tab = t_itab1
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " download
HOPE IT WILL HELP YOU
REGARDS
RAHUL SHARMA -
Getting runtime Error 'UC_OBJECTS_NOT_CHARLIKE' for ALV grid
Hi,
When I call method SET_TABLE_FOR_FIRST_DISPLAY of ALV I get runtime error 'UC_OBJECTS_NOT_CHARLIKE'.
Actually i have set in the fieldcatalog the field 'CHK' of internal table as checkbox.
wa_fcat-fieldname = 'CHK' .
wa_fcat-coltext = 'Clear' .
wa_fcat-seltext = 'Clear' .
wa_fcat-checkbox = 'X' .
wa_fcat-edit = 'X' .
APPEND wa_fcat to p_lt_fieldcatalog .
Field CHK is of type c.
when i dont set the field as checkbox, I stop getting the error.
Please find a solution.
regards,
auroRelevant parts of code are:
Data Declaration:
types: begin of tt_revenue_det,
chk type c,
budat like zefit0006-zefibudat,
racct_txt like skat-txt50,
amount like zefit0006-zefihsl,
pbar_txt like tgsbt-gtext,
sgtxt like zefit0006-zefisgtxt,
costcentertxt like cskt-ktext,
bar_txt like skat-txt50,
doctype like zefit0006-zefiblart,
ch_flag type c,
end of tt_revenue_det,
data: gt_revenue_det type table of tt_revenue_det.
FIELD CATALOG
*& Form set_fieldcatalog_rev_det
text
-->P_LT_FIELDCATALOG text
form set_fieldcatalog_rev_det using p_lt_fieldcatalog type lvc_t_fcat.
data:wa_fcat type lvc_s_fcat.
wa_fcat-fieldname = 'P_GT_REVENUE_DET-CHK' .
wa_fcat-coltext = 'Clear' .
wa_fcat-seltext = 'Clear' .
wa_fcat-checkbox = 'X' .
wa_fcat-edit = 'X' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'BUDAT' .
wa_fcat-coltext = 'Posting Date' .
wa_fcat-seltext = 'Posting Date' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'RACCT_TXT' .
wa_fcat-coltext = 'Account Item Text' .
wa_fcat-seltext = 'Account Item Text' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'AMOUNT' .
wa_fcat-coltext = 'Amount' .
wa_fcat-seltext = 'Amount' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'PBAR_TXT' .
wa_fcat-coltext = 'Partner Business Area' .
wa_fcat-seltext = 'Partner Business Area' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'SGTXT' .
wa_fcat-coltext = 'Item Text' .
wa_fcat-seltext = 'Item Text' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'COSTCENTERTXT' .
wa_fcat-coltext = 'Cost Center' .
wa_fcat-seltext = 'Cost Center' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'BAR_TXT' .
wa_fcat-coltext = 'Business Area' .
wa_fcat-seltext = 'Business Area' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'DOCTYPE' .
wa_fcat-coltext = 'Type' .
wa_fcat-seltext = 'Type' .
APPEND wa_fcat to p_lt_fieldcatalog .
wa_fcat-fieldname = 'CH_FLAG' .
wa_fcat-coltext = 'Split' .
wa_fcat-seltext = 'Split' .
APPEND wa_fcat to p_lt_fieldcatalog .
endform. " set_fieldcatalog_rev_det
CREATE ALV
*& Form create_alv_revenue_det
text
-->P_GT_REVENUE_DET text
form create_alv_revenue_det using p_gt_revenue_det.
ALV related data declaration
DATA: lf_layout TYPE lvc_s_layo, "alv layout
lt_fieldcatalog type table of lvc_s_fcat, "field catalog internal table
wa_fieldcatalog type lvc_s_fcat. "work area for field catalog
create alv only if container is initial
IF G_CUSTOM_CONTAINER_REV_DET IS INITIAL.
lf_layout-no_toolbar = 'X'. " no toolbar
lf_layout-sel_mode = 'B'.
populate field catalog
perform set_fieldcatalog_rev_det using lt_fieldcatalog.
create instance of container class
CREATE OBJECT G_CUSTOM_CONTAINER_REV_DET
EXPORTING CONTAINER_NAME = G_CONTAINER_REV2.
create instance of alv grid class
CREATE OBJECT GR_ALVGRID_REV_DET
EXPORTING I_PARENT = G_CUSTOM_CONTAINER_REV_DET.
call method to display table in alv grid by passing layout and fieldcatalog
CALL METHOD GR_ALVGRID_REV_DET->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
is_layout = lf_layout
CHANGING
IT_OUTTAB = p_gt_revenue_det
IT_FIELDCATALOG = lt_fieldcatalog.
ENDIF.
endform. " create_alv_revenue_det -
List selections using OO in ALV reporting
Hi - does anyone know how to print the selection screen options when using ALV OO ?
Am using class/method below - haven't used OO very much so don't know this. Thanks !!
CALL METHOD cl_gui_alv_grid->set_table_for_first_display
EXPORTING
i_save = 'A'
is_variant = v_variant2
is_layout = w_layout
i_default = c_yes
CHANGING
it_outtab = i_invoice_tab
it_fieldcatalog = i_fieldcat.Hello Leslie
Your task is not at all related to ABAP-OO. Below is an example of how to print the selection screen options:
*& Report ZUS_SDN_PRINT_SELOPTS
REPORT ZUS_SDN_PRINT_SELOPTS.
tables: kna1.
data:
gt_selopts type standard table of rsparams.
parameters:
p_tab type tabname default 'KNA1'.
select-options:
o_kunnr for kna1-kunnr.
start-of-selection.
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = syst-cprog
* IMPORTING
* SP =
tables
selection_table = gt_selopts
EXCEPTIONS
NOT_FOUND = 1
NO_REPORT = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
REPORT = syst-cprog
SELTEXT = 'X'
* DYN_RANGE =
* NEWPAGE = 'X'
* SCREENNR = '1000'
TABLES
sel_tab = gt_selopts
EXCEPTIONS
SEL_TAB_EMPTY = 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.
Regards
Uwe
Maybe you are looking for
-
I downloaded tv show but they do not show up on my ipod
I downloaded a tv show but they do not show up on my ipod
-
How can I use the same master catalog in Lightroom 5 on my PC and Mac?
I have been using a PC with a Sinology NAS for picture storage. The master catalog has been generated from this PC. I would like to use the same catalog on my Macbook Pro. Is there a way to sync the two computers using one common catalog?
-
Help! I have and issue with my tabbed panels
Hi, I have a problem with my spry tabbed panels. The default tab is set to be the 1st tab, when I move to 2nd tab and navigate through the content, as the page refreshes, and before it is fully loaded it shows the content of the first tab for about 2
-
Has anyone used this 3000mAh battery case?
Hey guys, check this out. I love my iPhone4 and compared with other phones Apple did a great job with battery life, but I'm a traveler and sometimes I take long runs without getting a chance to charge the phone. Looking into buying this battery case
-
Just received ipad in mail. Started to set up. When it comes to wi fi network, there is our home network showing. I attempt to choose it by touching it. Nothing else happens. Cannot proceed with ipad set up. Why?