Toggle Button in a selection screen
Hey Folks,
I am pretty new to Screen/Selection Screen programming. I want to how does one go about adding a toggle button in a selection screen?
The toggling of a button should trigger
1) Toggling between visibility of blocks
2) Toggling the name of the button
3) Toggling the icon on the button
Lastly what is the icon for an expan/collapse operation?
Thanks,
Puja.
Edited by: Puja Malhotra on Oct 2, 2008 8:14 AM
Toggling was made possible with the loop at screen during selection screen output
Similar Messages
-
How can i declare a single radio button field in selection-screen ?
How can i declare a single radio button field in selection-screen ?
>
Rob Burbank wrote:
> And how will you turn it off once it is turned on??
>
> Rob
Thats correct ;)...See ravi if users will ask so many things its our Job to convay the correct solution ....
Just post your org requirement..SOo some body guide you better//
Sas -
Add a button in report selection screen
Hi Experts,
I want to add a userdefined button in report selection screen....so far i have written code like this,...
TABLES : sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.
PARAMETERS: P_ID LIKE ZBAPITABLE-ID,
P_NM LIKE ZBAPITABLE-NAME.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (11) TEXT-001 FOR FIELD R1.
PARAMETERS: R1 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT-002 FOR FIELD R1.
PARAMETERS: R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT-003 FOR FIELD R1.
PARAMETERS: R3 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT-004 FOR FIELD R1.
PARAMETERS: R4 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN: FUNCTION KEY 1.
MOVE 'SAVE' TO sscrfields-functxt_01.
If i use code like this button was added in application tool bar
but in my selection screen i have two blocks ....in first block i have input fields, and in second there is set of radio buttons...Just below that i want to put one button ....how it is possible...
can anyone plz help me?
Regards,
veena.Here's th docu link:
[Pushbuttons on the Selection Screen|http://help.sap.com/saphelp_nw70/helpdata/en/9f/dba81635c111d1829f0000e829fbfe/frameset.htm]
Regards,
Clemens -
Can the EXECUTE button on a selection screen suppressed?
Can we suppress the EXECUTE button on the selection screen?
Hi
The flowlogic Keyword at EXIT-COMMAND is a special addition to the MODULE statement in the Flow Logic .AT EXIT-COMMAND you can call a module before the system executes the automatic fields checks.
u2018SUPPRESS DIALOGu2019 command allows to perform screen processing u201Cin the backgroundu201D. Suppresing screens is useful when we are branching to list-mode from a transaction dialog step. -
Button on standard selection screen
HI experts , can any budy tell me , that, can we put a button on the standard selection screen , means on screen no 1000, PLease suggest ur ans, i have a requirement to create a button on the first selection screen by selection the check box on the standard selection screen , a button should be appear on the standard selection screen.
THanks in advance,
RahulHello,
What do you mean by "but ur second concept is wrong we can set our own pf-status then how can u say that set the status".
Read again what I wrote! I said that the solution for your problem is to create a PF status of your own and that one will substitute the STANDARD one. This is the reason for having to insert the Execute (F8) button on it. Otherwise, if you don't insert it, you wont be able to execute your report.
Also, plz reply if u know the exect ans? this is not nice to say, specialy when the answer is correct. I've inserted buttons in standard selections screen lot's of times.
Regards.
Valter Oliveira. -
Prob with Push Buttons in the selection screen
Hi All,
1) I have 6 push buttons in the selection screen(Normal Report), 3 in a first row(P11, P12, P13) and 3 in the second row(P21, P22, P23). If I press one push button(for ex P11) the other two Push buttons(P12 P13) should grey out(Inactive mode). If I press P22, P21 & P23 shoul grey out.
2) I need color change for the Inactive push buttons.
Thanks
KrisCan you please post your selection screen definition? I don't understand what you want to achieve by greying out the other pushbuttons when one is pressed.
Does that mean pushing one button will do nothing except greying out the buttons?
Typically when you push a button, you want to continue to execute the required processing for that button not just grey out other pushbuttons and stay in the selection screen.
Anyway, you can achieve that using the following logic. I am not sure how and if you can achieve the color change.
TABLES: sscrfields.
DATA: v_button_pushed(5).
SELECTION-SCREEN PUSHBUTTON /1(10) p11 USER-COMMAND push1.
SELECTION-SCREEN PUSHBUTTON 12(10) p12 USER-COMMAND push2.
SELECTION-SCREEN PUSHBUTTON 23(10) p13 USER-COMMAND push3.
SELECTION-SCREEN PUSHBUTTON /1(10) p21 USER-COMMAND push4.
SELECTION-SCREEN PUSHBUTTON 12(10) p22 USER-COMMAND push5.
SELECTION-SCREEN PUSHBUTTON 23(10) p23 USER-COMMAND push6.
INITIALIZATION.
p11 = 'Push11'.
p12 = 'Push12'.
p13 = 'Push13'.
p21 = 'Push21'.
p22 = 'Push22'.
p23 = 'Push23'.
AT SELECTION-SCREEN OUTPUT.
CASE v_button_pushed.
WHEN 'PUSH1'.
LOOP AT SCREEN.
CHECK screen-name <> 'P11'.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
WHEN 'PUSH2'.
WHEN 'PUSH3'.
WHEN 'PUSH4'.
WHEN 'PUSH5'.
WHEN 'PUSH6'.
WHEN OTHERS.
ENDCASE.
AT SELECTION-SCREEN.
v_button_pushed = sscrfields-ucomm. -
Problem With Push buttons on the selection screen
Hi All,
I've taken 3 push buttons on the selection-screen with the following syntax
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2,
FUNCTION KEY 3.
and have removed the F8 execute button using FM RS_SET_SELSCREEN_STATUS
Now, the problem is i'm able to perform validations using At selection screen but the code after the Start-of-selection is not being triggered.
I mean the processing is being terminated after the at selection-screen.could anyone please tell me how do i trigger some code after the event start-of-selection when a user presses a push button with sy-ucomm = FC01.Check the below sample program :
REPORT ZLPRWINSPC_TMP .
tables : mara,
sscrfields.
select-options s_matnr for mara-matnr.
initialization.
sscrfields-functxt_01 = 'Clear Selection'.
selection-screen function key 1.
AT SELECTION-SCREEN.
case sscrfields-ucomm.
when 'Clear Selection' or 'FC01'.
clear s_matnr.
refresh s_matnr.
endcase.
Thanks
Seshu -
Report should executed based on the radio buttons on the selection screen
Hi everyone,
Greets....................
My scenario is I have 2 selection screen blocks on same screen..
One selection screen block contains input parameters as follows
Company Code - S_BUKRS
Business Area - S_GSBER
Customer Code - S_KUNNR
Fiscal Area - S_GJAHR
GL Account - S_HKONT
Posting Date -S_ZFBDT
Ledger Type -P_RLDNR
Open Item Key Date - P_ZFBDT
Another selection screen block contains 2 radio buttons with the option as follows
Collection Plan
*Credit days summary.
If i click Collection plan the report output should come based on the input parameters in first selection-screen block.
If i click Credit days summary the report output should come based on the input parameters in first selection-screen block.
Pls send me the sample code for this.
Thanks in Advance
Regards
Raj kumarSee the below folling example : it will have radio buttons and depends on radio button it will show output.
REPORT ZPPR_BOM_INFOL_REPORT no standard page heading
line-size 160
line-count 60.
======================================================================
Program Name : ZPPR_BOM_INFOL_REPORT
Description : This Program would be used for BOM List for a material*
and the component's where used list *
Author : Seshu *
Date : 07/24/2006 *
MODIFICATION HISTORY *
DATE | AUTHOR | CHANGE # | DESCRIPTION OF MODIFICATION *
|----
|----
|----
*12/04/06 | Seshu | DEVK921821 | Removed new page for each material *
======================================================================
Table definition *
TABLES: mast,
stko,
stpo,
T418,
makt.
TYPE - POOLS
TYPE-POOLS: slis.
Constants
constants : c_tcode(4) type c value 'CS03',
gc_formname_top_of_page TYPE slis_formname
VALUE 'TOP_OF_PAGE'.
Variables
data : v_maktx like makt-maktx,
wa_stko like stko.
DATA:
Objekttyp 'Material'
otyp_mat(1) TYPE c VALUE '1',
ootyp_mat(1) TYPE c VALUE 'M',
Objekttyp 'kein Objekt'
otyp_noo(1) TYPE c VALUE '2',
Objekttyp 'Dokument'
otyp_doc(1) TYPE c VALUE '3',
Objekttyp 'Klasse'
otyp_kla(1) TYPE c VALUE '4',
Objekttyp 'Intramaterial'
otyp_ntm(1) TYPE c VALUE '5'.
maximal anzeigbare Menge
data: max_num(7) TYPE p DECIMALS 3 VALUE '9999999999.999',
ueberl_kz(1) TYPE c VALUE '*',
min_num(7) TYPE p DECIMALS 3 VALUE '9999999999.999-',
b_flag(1) TYPE c VALUE 'X',
ecfld(250) TYPE c,
v_flag type c.
ALV Variables
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
gs_keyinfo TYPE slis_keyinfo_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_events TYPE slis_t_event.
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
g_save(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_default(1) TYPE c,
g_exit(1) TYPE c.
Includes *
INCLUDE .
Internal Table Declaration *
DATA: t_mast LIKE STANDARD TABLE OF mast WITH HEADER LINE.
*DATA: t_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE.
BOM Function module Related
DATA: t_matcat LIKE cscmat OCCURS 0 WITH HEADER LINE.
Internal Table for Level by Level Function module
DATA: t_stb LIKE stpox OCCURS 0 WITH HEADER LINE.
Get the Relevant data from FM
DATA: BEGIN OF hd_tab OCCURS 0,
stufe LIKE stpox-stufe,
vwegx LIKE stpox-vwegx,
END OF hd_tab.
Final Output
DATA: BEGIN OF alv_stb OCCURS 0.
INCLUDE STRUCTURE stpox_alv.
DATA: info(3) TYPE c,
END OF alv_stb.
DATA: BEGIN OF stb_orig.
INCLUDE STRUCTURE stpox.
DATA: END OF stb_orig.
DATA: BEGIN OF stb_add.
INCLUDE STRUCTURE stpol_add.
DATA: END OF stb_add.
Internal Table for STPO
*-- BOM Line item
TYPES: BEGIN OF ty_stpo,
stlty TYPE stpo-stlty,
stlnr TYPE stpo-stlnr,
stlkn TYPE stpo-stlkn,
stpoz TYPE stpo-stpoz,
idnrk TYPE stpo-idnrk,
meins TYPE stpo-meins,
menge TYPE stpo-menge, "Component Qty
END OF ty_stpo.
DATA: t_stpo TYPE STANDARD TABLE OF ty_stpo WITH HEADER LINE.
*-- BOM Header
TYPES: BEGIN OF ty_stko,
stlty TYPE stko-stlty,
stlnr TYPE stko-stlnr,
stlal TYPE stko-stlal,
stkoz TYPE stko-stkoz,
bmein TYPE stko-bmein,
bmeng TYPE stko-bmeng,
END OF ty_stko.
DATA: t_stko TYPE STANDARD TABLE OF ty_stko WITH HEADER LINE .
data : t_makt like makt occurs 0 with header line.
DATA: BEGIN OF cl_clstab OCCURS 0, "YHG079407
class LIKE klah-class, "YHG079407
klart LIKE klah-klart, "YHG079407
chked LIKE csdata-xfeld, "YHG079407
noobj LIKE csdata-xfeld, "YHG079407
dsply LIKE csdata-xfeld, "YHG079407
END OF cl_clstab.
*-- Header table
TYPES: BEGIN OF ty_main_material,
matnr TYPE mast-matnr, "Material
werks TYPE mast-werks, "Plant
maktx TYPE makt-maktx, "Description
stlal TYPE mast-stlal, "Alternative BOM
stlnr TYPE stko-stlnr, "BOM Number
bmein TYPE stko-bmein, "UOM
bmeng TYPE stko-bmeng, "Base Qty
expand(1) TYPE c, "Expanding Field
END OF ty_main_material.
DATA: t_main_material TYPE STANDARD TABLE OF ty_main_material WITH
HEADER LINE.
*-- Item (Component) Table
TYPES: BEGIN OF ty_item_material,
matnr TYPE mast-matnr, "Material
werks TYPE mast-werks, "Plant
idnrk TYPE stpo-idnrk, "Component (Material)
maktx TYPE makt-maktx, "Description
stlal TYPE mast-stlal, "Alternative BOM
stlnr TYPE stpo-stlnr, "BOM Number
meins TYPE stpo-meins, "UOM
menge TYPE stpo-menge, "Base Qty
END OF ty_item_material.
DATA: t_item_material TYPE STANDARD TABLE OF ty_item_material WITH
HEADER LINE.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_werks LIKE marc-werks DEFAULT '1000' OBLIGATORY.
SELECT-OPTIONS s_stlal FOR mast-stlal .
SELECT-OPTIONS s_stlan FOR mast-stlan DEFAULT '1'.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
PARAMETERS: p_bomlst RADIOBUTTON GROUP g1 DEFAULT 'X'.
SELECT-OPTIONS s_matnr FOR mast-matnr.
SELECTION-SCREEN SKIP.
PARAMETERS: p_compon RADIOBUTTON GROUP g1.
SELECT-OPTIONS: s_idnrk FOR stpo-idnrk.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF BLOCK b1.
selection-screen begin of block b03 with frame title text-b03.
selection-screen begin of line.
selection-screen comment 1(40) text-005.
parameters: p_all radiobutton group r1 default 'X'.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 1(40) text-006.
parameters: p_one radiobutton group r1 .
selection-screen end of line.
selection-screen end of block b03.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b3.
At slection screen events *
*-- Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
Intitialisation
INITIALIZATION.
g_repid = sy-repid.
g_tabname_header = 'T_MAIN_MATERIAL'.
g_tabname_item = 'T_ITEM_MATERIAL'.
*-- define keyinformation
CLEAR gs_keyinfo.
gs_keyinfo-header01 = 'MATNR'.
gs_keyinfo-item01 = 'MATNR'.
PERFORM e03_eventtab_build USING gt_events[].
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM e07_sp_group_build USING gt_sp_group[].
PERFORM e08_layout_build USING gs_layout.
Set Options: save variants userspecific or general
g_save = 'A'.
PERFORM variant_init.
Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
S T A R T - O F - S E L E C T I O N *******************
start-of-selection.
if p_all = 'X'.
Get the data from MAST and MAKT Table
if p_bomlst = 'X'.
Get the data Based On Material #
perform get_data.
else.
Get the data Based On Component
perform get_data_component.
endif.
else.
Get the Single Level Report
*-- Moved the fiedl catalog here inorder to change the layout based on
*-- Selection
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM select_data.
endif.
E N D - O F - S E L E C T I O N *******************
end-of-selection.
if p_one = 'X'.
perform alv.
endif.
User Command
at line-selection.
Interactive to CS03 Transaction
case sy-ucomm.
when 'PICK' or 'F2'.
if not alv_stb-idnrk is initial .
if not alv_stb-werks is initial.
if not alv_stb-objty is initial.
SET PARAMETER ID 'MAT' FIELD alv_stb-idnrk.
SET PARAMETER ID 'WRK' FIELD alv_stb-werks.
SET PARAMETER ID 'CSV' FIELD alv_stb-OBJTY.
call transaction c_tcode and skip first screen.
endif.
endif.
endif.
clear alv_stb.
endcase.
*& Form get_data
Get data from MAST and MAKT Table
FORM get_data.
data : wa_lines type sy-index.
REFRESH : T_MAST,
t_STB,
t_MATCAT,
alv_STB.
CLEAR : T_MAST,
t_STB,
t_MATCAT,
alv_STB.
Get the data from MAST Table
Get all the information from MAST - BOM Table
SELECT * FROM mast INTO TABLE t_mast WHERE matnr IN s_matnr AND
werks = p_werks AND
stlan IN s_stlan AND
stlal IN s_stlal.
describe table t_mast lines wa_lines.
if wa_lines is initial.
Write:/2 'List contains no data'.
stop.
endif.
loop at t_mast.
clear : v_maktx.
Start of change Seshu
Reason - Remove the new page option
if sy-tabix ne 1.
skip 1.
endif.
End of Change Seshu
Get the material Description
select single maktx from makt into v_maktx
where matnr = t_mast-matnr
and spras = 'E'.
Get the material details from STKO Table
select single * from stko into wa_stko
where STLTY = 'M'
and STLNR = t_mast-stlnr
and STLAL = t_mast-stlal.
Main Header for Each Material
format color 5 on.
write:/2 'Material',20 'Material Description',65 'Alternative BOM',
90 'Base Qty', 115 'Base Unit'.
format color 5 off.
format color 1 on.
write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
115 wa_stko-BMEIN.
format color 1 off.
Use the Function Module and get the format level by level
perform get_level_level.
endloop.
ENDFORM. " get_data
Top of page *
top-of-page.
perform report_header .
*& Form report_header
text
--> p1 text
<-- p2 text
FORM report_header.
new-page line-size 160 .
format color col_heading intensified on.
write:/ sy-uline(160) .
*--- Write Company Name.
perform calc_col_and_write using text-h00
sy-linsz.
*--- Write Report Title.
perform calc_col_and_write using sy-title
sy-linsz.
*--- Write User Id, Date / Time, Program Id, Page etc.
perform write_other_hdr_details.
write:/ sy-uline(160) .
ENDFORM. " report_header
*& Form calc_col_and_write
text
-->P_TEXT_H00 text
-->P_SY_LINSZ text
FORM calc_col_and_write USING P_TEXT
P_LINSZ.
data: col1 type i,
col2 type i,
len type i,
str type i.
str = strlen( p_text ).
col1 = ( p_linsz / 2 ) - ( str / 2 ) .
len = p_linsz - col1 - 2.
write: at /1 '|'.
write: at col1 p_text,
at sy-colno(len) space.
write at 160 '|'.
ENDFORM. " calc_col_and_write
*& Form write_other_hdr_details
text
--> p1 text
<-- p2 text
FORM write_other_hdr_details.
data: col1 type i,
col2 type i,
len type i.
col1 = 3.
write:/1 '|'.
write: at col1 'UserId : ',
sy-uname.
len = sy-linsz - 1.
write at sy-colno(len) space.
col2 = sy-linsz - 18.
write: at col2 'Date: ',
sy-datum mm/dd/yyyy.
write: at sy-linsz '|'.
write:/1 '|'.
write: at col1 'ReportId: ',
sy-repid.
write at sy-colno(len) space.
col2 = sy-linsz - 18.
write: at col2 'Page: ',
sy-pagno.
write: at sy-linsz '|'.
ENDFORM. " write_other_hdr_details
*& Form get_data_component
Get the data based on Component level
FORM get_data_component.
data wa_lines type i.
*-- Get the BOM item details
SELECT stlty stlnr stlkn stpoz idnrk meins menge
FROM stpo
INTO TABLE t_stpo
WHERE idnrk IN s_idnrk.
IF sy-subrc = 0.
CLEAR wa_lines.
DESCRIBE TABLE t_stpo LINES wa_lines.
IF wa_lines > 0.
SELECT stlty stlnr stlal stkoz bmein bmeng
FROM stko
INTO TABLE t_stko
FOR ALL ENTRIES IN t_stpo
WHERE stlnr = t_stpo-stlnr.
CLEAR wa_lines.
DELETE ADJACENT DUPLICATES FROM t_stko COMPARING ALL FIELDS.
DESCRIBE TABLE t_stko LINES wa_lines.
IF wa_lines > 0.
*-- Get the BOM item details
SELECT * FROM mast INTO TABLE t_mast FOR ALL ENTRIES IN t_stko
WHERE werks = p_werks AND
stlnr = t_stko-stlnr
and stlal in s_stlal.
ENDIF.
ENDIF.
else.
Write:/2 'List contains no data'.
stop.
endif.
loop at t_mast.
clear : v_maktx.
Start of change Seshu
Reason - Remove the new page option
if sy-tabix ne 1.
skip 1.
endif.
End of change Seshu
Get the material Description
select single maktx from makt into v_maktx
where matnr = t_mast-matnr
and spras = 'E'.
Get the material details from STKO Table
select single * from stko into wa_stko
where STLTY = 'M'
and STLNR = t_mast-stlnr
and STLAL = t_mast-stlal.
Main Header for Each Material
format color 5 on.
write:/2 'Material',20 'Material Description',65 'Alternative BOM',
90 'Base Qty', 115 'Base Unit'.
format color 5 off.
format color 1 on.
write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
115 wa_stko-BMEIN.
format color 1 off.
Use the Function Module and get the format level by level
perform get_level_level.
clear : t_mast.
endloop.
ENDFORM. " get_data_component
*& Form obj_ident
text
FORM obj_ident.
weder Mat noch Doc
CHECK: T_stb-objty NE otyp_mat,
T_stb-objty NE ootyp_mat,
T_stb-objty NE otyp_doc,
T_stb-objty NE otyp_ntm.
?T418-WA schon ok
nein
IF T_stb-postp NE t418-postp.
T418 einlesen
PERFORM t418_lesen USING T_stb-postp.
ENDIF.
PERFORM cl_clstab_maint.
?MatNr-Eingabe bei diesem PosTyp moeglich
und keine Textposition
trifft zu
IF t418-matin NE '-'
AND t418-txpos IS INITIAL.
aktuelles Objekt ist Material NLAG
T_stb-objty = '1'.
PosKurztext in ObjKurztext uebernehmen.
T_stb-ojtxp = T_stb-potx1.
MODIFY T_stb.
ELSE.
IF T_stb-objty IS INITIAL.
T_stb-objty = '2'.
MODIFY T_stb.
ENDIF.
ENDIF.
ENDFORM. " obj_ident
*& Form t418_lesen
text
-->P_T_STB_POSTP text
FORM t418_lesen USING lkl_postp LIKE stpo-postp.
T418-WA initialisieren
CLEAR:
t418.
Key angeben
t418-postp = lkl_postp.
PosTypDefinition lesen
READ TABLE t418.
ENDFORM. " t418_lesen
*& Form cl_clstab_maint
text
FORM cl_clstab_maint.
nur fuer Klassenpositionen
CHECK t_STB-OBJTY EQ OTYP_KLA.
Teilkey der Klassenpositionentabelle
CL_CLSTAB-CLASS = t_STB-CLASS.
CL_CLSTAB-KLART = t_STB-KLART.
Klassenpositionentabelle lesen
READ TABLE CL_CLSTAB
WITH KEY CL_CLSTAB(21)
BINARY SEARCH.
aktuelle Klassenposition bereits in Klassenpositionentabelle
nein
IF SY-SUBRC <> 0.
Klassenposition in Klassenpositionentabelle hinzufuegen
INSERT CL_CLSTAB INDEX SY-TABIX.
ENDIF.
ENDFORM. " cl_clstab_maint
*& Form alv_stb_prep
Printing the data as LEVEL BY LEVEL
FORM alv_stb_prep.
CLEAR:
alv_stb,
stb_orig,
stb_add.
IF t_stb-hdnfo IS INITIAL.
stb_orig = t_stb.
IF t_stb-mngko >= max_num.
stb_add-ovfls = ueberl_kz.
ELSE.
IF t_stb-mngko <= min_num.
stb_add-ovfls = ueberl_kz.
ELSE.
CLEAR: stb_add-ovfls.
ENDIF.
ENDIF.
IF NOT t_stb-xtlnr IS INITIAL.
stb_add-bomfl = b_flag.
ENDIF.
IF NOT t_stb-knobj IS INITIAL
OR NOT t_stb-class IS INITIAL
OR NOT t_stb-kzclb IS INITIAL.
stb_add-knofl = 'X'.
ENDIF.
ELSE.
CHECK t_stb-stufe > 1.
alv_stb-info = 'C30'.
IF t_stb-ttidx <> t_matcat-index.
READ TABLE t_matcat INDEX t_stb-ttidx.
ENDIF.
stb_orig-hdnfo = t_stb-hdnfo.
stb_orig-stufe = t_stb-stufe - 1 .
stb_orig-ojtxp = t_stb-ojtxb.
IF NOT t_stb-altst IS INITIAL.
stb_orig-stlal = t_stb-stlal.
IF stb_orig-stlal(1) EQ '0'.
stb_orig-stlal(1) = ' '.
ENDIF.
ENDIF.
stb_orig-idnrk = t_matcat-matnr.
ENDIF.
CLEAR:
stb_add-dobjt,
stb_add-objic.
CASE t_stb-objty.
WHEN otyp_mat.
WRITE: stb_orig-idnrk TO ecfld.
stb_add-objic = '@A6@'.
WHEN 'M'.
WRITE: stb_orig-idnrk TO ecfld.
stb_add-objic = '@A6@'.
WHEN otyp_noo.
WRITE: stb_orig-potx1 TO ecfld.
stb_add-objic = '@0Q@'.
WHEN otyp_doc.
write stb_orig-doknr to ecfld. "note 489354
IF ecfld CP '*# '. ENDIF. "note 489354
sy-fdpos = sy-fdpos + 1. "note 489354
CONCATENATE
*d stb_orig-doknr "note 489354
stb_orig-dokar
stb_orig-doktl
stb_orig-dokvr
*d INTO ecfld "note 489354
INTO ecfld+sy-fdpos "note 489354
SEPARATED BY space.
stb_add-objic = '@AR@'.
WHEN otyp_kla.
CONCATENATE
stb_orig-class
stb_orig-klart
INTO ecfld
SEPARATED BY space.
stb_add-objic = '@7C@'.
WHEN otyp_ntm.
WRITE: stb_orig-intrm TO ecfld.
WHEN OTHERS.
ENDCASE.
*d CONDENSE ecfld. "note 515408
stb_add-dobjt = ecfld(40).
CLEAR: ecfld.
WRITE stb_orig-stufe TO stb_add-dstuf NO-SIGN.
*d MOVE-CORRESPONDING stb_orig TO alv_stb. "note 331962
MOVE-CORRESPONDING stb_add TO alv_stb.
MOVE-CORRESPONDING stb_orig TO alv_stb. "note 331962
APPEND alv_stb.
ENDFORM. " alv_stb_prep
*& Form get_level_level
text
FORM get_level_level.
REFRESH : T_STB,
T_MATCAT,
ALV_STB.
CLEAR : T_STB,
T_MATCAT,
ALV_STB.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = sy-datum
mktls = 'X'
mehrs = 'X'
mtnrv = t_mast-matnr
stlal = '01'
stlan = '1'
stpst = 0
svwvo = 'X'
werks = p_werks
vrsvo = 'X'
TABLES
stb = t_stb
matcat = t_matcat
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: hd_tab.
Entry der KlassenstatusTab. initialisieren
cl_clstab,
Entry 'Objekte von Klassen' initialisieren
cl_objmemo.
REFRESH: hd_tab.
SORT t_matcat BY index ASCENDING.
Get the All levels
loop at t_stb.
IF NOT t_stb-hdnfo IS INITIAL.
EXIT.
ENDIF.
Object Identification
PERFORM obj_ident.
READ TABLE hd_tab
WITH KEY stufe = t_stb-stufe
vwegx = t_stb-vwegx
BINARY SEARCH
TRANSPORTING NO FIELDS.
?gibt es diesen Satz schon
nein
IF sy-subrc <> 0.
dann in SFP-Infosatzverweistab. aufnehmen
*d APPEND HD_TAB. "HGH054648
hd_tab-stufe = t_stb-stufe.
"HGH054648
hd_tab-vwegx = t_stb-vwegx.
"HGH054648
INSERT hd_tab "HGH054648
INTO hd_tab "HGH054648
INDEX sy-tabix. "HGH054648
PosNr initialisieren
CLEAR: t_stb-posnr.
SFP-InfosatzKz setzen
t_stb-hdnfo = 'X'.
stb-objty = otyp_mat.
"HGE246532
als SFP-Infosatz in die STB aufnehmen
append t_stb.
ENDIF.
*del ENDIF.
clear t_stb.
endloop.
SORT t_stb ASCENDING BY stufe
index ASCENDING
*del POSNR ASCENDING. "HGC062735
posnr ASCENDING "HGC062735
hdnfo DESCENDING.
LOOP AT t_stb.
T_stb-index = sy-tabix.
MODIFY T_stb.
PERFORM alv_stb_prep.
ENDLOOP.
Displays the Value as Level by Level
loop at ALV_stb.
if sy-tabix = 1.
format color 3 on.
write:/2 'Level',12 'Item',22 'Component',
42 'Material Description',82 'Base Qty',
107 'Base Unit',120 'Assembly Indicator'.
format color 3 on.
endif.
if alv_stb-MEINs is initial.
v_flag = 'X'.
endif.
if v_flag = 'X'.
format color 5 on.
write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP.
format color 1 off.
else.
if alv_stb-STUFE = '1'.
format color 1 on.
write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs, 120 alv_stb-bomfl .
format color 1 off.
elseif alv_stb-STUFE = '2'.
format color 2 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl.
format color 2 off.
elseif alv_stb-STUFE = '3'.
format color 3 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 3 off.
elseif alv_stb-STUFE = '4'.
format color 4 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 4 off.
elseif alv_stb-STUFE = '5'.
format color 5 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 5 off.
elseif alv_stb-STUFE = '6'.
format color 7 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl.
format color 6 off.
elseif alv_stb-STUFE = '7'.
format color 7 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 7 off.
else.
format color 1 on.
write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
42 alv_stb-OJTXP,72 alv_stb-mngko,
107 alv_stb-MEINs,120 alv_stb-bomfl .
format color 1 off.
endif.
endif.
hide: alv_stb.
clear : alv_stb.
clear v_flag.
endloop.
ENDFORM. " get_level_level
*& Form f4_for_variant
text
FORM f4_for_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
it_default_fieldcat =
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " f4_for_variant
FORM E03_EVENTTAB_BUILD *
--> E03_LT_EVENTS *
FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = e03_lt_events.
READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO e03_lt_events.
ENDIF.
ENDFORM.
FORM E04_COMMENT_BUILD *
--> E04_LT_TOP_OF_PAGE -
Can someone give an example of create a pushbuttom in a selection screen 1000? I draw the button with screen painter and i assign a function code.
Which event is triggered when i push the button??? AT-USER COMMAND ??? I think that isn't because is in the selection-screen.
thanks,
SILVIaHi
TABLES: SSCRFIELDS.
If you need a pushbuttom on the screen:
SELECTION-SCREEN PUSHBUTTON X(Y) <NAME> USER-COMMAND <COMMAND>.
X is the distance from the left border and Y is the lenght.
INITIALIZATION.
<NAME> = 'My Buttom'.
If you need it on the status:
SELECTION-SCREEN FUNCTION KEY N.
with N is from 1 to 5.
INITIALIZATION.
MOVE 'My Buttom' TO SSCRFIELDS-FUNCTXT_0<N>.
Manage the ok-code in the AT SELECTION-SCREEN event
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = <CODE>.
ENDIF.
Max -
How to hide default buttons on WD selection screen
Hi Experts,
Is there a way to hide default buttons ( Cancel, Check, Reset, Copy ) on web dynpro selection screen ??
Please let me know how can I achieve this..
Thanks in advance !
AnandBy selection screen do you mean the select-options reusable component? If so, then there is an API of the component that you can call to disable these fields. Use the SET_GLOBAL_OPTIONS method of the select-options API to acomplish this:
data: l_ref_cmp_usage type ref to if_wd_component_usage.
l_ref_cmp_usage = wd_this->wd_cpuse_select_options( ).
if l_ref_cmp_usage->has_active_component( ) is initial.
l_ref_cmp_usage->create_component( ).
endif.
wd_this->lv_wd_select_options =
wd_this->wd_cpifc_select_options( ).
* init the select screen
wd_this->lv_sel_handler =
wd_this->lv_wd_select_options->init_selection_screen( ).
wd_this->lv_sel_handler->set_global_options(
EXPORTING
* i_display_btn_cancel = ABAP_TRUE " Displays "Cancel" Button
* i_display_btn_check = ABAP_TRUE " Displays "Check" Button
* i_display_btn_reset = ABAP_TRUE " Displays "Reset" Button
i_display_btn_execute = abap_false " Displays "Apply" Button -
Radio buttons & Parameters in Selection Screen...
Hi all,
I have a case in Selection Screen :
There are 2 radio buttons(R1 & R2) and 4 parameters (P1, P2, P3, P4).
WHen i select R1 then P1 and P2 should become mandatory
when i select R2 then P1, P2, P3 & P4 should become mandatory.
I have coded it using LOOP AT SCREEN ...
So, by default R1 will be selected then P1, P2 will become mandatory. Now when i select R2, it gives an status message as 'FILL IN THE REQUIRED FIELDS' .....So how can i overcome this and be able to select R2 which enables P1, P2, P3,P4 as mandatory ?
Please provide some feasible solution. Thanks!Hi Jayati,
Below is the code...i have used.
parameters : R1 radiobutton group rad modif id RAD user-command com,
R2 radiobutton group rad modif id RAD.
parameters : p1 type char10 modif id grp ,
p2 type char10 modif id grp ,
p3 type char10 modif id gr2,
p4 type char10 modif id gr2.
INITIALIZATION.
r1 = 'X'.
At selection-screen output.
if R1 = 'X'.
loop at screen.
if screen-group1 = 'GRP'.
screen-required = '1'.
modify screen.
endif.
if screen-group1 = 'GR2'.
screen-required = '0'.
modify screen.
endif.
endloop.
else.
loop at screen.
if screen-group1 = 'GRP'.
screen-required = '1'.
modify screen.
endif.
if screen-group1 = 'GR2'.
screen-required = '1'.
modify screen.
endif.
endloop.
endif.
Now while we execute this....R1 is selected by default...which enables P1 & P2 as mandatory. okay ? ...Now when i select R2 at this point of time. it says 'FILL IN ALL REQUIRED ENTRY FIELDS'. (and it shows only P1 & P2 as mandatory).
But the user don't want to fill P1 & P2. ...(just for selecting R2)..
Instead he wants R2 to get selected with the below
a) Without entering values for P1 & P2
b) WIthoug displaying any Error Meassage as 'FILL IN ALL REQUIRED ENTRY FIELDS'.
c) P1 P2 P3 P4 should become mandatory
Hope u understood it now. -
Push button in the selection screen
Hi folks,
I need to display a push button the selection screen.its not on the application tool bar..but in one of the selection block in the selection screen..could anybody guide how to do this...
Thanks in advance,
shyam.
Edited by: shyam prasad on Jan 15, 2009 7:34 AMHi Shyam,
Try the following code..
TABLES sscrfields.
TYPE-POOLS icon.
*SELECTION-SCREEN:
BEGIN OF SCREEN 500 AS WINDOW TITLE title,
PUSHBUTTON 2(10) but1 USER-COMMAND cli1,
PUSHBUTTON 28(30) but2 USER-COMMAND cli2
VISIBLE LENGTH 10.
END OF SCREEN 500.
AT SELECTION-SCREEN.
CASE sscrfields.
WHEN 'CLI1'.
WHEN 'CLI2'.
ENDCASE.
START-OF-SELECTION.
title = 'Push button'.
but1 = 'Button 1'.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = icon_information
text = 'Button 2'
info = 'My Quickinfo'
IMPORTING
RESULT = but2
EXCEPTIONS
OTHERS = 0.
Hope it will be useful..
Regards,
Lakshman.
Edited by: Lakshman N on Jan 15, 2009 7:39 AM -
How to remove multiple selections button in LDB selection screens
Hi Friends,
I am facing a problem while doing an HR object. I took an LDB with Selection screen '100'. i got the company code select-option in it. But i need to avoid multiple selection button so that i have to take only a single company code to print the ALV heading as the company Text. Please tell me quickly, how can i do it.
Regards,
Santosh.You may have to do something like below where S_BUKRS is your company code select option of the LDB.
REPORT zakstest1 NO STANDARD PAGE HEADING.
TABLES t001.
TYPE-POOLS: sscr.
SELECT-OPTIONS s_bukrs FOR t001-bukrs.
INITIALIZATION.
*-- Remove the the ranges option
PERFORM remove_ranges_for_sel_options.
*& Form remove_ranges_for_sel_options
* text
FORM remove_ranges_for_sel_options.
DATA: optlist TYPE sscr_opt_list,
restrict TYPE sscr_restrict,
*** TYPE sscr_***.
*-- Allow EQ only
CLEAR optlist.
optlist-name = 'EQ_ONLY'.
optlist-options-eq = 'X'.
APPEND optlist TO restrict-opt_list_tab.
CLEAR ***.
***-kind = 'S'.
***-sg_main = 'I'.
***-sg_addy = 'N'.
*-- Make S_BUKRS range to have only EQ
***-name = 'S_BUKRS'.
***-op_main = 'EQ_ONLY'.
APPEND *** TO restrict-***_tab.
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
restriction = restrict
EXCEPTIONS
too_late = 1
repeated = 2
selopt_without_options = 3
selopt_without_signs = 4
invalid_sign = 5
empty_option_list = 6
invalid_kind = 7
repeated_kind_a = 8
OTHERS = 9.
ENDFORM. " rem_ranges -
Button in standard selection screen...
hello All,
I am using PNP logical database and i have modified the standard selection screen for PNP.
But now there is a button that appears , although the rest is supressed as i wanted it to.
Our forums active contrubutor suresh datti has provided me a solution before to go to sytem then status and then click screen 100 then invisible the push button and activate and re-execute the program. The method seems to work fine. But surprisingly after some time the button appears again..
any idea..??
thanks,
Reena..then try to remove the button from there.
-
Button on report selection screen application toolbar
Hi,
I want to place Button (application tool bar)on report(executable program) selection screen.
Need your valuable suggestions.
Thanks,
Sreedevihii
1. create GUI status with "Status" name and "Short text"
2. Now a screen will appear with the following,
a. Menu Bar
b. Application tool bar
c. Function keys
3. Click the down arrow near the application toolbar
4. Enter the function code like SAVE, EXIT, etc., You
can also give ur own meaningful naming convention .
For example ( ZTEST)
5. Now press enter, it will ask for "Static text" or "Dynamic Text". Choose Static text and press enter
6. Now it will ask for function text and Icon name. Specify some function text ( what it does ) and Icon name u want to attach.
7. Press enter. It will ask for function keys. Specify a function key and press enter.
8. Now u can handle this function code (ZTEST) either in PBO/PAI like IF FUNCTION = ZTEST ...ENDIF
Note:
Don't forget to set the GUI status u have created in PBO event.
Example code to set PF status.
PROCESS BEFORE OUTPUT.
MODULE liste_initialisieren.
MODULE setstatus_0100.
LOOP AT extract WITH CONTROL
tctrl_ztufi_league CURSOR nextline.
MODULE liste_show_liste.
ENDLOOP.
In the above MODULE setstatus_0100 do the following,
SET PF-STATUS 'ZGUI'. ( The GUI status u have created).
Check this:
<b>http://www.sapdevelopment.co.uk/reporting/selscr/but_appbut.htm</b>
<b>http://www.sap-basis-abap.com/abap/add-button-to-alv-toolbar-with-reuse-alv-list-display.htm
Re: How to add push buttons in out put screen of ALV
http://www.planetsap.com/Tips_and_Tricks.htm</b>
Regards
Naresh
Maybe you are looking for
-
How do i make wls 9.2 stop shutting itself down within eclipse 3.2.2?
after starting weblogic server 9.2 mp1 from within eclipse sdk 3.2.2 build M20070212-1330 for solaris gtk, something programatically requests weblogic server 9.2 to shut itself down only seconds after the server has started. steps to reproduce: 1. do
-
Error while integrating Exchange Calendar with SharePoint Calendar Overlay
Hello All, I'm trying to integrate Exchange Calendar with SharePoint Calendar using Overlay option. I have added root certificate in my central admin, but it still show an error Could not establish trust relationship for the SSL/TLS secure channel wi
-
Problem After Copying to New Mac
Hi, Everyone... I followed the instructions to manually transfer all my files from my old Mac (Tiger) to my new one (Leopard), including the Calendar files. However, when I open iCal on the new Mac, none of my events or other settings are showing up!
-
Hi all, Does anyone know why I would be getting the error below: While executing receiveArguments in File_Save.htm, the following Javascript error(s) occured: At line 45 of the file "c:\program files\macromedia\dreamweaver mx\configeration\menus\mm\f
-
Hi! I recently bought 6 Xperia Z1 to the company and now we can´t hear eachother anymore. There´s constant brakes and after a minute or two the voice disappears completly and there´s nothing to do but to end the call. What to do? Best regards/ Christ