SELECTIVE DISPLAY OF CUSTOM BUTTONS
I have 3 tables that I have created forms for. The first is a
master account file with PK and the other two deal with sub-
project or course information using FK. I have created the
buttons to call the second forms, when needed and only if the a
indicator field in the account record says there should be
associated sub-projects or courses.
I have found the code used to hide the standard buttons based on
the '_FORM_STATE', but how and/or where do I place similar code
to handle my custom buttons?
Albert:
Have you tried:
"_idx" := get_index('MY_CUSTOM_BUTTON');
p_form.items("_idx").visible := 'N';
- Mark
Similar Messages
-
Conditional display of "Custom" Buttons in Portal Forms
Could someone tell me if the following is possible, and briefly explain the steps to a beginner in Portal (but reasonably familiar with PL/SQL):
Problem - How to display "Custom Buttons" conditionally
Example -
a) Assume you have a certain record ("patient_address"). The hospital requires that every patient address be authorized before submitting records to health insurance. However, authorized records should not be authorized again.
b) Also assume that the "patient_address" table has a column "authorized" (which can contain Y or N)
* The requirement is to show an "Authorize" button whenever the record being viewed has the "authorized" column as "N" only
* If possible, this can be further improved by obtaining whether the person viewing the information has permission to authorize, but this can be taken as a next step
Approaches -
1. If possible, achieve this in Portal Forms
2. (worst case) - show the button, but show a message if it is pressed and the action does not apply
Somehow, it seems as though Portal Forms is not suitable (or does not have the documentation readily accessible) of how to do specific, custom, real world forms design as in this example - could someone please elaborate
Also, would this be better done by using one of the following in combination with Portal:
- HTT (will this be supported, given that it is an Oracle internal technology)
- PHP (is this even compatible with Portal?)
nullHi,
Conditional display/hide of custom buttons is not yet supported in Portal.
However, if you are willing to modify the generated form package this could be done.
Each form has a procedure called row_function which conditionally hides Insert/Update buttons depending on the mode. By default all elements of a form are visible, then row_function modifies the "visibility" property to hide that element.
for example, this is a fragment of row_function code which hides the Insert button in update mode:
"_form_state" := p_session.get_value_as_varchar2(
p_block_name => "_block",
p_attribute_name => '_FORM_STATE');
if "_form_state" = 'UPDATE_AND_DELETE' then
"_idx" := get_index('INSERT_TOP');
p_form.items("_idx").visible := 'N';
end if;
You can add any additional code to check form's session storage/custom package variable/function whatever is more suitable in your case.
Then you just set visible to 'N'.
"_idx" := get_index('MY_CUSTOM_BUTTON');
p_form.items("_idx").visible := 'N';
Of course the biggest drawback of this is every time you edit your form you will loose your change and must edit the package manually. To minimize the effect you can create a custom package/procedure with type signature matching that of row_function and place your code there, so you will need to add only one line of code to the row_function.
Hope this will help to resolve the problem, I don't know the status/plans for HTT/PHP support in Portal.
Thanks,
Dmitry -
We have a custom button created in plugin and it works fine in reader and acrobat. Now we want to make it available when the pdf opened in IE. The problem is when the pdf opened in IE the Extended tab is not displayed(the custom button is under this tab). Please if someone here can help me on this issue. Thanks a lot in advance.
Thanks for the reply. So, the custom button created in adobe plugin can't be used in browser? Is there any other way around?
-
Custom button in alv and disabling all buttons in application tool bar
Experts,
Could you please help me for the below requirements.
1). How to disable all the buttons (like sorting, print, find, set filter...etc.) in tool bar using oops?
2). Where can I add my custom download button in alv report using oops?
Thanks in advance...
Sridhar..Step1:
Create on local class
Class <LCL_EVENT_RECEIVER> Definition
Define the below public methods.
Method Name HANDLE_TOOLBAR
Event Name TOOLBAR
Event Class CL_GUI_ALV_GRID
Importing E_OBJECT, E_INTERACTIVE
Method Name HANDLE_USER_COMMAND
Event Name USER_COMMAND
Event Class CL_GUI_ALV_GRID
Importing E_UCOMM
Class <LCL_EVENT_RECEIVER> Implementation
. Method HANDLE_TOOLBAR
Declare the structure <LS_TOOLBAR> of structure type STB_BUTTON
Append the button information as given below into table E_OBJECT->MT_TOOLBAR to display the custom button on ALV grid.
LS_TOOLBAR-FUNCTION = u2018DOWNu2019
LS_TOOLBAR-QUICKINFO = u2018downloadu2019
LS_TOOLBAR-TEXT = u2018downloadu2019
Method HANDLE_USER_COMMAND
In this method if E_UCOMM = u2018DOWNu2019 write your logic.
Step2:
1. To excluding the ALV grid buttons, fill the <LT_EXC> with function code CL_GUI_ALV_GRID=>MC_FC_EXCL_ALL
2. To generate the ALV Grid, call the method SET_TABLE_FOR_FIRST_DISPLAY
Class CL_GUI_ALV_GRID
Method Name SET_TABLE_FOR_FIRST_DISPLAY
Exporting
I_STRUCTURE_NAME ZDS_CM_EXT_SEL
LS_LAYOUT <LS_LAYOUT>
IT_TOOLBAR_EXCLUDING <LT_EXC>
Changing
IT_OUTTAB <GT_EXT_SEL>
Create the Instance for class <LCL_EVENT_RECEIVER>
Class <LCL_EVENT_RECEIVER>
Instance Name <LO_EVENT_FNAME>
Now set handler <HANDLE_USER_COMMAND> and <HANDLE_TOOLBAR_FNAME> events using instance <LO_EVENT_FNAME>
Call method 'SET_TOOLBAR_INTERACTIVE' to raise event TOOLBAR
Class CL_GUI_ALV_GRID
Instance Name <GO_GRID>
Method Name SET_TOOLBAR_INTERACTIVE -
How to Calculate sum for the selected rows in ALV gird using custom button
Hi I am trying to implement an ALV Grid display where the user can select few rows in the output and if he click on some custom button he should get the sum for only those rows.
Can anyone give me some idea regarding this.
Thanks in advanceWhile building the fieldcatalog for amount field use gt_fieldcat-do_sum = 'X'. And use the below for doc type sorting and subtotal.
* ALV data declarations
data: it_sortcat type slis_sortinfo_alv occurs 1,
wa_sort like line of it_sortcat.
perform build_sortcat.
*& Form build_sortcat
* Build Sort catalog
FORM build_sortcat .
wa_sort-spos = 1.
wa_sort-fieldname = 'EBELN'.
wa_sort-SUBTOT = 'X'. "subtotals any totals column by this field
* gd_sortcat-tabname
APPEND wa_sort TO it_sortcat.
wa_sort-spos = 2.
wa_sort-fieldname = 'EBELP'.
* gd_sortcat-tabname
APPEND wa_sort TO it_sortcat.
ENDFORM. " build_sortcat
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_sort = it_sortcat
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
Regards,
Chandru -
Custom button at selection screen toolbar
Hi All,
I have a requirement to add button at selection screen toolbar. Once this button was hit another program should be called.
Do you have any idea on how to do this. Appreciate your help.
Thanks in advance.Hi,
To add custom Button to your selection screen see the below example-
TABLES: SSCRFIELDS.
TYPE-POOLS ICON.
PARAMETERS: p_bukrs TYPE bukrs.
INITIALIZATION:
V_FUNCTXT-ICON_ID = ICON_XXX. " Add Icon to button if you want.
V_FUNCTXT-QUICKINFO = 'xxxx'. " Text to be displayed when you hover mouse over the button
V_FUNCTXT-ICON_TEXT = 'yyyy'. " Text to be dsipalyed on button.
SSCRFIELDS-FUNCTXT_01 = V_FUNCTXT.
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'FC01'. " Handle the click on button. By default this function code will be
to your
"Your logic
ENDCASE. -
How do you make a custom button that is Invisible When not selected
Im just recently switching over to using a mac for authoring. I really like all the features in DVD Studio more than what i was using on a PC for the past 6 years. Which was ulead DVD Workshop 2.
The only problem im having (For Now) is that i cant make my custom buttons invisible. I made this little black shape thing in photoshop and i want to use it in DVDSP for selecting different tracks.
I thought all i had to do was just save the black shape with a transparent background in photoshop as a .psd and import it. But that didnt work.
When i change episodes it just stays black the whole time. I want something that will be invisible when it is not selected.
please help
I can send someone my little shape if they can make it a usable button that i can make invisible in dvdsp. I really need to see the layers done with a shape as a button to see how they were able to make it invisible.
i tried a few tutorials but instead of being invisible all i got was a shape that was stuck white the whole time. this is even when i put the opacity to 0 on normal.
I want to make this into a button
http://img694.imageshack.us/i/custonbutton.png/Ok, what you want to do is also in the same tutorial. See the section on "Advanced Highlights" (again, avoid the sections on layered menus), You can create an overlay that does have two colors. The bad news is that there will be absolutely no anti-aliasing at all. This means your graphic will be extremely pixelated. This is just the way the DVD specs are set up, so there is no way around it.
Given that I would highly recommend redesigning your overlay. Take a look at variety of DVDs from Hollywood. See what they are doing in their menus. You can do anything they are doing, but you will notice that the overlay is very simple because of the limited anti-aliasing of DVDs. In all the years that I've been watching DVDs I've only see one DVD use two colors in the overlay, and that was the Jim Carey "The Grinch who Stole Christmas." -
Customized Button code not working on selection screen.
Hello Experts,
I have a button on the selection screen next to Execute button on the Application Tool Bar.
I have written some validations on the button.It was defined on the PF-Status and its funtion text i have given as 'Show'.
But the problem is that the code is not working.When I execute the button,the screen just remains their.
The sy-comm always returns the value of 'UCOM' for whatever even takes place on the screen.The execution of the program does not stops their in debugger.
Can anyone help me with some sample code and also provide the value of sy-ucomm which i should use for the customized button.
Good points will be rewarded.Here is the short program which will show how to do it. You are simply checking for the USER-COMMAND value CHK and changing it to ONLI which is the F8 button, then the START-OF-SELECTION will be fired and you can output the list.
REPORT zyou_0001.
TABLES: sscrfields.
SELECTION-SCREEN PUSHBUTTON 2(10) pbut1 USER-COMMAND chk.
AT SELECTION-SCREEN OUTPUT.
pbut1 = 'Test This'.
AT SELECTION-SCREEN.
IF sscrfields-ucomm = 'CHK'.
sscrfields-ucomm = 'ONLI'.
ENDIF.
START-OF-SELECTION.
DO 10 TIMES.
WRITE:/ sy-index.
ENDDO.
Regards,.
Mohammed -
How to control custom button display or hide in toolbar
I had been added four buttons in Acrobat Tool bar.
Now I find a function AVToolButtonSetComputeEnabledProc in SDK that this function only control the button enable or disenable.
Now I want to control the custom button display or hide, how can I to do?
Does this SDK have a API to achieve my need?As of Acrobat X, we no longer support dynamic hiding/showing – only enable/disable.
-
Custom buttons in ALV grid display
I want to add custom buttons on application toolbar while displaying an ALV report using grid display.
how can it be done?Hi
In order to add user command functioality to the ALV grid you need to perform the following steps:
1. Update 'REUSE_ALV_GRID_DISPLAY' FM call to include 'USER_COMMAND' FORM
2. Create 'USER_COMMAND' FORM
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
I_callback_user_command = 'USER_COMMAND' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
FORM USER_COMMAND *
--> R_UCOMM *
--> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
In order modify PF_STATUS of ALV grid report you need to perform the following steps:
1. Update 'REUSE_ALV_GRID_DISPLAY' FM call to include:
i_callback_pf_status_set = 'SET_PF_STATUS' statement.
2. Create 'SET_PF_STATUS' FORM
3. Create pf_status (i.e. 'ZNEWSTATUS').
- It is recommend that you copy standard status'STANDARD' from function group SALV
and modify it accordingly. ALV standard function codes always start with '&'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
i_callback_pf_status_set = 'SET_PF_STATUS' "see FORM
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
FORM SET_PF_STATUS *
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZNEWSTATUS'.
"Copy of 'STANDARD' pf_status from fgroup SALV
ENDFORM. -
How to create a custom Button in a SNP planning book
Hi Experts,
I created my own Planning Book and Dataview in SNP with 3 Key Figures: KF1, KF2, KF3. Now I want to create one my own button with Macro so that when I press that button, the Macro will run to calculate: KF3 = KF1 + KF2.
I know that I can drag this Macro to one of default events like: Default, Level Change, Start. But actually, I want to create my own button so that I can handle the event as I want.
My question are:
1. How to create a custom button on the toolbar of SNP Planning book and writing macro for the button?
2. Please give me any document, material teaching about writing macro and relating to my above scenario.
Thanks very much!
Duyennx
Edited by: xuanduyen on Sep 6, 2011 9:20 AMHi,
Access the transaction "/n/sapapo/advm". In the list select your planning book/ data view and click 'Start Macro Builder' button.
In the Macro builder screen, drag and drop your macro from Macro depot to the work area.
Right click on your macro name and select 'properties'. In the pop up, next to the Assigned Push button field, there is a button 'Choose'. Click that. It will display all the available icons. In standard system, it displays more than 1000 icon. Choose any one icon which is suitable for your macro function. Close the pop up and save the macro. This will assign a push button to your macro.
In the Planning book tool bar, you can see the selected icon in the header tool bar. Just by clicking that icon, you can execute the macro interactively.
And I don't know whether we can include/design our own icon. But there are already 1000+ standard icons to choose.
Regards,
Manimaran M. -
How to handle value change events of select list in custom component?
My HelloUIComp code...How to handle events for "Select"...if i choose option1 from select then one text box is to be displayed in custom component and if i choose another option then some other text box is to be displayed in custom components...
public class HelloUIComp extends UIComponentBase {
public static final String account="custom.account";
public static final String RENDERER_TYPE = null;
HtmlCommandButton button = createButton();
//HtmlSelectOneMenu select=createSelect();
public void processDecodes(FacesContext context) {
Calling the lifecycle method "processDecodes" on the
internal button is absolutely critical to create action events
button.processDecodes(context);
super.processDecodes(context);
private HtmlCommandButton createButton() {
FacesContext context = FacesContext.getCurrentInstance();
HtmlCommandButton newButton = new HtmlCommandButton();
newButton.setId("Add");
newButton.setValue("Add");
newButton.setType("submit");
//newButton.setOnclick("return func_1(this,event);");
MethodBinding binding = context.getApplication().createMethodBinding("#{pc_MyProjectView.go}", null);
newButton.setAction(binding);
newButton.setParent(this);
return newButton;
/* private HtmlSelectOneMenu createSelect()
HtmlSelectOneMenu selectCategory=createSelect();
return selectCategory;
public void encodeBegin(FacesContext context) throws IOException {
String style = (String)getAttributes().get("style");
String startdate = (String)getAttributes().get("startdate");
String enddate = (String)getAttributes().get("enddate");
//String add=(String)getAttributes().get("add");
ResponseWriter writer = context.getResponseWriter();
writer.startElement("table", this);
writer.writeAttribute("border","2","2");
writer.startElement("tbody", this);
writer.startElement("tr", this);
writer.startElement("td", this);
writer.writeText("Account Category", null);
writer.endElement("td");
writer.startElement("td", this);
writer.writeText("Reg-No", null);
writer.endElement("td");
writer.startElement("td", this);
writer.writeText("Account-No", null);
writer.endElement("td");
writer.startElement("td", this);
writer.writeText("", null);
writer.endElement("td");
writer.startElement("td", this);
writer.writeText("Start-Date", null);
writer.endElement("td");
writer.startElement("td", this);
writer.writeText("End-Date", null);
writer.endElement("td");
writer.endElement("tr");
writer.startElement("tr",this);
writer.startElement("td", this);
writer.startElement("select", this);
if (style!=null)
writer.writeAttribute("style", style, null);
writer.writeAttribute("name","category","category");
writer.startElement("option", this);
writer.writeText("Select", null);
writer.endElement("option");
//to access data
Account accountObj;
AccountData accountDataobj;
List listOfAccounts;
int noOfAccounts;
accountDataobj=new AccountData();
listOfAccounts=accountDataobj.getAccounts();
noOfAccounts=listOfAccounts.size();
for(int i=0;i<noOfAccounts;i++)
writer.startElement("option", this);
accountObj=(Account) listOfAccounts.get(i);
writer.writeText(accountObj.getCategory(), null);
writer.endElement("option");
//System.out.println(accountObj.getRegNo());
//System.out.println(accountObj.getAccountNo());
writer.endElement("select");
writer.endElement("td");
writer.startElement("td", this);
writer.startElement("select", this);
if (style!=null)
writer.writeAttribute("style", style, null);
writer.writeAttribute("name","regno","regno");
writer.startElement("option", this);
writer.writeText("Select", null);
writer.endElement("option");
for(int i=0;i<noOfAccounts;i++)
accountObj=(Account) listOfAccounts.get(i);
writer.startElement("option", this);
writer.writeText(""+accountObj.getRegNo(), null);
writer.endElement("option");
writer.endElement("select");
writer.endElement("td");
writer.startElement("td", this);
writer.startElement("select", this);
if (style!=null)
writer.writeAttribute("style", style, null);
writer.writeAttribute("name","accno","accno");
writer.startElement("option", this);
writer.writeText("Select", null);
writer.endElement("option");
for(int i=0;i<noOfAccounts;i++)
accountObj=(Account) listOfAccounts.get(i);
writer.startElement("option", this);
writer.writeText(accountObj.getAccountNo(), null);
writer.endElement("option");
//writer.startElement("option", this);
//writer.writeText("00200155", null);
//writer.endElement("option");
writer.endElement("select");
writer.endElement("td");
writer.startElement("td", this);
button.encodeBegin(context);
button.encodeChildren(context);
button.encodeEnd(context);
writer.endElement("td");
writer.startElement("td", this);
writer.startElement("input", this);
if (style!=null)
writer.writeAttribute("style", style, null);
writer.writeAttribute("type","text","text");
writer.writeAttribute("name","startdate","startdate");
writer.writeAttribute("value",startdate,startdate);
writer.writeAttribute("readonly", "","");
//writer.endElement("input");
writer.endElement("td");
writer.startElement("td", this);
writer.startElement("input", this);
if (style!=null)
writer.writeAttribute("style", style, null);
writer.writeAttribute("type","text","text");
writer.writeAttribute("name","enddate","enddate");
writer.writeAttribute("value",enddate,enddate);
writer.writeAttribute("readonly", "","");
writer.endElement("td");
writer.endElement("tr");
writer.endElement("tbody");
writer.endElement("table");
public String getFamily() {
return "HelloFamily";
}NewEclipseCoder wrote:
How to handle events for "Select"...if i choose option1 from select then one text box is to be displayed in custom component and if i choose another option then some other text box is to be displayed in custom components...Two ways:
1) submit the form to the server and render the desired textbox depending on the option.
or
2) render all textboxes and use Javascript/DOM to display/hide them depending on the option. -
Using WE to display a custom box
I have a report that I want the user to be able to sort or filter by clicking on a col header. When the user clicks on a col header, I want a small box to appear just below the col header with radio buttons to choose Asc or Desc and a drop-down list to choose a value to filter the col on. I worked out the javascript for this in a text editor and it works (and I thought it was pretty cool). I've converted the javascript to Crystal Reports syntax and created some Webelements functions:
This first one sets up the styles and js functions -
// WEsortfilter
// Add options to sort A/D and to filter on columne clicked
// Pass in string of values from main rpt and sort ASC
// When col header is clicked - display form with radio buttons and drop
// down list of values.
//When sort is selected or member of list execute sort/filter.
Function ()
'<STYLE type="text/css">'
+ '.Test{border-style:solid;border-width:1px;border-color:navy;'
+ 'position:absolute; z-index:66; background-color:lightblue;width:6cm;'
+ 'height:.83cm;padding-left:10px;padding-top:5px;font-family:Verdana;font-size:9pt;}'
+ '.sortlink{font-size:10;font-family:Verdana;color:blue;}'
+ '</STYLE>'
//End of styles
//Javascript to call sort/filter box
+ '<SCRIPT LANGUAGE="JavaScript">'
+ 'function displaySortFilter(myid){'
+ 'var topObj=document.getElementById(myid).offsetTop;'
+ 'var leftObj=document.getElementById(myid).offsetLeft;'
+ 'var cdObj=document.getElementById("Test").style;'
+ 'cdObj.display="";'
+ 'cdObj.left=leftObj;'
+ 'cdObj.top=topObj+26;'
+ '}</SCRIPT>' //End of function
+ '<form name="sortfilter">'
+ '<div ID="Test" NAME="Test" class="Test"'
+ 'STYLE="display:none">'
+ '<div id="divradio" STYLE="position:absolute">
+ '<input type=radio name=radio ID=radio value="asc">'
+ '<Span>ASC</Span>'
+ '<input type=radio name=radio ID=radio value="desc">'
+ '<Span>DESC</Span>'
+ '<SELECT NAME="filteroptions" ID="filteroptions" >'
+ '<OPTION VALUE="0" selected>Choose One<BR>'
+ '<OPTION Value="00">First<BR>'
+ '</SELECT>'+ '</div></div></form>'
The second function creates a link for the user to click:
//WEcallSortFilter
Function ()
'<A Style="text-decoration:underline" ID="sbu" class="sortlink" href="" onClick="'
+ 'displaySortFilter(this.id);return false">SBU</A>'
The third one adds the style and js functionality to the report:
//Display sortfilter custom function
WhilePrintingRecords;
WEsortfilter
The last one adds the link to the report for the user
//Call sortfilter custom function
WhilePrintingRecords;
WEcallSortFilter
When I run this in the report through Infoview, the box pops up, however,
1) it doesn't show up right under the link clicked, but in the location where it was placed in Crystal Reports design view. It shows up like a static object instead of at the location clicked.
2) When the box displays, it is transparent. The other text on the rpt shows right through the box. I've tried changing the z-index to no avail. And no, making the box a solid color doesn't make it opaque. The other text showing through makes it difficult to click on any of the radio buttons.
All this is beyond the WE examples, but I''ve to kick it up a level (or three) to get this project done.
Thankshey, ran some tests on your scenario. to answer your questions...
1) all of the functions are designed so that you don't have to make copies of them...all controls should be aok with being on a report more than once, as long as the element names are different...the ones that create on-click functionality (such as the collapsible section) require a different name for each control or you'll run into problems...the last iteration of the control on the report will be the only one that (sort of) works.
that being said, i created 2 formulae and ran your code without any issues with a duplicate of the function.
the only things that should cause something like this is
(a) a control name starting with a number or containing certain non alpha-numeric characters...they follow the same rules as javascript...unfortunately this little tip was not in the user guide even though it was on the list (my fault, sorry) or
(b) two control names that are the same or
(c) a duplicate of the same formula on the report.
2) another little tip that seemed to not make it into the user guide is to follow the same ordering principles on a report that you would with normal layering when designing a crystal report...i.e. right-click on objects in the designer and choose Format, then use the Move object action to bring the objects to the front.
note that if there is a select menu below these controls you will not be able to have the collapsible section (or any other control) cover that select menu up...this is a known issue in internet explorer and there is no workaround for that one.
hope that this helps,
jw -
Add customer button on header level for BUS2201(PO) - SRM 7.0
Hi,
I want to define a customer button (with action) within PO on header level.
Web Dynpro FPM_OIF_COMPONENT
Configuration /SAPSRM/WDCC_FPM_OIF_PO_PURCH
Task:
Add a customer button besides standard Export button.
I assume-afterwards I have to enhance the method onactionbutton_pressed to create my event when customer button is pressed, right?
Could anyone please guide me how to solve this issue?
Thanks and best reagrds
AndreasHi,
Here are the steps to add the button, I wrote it in other thread. In my case for PO is not displayed, try to follow the steps and if you are able to show the button tell me how please.
Add custom button in PO
And yes ,you need to create an enhancement point in the view CNR_VIEW of the component FPM_OIF_COMPONENT, you need to create a post-exit in the method BUTTON_PRESSED, here you have a sample code:
DATA: lv_id TYPE string,
lv_event_id TYPE fpm_event_id.
DATA: lo_nd_oif_application TYPE REF TO if_wd_context_node,
lo_nd_variant TYPE REF TO if_wd_context_node,
lo_nd_toolbar TYPE REF TO if_wd_context_node,
lo_nd_button TYPE REF TO if_wd_context_node,
lo_el_button TYPE REF TO if_wd_context_element,
lo_nd_other_functions TYPE REF TO if_wd_context_node.
DATA: lv_substring TYPE string,
lv_substring_i TYPE i,
lv_node_name TYPE string,
lv_position TYPE string,
lv_length TYPE i,
lv_seq TYPE i.
DATA:lt_keys TYPE STANDARD TABLE OF string,
lv_key LIKE LINE OF lt_keys.
TYPES:BEGIN OF y_parameters,
name TYPE string,
value TYPE string,
END OF y_parameters.
DATA: lt_parameters TYPE STANDARD TABLE OF y_parameters,
ls_parameter LIKE LINE OF lt_parameters.
DATA: lv_boid TYPE bbp_guid,
lv_botype TYPE string,
lv_objkey TYPE swo_typeid,
lv_objtype TYPE swo_objtyp,
lv_object_id TYPE crmt_object_id_db,
lv_process_type TYPE crmt_process_type_db,
lv_object_type TYPE crmt_subobject_category_db,
lv_rfc TYPE zgrs_co_logsys-rfc,
DATA: lo_fpm TYPE REF TO if_fpm.
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_fpm->raise_event_by_id( lv_event_id ).
lt_keys = lo_fpm->mo_app_parameter->get_keys( ).
LOOP AT lt_keys INTO lv_key.
ls_parameter-name = lv_key.
lo_fpm->mo_app_parameter->get_value(
EXPORTING iv_key = lv_key
IMPORTING ev_value = ls_parameter-value ).
INSERT ls_parameter INTO TABLE lt_parameters.
ENDLOOP.
lv_id = wdevent->get_string( 'ID' ).
lo_nd_oif_application = wd_context->get_child_node( name = wd_this->wdctx_oif_application ).
lo_nd_variant = lo_nd_oif_application->get_child_node( name = wd_this->wdctx_variant ).
lo_nd_toolbar = lo_nd_variant->get_child_node( name = wd_this->wdctx_toolbar ).
lo_nd_other_functions = lo_nd_toolbar->get_child_node( name = wd_this->wdctx_other_functions ).
lv_substring = lv_id.
lv_length = STRLEN( lv_id ).
lv_seq = lv_length - 3.
IF lv_id+lv_seq = '_CP'.
lv_substring = lv_substring(lv_seq).
lv_id = lv_substring.
ENDIF.
WHILE lv_substring CS '_'.
lv_position = sy-fdpos + 1.
lv_substring = lv_substring+lv_position.
ENDWHILE.
IF lv_substring CO '1234567890'.
lv_substring_i = lv_substring.
ENDIF.
* Item level action;
IF lv_id CS '_item'.
* Or header level action;
ELSE.
IF lv_id CA '0123456789'.
lv_position = sy-fdpos - 1.
lv_node_name = lv_id(lv_position).
IF lv_id CS 'OTHER_FUNCTIONS'.
lo_nd_button = lo_nd_other_functions->get_child_node( name = wd_this->wdctx_button ).
lo_nd_button->set_lead_selection_index( index = lv_substring_i ).
lo_el_button = lo_nd_button->get_element( ).
TRY.
lo_el_button->get_attribute(
EXPORTING
name = `EVENT_ID`
IMPORTING
value = lv_event_id ).
CATCH cx_wd_context.
ENDTRY.
READ TABLE lt_parameters INTO ls_parameter WITH KEY name = 'SAPSRM_BOTYPE'.
lv_botype = ls_parameter-value.
READ TABLE lt_parameters INTO ls_parameter WITH KEY name = 'SAPSRM_BOID'.
lv_boid = ls_parameter-value.
* Obtain the object_id;
SELECT SINGLE object_id INTO lv_object_id
FROM crmd_orderadm_h
WHERE guid EQ lv_boid.
* If not Z button, exits;
IF lv_event_id(1) NE 'Z'. EXIT. ENDIF.
* Actions;
CASE lv_event_id.
WHEN 'ZBUTTON'.
WHEN 'ZBUTTON2'.
ENDCASE.
ENDIF.
ENDIF.
ENDIF. -
Opening a popup from custom button in a Form
I have a requirement to open a popup from a custom button of a portal form and once the value is selected from the popup the control should return to the main form with the value selected and set it to some display only field in that same form. It can be done thru' popup of a field directly but how can I do this thru'a button ?.
Help would be appreciated.
Thanks
-KrishnamurthyWorks for me if I middle-click a bookmark on the Bookmarks Toolbar and browser.tabs.loadBookmarksInBackground is set to true.
Start Firefox in <u>[[Safe Mode|Safe Mode]]</u> to check if one of the extensions or if hardware acceleration is causing the problem (switch to the DEFAULT theme: Firefox/Tools > Add-ons > Appearance/Themes).
*Don't click the Reset button on the Safe mode start window or otherwise make changes.
*https://support.mozilla.org/kb/Safe+Mode
*https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
Maybe you are looking for
-
I bought 3 iPhone 4s and each should have 5gb of cloud. I want to only use my one iTunes ID. How can I get this storage space increased to the 15 GB?
-
NVDA and JAWS won't read doc in Acrobat Pro and Free Reader correctly!
I downloaded the free trial of Adobe Acrobat Pro in order to create 508-compliant, accessible PDFs. I first created the doc in Word, and, using the Acrobat tab, created a PDF for accessibility purposes, and it prompted me to save it as a PDF. I enter
-
Reference Images in Relative Path
Captivate 2 allows you to export the background images out and then link them in so it is easier to update the images, but the paths seem like they have to be absolute only. Is there a way to use relative paths instead of the absolute path? I have se
-
EvEXP schedule become out of alignment
Hi all, We defined some area in an input schedule using EvEXP. There is 10 different shedule area in one excel sheet, but the schedule get out of alignment because KeyRange and DataRange come not to meet each other when expanded. Would you know any s
-
Creating a Custom event for my Component
Hi All, im currently working in a swing component, and i would like to know how to give to my component the ability to react to some user changes. Basically im creating a DateTime Picker using NetBeans, im able to see any new property justed created