Call(PUSH) Button after executing report
Hi,
After executing report how to call select layout button automatically,
and select layout screen display at output of screen after executing
report.
Regards
Arpit
how can we pass key stroke ctrl + F9 or call function code "&0AD" for selecting layout.
pls advice.
Regards
Arpit
Similar Messages
-
How to give push button in alv report output
hi,
my requirement is that , i have to give push button in alv report output(item level) not in application toolbar, i am using reuse_alv_grid_display FM, can any body provide me sample code
regards,
siva kumarhave a look at this thread, also has a sample report at the end from Uwe Schieferstein.
[button on alv list|How to add and program a pushbutton on ALV grid line;
seems not to work try this:
How to add and program a pushbutton on ALV grid line
Edited by: Micky Oestreich on May 15, 2008 10:20 PM -
How can we place a push button in ALV report
hi
could anybody inform me
how can we place a push button in ALV report
thanx
regards
kals.Hi kals.
please have a look at demoprogram
SALV_DEMO_TABLE_FUNCTIONS
BCALV_GRID_05
Regards
Bernd -
How to get GUI Status(Push Buttons) in ALV Report
Hi Friends
I have a requirement in a way that:
Once selection-screen was processed,an ALV report has to come and above the ALV List,I need a custom GUI Status(4 Push Button) with Push Buttons Logic.
Once I had clicks on thesse push button,I need to display one more ALV List and above this List,again I need a custom GUI Status(2 Push Buttons) with Push Buttons Logic.
Can anyone throw some light how we can achieve this.
Thanks for your cooperation!
Regards,
Madisettydata: rt_extab type slis_t_extab,
g_ucomm like sy-ucomm ,
g_selfield type slis_selfield.
form alv_display .
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = g_repid
i_callback_pf_status_set = 'PF_STATUS'
i_callback_user_command = 'USER_COMM'
it_fieldcat = it_fldcat
tables
t_outtab = it_final1
perform pf_status using rt_extab.
perform user_comm using g_ucomm g_selfield .
endform.
form pf_status using p_rt_extab.
set pf-status 'PF_STATUS' excluding p_rt_extab.
endform.
form user_comm using p_ucomm like sy-ucomm
p_selfield type slis_selfield.
data: l_row type i.
case p_ucomm.
when 'DISPLAY_PO'.
loop at it_final1 into wa_final1.
if wa_final1-sel eq 'X' .
l_row = l_row + 1.
endif.
if l_row gt 1.
message e004.
endif.
clear wa_final1.
endloop.
p_selfield-fieldname = 'SEL'.
read table it_final1 into wa_final1 index p_selfield-tabindex .
set parameter id 'BES' field wa_final1-ebeln.
call transaction 'ME23N'.
endcase.
endform.
*create user interface for gui status by double clicking on 'PF_STATUS'.
*Check the above sample code . -
Dear Experts,
How to add pushbutton in alv report.....
*& Report ZTT_TEST_ALV
REPORT ZTT_TEST_ALV.
*data declarations
type-pools : SLIS.
* data : BEGIN OF wa_kna1,
* kunnr type kunnr,
* name1 type name1,
* end of wa_kna1,
* it_kna1 like tABLE OF wa_kna1.
data : begin of wa_mara,
matnr type matnr,
end of wa_mara,
it_mara like table of wa_mara.
data : it_fcat type slis_t_fieldcat_alv,
wa_fcat like line of it_fcat.
*selection screen
SELECTION-SCREEN begin of block k with frame title text-001.
* select-OPTIONS : s_kunnr for wa_kna1-kunnr.
select-OPTIONS : s_matnr for wa_mara-matnr.
SELECTION-SCREEN end of block k.
*select auery
*SELECT kunnr name1 INTO table it_kna1 from kna1 where kunnr in s_kunnr.
select matnr into table it_mara from mara where matnr in s_matnr.
*for displaying fieldcatalog
PERFORM fcat using '1' 'MATNR' 'material Number' 'C410' '20'.
* PERFORM fcat using '2' 'NAME1' 'Customer Name' 'C410' '36'.
*for displaying output
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
* 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 = 'Report for Customer Details'
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = it_fcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* 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_mara.
* 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.
*CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
* EXPORTING
**** I_INTERFACE_CHECK = ' '
**** I_CALLBACK_PROGRAM =
**** I_CALLBACK_PF_STATUS_SET = ' '
**** I_CALLBACK_USER_COMMAND = ' '
**** IS_LAYOUT =
* IT_FIELDCAT = it_fcat
**** IT_EXCLUDING =
**** IT_SPECIAL_GROUPS =
**** IT_SORT =
**** IT_FILTER =
**** IS_SEL_HIDE =
**** I_SCREEN_START_COLUMN = 0
**** I_SCREEN_START_LINE = 0
**** I_SCREEN_END_COLUMN = 0
**** I_SCREEN_END_LINE = 0
**** I_DEFAULT = 'X'
**** I_SAVE = ' '
**** IS_VARIANT =
**** IT_EVENTS =
**** IT_EVENT_EXIT =
*** i_tabname_header =
*** i_tabname_item =
**** I_STRUCTURE_NAME_HEADER =
**** I_STRUCTURE_NAME_ITEM =
*** is_keyinfo =
**** IS_PRINT =
**** IS_REPREP_ID =
**** I_BYPASSING_BUFFER =
**** I_BUFFER_ACTIVE =
**** IR_SALV_HIERSEQ_ADAPTER =
**** IT_EXCEPT_QINFO =
**** I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
**** IMPORTING
**** E_EXIT_CAUSED_BY_CALLER =
**** ES_EXIT_CAUSED_BY_USER =
* tables
** t_outtab_header = it_
* t_outtab_item = 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.
*& Form FCAT
* text
* -->P_0052 text
* -->P_0053 text
* -->P_0054 text
form FCAT using fp_col_pos
fp_fieldname
fp_seltext_m
fp_emphasize
fp_outputlen..
wa_fcat-col_pos = fp_col_pos.
wa_fcat-fieldname = fp_fieldname.
wa_fcat-seltext_m = fp_seltext_m.
wa_fcat-emphasize = fp_emphasize.
wa_fcat-outputlen = fp_outputlen.
append wa_fcat to it_fcat.
clear : wa_fcat.
endform. " FCAT
FORM SET_PF_STATUS .
SET PF-STATUS 'ZNEWSTATUS' .
"Copy of 'STANDARD' pf_status from fgroup SALV
endform.
i need one push button in alv output display.
Thanks and Regards,
Thirukumaran. RHI THIRU TRY FOLLOWING CODES:
*& Report ZSAMPLE
REPORT ZSAMPLE.
TABLES:MARA.
TYPE-POOLS: SLIS.
TYPES:BEGIN OF TY_ITAB,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
END OF TY_ITAB.
DATA:ITAB TYPE STANDARD TABLE OF TY_ITAB WITH HEADER LINE.
DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT TYPE SLIS_FIELDCAT_ALV,
LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_MATNR TYPE MARA-MATNR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
PERFORM FIELDCAT.
LAYOUT-ZEBRA = 'X'.
PERFORM OUTPUT.
*& Form PF_STATUS
text
-->RT_EXTAB text
FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'BUTT'.
ENDFORM. "PF_STATUS
*& Form PUSH_BUTT1
text
-->R_UCOMM text
-->RS_SELFIELD text
FORM GET USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'GET'.
IF SY-SUBRC EQ 0.
CALL TRANSACTION 'SE11'.
ELSE.
ENDIF.
WHEN 'EXIT' OR 'CANCEL' .
LEAVE PROGRAM.
ENDCASE.
ENDFORM. "PUSH_BUTT1
*& Form FIELDCAT
text
--> p1 text
<-- p2 text
FORM FIELDCAT .
WA_FCAT-SELTEXT_L = 'Select'.
WA_FCAT-COL_POS = '1'.
WA_FCAT-FIELDNAME = 'CHECK'.
WA_FCAT-CHECKBOX = 'X'.
WA_FCAT-TABNAME = 'ITAB'.
WA_FCAT-OUTPUTLEN = '4'.
WA_FCAT-INPUT(1) = 'X'.
WA_FCAT-EDIT_MASK(1) = 'X'.
WA_FCAT-EDIT(1) = 'X'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.
WA_FCAT-SELTEXT_L = 'Material Number'.
WA_FCAT-COL_POS = '2'.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-TABNAME = 'ITAB'.
WA_FCAT-OUTPUTLEN = '18'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.
WA_FCAT-SELTEXT_L = 'Date'.
WA_FCAT-COL_POS = '3'.
WA_FCAT-FIELDNAME = 'ERSDA'.
WA_FCAT-TABNAME = 'ITAB'.
WA_FCAT-OUTPUTLEN = '8'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.
ENDFORM. " FIELDCAT
*& Form OUTPUT
text
--> p1 text
<-- p2 text
FORM OUTPUT .
SELECT MATNR ERSDA FROM MARA
INTO TABLE ITAB
WHERE MATNR EQ P_MATNR.
IF SY-SUBRC EQ 0.
PERFORM GRID.
ELSE.
MESSAGE 'No Records Found' TYPE 'I'.
ENDIF.
ENDFORM. " OUTPUT
*& Form GRID
text
--> p1 text
<-- p2 text
FORM GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'GET'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT
I_DEFAULT = 'X'
TABLES
T_OUTTAB = ITAB.
ENDFORM. " GRID
REGARDS,
SAKTHIVEL.VT -
Brower hang after executing report
Hi,
I installed 9ias 1.0.2.1 on Sun Machine Everything is working fine except Report server. Executing report from browser taking long time and after that gave me this error.
Error: The requested URL was not found, or cannot be served at this time.
Oracle Reports Server CGI - Report Job was cancelled upon user request.
I also fixed TNS_ADMIN location but have same problem.
When I started Reports server It's started without error.Hi.
You should find whrther your problem is in bex web or general.
Did you tried to execute via RSRT with this username ?
Do you have any authorization infoobjects in query ?
Regards. -
Using Back Button after Display Report
Hi,
Need an advice, i need to customize the standard BACK button after report had been displayed, trying to use AT USER-COMMAND, but still not avail..
anyone can come with example will help me a lot.
ThanksHi badz lee,
Just change the function code 'BACK' to 'ZBACK' in your custom GUI staus.
Then write your own logic for the custmer needs.
Hope this code helps.
*& Report ZVK_TEST
REPORT zvk_test.
TABLES:ekko."for select option only
SELECT-OPTIONS:s_ebeln FOR ekko-ebeln.
DATA:lt_ekko TYPE TABLE OF ekko,
lw_ekko TYPE ekko.
START-OF-SELECTION.
SET PF-STATUS 'STLI'."copy status STLI of program SAPMSSY0.
SET TITLEBAR 'TITLE'.
SELECT * INTO TABLE lt_ekko
FROM ekko
WHERE ebeln IN s_ebeln.
LOOP AT lt_ekko INTO lw_ekko.
WRITE:/ lw_ekko-ebeln,
lw_ekko-bukrs,
lw_ekko-bstyp,
lw_ekko-bsart.
ENDLOOP.
END-OF-SELECTION.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'ZBACK'.
PERFORM back_function."Your logic
WHEN OTHERS.
ENDCASE.
*& Form BACK_FUNCTION
FORM back_function .
LEAVE PROGRAM.
ENDFORM. " BACK_FUNCTION -
Adding a push button on the report toolbar
adding a save button on the report toolbar, so that after clicking the button, the data fetched on the report will be stored in the application server.
Hi
to automate this process ,best way is to create a Z rport and there u can submit this sap standard report and get its output into an Internal table and then u can write this internal table to application server via following demo code -
this is code for both (download /upload),u can not use CG3y and CG3z as u want to do it as a background job ..
*& Report ZGILL_AS *
REPORT ZGILL_AS message-id rp .
tables: pa0001,pa0002.
select-options s_pernr for pa0001-pernr no intervals MODIF ID XYZ.
parameters: p_dwnld AS CHECKBOX ,
p_upld AS CHECKBOX DEFAULT 'X'.
parameters: P_DSNI(75) TYPE C MODIF ID ABG DEFAULT
'/usr/local/sapdata/amit.dat' LOWER CASE.
data: begin of itab occurs 0,
pernr(8),
sp1(1) value ',',
werks(4),
sp2(1) value ',',
persg(1),
sp3(1) value ',',
persk(2),
end of itab.
data: s_eof(3).
start-of-selection.
if p_upld = 'X'.
OPEN DATASET P_DSNI FOR OUTPUT IN LEGACY TEXT MODE.
PERFORM FETCH_DATA.
STOP.
elseif p_dwnld = 'X'.
OPEN DATASET P_DSNI FOR INPUT IN LEGACY TEXT MODE.
IF SY-SUBRC NE 0.
MESSAGE E016 WITH
'Error opening seq. file, RC:' SY-SUBRC.
EXIT.
ENDIF.
CLEAR S_EOF.
DO.
PERFORM FETCH_file.
IF S_EOF EQ 'YES'. stop. ENDIF.
ENDDO.
endif.
END-OF-SELECTION.
if itab[] is not initial.
perform print_file1 tables itab.
else.
write:/ 'No records exists'.
endif.
*& Form FETCH_DATA
text
--> p1 text
<-- p2 text
FORM FETCH_DATA .
SELECT * FROM PA0001 WHERE PERNR IN S_PERNR.
MOVE-CORRESPONDING PA0001 TO ITAB.
TRANSFER ITAB TO P_DSNI.
APPEND ITAB.
ENDSELECT.
CLOSE DATASET P_DSNI.
ENDFORM. " FETCH_DATA
*& Form FETCH_file
text
--> p1 text
<-- p2 text
FORM FETCH_file .
READ DATASET P_DSNI INTO itab.
append itab.
clear itab.
IF SY-SUBRC NE 0.
S_EOF = 'YES'. EXIT.
ENDIF.
ENDFORM. " FETCH_file
*& Form print_file1
text
-->P_ITAB text
FORM print_file1 tables P_ITAB structure itab .
write:/2 'EmpNo',
14 'Personnel Area',
34 'Emp Group',
47 'Emp SubGroup'.
skip 1.
loop at p_itab.
write:2 p_itab-pernr,
14 p_itab-werks,
34 p_itab-persg,
47 p_itab-persk.
skip 1.
endloop.
ENDFORM. " print_file1
<b>Reward if usefull</b> -
CALL TRANSACTION won't execute report, keeps returning to program
Good day to you!
I have the following code:
CALL TRANSACTION 'FPO4' USING bdcdata
MODE 'A'.
The last line in my bdcdata is to simulate pressing the Execute button (OK_CODE = '=ONLI'). However, instead of running the report that FPO4 is supposed to generate, it just comes back to my program and its selection screen.
Please note that although I am populating data on FPO4's native Selection Screen, I am also populating data on a special "predefined selection," so using a simple SUBMIT has never been an option to me.
Does anyone know how I can get FPO4 to actually execute vs. coming back to my program?
Thanks -- as always, points for all helpful answers!Before calling the call transaction, put a dummy screen of the report output
' ' 'OK_CODE' '=ONLY'.
*This screen name nad number should come in the SHDB recording..
*Don't assing any OK_CODE to that screen
Perform screen 'X' 'SAPMSSY0' '0120'. "<< it should be your reports screen
CALL TRANSACTION 'FPO4' USING bdcdata
MODE 'A'.
Actually, I dont' have this transaction in my systm otherwise I should able to give you exact screen name and number.
Regards,
Naimesh Patel -
Push button after press any key to turn-on
Hi guys
I've notebook toshiba model: L515-SP4011L and the problem is: that push it button to start, turn on but don't show screen after press any key notebook and show logo toshiba wait a moment for turn-on, after follow don't show screen press key newly and start system, that's windows 7.
Any idea ..., restore by default BIOS ... But not solved.
GreetingsFor posterity, here's what the hybrid MBR looked like after repartitioning with Boot Camp Assistant on Snow Leopard:
$ sudo fdisk /dev/disk0
Disk: /dev/disk0 geometry: 9729/255/63 [156301488 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
1: EE 1023 254 63 - 1023 254 63 [ 1 - 409639] <Unknown ID>
2: AF 1023 254 63 - 1023 254 63 [ 409640 - 107421872] HFS+
3: 0B 1023 254 63 - 1023 254 63 [ 108095488 - 48205824] Win95 FAT-32
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
and here's how it looked after formatting it with the Windows XP SP3 installer disc:
$ sudo fdisk /dev/disk0
Disk: /dev/disk0 geometry: 9729/255/63 [156301488 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
1: EE 0 0 2 - 25 127 14 [ 1 - 409639] <Unknown ID>
2: AF 25 127 15 - 1023 254 63 [ 409640 - 107421872] HFS+
*3: 0C 1023 254 63 - 1023 254 63 [ 108095488 - 48205824] Win95 FAT32L
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Not sure if there's other incantations that the XP installer does to the disk, but it's strange that the assistant didn't take care of everything. That step is particularly important if you're restoring a .dmg of the original FAT32 partition after replacing a hard disk. -
I want push button on output screen
Hi friends,
I want push button on toolbar output screen. After choosing this push button it will display one screen it having data below like this.
.Division channel
.Division
.Sales organization
.Sales Document
.Sales Document Type
.Sales Group
.Sales office
.Month
Plz help mehi sreerama,
to have a push button in ur report, u have to create a GUI status with command.
u can create gui status using command SET PF-STATUS 'XXXX'.
Create a button in GUI status, assign the function code for that button. Example FCODE.
After creating GUI status, u have to use AT USER-COMMAND event for button of GUI status in report program.
Then in ur report program, write like this.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'FCODE'.
........................... " Your Logic to display what ever u want
ENDCASE.
sy-ucomm catches all the function codes of the system.
For further reference, check these links.
To create GUI status:
http://help.sap.com/saphelp_47x200/helpdata/en/d1/801d43454211d189710000e8322d00/frameset.htm
For List Events:
http://help.sap.com/saphelp_47x200/helpdata/en/9f/dba3ae35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/9f/dba2c435c111d1829f0000e829fbfe/frameset.htm
<b><REMOVED BY MODERATOR></b>
Harimanjesh AN
Message was edited by:
Alvaro Tejada Galindo -
Where to write the code when the push button is clicked in the screen
I have designed a screen with a push button and a text box
If i click on the push button it should display a value 'hello' in the text box. How to doWhen you are using module pool programming,
handle the push button function code in the PAI module and make sure the text field is updated whenever that function code for push button gets executed.
And one more thing is that make sure you set the next screen to the same screen number because after executing the function code then again it has to go back to the PBO of that screen for displaying the text field.
For inital display, the text field is displayed blank and it is filled when that function code is executed.
Regards,
Balaji Reddy G
Note:Please reward if the answers are helpful -
Button on toolbar after executing the report i.e. after result display
Hi, after executing the report result is being displayed.Now at this stage I want a button on the application toolbar clicking on which will allow a perform to get triggered.
I tried in following manner:
SELECTION-SCREEN: FUNCTION KEY 1.
*INITIALIZATION.
TABLES: SSCRFIELDS.
*MOVE icon_mail TO sscrfields-functxt_01.
*form SEND_EMAIL .
IF sy-ucomm = 'FC01'.
PERFORM SEND_MAIL_ASSET_STATUS.
ENDIF.
But it's not ok.The above way is not working.
Please note: I want button on toolbar only after executing the report i.e. after result display.
How can I do this?
Kindly guide.
Best regards.hi
if you are using alv than just pass 3 values to function call
I_CALLBACK_PROGRAM = SY-REPID " program name
I_CALLBACK_PF_STATUS_SET = 'STATUS' "PF-STATUS
I_CALLBACK_USER_COMMAND = 'UCOMMAND' " subroutine name
and check the value of UCOMM in subroutine -
Edit a selected row in an alv report after pressing a push button ?
hi all ,
I want to edit a selected row in an alv report but that too after i press a push button . After pressing the push button , a pop up shud *** showing all the entries of the selected row which shud be editable and after editing it shud be saved into the database table.
How can i do this please help asap ???May this prog. of mine can solve your requirement.
REPORT z_demo_alv_jg.
TYPE-POOLS *
TYPE-POOLS: slis.
INTERNAL TABLES/WORK AREAS/VARIABLES *
DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
i_index TYPE STANDARD TABLE OF i WITH HEADER LINE,
w_field TYPE slis_fieldcat_alv,
p_table LIKE dd02l-tabname,
dy_table TYPE REF TO data,
dy_tab TYPE REF TO data,
dy_line TYPE REF TO data.
FIELD-SYMBOLS *
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa> TYPE ANY,
<dyn_field> TYPE ANY,
<dyn_tab_temp> TYPE STANDARD TABLE.
SELECTION SCREEN *
PARAMETERS: tabname(30) TYPE c,
lines(5) TYPE n.
START-OF-SELECTION *
START-OF-SELECTION.
Storing table name
p_table = tabname.
Create internal table dynamically with the stucture of table name
entered in the selection screen
CREATE DATA dy_table TYPE STANDARD TABLE OF (p_table).
ASSIGN dy_table->* TO <dyn_table>.
IF sy-subrc <> 0.
MESSAGE i000(z_zzz_ca_messages) WITH ' No table found'.
LEAVE TO LIST-PROCESSING.
ENDIF.
Create workarea for the table
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
Create another temp. table
CREATE DATA dy_tab TYPE STANDARD TABLE OF (p_table).
ASSIGN dy_tab->* TO <dyn_tab_temp>.
SORT i_fieldcat BY col_pos.
Select data from table
SELECT * FROM (p_table)
INTO TABLE <dyn_table>
UP TO lines ROWS.
REFRESH <dyn_tab_temp>.
Display report
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = p_table
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_PF_STATUS'
TABLES
t_outtab = <dyn_table>
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
*& Form SET_PF_STATUS
Setting custom PF-Status
-->RT_EXTAB Excluding table
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'Z_STANDARD'.
ENDFORM. "SET_PF_STATUS
*& Form user_command
Handling custom function codes
-->R_UCOMM Function code value
-->RS_SELFIELD Info. of cursor position in ALV
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Local data declaration
DATA: li_tab TYPE REF TO data,
l_line TYPE REF TO data.
Local field-symbols
FIELD-SYMBOLS:<l_tab> TYPE table,
<l_wa> TYPE ANY.
Create table
CREATE DATA li_tab TYPE STANDARD TABLE OF (p_table).
ASSIGN li_tab->* TO <l_tab>.
Create workarea
CREATE DATA l_line LIKE LINE OF <l_tab>.
ASSIGN l_line->* TO <l_wa>.
CASE r_ucomm.
When a record is selected
WHEN '&IC1'.
Read the selected record
READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX
rs_selfield-tabindex.
IF sy-subrc = 0.
Store the record in an internal table
APPEND <dyn_wa> TO <l_tab>.
Fetch the field catalog info
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'Z_DEMO_PDF_JG'
i_structure_name = p_table
CHANGING
ct_fieldcat = i_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 0.
Make all the fields input enabled except key fields
w_field-input = 'X'.
MODIFY i_fieldcat FROM w_field TRANSPORTING input
WHERE key IS INITIAL.
ENDIF.
Display the record for editing purpose
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = p_table
it_fieldcat = i_fieldcat
i_screen_start_column = 10
i_screen_start_line = 15
i_screen_end_column = 200
i_screen_end_line = 20
TABLES
t_outtab = <l_tab>
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 0.
Read the modified data
READ TABLE <l_tab> INDEX 1 INTO <l_wa>.
If the record is changed then track its index no.
and populate it in an internal table for future
action
IF sy-subrc = 0 AND <dyn_wa> <> <l_wa>.
<dyn_wa> = <l_wa>.
i_index = rs_selfield-tabindex.
APPEND i_index.
ENDIF.
ENDIF.
ENDIF.
When save button is pressed
WHEN 'SAVE'.
Sort the index table
SORT i_index.
Delete all duplicate records
DELETE ADJACENT DUPLICATES FROM i_index.
LOOP AT i_index.
Find out the changes in the internal table
and populate these changes in another internal table
READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX i_index.
IF sy-subrc = 0.
APPEND <dyn_wa> TO <dyn_tab_temp>.
ENDIF.
ENDLOOP.
Lock the table
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
mode_rstable = 'E'
tabname = p_table
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc = 0.
Modify the database table with these changes
MODIFY (p_table) FROM TABLE <dyn_tab_temp>.
REFRESH <dyn_tab_temp>.
Unlock the table
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXPORTING
mode_rstable = 'E'
tabname = p_table.
ENDIF.
ENDCASE.
rs_selfield-refresh = 'X'.
ENDFORM. "user_command
Regards,
Joy. -
Execute in Back ground when push button clicked on alv output
Hi Friends,
I have a alv list display report with check boxes and a 'Detail' Push button in output
when i check the check boxes and click on the 'Detail' Push button detail report is
displayed using 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'. My requirement is if I click on 'Detail'
push button the code should also execute in back ground creating the spool. Request you
to help with sample code. I tried with below but not working.
WHEN 'DETAIL'.
call function 'START_OF_BACKGROUNDTASK'
exporting
startdate = sy-datum
starttime = sy-uzeit
exceptions
others = 1.
if sy-subrc = 1.
exit.
ELSE.
PERFORM determine_table_from_output CHANGING rs_selfield.
PERFORM call_alv_detail.
endif.
commit work.
Thanks,
Neetha.You could encapsulate the detail display in a separate report and call it in your 'DETAIL'-section like this:
DATA: lv_number TYPE tbtcjob-jobcount,
lv_name TYPE tbtcjob-jobname,
ls_rsparams TYPE rsparams,
lt_rsparams LIKE STANDARD TABLE OF ls_rsparams.
* Get free job number
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = lv_name
IMPORTING
jobcount = lv_number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT 'ZDISPLAY_DETAIL'
VIA JOB lv_name NUMBER lv_number
WITH SELECTION-TABLE lt_rsparams
AND RETURN.
IF sy-subrc = 0.
* Submit
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_number
jobname = lv_name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
ENDIF.
Regards,
Ulrich
Maybe you are looking for
-
Is there a way I can have all of the type shown in bold black on the screen?
I have macular degeneration which makes it difficult for me to read any type on the display screen that is not black or bold. Is there a way that I can select bold black for every printing on the screen? Thanks for your help. Vernon
-
Cannot Install the Raw 7.3 update for Premiere Elements 11 and photoshop Elements
I get an error message when I try to update the Raw 7.3 update for Premiere Elements 11 and photoshop Elements. It says to run support adviser which I did, but it says that it could not detect any problems. Thanks, Ron
-
How to get server name and/or IP address from client (10g)?
Thanks.
-
Error when trying to change CC list of email item in SP 2010 workflow
When I tried to change the CC list of an email in a workflow that involved removing a few email ids and adding another id to the list, on publishing it I get the following error : (0, 0) Activity 'ID3737' validation failed: Path resolved to Referenc
-
Electronic serial key won't work, help anyone?
Bought electronic serial key today and when I open pages, click on trial, it asks for serial key. I input the key and the "continue" button does not highlight only the "go back" is highlighted. When I press enter after entering the number, I get "w