An ABAP report with ALV in EP6
I have a report done in ABAP R/3, selection screen and ALV.
now, I have to put it in EP. I allready search in the forum and I found these options:
1- Create a Transaction iView, but the problem is that is not showed in the browser of portal, right ?
2- Create a BSP, and create a BSP iView, but this option is showed "nicely" in the EP ?
3- I wanna know if it´s easy create a report with the tool Visual Composer.
4- There is another option besides usign Web Dynpro Java ?
Any info about these options would be very appreciated.
Thx
Hi Rodrigo,
Creating and deploying an application for displaying ABAP R/3 report using Visual Composer is quite easy as no coding involves.
Also u can create the same using Web Dynpro, but for that u have to configure SLD in J2ee, get the model in Web Dynpro and requires a bit of coding.
So the best solution is to go for VC.
If u need any help on VC revert back to me.
With regards,
Amol.
Similar Messages
-
PO receiver report with ALV GRID
Hello abpers,
Can anyone gimme some guidance or sample code how to generate the PO receiver report with alv....
input fields include..
Vendor number, material number, PO number, Purchasing group/Buyer, PO creation date, PO delivery date, PO created by
I should get the out put with the fields....
PO, PO date, PO group/buyer, purchasing org, vendor, PO line, order quantity, Unit, Material, Description, ST LOC SHELF BIN, ST LOCBULK BIN, QTY TO BE RECV, QTY RECEVED.
Thanks alot for your anticipation....
SRIHere is a very simple ALV program which shows a basic skeleton of an ALV program, you simply get the data from the database(usually passed on some parameters from the selection screen) and build the FC, then call the function module.
report zrich_0003 .
* Global ALV Data Declarations
type-pools: slis.
* Internal Tables
data: begin of ialv occurs 0,
test1(10) type c,
test2(10) type c,
end of ialv.
data: fieldcat type slis_t_fieldcat_alv.
start-of-selection.
perform get_data.
perform call_alv.
* Form GET_DATA
form get_data.
ialv-test1 = 'ABC'.
ialv-test2 = 'DEF'.
append ialv.
ialv-test1 = 'GHI'.
ialv-test2 = 'JKL'.
append ialv.
ialv-test1 = '123'.
ialv-test2 = '456'.
append ialv.
endform. "GET_DATA
* CALL_ALV
form call_alv.
perform build_field_catalog.
* Call ABAP List Viewer (ALV)
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
it_fieldcat = fieldcat
tables
t_outtab = ialv.
endform. "CALL_ALV
* BUILD_FIELD_CATALOG
form build_field_catalog.
clear fieldcat. refresh fieldcat.
data: tmp_fc type slis_fieldcat_alv.
clear tmp_fc.
tmp_fc-reptext_ddic = 'Test1'.
tmp_fc-fieldname = 'TEST1'.
tmp_fc-tabname = 'IALV'.
tmp_fc-outputlen = '10'.
append tmp_fc to fieldcat.
clear tmp_fc.
tmp_fc-reptext_ddic = 'Test2'.
tmp_fc-fieldname = 'TEST2'.
tmp_fc-tabname = 'IALV'.
tmp_fc-outputlen = '10'.
append tmp_fc to fieldcat.
endform. "BUILD_FIELD_CATALOG
The use of selection screen is not use in this program, I assume that you know how to do that.
Regards,
Rich Heilman -
Hello Experts,
i had one new development from Scratch
one thing is that object already developed, but the customer not intrested that output,
he want the output to be changed.it is normal report with ALV's.
main task of this object is to change the visibility.
Present output is in Tree structure mode..Hi
Well u can use the Fm REUSE_ALV_HIERSEQ_LIST_DISPLAY
Or go to tx se38 and search programs with BCALVTREE
you can find some examples.
Look the tx DWDM.
Regards
Gregory -
GL Account analysis report with ALV Grid control
Hi Everyone,
I am looking for a GL Account analysis report with ALV Grid Control.
Can I get sample code for this report.
Thank you
PrasadHi Rob,
Actually, I am searching for a Report which gives GL account analysis.
If anybody can throw more light on this ...it would be great.
Which Tables and fields i should refer for this report.
Thanks -
Report with ALV tree and ALV list?
I need to create a report with layout as same as this one
[http://trangiegie.com/MyFile/output.JPG]
It looks like a report with combination of ALV tree and list. The tree works like a navigation bar. Wonder if there are any demo programs like this. Will appreciate any help.For Tree alone - You can check program : BCALV_TREE_02
Program Name Report title
BCALV_GRID_DND_TREE ALV Grid: Drag and Drop with ALV Tree
BCALV_GRID_DND_TREE_SIMPLE ALV GRID: Drag and drop with ALV tree (simple)
BCALV_TEST_COLUMN_TREE Program BCALV_TEST_COLUMN_TREE
BCALV_TEST_SIMPLE_TREE Program BCALV_TEST_SIMPLE_TREE
BCALV_TREE_01 ALV Tree Control: Build Up the Hierarchy Tree
BCALV_TREE_02 ALV Tree Control: Event Handling
BCALV_TREE_03 ALV Tree Control: Use an Own Context Menu
BCALV_TREE_04 ALV Tree Control: Add a Button to the Toolbar
BCALV_TREE_05 ALV Tree Control: Add a Menu to the Toolbar
BCALV_TREE_06 ALV tree control: Icon column and icon for nodes/items
BCALV_TREE_DEMO Demo for ALV tree control
BCALV_TREE_DND ALV tree control: Drag & Drop within a hierarchy tree
BCALV_TREE_DND_MULTIPLE ALV tree control: Drag & Drop within a hierarchy tree
BCALV_TREE_EVENT_RECEIVER Include BCALV_TREE_EVENT_RECEIVER
BCALV_TREE_EVENT_RECEIVER01
BCALV_TREE_ITEMLAYOUT ALV Tree: Change Item Layouts at Runtime
BCALV_TREE_MOVE_NODE_TEST Demo for ALV tree control
BCALV_TREE_SIMPLE_DEMO Program BCALV_TREE_SIMPLE_DEMO
BCALV_TREE_VERIFY Verifier for ALV Tree and Simple ALV Tree -
Background processing for ABAP report with selection screen
Hi ABAP Gurus,
I m facing a strange problem in scheduling a background job for my report with a selection screen. I have a variant for the report.
I scheduled a job, but it seems to be not doing anything though all the system resources are available. The job overview shows "Acive" for the job. The job is neither stopping anything, it is just sitting there In SM50, the status shows "On Hold".
Any ideas/comments on the problem and how this can be overcome?
Qucik replies and solutions will be highly appreciated as this is a crucial part for a go-live project.
Thanks in advance.
Shivani.Yes. My report has a selection-screen which requires user input. But I have created a variant for the report and trying to run it in background using this variant. But facing this problem.
Strange thing is, instead of the usual SM36/SM37 option where we schedule and monitor background jobs, this option does not work for my report.
But I tried through SE38, and from my selection screen I selected "Schedule background job" and "run immediately" option, and this works. Though I still use SM37 to monitor this background job.
I have never faced such a situation before.
Any hints/tips why this happens and how this can be overcome in the future?
Thanks in advance.
Shivani. -
Hi,
i just wanted to know how to create interactive reports with check box and whether we can use av with interactive reports.hi,
this the code for interactiv ALV
*& Report ZINT_ALV
REPORT zint_alv.
TYPE-POOLS:slis.
TABLES:mara,
makt,
mseg.
DATA:BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF itab.
DATA:BEGIN OF itab1 OCCURS 0,
mblnr LIKE mseg-mblnr,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
werks LIKE mseg-werks,
END OF itab1.
DATA:BEGIN OF itab2 OCCURS 0,
mblnr LIKE mseg-mblnr,
budat LIKE mkpf-budat,
END OF itab2.
DATA:fcat TYPE slis_t_fieldcat_alv,
fcat1 TYPE slis_t_fieldcat_alv,
fcat2 TYPE slis_t_fieldcat_alv,
eve TYPE slis_t_event,
eve1 TYPE slis_t_event.
DATA:t_mat LIKE mara-matnr,
t_doc LIKE mseg-mblnr,
s_mat LIKE mara-matnr,
g_repid LIKE sy-repid,
subtot TYPE slis_t_sortinfo_alv,
g_subtot LIKE LINE OF subtot.
SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:mat FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK blk1.
INITIALIZATION.
PERFORM build_fcat USING fcat.
PERFORM build_eve.
START-OF-SELECTION.
PERFORM get_data.
PERFORM dis_data.
*& Form build_fcat
text
-->T_FCAT text
FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.
DATA:wa_fcat TYPE slis_fieldcat_alv.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-ref_fieldname = 'MATNR'.
wa_fcat-ref_tabname = 'MARA'.
wa_fcat-seltext_m = 'Material'.
wa_fcat-input = ' '.
wa_fcat-edit = 'X'.
wa_fcat-input = 'X'.
wa_fcat-key = 'X'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MAKTX'.
wa_fcat-seltext_m = 'Description'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
ENDFORM. "build_fcat
*& Form build_eve
text
FORM build_eve.
DATA:t_eve TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve
EXCEPTIONS
LIST_TYPE_WRONG = 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.
ENDFORM. "build_eve
*& Form get_data
text
FORM get_data.
SELECT maramatnr maktmaktx INTO CORRESPONDING FIELDS OF TABLE itab
FROM mara INNER JOIN makt
ON maramatnr = maktmatnr
WHERE mara~matnr IN mat.
ENDFORM. "get_data
*& Form dis_data
text
FORM dis_data.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND'
i_grid_title = 'Interactive ALV'
it_fieldcat = fcat
it_events = eve
TABLES
t_outtab = itab
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.
ENDFORM. "dis_data
*& Form user_command
text
-->U_COM text
FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
CLEAR fcat1.
CASE u_com.
WHEN '&IC1'.
READ TABLE itab INDEX sel_field-tabindex.
IF sel_field-fieldname = 'MATNR'.
IF sy-subrc = 0.
t_mat = itab-matnr.
PERFORM build_cat1 USING fcat1.
PERFORM build_eve1.
PERFORM get_data1.
PERFORM dis_data1.
ENDIF.
ENDIF.
SET PARAMETER ID 'MAT' FIELD t_mat.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "user_command
*& Form build_fcat1
text
-->T_FCAT1 text
FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.
DATA:wa_fcat1 TYPE slis_fieldcat_alv.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MBLNR'.
wa_fcat1-seltext_m = 'Material Doc.'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MENGE'.
wa_fcat1-seltext_m = 'Quantity'.
wa_fcat1-do_sum = 'X'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MEINS'.
wa_fcat1-seltext_m = 'UOM'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'WERKS'.
wa_fcat1-seltext_m = 'Plant'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
g_subtot-spos = 1.
g_subtot-fieldname = 'MBLNR'.
g_subtot-tabname = 'ITAB1'.
g_subtot-up = 'X'.
g_subtot-group = 'X'.
g_subtot-subtot = 'X'.
g_subtot-expa = 'X'.
APPEND g_subtot TO subtot.
g_subtot-spos = 2.
g_subtot-fieldname = 'MENGE'.
g_subtot-tabname = 'ITAB1'.
g_subtot-up = 'X'.
g_subtot-group = 'X'.
g_subtot-subtot = 'X'.
g_subtot-expa = 'X'.
APPEND g_subtot TO subtot.
ENDFORM. "build_fcat1
*& Form build_eve1
text
FORM build_eve1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve1
EXCEPTIONS
list_type_wrong = 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.
ENDFORM. "build_eve1
*& Form get_data1
text
FORM get_data1.
SELECT mblnr menge meins werks FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab1
WHERE matnr = t_mat.
ENDFORM. "get_data1
*& Form dis_data1
text
FORM dis_data1.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND1'
it_fieldcat = fcat1
it_events = eve1
i_save = 'A'
it_sort = subtot
TABLES
t_outtab = 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.
ENDFORM. "dis_data1
*& Form user_command1
text
-->U_COM1 text
-->SEL_FIELD text
FORM user_command1 USING u_com1 LIKE sy-ucomm sel_field TYPE slis_selfield.
CASE u_com1.
WHEN '&IC1'.
READ TABLE itab1 INDEX sel_field-tabindex.
IF sy-subrc = 0.
t_doc = itab1-mblnr.
PERFORM build_cat2 USING fcat2.
PERFORM get_data2.
PERFORM dis_data2.
ENDIF.
ENDCASE.
ENDFORM. "user_command
*& Form build_cat2
text
-->P_FCAT1 text
FORM build_cat2 USING t_fcat2 TYPE slis_t_fieldcat_alv.
DATA:wa_fcat2 TYPE slis_fieldcat_alv.
wa_fcat2-tabname = 'ITAB2'.
wa_fcat2-fieldname = 'MBLNR'.
wa_fcat2-seltext_m = 'Material Doc.'.
APPEND wa_fcat2 TO t_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'ITAB2'.
wa_fcat2-fieldname = 'BUDAT'.
wa_fcat2-seltext_m = 'Material Date'.
APPEND wa_fcat2 TO t_fcat2.
CLEAR wa_fcat2.
ENDFORM. " build_cat2
*& Form get_data2
text
--> p1 text
<-- p2 text
FORM get_data2 .
SELECT mblnr budat FROM mkpf
INTO CORRESPONDING FIELDS OF TABLE itab2
WHERE mblnr = t_doc.
ENDFORM. " get_data2
*& Form dis_data2
text
--> p1 text
<-- p2 text
FORM dis_data2 .
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
it_fieldcat = fcat2
i_save = 'A'
TABLES
t_outtab = itab2
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.
ENDFORM. " dis_data2
reward if useful... -
Hi All,
I am a beginner to OO Abap & Looking for some real examples like declaring Internal tables ,using classes as parameters for methods etc.
Can Some one Post some ABAP reports regarding MM as Examples using OO ABAP.
Regards,
Ravi SHi,
Check the following code:
TABLES : VBAK,VBAP.
TYPES : BEGIN OF ST_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
AUART TYPE VBAK-AUART,
END OF ST_VBAK.
TYPES : BEGIN OF ST_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
MATKL TYPE VBAP-MATKL,
ARKTX TYPE VBAP-ARKTX,
PSTYV TYPE VBAP-PSTYV,
END OF ST_VBAP.
TYPES : BEGIN OF ST_FINAL,
VBELN TYPE VBAK-VBELN,
POSNR TYPE VBAP-POSNR,
ERDAT TYPE VBAK-ERDAT,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
AUART TYPE VBAK-AUART,
MATNR TYPE VBAP-MATNR,
MATKL TYPE VBAP-MATKL,
ARKTX TYPE VBAP-ARKTX,
PSTYV TYPE VBAP-PSTYV,
END OF ST_FINAL.
SELECT-OPTIONS : S_VBAK FOR VBAK-VBELN.
CLASS SALES1 DEFINITION.
PUBLIC SECTION.
METHODS : GET_DATA,
POPULATE_DATA,
DISPLAY_DATA.
DATA : IT_VBAK TYPE STANDARD TABLE OF ST_VBAK,
IT_VBAP TYPE STANDARD TABLE OF ST_VBAP,
IT_FINAL TYPE STANDARD TABLE OF ST_FINAL,
WA_VBAK LIKE LINE OF IT_VBAK,
WA_VBAP LIKE LINE OF IT_VBAP,
WA_FINAL LIKE LINE OF IT_FINAL.
ENDCLASS.
CLASS SALES1 IMPLEMENTATION.
METHOD GET_DATA.
SELECT VBELN ERDAT AUDAT VBTYP AUART FROM VBAK INTO
TABLE IT_VBAK WHERE VBELN in S_VBAK.
IF NOT IT_VBAK[] IS INITIAL.
SELECT VBELN POSNR MATNR MATKL ARKTX PSTYV FROM VBAP
INTO TABLE IT_VBAP
FOR ALL ENTRIES IN IT_VBAK
WHERE VBELN = IT_VBAK-VBELN.
ENDIF.
ENDMETHOD.
METHOD POPULATE_DATA.
LOOP AT IT_VBAK INTO WA_VBAK.
READ TABLE IT_VBAP INTO WA_VBAP WITH KEY VBELN = WA_VBAK-VBELN.
IF SY-SUBRC = 0.
WA_FINAL-VBELN = WA_VBAK-VBELN.
WA_FINAL-POSNR = WA_VBAP-POSNR.
WA_FINAL-ERDAT = WA_VBAK-ERDAT.
WA_FINAL-AUDAT = WA_VBAK-AUDAT.
WA_FINAL-VBTYP = WA_VBAK-VBTYP.
WA_FINAL-AUART = WA_VBAK-AUART.
WA_FINAL-MATNR = WA_VBAP-MATNR.
WA_FINAL-MATKL = WA_VBAP-MATKL.
WA_FINAL-ARKTX = WA_VBAP-ARKTX.
WA_FINAL-PSTYV = WA_VBAP-PSTYV.
APPEND WA_FINAL TO IT_FINAL.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD DISPLAY_DATA.
LOOP AT IT_FINAL INTO WA_FINAL.
WRITE :/ WA_FINAL-VBELN ,
WA_FINAL-POSNR ,
WA_FINAL-ERDAT,
WA_FINAL-AUDAT ,
WA_FINAL-VBTYP ,
WA_FINAL-AUART ,
WA_FINAL-MATNR ,
WA_FINAL-MATKL ,
WA_FINAL-ARKTX ,
WA_FINAL-PSTYV .
ENDLOOP.
ENDMETHOD .
ENDCLASS.
START-OF-SELECTION.
DATA : OBJ TYPE REF TO SALES1.
CREATE OBJECT OBJ.
CALL METHOD OBJ->GET_DATA.
CALL METHOD OBJ->POPULATE_DATA.
CALL METHOD OBJ->DISPLAY_DATA.
Regards,
Bhaskar -
ABAP Report with INCLUDE for subroutine.
Dear All,
I have ABAP report list.
I have the following code:
SELECT-OPTIONS: s_date FOR oijne-astdtt.
PARAMETERS : p_time LIKE sy-uzeit DEFAULT sy-uzeit.
SELECT-OPTIONS : s_soldto FOR oijnomi-soldto.
in my program i have INCLUDE ZER0100F. as incude for subroutine form.
If i put the subroutine in the include and in side this subroutine i am using the s_date or s_soldto.
It gives me error.
The field "S_DATE" is unknownHi,
There is no need to use Using or tables since the select option is global and will be accessible in your routine.
E.g:
TABLES kna1.
SELECT-OPTIONS: s_date FOR sy-datum.
PARAMETERS : p_time LIKE sy-uzeit DEFAULT sy-uzeit.
SELECT-OPTIONS : s_soldto FOR kna1-kunnr.
START-OF-SELECTION.
PERFORM f_routine.
FORM f_routine.
WRITE : 'low :' , s_soldto-low.
ENDFORM. "f_routine
Regards.
Edited by: Dev Parbutteea on Apr 29, 2009 8:05 AM -
Code for hr-abap report in alv display
Hi Gurus,
I am new to hr-abap and I want some sample code to display a hr report in an alv.
Thanks,
Raj.This is one such...
REPORT yh_rep_hr_certified_instructor MESSAGE-ID yh_messages NO STANDARD
PAGE
HEADING .
Program : YH_REP_HR_CERTIFIED_INSTRUCTOR *
Description : Certified Instructor Eligibility Criteria *
TABLES *
TABLES :hrp1000 ,hrp1001, pa0000.
TYPE-POOLS *
*Type Pool for ALV display
TYPE-POOLS :slis. " Global types for generic cunning components
INTERNAL TABLES *
*Internal Table to keep Selection Screen field values
DATA : BEGIN OF t_validation OCCURS 0.
INCLUDE STRUCTURE dynpread.
DATA END OF t_validation.
*Internal Table for Business Event Groups
DATA : BEGIN OF t_bgrp OCCURS 0,
objid TYPE hrobjid,
blank(1),
stext TYPE stext,
END OF t_bgrp.
*Internal Table for Business Event Type IDs with text for selected Event
*GROUPS
DATA : BEGIN OF t_btyp OCCURS 0,
objid TYPE hrobjid,
blank(1),
stext TYPE stext,
END OF t_btyp.
*Internal Table for Business Event Type IDs for selected Event Groups
DATA : BEGIN OF t_eventtypelist OCCURS 0,
objid TYPE hrobjid,
END OF t_eventtypelist.
*Internal table to store the business Groups
DATA : BEGIN OF t_group OCCURS 0,
objid LIKE hrp1001-objid,
sobid LIKE hrp1001-sobid,
sclas LIKE hrp1001-sclas,
END OF t_group.
*Internal table to hold the business event group and/or bus. event types
DATA : BEGIN OF t_eventgroup OCCURS 0,
objid LIKE hrp1001-objid,
END OF t_eventgroup.
*Internal Table for FieldCatalog used for ALV Display
DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
*Work Area for Checking Business Event Group Validity
DATA: BEGIN OF wa_bgrp,
objid TYPE hrobjid,
stext TYPE stext,
END OF wa_bgrp.
*Internal table to fetch object id for Qualification
DATA: BEGIN OF t_objid OCCURS 0,
objid TYPE hrp1000-objid,
sobid TYPE hrp1001-sobid,
sobid_copy TYPE hrp1001-objid,
END OF t_objid.
*Internal table to fetch Id of related object
*Fetches Pernr of Certified Instructors
DATA: BEGIN OF t_sobid OCCURS 0,
objid TYPE hrp1000-objid,
sobid TYPE hrp1001-sobid,
adatanr TYPE hrpad31-adatanr,
sobid_copy TYPE hrp1001-objid,
END OF t_sobid.
*Internal table to fetch skill rating
*of the Instructor
DATA: BEGIN OF t_prof OCCURS 0,
adatanr TYPE hrpad31-adatanr,
chara TYPE hrpad31-chara,
END OF t_prof.
*Internal table to fetch grade
*of the Insturctor
DATA: BEGIN OF t_grade OCCURS 0,
pernr TYPE pa0008-pernr,
yysalgr TYPE pa0008-yysalgr,
END OF t_grade.
*Internal table which contains all information about the Person like
*Name Project Project Manager Name Account and Vertical Name
DATA: t_projdetails TYPE zbapi_projdetails OCCURS 0 WITH HEADER LINE.
*Final Internal table which contains all information
*about the Instructors
DATA: BEGIN OF t_final OCCURS 0,
empid TYPE pa0000-pernr,
empname(84) TYPE c,
grade TYPE pa0008-yysalgr,
atndttt(3) TYPE c,
sklrate TYPE hrpad31-chara,
pgmng TYPE pa0001-ename,
accname TYPE hrp1000-stext,
vertname TYPE hrp1000-stext,
END OF t_final.
VARIABLES *
*ALV layout
DATA: gs_layout TYPE slis_layout_alv, "alvtot test
gt_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
gs_variant LIKE disvariant, "For Layout
g_save. "For Layout Save
DATA: w_pos TYPE i VALUE 1, " Position of Fields in ALV
w_sort TYPE slis_t_sortinfo_alv, "ITab for Sorting Options
w_flag TYPE i,
w_repid TYPE sy-repid,
w_lineno TYPE sy-tabix.
DATA: l_short TYPE hrp1000-short. "variable to check the heirarchy
SELECTION-SCREEN DESIGN *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. "NO INTERVALS .
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) text-009 MODIF ID xyz.
PARAMETERS : p_bgrp TYPE hrobjid OBLIGATORY,
p_bgrp1 TYPE stext .
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS :s_btyp FOR hrp1000-objid OBLIGATORY NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION *
INITIALIZATION.
*Assign Program Name into a variable
w_repid = sy-repid.
*Build layout for list display
gs_layout-detail_popup = 'X'.
*To get All Events in TOP-OF-PAGE
perform eventtab_build using gt_events[].
gs_variant-report = w_repid.
g_save = 'A'.
AT SELECTION SELECTION *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bgrp.
PERFORM get_bgrp.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_btyp-low.
IF NOT p_bgrp IS INITIAL .
PERFORM get_btyp USING 'l'.
ELSE .
MESSAGE s999 WITH text-e09.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_btyp-high.
IF NOT p_bgrp IS INITIAL .
PERFORM get_btyp USING 'h'.
ELSE .
MESSAGE s999 WITH text-e09.
ENDIF.
AT SELECTION-SCREEN ON p_bgrp.
SELECT SINGLE objid stext
FROM hrp1000
INTO wa_bgrp
WHERE objid = p_bgrp AND
otype = 'L' AND
plvar = '01' AND
( short = 'ROLE' OR
short = 'TECH_PROGRAM' ).
IF sy-subrc EQ 0.
p_bgrp1 = wa_bgrp-stext.
ELSE.
MESSAGE e999 WITH text-e09.
ENDIF.
AT SELECTION-SCREEN ON s_btyp.
CLEAR : t_eventtypelist, t_group, t_eventgroup.
REFRESH : t_eventtypelist, t_group, t_eventgroup.
CLEAR : w_flag.
*Fetch all the subordinates under given Event Group - L/D
SELECT objid
sobid
sclas
FROM hrp1001
INTO TABLE t_group
WHERE objid = p_bgrp
AND plvar = '01'
AND rsign = 'B'
AND relat = '003'
AND ( sclas = 'L' OR sclas = 'D' ).
WHILE w_flag <> 1.
PERFORM get_objids.
ENDWHILE.
IF NOT t_eventtypelist[] IS INITIAL.
*Get only valid Event Types from input Event Types, for given Event
*Group - by deleting others..
LOOP AT t_eventtypelist.
IF t_eventtypelist-objid IN s_btyp.
EXIT.
ELSE.
DELETE t_eventtypelist.
ENDIF.
AT LAST.
*since we r checking Event Types, All other fields will be locked
*but we need Event Group field to be unlocked to edit again,
*if theres no theres no valid Event Types in given input
LOOP AT SCREEN.
CHECK screen-name = 'P_bgrp'.
screen-input = '1'.
MODIFY SCREEN.
ENDLOOP.
MESSAGE e999 WITH text-e04.
EXIT.
ENDAT.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
CHECK screen-name = 'P_bgrp'.
screen-input = '1'.
MODIFY SCREEN.
ENDLOOP.
MESSAGE e999 WITH text-e03.
ENDIF.
FORM get_bgrp *
FORM get_bgrp .
SELECT objid stext
FROM hrp1000
INTO CORRESPONDING FIELDS OF TABLE t_bgrp
WHERE plvar = '01' AND
otype = 'L' AND
short = 'ROLE' OR
short = 'TECH_PROGRAM' .
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 75
endpos_row = 20
startpos_col = 30
startpos_row = 05
titletext = 'Select Business Event Group'
IMPORTING
choise = w_lineno
TABLES
valuetab = t_bgrp
EXCEPTIONS
break_off = 1
OTHERS = 2.
IF sy-subrc EQ 0 .
READ TABLE t_bgrp INDEX w_lineno.
IF sy-subrc EQ 0.
p_bgrp = t_bgrp-objid.
p_bgrp1 = t_bgrp-stext.
ENDIF .
CLEAR t_bgrp .
REFRESH t_bgrp .
ENDIF .
ENDFORM . "get_bgrp
****subroutine for business eventtype input criteria
FORM get_btyp USING f_range.
CLEAR : t_validation,
t_btyp,
t_eventtypelist,
t_group,
t_eventgroup,
w_flag.
REFRESH : t_validation,
t_btyp,
t_eventtypelist,
t_group,
t_eventgroup.
t_validation-fieldname = 'P_BGRP'.
APPEND t_validation.
CLEAR t_validation.
*Getting Screen Values
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = w_repid
dynumb = '1000'
TABLES
dynpfields = t_validation
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE t_validation WITH KEY fieldname = 'P_BGRP'.
IF NOT t_validation-fieldname IS INITIAL.
*Getting Event Group ID that entered
LOOP AT t_validation.
IF t_validation-fieldname = 'P_BGRP'.
p_bgrp = t_validation-fieldvalue.
ENDIF.
ENDLOOP.
CLEAR t_validation.
REFRESH t_validation.
*To fetch the business event groups and business event types that belong
to the input business event group.Since a business group can have a
*business groups as well as business event types we have pick all of
*them
*Getting all subordinates - Event Group/Type under given Event Group
SELECT objid
sobid
sclas
FROM hrp1001
INTO TABLE t_group
WHERE objid = p_bgrp
AND plvar = '01'
AND rsign = 'B'
AND relat = '003'
AND endda = '99991231'
AND ( sclas = 'L' OR sclas = 'D' ).
*Getting all Event Types
WHILE w_flag <> 1.
PERFORM get_objids.
ENDWHILE.
IF NOT t_eventtypelist[] IS INITIAL.
SORT t_eventtypelist BY objid.
*Getting Names of Event Types
SELECT objid
stext
FROM hrp1000
INTO CORRESPONDING FIELDS OF TABLE t_btyp
FOR ALL ENTRIES IN t_eventtypelist
WHERE objid = t_eventtypelist-objid
AND otype = 'D' AND plvar = '01'
AND endda = '99991231'.
IF sy-subrc = 0.
*PopUp Display for Event Types
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
endpos_col = 75
endpos_row = 20
startpos_col = 30
startpos_row = 05
titletext = 'Select Business Event Type ID'
IMPORTING
choise = w_lineno
TABLES
valuetab = t_btyp
EXCEPTIONS
break_off = 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.
ELSE.
*Since the Table returned by function module will have data in Header,
*clear the Header
*Retreive Selected Event Type into Select Option
READ TABLE t_btyp INDEX w_lineno.
IF sy-subrc EQ 0.
IF f_range = 'l'.
s_btyp-low = t_btyp-objid.
ELSE.
s_btyp-high = t_btyp-objid.
ENDIF.
ENDIF.
ENDIF.
ELSE.
MESSAGE s999 WITH text-e03.
ENDIF.
ELSE.
MESSAGE s999 WITH text-e01.
ENDIF.
ENDIF.
ENDFORM. " EVNTTY
FORM get_objids *
FORM get_objids.
*To delete the business event types that are found and push it in
*another table
IF NOT t_group[] IS INITIAL.
LOOP AT t_group.
*If event type
IF t_group-sclas = 'D'.
t_eventtypelist-objid = t_group-sobid.
APPEND t_eventtypelist.
CLEAR t_eventtypelist.
DELETE t_group.
*If event group
ELSEIF t_group-sclas = 'L'.
t_eventgroup-objid = t_group-sobid.
APPEND t_eventgroup.
CLEAR t_eventgroup.
DELETE t_group.
CLEAR t_group.
ENDIF.
ENDLOOP.
ELSE.
w_flag = 1.
ENDIF.
IF NOT t_eventgroup[] IS INITIAL.
*To get the second level of business groups and business event type
SELECT objid sobid sclas
FROM hrp1001
INTO TABLE t_group
FOR ALL ENTRIES IN t_eventgroup
WHERE objid = t_eventgroup-objid
AND plvar = '01'
AND rsign = 'B'
AND relat = '003'
AND endda = '99991231'
AND ( sclas = 'L' OR sclas = 'D' ).
CLEAR t_eventgroup.
REFRESH t_eventgroup.
ENDIF.
ENDFORM. " GET_OBJIDS
Start of Selection *
START-OF-SELECTION.
*Pass the Event Type and fetch the Related Id
*for the Qualification imparted by the Event
SELECT objid sobid
FROM hrp1001
INTO TABLE t_objid
WHERE objid IN s_btyp AND
otype = 'D' AND
plvar = '01' AND
relat = '028' AND
rsign = 'A' AND
sclas = 'Q'.
IF sy-subrc EQ 0.
*Pass the Qualification Id and fetch Object Id of the
*person who fulfills this Qualification
SELECT objid sobid adatanr
FROM hrp1001
INTO TABLE t_sobid FOR ALL ENTRIES IN t_objid
WHERE sobid = t_objid-sobid AND
otype = 'P' AND
plvar = '01' AND
relat = '032' AND
rsign = 'A' AND
sclas = 'Q' .
IF sy-subrc = 0.
*Fetch only the Person along with the skillrating
*who has skill rating as '0001' or '0003'
SELECT adatanr chara
FROM hrpad31
INTO TABLE t_prof
FOR ALL ENTRIES IN t_sobid
WHERE adatanr = t_sobid-adatanr AND
( chara = '0001' OR chara = '0003' ).
IF sy-subrc NE 0.
MESSAGE s999 WITH text-s01.
EXIT .
ELSE .
*Fetch only Employee Id's who meets the required skill rating
*which inturn has the EMPID who are all are Certified Instructors
LOOP AT t_sobid.
READ TABLE t_prof WITH KEY adatanr = t_sobid-adatanr.
IF sy-subrc NE 0.
DELETE t_sobid .
ENDIF.
ENDLOOP.
SORT t_sobid BY objid.
DELETE ADJACENT DUPLICATES FROM t_sobid.
ENDIF.
ENDIF.
ENDIF.
IF NOT t_sobid[] IS INITIAL.
data: begin of it_trgpernr occurs 0,
objid type hrp1000-objid,
sobid type hrp1001-sobid,
end of it_trgpernr.
select objid sobid
from hrp1001
into table it_trgpernr for all entries in t_sobid
where otype ='P' and
objid = t_sobid-objid and
sclas = 'D' and
sobid = '50008220'.
*Fetch Grade of the Certified Instructors by passing their EmpId's
SELECT pernr yysalgr
FROM pa0008
INTO TABLE t_grade
FOR ALL ENTRIES IN t_sobid
WHERE pernr = t_sobid-objid AND endda = '99991231'.
ENDIF.
For Heading in the Output Display Layout
PERFORM heading USING gt_list_top_of_page[].
End of Selection *
END-OF-SELECTION.
Populating data into Final Table which contains all information aboutthe Certified Instructors
*Retrieve Employee Id for the Certified Instructors only if he is active
LOOP AT t_sobid.
SELECT SINGLE *
FROM pa0000
WHERE pernr = t_sobid-objid AND
begda <= sy-datum AND
endda >= sy-datum AND
stat2 ='3'.
IF sy-subrc = 0.
t_final-empid = t_sobid-objid.
SELECT SINGLE *
FROM hrp1001
WHERE otype = 'P' AND
objid = t_sobid-objid AND
rsign = 'B' AND
relat = '25' AND
sclas = 'D' AND
sobid = '50008220'.
*DATA:W_SOBID TYPE HRP1001-SOBID.
*W_SOBID = t_sobid-objid. .
SELECT SINGLE *
FROM hrp1001
WHERE otype = 'D' AND
objid = '50008220' AND
rsign = 'B' AND
relat = '25' AND
sclas = 'P' AND
sobid = W_SOBID.
IF sy-subrc EQ 0.
t_final-atndttt = 'YES'.
ELSE.
t_final-atndttt = 'NO'.
ENDIF.
*Retrieve Employee SkillRating for the Certified Instructors
*by passing the adatanr value which inturn is fetched based on the empid
READ TABLE t_prof WITH KEY adatanr = t_sobid-adatanr.
IF sy-subrc EQ 0.
t_final-sklrate = t_prof-chara.
ENDIF.
*Retrieve Employee Grade for the given id
READ TABLE t_grade WITH KEY pernr = t_sobid-objid.
IF sy-subrc EQ 0.
t_final-grade = t_grade-yysalgr.
ENDIF.
REFRESH t_projdetails.
CLEAR t_projdetails.
*function which fetches the name project name account and
*vertical name of the person for the given empid
CALL FUNCTION 'ZBAPI_PROJDETAILS'
EXPORTING
pernr = t_sobid-objid
TABLES
it_finaltab = t_projdetails.
IF NOT t_projdetails[] IS INITIAL.
SHIFT t_sobid-objid LEFT DELETING LEADING '0'.
READ TABLE t_projdetails WITH KEY pernr = t_sobid-objid.
IF sy-subrc EQ 0.
t_final-empname = t_projdetails-ename.
IF NOT t_projdetails-proj IS INITIAL.
t_final-pgmng = t_projdetails-pmname.
ELSE.
t_final-pgmng = t_projdetails-gmname.
ENDIF.
t_final-accname = t_projdetails-accname.
t_final-vertname = t_projdetails-vertname.
ENDIF.
ENDIF.
APPEND t_final.
ENDIF.
CLEAR t_final.
ENDLOOP.
SORT t_final BY empid.
DELETE ADJACENT DUPLICATES FROM t_final.
*Enabling Sort by PERNR & Global ID in ALV display
PERFORM sub_sort_info.
*Form to Populate Field Catalog
PERFORM populate_fieldcatalog.
For the ALV ROW Optimize Width
gs_layout-colwidth_optimize = 'X' .
*perform alv_display tables final fieldcatalog.
IF NOT t_final[] IS INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
is_layout = gs_layout
it_fieldcat = t_fieldcatalog[]
it_sort = w_sort
i_save = 'A'
it_events = gt_events[]
TABLES
t_outtab = t_final
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.
ELSE.
MESSAGE s000(vz) WITH 'No Records found for Given Input Criteria'.
ENDIF.
TOP OF PAGE *
*Outputs formatted simple header information at TOP-OF-PAGE.
TOP-OF-PAGE.
PERFORM top_of_page.
Subroutines *
*& Form eventtab_build
text`
-->P_GT_EVENTS[] text
FORM eventtab_build USING rt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
DATA: g_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE g_top_of_page TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.
ENDFORM. " eventtab_build
*& Form HEADING
text
FORM heading USING lt_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
*Layout Display Text - "Caritor ( India ) Pvt.Ltd "
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = text-h01.
APPEND ls_line TO lt_top_of_page.
*Layout Display Text - "Certified Instructor Eligibility List "
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = text-h02.
APPEND ls_line TO lt_top_of_page.
ENDFORM. " HEADING
*& Form top_of_page
text
--> p1 text
<-- p2 text
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. " top_of_page
*& Form sub_sort_info
text
--> p1 text
<-- p2 text
FORM sub_sort_info.
DATA : l_sort TYPE slis_sortinfo_alv .
CLEAR l_sort.
Employee ID
l_sort-fieldname = 'EMPID'.
l_sort-up = 'X'.
APPEND l_sort TO w_sort.
ENDFORM. " sub_sort_info
*& Form populate_fieldcatalog
text
--> p1 text
<-- p2 text
FORM populate_fieldcatalog.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'EMPID' ' ' text-011 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'EMPNAME' ' ' text-002 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'GRADE' ' ' text-003 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'ATNDTTT' ' ' text-004 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'PGMNG' ' ' text-006 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'ACCNAME' ' ' text-007 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'VERTNAME' ' ' text-008 20 w_pos.
PERFORM fill_fields_of_fieldcatalog
TABLES t_fieldcatalog
USING 'T_FINAL' 'SKLRATE' ' ' text-005 20 w_pos.
ENDFORM. " populate_fieldcatalog
*& Form FILL_FIELDS_OF_FIELDCATALOG
text
-->P_T_FIELDCATALOG text
-->P_0870 text
-->P_0871 text
-->P_0872 text
-->P_TEXT_001 text
-->P_20 text
-->P_W_POS text
FORM fill_fields_of_fieldcatalog TABLES fp_t_fieldcatalog STRUCTURE
t_fieldcatalog
USING fp_table
fp_field
fp_key
fp_text
fp_out_len
fp_pos.
fp_t_fieldcatalog-tabname = fp_table.
fp_t_fieldcatalog-fieldname = fp_field.
fp_t_fieldcatalog-seltext_l = fp_text.
fp_t_fieldcatalog-key = fp_key.
fp_t_fieldcatalog-outputlen = fp_out_len.
fp_t_fieldcatalog-col_pos = fp_pos.
APPEND fp_t_fieldcatalog.
CLEAR: fp_t_fieldcatalog.
fp_pos = fp_pos + 1.
ENDFORM. " FILL_FIELDS_OF_FIELDCATALOG
10.249.11.136\SAP-StudyMaterial -
Running report with alv grid in background and exporting to excel
Hi Guys,
I've created a report program that uses the alv grid. When I run the report in foreground, I can easily export it to excel. However, if I run it in background, then display the spooled report and try to export to excel, it does not put it in excel format (seems to go over as one big column rather than individual columns that are defined in the report). Is there a way to run it in background ,export to excel properly and i have to email also in Excel sheet format.?
Thanks,
Gopi.In background u cannot do a download to excel. you can do is create CSV format file
or
write a report for output with tabs then call that report using
submit yXXXX exporting list to memory
and return.
call function 'LIST_FROM_MEMORY'
tables
listobject = report_list
exceptions
not_found = 1
others = 2.
and send the report_list to email users
a® -
Remove Header when running report with ALV output
Hi,
We are running ITS Version 6200.1022.63326.3, Build 84960 connecting to R/3 Enterprise 4.7 on 6.40 Kernel Patch 196.
I have a situation where I run a report through ITS, starting with a selection screen, I can remove the header part of the ITS generated screen by commenting out:
<!--
`SAP_TemplateHeader()`
-->
in my template. This works great.
Now when I run the report and the output is given in the form of an ALV grid, there is no screen to manipulate as it uses the webgui generated html due to me having set parameter:
GENERATEDYNPRO = 1.
When I receive the report output, the SAP header with "Quit" and "Help" is back, due to it being driven by the standard webgui generated templates.
I have searched on SDN and found some guidelines but no answers are answered and then the thread goes dead so I just wanted to know if someone has ever successfully removed this header.
I have set noheaderokcode = 1 in the service file, in webgui.srvc as well as in global.srvc.
I have also started editing the templatelibrary files but to me it is not a very clean solution.
If someone out there has had this challenge and solved it, please advise.
Thank you very much and regards,
Ronald G. MeyerHi,
Thanks for the feedback.
Does not seem like the Basis team will be patching the ITS landscape soon, so is there anyone who has more input on this?
I have found a programmatical example in this thread:
/thread/76409 [original link is broken]
But none of the examples work like I expect it to.
Just wanted to know if someone has implemented this successfully.
Regards,
Ronald Meyer -
Hi All,
I have created a list in ALV format ,now i want to interact with the list in alv and i want to catch the two fields from the record not one field, how it can be possible.
example in my record
vbeln kunnr posnr ...........etc
when i interact i have to catch the vbeln and kunnr in to different variables please help me how it can be done.
Regards
krishnaREPORT intractive.
TYPE-POOLS: slis.
TABLES: kna1,vbak.
TYPES: BEGIN OF ty_kna1,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
END OF ty_kna1.
TYPES: BEGIN OF ty_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
END OF ty_vbak.
DATA: it_kna1 TYPE TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1,
it_vbak TYPE TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_event TYPE slis_t_event,
wa_event TYPE slis_alv_event,
it_listheader TYPE slis_t_listheader,
wa_listheader TYPE slis_listheader,
wa_layout TYPE slis_layout_alv ,
hline TYPE slis_listheader.
wa_selfield TYPE slis_selfield.
DATA: i_title_KNA1 TYPE lvc_title VALUE 'FIRST LIST DISPLAYED',
i_title_VBAK TYPE lvc_title VALUE 'SECONDRY LIST DISPLAYED'.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1000 TO 1500.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: r1 RADIOBUTTON GROUP g1 DEFAULT 'X'.
PARAMETERS: r2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b2.
INITIALIZATION.
PERFORM layout.
PERFORM fieldcat_kna1.
PERFORM event.
PERFORM eventpopulate.
START-OF-SELECTION.
PERFORM datafetch_kna1.
IF r1 = 'X'.
PERFORM display.
ENDIF.
IF r2 = 'X'.
PERFORM grid.
ENDIF.
*& Form fieldcat
text
FORM fieldcat_kna1.
**************FOR THE TABLE KNA1**********************
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-seltext_l = 'CUSTOMER NUMBER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'LAND1'.
wa_fieldcat-seltext_l = 'COUNTRY CODE'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_l = 'CUSTOMER NAME'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C31'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ORT01'.
wa_fieldcat-seltext_l = 'COUNTRY '.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_KNA1'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C71'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "fieldcat
*& Form datafetch
text
FORM datafetch_kna1.
SELECT kunnr land1 name1 ort01
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN s_kunnr.
ENDFORM. "datafetch
*& Form LAYOUT
text
FORM layout.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
ENDFORM. "LAYOUT
*& Form display
text
FORM display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET =
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event
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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_kna1
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.
ENDFORM. "display
*& Form GRID
text
--> p1 text
<-- p2 text
FORM grid .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_KNA1
I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = it_event
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_kna1
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.
ENDFORM. "GRID
*& Form EVENT
text
--> p1 text
<-- p2 text
FORM event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_event
EXCEPTIONS
list_type_wrong = 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.
ENDFORM. " EVENT
*& Form eventpopulate
text
--> p1 text
<-- p2 text
FORM eventpopulate .
READ TABLE it_event INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc EQ 0.
wa_event-form = 'TOP_OF_PAGE'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
READ TABLE it_event INTO wa_event WITH KEY name = 'END_OF_LIST'.
IF sy-subrc EQ 0.
wa_event-form = 'END_OF_LIST'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
READ TABLE it_event INTO wa_event WITH KEY name = 'USER_COMMAND'.
IF sy-subrc EQ 0.
wa_event-form = 'USER_COMMAND'.
MODIFY it_event FROM wa_event TRANSPORTING form WHERE name = wa_event-name.
ENDIF.
ENDFORM. " eventpopulate
*& Form top-of-page
text
FORM top_of_page.
hline-typ = 'H'.
hline-info = 'Customer Details'.
APPEND hline TO it_listheader.
CLEAR hline.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader
i_logo = 'JELOGO'
I_END_OF_LIST_GRID =
I_ALV_FORM =
REFRESH it_listheader.
ENDFORM. "top-of-page
*& Form END-OF-PAGE
text
FORM end_of_list.
WRITE:/ 'JAGADISH RAJ KUMAR'.
ENDFORM. "end-of-LIST
*& Form USER-COMMAND
text
-->V_UCOMM text
FORM USER_COMMAND
USING U_COMM TYPE SY-UCOMM
R_SELFIELD TYPE SLIS_SELFIELD.
SELECT kunnr vbeln erdat ernam
FROM vbak
INTO corresponding fields of TABLE it_vbak
WHERE kunnr = R_SELFIELD-value.
PERFORM fieldcat_vbak.
PERFORM display_vbak.
ENDFORM. "USER-COMMAND
*& Form FIELDCAT_VBAK
text
FORM fieldcat_vbak.
refresh it_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_l = 'SALES ORDER'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-key = 'X'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-emphasize = 'C11'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-seltext_l = 'CREATED ON'.
wa_fieldcat-datatype = 'DATS'.
wa_fieldcat-outputlen = 12.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-emphasize = 'C51'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-seltext_l = 'CREATED BY'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-outputlen = 15.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-emphasize = 'C61'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-cfieldname = 'NETWR'.
wa_fieldcat-seltext_l = 'NET VALUE'.
wa_fieldcat-datatype = 'CURR'.
wa_fieldcat-outputlen = 10.
wa_fieldcat-tabname = 'IT_VBAK'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-col_pos = 4.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "FIELDCAT_VBAK
*& Form DISPLAY_VBAK
text
--> p1 text
<-- p2 text
FORM display_vbak .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
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 = I_TITLE_VBAK
I_GRID_SETTINGS =
IS_LAYOUT = wa_layout
IT_FIELDCAT = it_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = it_event
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_vbak
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.
ENDFORM. " DISPLAY_VBAK -
Call WD Interactive Form with Values from ABAP Report
Hallo together,
i have a simple ABAP report with some values.
How to call a webdynpro passing these values and using them in Select-Statements to prefill the called Interactive Form
Thanks
PhilipHi Runal,
i tried this and i get the parameters in the defaulthandler event.
but now i need these values in the supply function of my node to get the values which should be display.
How to access from supply function to the defaulthandler event? I read some threads but none answered my question i think.
METHOD handledefault .
DATA: it_parameter TYPE tihttpnvp,
wa_parameter LIKE LINE OF it_parameter.
wdevent->get_data(
EXPORTING
name = if_wd_application=>all_url_parameters
IMPORTING
value = it_parameter ).
ENDMETHOD.
Thanks
Philip -
Regarding curves IN abap REPORT
hi experts,
i got one assignment ,i have to show the graphical representaton of the output data in the abap report,
i have to create the bell curve on the basis of appraisal data which will come in the output how will i proceed for this plz help me remember i have to create this only with the help of abap report or alv report plz help me considering this point .
how will i create x axis ,y axis or any bell curve plz throw light ,it will be fruitful for u also as this things we have make it possible without BI but only ABAP.
plz help me if possible send me the codes or guide me.Hi ,
To start with X and Y axis u can refer the fm GRAPH_2D to illustrate the x and y axis .
There is another FM GRAPH_3D ..
I have never tried with curve plotting but yielded the o/p in bargraphs .
Br,
Vijay
Maybe you are looking for
-
for year end process: 1)I need to Post all these items (i.e; B/S and P/L a/c items) for November 2007 and December 2007. please help me how to post all these items* 2)after posting I need to carryforward AR, AP, GL Balances to January 2008 3)then I n
-
Hi All, I need a report for comparison of PR qty & price with the PO qty & price. Here i want to compare at service line level. 1. Is there any standard report is there 2. Any function module is there to get all POs with reference to PR. Regards San
-
Crystal Reports 2008 SP2 Installation Error
Howdy Folks... I have been trying to install the SP2 for Crystal Reports. I get the following error... "The installaion source for this product is not available. Verify that the source exists and that you can access it." Running the downloaded file,
-
Cannot see ASP pages with IIS7.5
I've just installed DW CS5 onto my W7 system. I write ASP pages, and need to use IIS to view my pages locally. I'm having real difficulties doing this in W7. I've enabled all the correct program add-ons (i.e asp) and I've allowed all read/write permi
-
Hi All, Can any one help me ,there are 3 idoc documents failure . Issue : 1.8547850 Balance not zero: 1,105.61 debits: 6,503.60 credits: 7,609.21 2 and 3 also same as the above How can i resolve this issue. Please help me. Thanks RL