AT SELECTION
Hai,
What is the difference between AT SELECTION-SCREEN ON <FIELD> AND AT SELECTION-SCREEN.
I need explanation with real time example
AT SELECTION-SCREEN
This event only makes sense in reports, i.e. in programs set to type 1 in the attributes. Type 1 programs are started via a logical database and always have a selection screen where the user can specify the database selections.
The event is processed when the selection screen has been processed (at the end of PAI ).
If an error message ( MESSAGE Emnr ) is sent during the event, all fields on the selection screen become ready for input.
After further user input, AT SELECTION-SCREEN is executed again.
Note
You should only perform very expensive checks with AT SELECTION-SCREEN if the program is then started (not every time the user presses ENTER). Here, you can read the system field SSCRFIELDS-UCOMM (provided a statement TABLES SSCRFIELDS exists). If the field has one of the values 'ONLI' (= Execute) or 'PRIN' (= Execute and Print), the report is then started, i.e. the selection screen is closed and the processing continues with START-OF-SELECTION . Remember that the selection screen (and thus also AT SELECTION-SCREE N ) is also processed in variant maintenance and with SUBMIT VIA JOB . You can determine which of these applies by calling the function module RS_SUBMIT_INFO .
Addition 1
... ON psel
Effect
This event is assigned to the selection screen fields corresponding to the report parameter or selection criterion psel .
If the report starts an error dialog at this point, precisely these fields become ready for input.
AT SELECTION-SCREEN is the event triggered in the PAI of the selection screen.
AT SELECTION-SCREEN on field field_name is the event specific to the field and is triggered when u press enter in that field.
AT SELECTION-SCREEN is generic for all the screen elemenets present on the selection screen.
AT SELECTION-SCREEN ON FIELD is specific to that field for which it is defined.
I.e we can use this statement for validation of that particular field only.
AT SELECTION-SCREEN is triggered at least twice during actions on selection screens that are linked into another selection screen as a subscreen - first for the linked selection screen itself, and then for the linking selection screens.
The event AT SELECTION-SCREEN is the basic form of a whole series of events that occur while the selection screen is being processed.
The standard selection screen in an executable program or in the logical database linked to it is automatically called between the INITIALIZATION and START-OF-SELECTION events. When you call the selection screen, and when users interact with it, the ABAP runtime environment generates selection screen events, which occur between INITIALIZATION and START-OF-SELECTION.
You can define event blocks for these events in your program to change the selection screen or process user input.
Processing Single Fields
AT SELECTION-SCREEN ON <field>
is triggered when the contents of each individual input field are passed from the selection screen to the ABAP program. The input field <field> can be checked in the corresponding event block. If an error message occurs within this event block, the corresponding field is made ready for input again on the selection screen.
The program below is connected to the logical database F1S:
REPORT EVENT_DEMO.
NODES SPFLI.
AT SELECTION-SCREEN ON CITY_FR.
IF CARRID-LOW EQ 'AA' AND CITY_FR NE 'NEW YORK'.
MESSAGE E010(HB).
ENDIF.
for more details check this link...
http://help.sap.com/saphelp_46c/helpdata/en/9f/db9a2e35c111d1829f0000e829fbfe/frameset.htm
1. If the report starts an error dialog at this point, precisely these fields become ready for input.
2. For READY for INPUT purpose,
we use
at selection-screen on field A.
3. other wise,
both events get fired.
4. to get a taste of it,just copy paste in new program.
execute, and press ENTER button.
REPORT abc.
PARAMETERS : a TYPE c.
PARAMETERS : b TYPE c.
AT SELECTION-SCREEN.
this will not work
*IF a <> 'X'.
MESSAGE e999(yhr) WITH 'my error'.
*ENDIF.
AT SELECTION-SCREEN ON a.
IF a <> 'X'.
MESSAGE e999(yhr) WITH 'my error'.
ENDIF.
AT SELECTION-SCREEN ON b.
IF b <> 'X'.
MESSAGE e999(yhr) WITH 'my error'.
ENDIF.
AT SELECTION-SCREEN
When user enters the values in the fields of selection screen and clicks on execute button, this event gets triggered. This event is basically for checking the values entered by the user for the fields of the selection screen i.e., data validity checking. This event is for entire selection screen. For example:
You are accepting carrid, connid, fldate from user and you dont want to proceed if user enters no value for carrid and fldate. Using AT SELECTION-SCREEN can do this.
Select-options: carrid1 for sflight-carrid,
Connid1 for sflight-connid,
F1date1 for sflight-f1date.
AT SELECTION-SCREEN.
If carrid1-low ne and fldate1-low = .
Error message.
Endif.
In this case, if both the fields are entered blank, then the user gets error message.
Basically, this event is for many fields on selection screen. Usually, it is for the fields which are logically related.
AT SELECTION-SCREEN ON <field>
When you want to check for specific value of a field. For example, carrid should be in the range of LH and SQ. This can be done in this event. Basically, this event is for checking individual fields. You can have many AT selection-screen events in your program (i.e., for each field specified in the Select-Options).
Select-Options carrid1 for sflight-carrid.
AT SELECTION-SCREEN.
If carrid1-low ne LH and carrid1-high ne SQ.
Error message.
Endif.
Here the system will not proceed on entering wrong values.
Similar Messages
-
Error message: "playlists selected for updating no longer exist"
I tried to update my ipod nano and I guess I had deleted a playlist, but since then, I have not been able to update. Every time I try, I get the following message:
"Cannot be updated because all of the playlists selected for updating no longer exist."
I haven't been able to highlight which playlists are selected to begin with.
I read through the manual and thought that maybe rebooting the whole system might work. So I deleted Itunes from my computer and re-installed.
Then I tried re-setting my ipod. So now I have nothing on my ipod.
I also deleted everything from my library, thinking it might help to start from scratch. Nothing has worked.
How do I "select" and "unselect" playlists so I can get up and running again?Here you go.
http://discussions.apple.com/thread.jspa?messageID=607312򔑐 -
Error while calling a select esb service
javax.resource.ResourceException: RollbackException: Transaction has been marked for rollback:
I encounter the above error while executing a synchronous bpel process, that invokes an esb db select service to fetch a value from the db.
the details available for the error are:
An unhandled exception has been thrown in the ESB system. The exception reported is: "java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0 at java.util.Vector.get(Vector.java:710) at oracle.tip.esb.server.common.wsif.WSIFInvoker.readResponseHeader(Unknown Source) at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(Unknown Source) at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(Unknown Source) at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(Unknown Source) at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(Unknown Source) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(Unknown Source) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source) at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source) at oracle.tip.esb.wsif.WSIFOperation_ESB.executeRequestResponseOperation(Unknown Source) at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:431) at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:353) at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:192) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:733) at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:368) at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:197) at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3266) at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1696) at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75) at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:184) at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:269) at com.collaxa.cube.engine.CubeE
Please suggest
thanx
AJDone That,
Thanx a ton Dave, it worked.
So I am finally moving on :-)
Just one question Dave, I happened to work on the Beta release of this version too, the problem was not there. How come we have been able to get it in dev preview. -
Logical operators in Oracle select query
Hello all,
Can i use logical operators in oracle select queries?
for 1 and 0 =0 ; 1 or 0 =0
if i have two fileds in a table COL1 have a value of 1010 and COL2 have a value of 0001.
Is there any way to use select col1 or col2 from table? where or is a logical operator?
Regards,Hi,
NB wrote:
Hello all,
Can i use logical operators in oracle select queries?Sure; Oracle has the logical operators AND, NOT and OR. All the comparison operators, including >, >=, = !=, EXISTS, IN, IS NULL, LIKE and REGEXP_LIKE are really logical operators, since they return logical values. You can use them in SELECT statements, and other places, too.
for 1 and 0 =0 ; 1 or 0 =0
if i have two fileds in a table COL1 have a value of 1010 and COL2 have a value of 0001.It's unclear what you want. Maybe you'd be interested in the BITAND function:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions014.htm#sthref1080
BITAND is the only logical function that I know of. Many other functions, especially numberical fucntions such as MOD, have applications in logic.
Is there any way to use select col1 or col2 from table? where or is a logical operator?Whenever you have a question, please post a little sample data (CREATE TABLE and INSERT statements), and also post the results you want from that data.
Explain how you get those results from that data.
Always say which version of Oracle you're using. -
Can not select from data dictionary view from a procedure
Hi,
I wonder, which privilege is missing here:
my schema has this roles and privs:
GRANT CONNECT, RESOURCE TO cb ;
GRANT CREATE SESSION TO cb ;
GRANT SELECT_CATALOG_ROLE TO cb ;
GRANT CREATE SYNONYM TO CB;
GRANT CREATE VIEW TO CB;
I create a procedure:
create or replace procedure dd_test as
begin
dbms_output.enable(2000000);
for r in (select table_name from sys.dba_tab_partitions where owner = 'CB') loop
dbms_output.put_line(r.table_name);
end loop;
end;
sho err
4/38 PL/SQL: ORA-00942: table or view does not exist
When I run the core statement form sql prompt, it works !
so what privilege is missing here ???
thanks for any hint, Lao DeHi,
thanks for that reply, after doing that I can not select this DD-view from sql-prompt anymore (which I don't wonder ;-). Can you tell me, what idea you had behind that test ?
I found another instance, where the procedure works and I will compare those privileges, but it's hard to sort out that complex structure of nested roles and sys_privs.
How ever, I will update here, when I found the missing privilege.
regards LaoDe -
'IF' statement in a select statment?
I have the following cursor in a package specification;
cursor c_sales_code is
select sales_condition||' MC '||sales_option
from sales;This will return something like: 'T300 MC 9'
MC means 'multiple choice' for when there are multiple options. Although, sales_option is sometimes null and in this case I just want 'T300' to be returned, not 'T300 MC'.
How would I go about doing this?
Thanks,
fakelvisUse
CASE and DECODE
to add the functoinality of Conditional Statements in Your SQL Statements..
These two CASE / DECODE will help you to get your desired output -
I need to choose between value1 and value2 within a select statement.
TableA
Flag (char)
Value1
Value2
ItemDesc
pseudo code
select ItemDesc, (if Flag = 'y' then Value1 else Value2) as Price from TableA;
How can this be done?select itemdesc,
sum (case
when flag = 'y'
then (case
when value1 < 10
then value1 * 1.2
else value1
end)
else value2
end
) as price
from tablea
group by itemdesc; -
If statement in select statement alias
I have the following select statement. It has the alias Survivors, Deaths and "All Cases". Is it posible to use :P_LANGUAGE variable to say that -- IF :P_LANGUAGE = FRENCH THEN alias are Survivants for survivors, Décès for Deaths, Tous_les_cas for All Cases. Please advise
SELECT ALL T_NTR_MULTIBAR.CAT, T_NTR_MULTIBAR.NUM_CASES_LEFTBAR AS Survivors,
T_NTR_MULTIBAR.NUM_CASES_MIDDLEBAR AS Deaths, T_NTR_MULTIBAR.NUM_CASES_RIGHTBAR AS "All Cases"
FROM T_NTR_MULTIBAR
WHERE INSTANCE_NUM = :P_INSTANCENUM
order by ORDERSYou may not be able to add this condition inside the SQL Statement. But you can add this condition outside the statement, if you're using PL/SQL...
IF :p_language = french THEN
SELECT ALL t_ntr_multibar.cat,
t_ntr_multibar.num_cases_leftbar AS survivors,
t_ntr_multibar.num_cases_middlebar AS deaths,
t_ntr_multibar.num_cases_rightbar AS "All Cases"
ELSE
END IF; -
If statement in the SELECT???
I use Coldfusion as my source for remoting with Flash. I have
created different databases for different materials. However when
an order is placed I get the "id" of the material. I also return
the "type" of material. If I would have planned this correctly I
would have just put all the materials in one database and returned
what I needed just fine. As it turns out I cannot change it.
Below is my code and basically what I'd like to do is say
that:
if bag_traits.trait_type = 1
select materials.material_name where bag_orders.bag_trait_a =
materials.material_id
So right now it's returning a 6. I need the name of the
material from the materials database with an id of 6. I also have a
ribbons table where if the trait_type = 2 then I would need the
ribbons.ribbon_name where bag_orders.bag_trait_a =
ribbons.ribbon_id.
How to I make an if or case statement that will pull the name
from the appropriate database depending on the trait_type? Thanks!C-Rock wrote:
>
> Why can I not use the material_id number in more than
one column for the
> bag_orders table?
>
As far as I know, that is not the proper way to join multiple
tables.
To join multiple tables you use multiple joins.
I.E.
FROM tableA INNER JOIN tableB ON tableA.key = tableB.key
INNER JOIN
tableC ON tableA.key = tableC.key INNER JOIN tableD ON
tableC.key =
tableD.key
Each join between to tables creates another 'relation'
(database speak
for table like object_ that you can then join to another
table to create
a new relaion and so on and so on. For complex queries it is
usually
much easier to start with the first to tables, confirm that
you return
the desire results, then add the next table. Keep adding one
table at a
time confirming you are getting the expected results each
iteration
before adding another. -
USING NULL AND SELECT ALL IN DECODE
COL1 has the following values:
COL1
====
A
B
C
A
B
C
A
D
D
SELECT COL1 FROM TABLE1 WHERE COL1 =
DECODE(:VAL1, 'A', 'AA', 'B', 'BB', 'C', 'CC', 'D', 'DD')
1. what about the null values ? how can I add to the above statements when I enter null for the parameter :VAL1
2. what about all the values in COL1, what shall I enter for :VAL1 ?
THANKS.SELECT COL1 FROM TABLE1
WHERE nvl(COL1,0) = DECODE(:VAL1, 'A', 'AA', 'B', 'BB', 'C', 'CC', 'D', 'DD',null,0)
Can we use in this way?
Shishu Paul
Chandigarh-India -
ADF Get selected values from Dynamic Lists
Hi,
I have a created a dropdown list box where the list gets value through a managed bean. On commit I want the selected value to be saved into the CardiacV1EchoSched column of the Entity object (database). The source looks like this.
<af:selectOneChoice value="#{bindings.CardiacV1EchoSched.inputValue}"
label="#{bindings.CardiacV1EchoSched.label}"
valuePassThru="true">
<f:selectItems value="#{TTrack.carScheList}"/>
</af:selectOneChoice>
The problem is that getCardiacV1EchoSched() in the entity object class is null. The selected value does not get passed into #{bindings.CardiacV1EchoSched.inputValue} at all. If I bind the value to a variable in managed bean I get the selected value.
Thanks in advance,Hi,
not sure which business service you use to update the database, but if you use ADF Business Components then you need to call the commit operation
Frank -
I have a multi-select parameter that can have a list of thousands of entries. In general, the user will pick a few entries from the list or "Select All". If they check "Select All", I would much prefer that I get a NULL or an empty string
instead of a list of all values. Is there any way to do that?
In experimenting with a work-around, I tried putting an "All" label with a null value in the list, but it is ignored (does not display in the drop-down). If I use an empty string for the value, my "All" entry does get displayed, but so
does "Select All", which is confusing. Is there a way to suppress "Select All"?
- MarkI adapted the following from a workaround posted by JNeo on 4/16/2010 at 11:14 AM at
http://connect.microsoft.com/SQLServer/feedback/details/249227/multi-value-select-all-parameter-in-reporting-services
To get a null value instead of the full list of all values when "Select All" is chosen:
1) Add a multi-value parameter "MyParam" that lists the values to choose.
2) Add a DataSet "ParamCount" identical to the one used by "MyParam", except that it returns a single column named [Count] that is a COUNT(*) of the same data
3) Add a parameter "MyParamCount", set it to hidden and internal, then set the default value to 'Get values from a query', choosing "ParamCount" for the Dataset and the one [Count] column for the Value field.
4) Change the parameter for the main report DataSet so that instead of using [@MyParam], it uses this expression:
=IIF(Parameters!MyParam.Count =
Parameters!ParamCount.Value, Nothing, Join(Parameters!MyParam.Value, ",")) -
Get selected values from Listbox control
Hi All,
I'm still new to SL so please bear with me.
I have a ListBox being bound with some records from a DB. Here's the xaml:
<ListBox x:Name="lstClassSeries" SelectionMode="Multiple" DisplayMemberPath="Description" Grid.Row="11" Grid.Column="1"></ListBox>
What I need is to get the values of the items that were selected and I can't seem to get it to work. I've tried looping through the SelectedItems but there's no property for value or text. I even tried to cast the item as a ListBoxItem but I
get the following error:
Unable to cast object of type 'UI.Silverlight.TransactionService.DTODropDown' to type 'System.Windows.Controls.ListBoxItem'.
How can I get the values of the items selected?
ThanksYou're using windows forms style techniques with xaml.
This is a bad idea.
You ought to learn MVVM.
You probably don't think you want to learn it, but trust me on this one.
Learn MVVM as soon as you can.
There's a selecteditems collection.
You have to cast to listboxitem, it has a content property which you cast to whatever you put in there originally.
Here's a snippet.
I have a class foo, load a bunch of them in. Do stuff. Work out what's selected in the click event of a button.
public class foo
public int id {get;set;}
public string description {get;set;}
public partial class MainPage : UserControl
public MainPage()
InitializeComponent();
lb.Items.Add(new ListBoxItem{Content=new foo{ id=1, description="a"}});
lb.Items.Add(new ListBoxItem { Content = new foo { id = 2, description = "b" } });
lb.Items.Add(new ListBoxItem { Content = new foo { id = 3, description = "c" } });
private void Button_Click(object sender, RoutedEventArgs e)
List<foo> selectedfoos = lb.SelectedItems.Cast<ListBoxItem>().Select(x=>x.Content as foo).ToList();
Hope that helps.
Recent Technet articles: Property List Editing;
Dynamic XAML -
Get multiple values from a html select
I have a <select> object on my html page, with ~50 <option> values.
My user must be able to select many options (with the ctrl key).
How can I get more than one value with request.getParameter("...") ??
currently, when I select more than 1 options, and I submit the form, I can only get the last selected item in my JSP.
Thanks in advance!
example:
<form method="get">
<p>Teachers:</p>
<select name="profs" size="10">
<option value="prof 1">prof 1</option>
<option value="prof 2">prof 2</option>
<option value="prof 3">prof 3</option>
</select>
<input type="submit" name="action" value="addSubject">
</form>Hi,
just use getParameterValues("yourParameter") instead of getParameter("yourParameter")
Hope this helps -
How can i get all values from jtable with out selecting?
i have one input table and two output tables (name it as output1, output2). Selected rows from input table are displayed in output1 table. The data in output1 table is temporary(means the dat wont store in database just for display purpose).
Actually what i want is how can i get all values from output1 table to output2 table with out selecting the data in output1 table?
thanks in advance.
rajaYou could set the table's data model to be the same:
output2.setModel( output1.getModel() ); -
How to get all values from an interval using select statement
Hi,
Is it possible to write a select statement that returns all values from an interval? Interval boundaries are variable.
something like this:
select (for x in 1,1024 loop x end loop) from dual
(this, of course, doesn't work)
The result in this example should be 1024 rows of numbers from 1 to 1024. These numbers are parameters, so it is not possible to create a table with predefined values.
Thanks in advance for your help,
Mia.For your simple case, with a lower boundary of 1, you can use:
SELECT rownum
FROM all_objects
WHERE rownum <= 1024For a set of number between say 50 - 100, you can use something like:
SELECT rownum + (50 - 1)
FROM all_objects
WHERE rownum <= (100 - 50 + 1)Note, that all_objects was used only because it generally has a lot of rows. Any table with at least the number of rows in your range will work.
TTFN
John
Maybe you are looking for
-
Script to merge 2 Indesign files on alternating pages
Hello I have created a data merge document for a book I am writing (Luckily I already had everything in Excel) . I created a template with the style headings and graphics frames positioned and sized exactly where I wanted them.My master page had repe
-
How to filter certificate templates in Certificate Authority snap-in with the correct values
How to filter certificate templates in Certificate Authority snap-in with the correct values I have a 2012 R2 server running Microsoft Certificate Authority snap-in. I want to do a filter on a specific Certificate Template which i know exists in the
-
Store Images Wont Showup in Firefox
hey everyone... this may be a firefox bug im not sure but i'm having trouble with some webstores in firefox... in some stores (apple store online, american eagle's site/store) the images of products will not show up. they show up fine in safari but n
-
Hi, I have created a jar file using jar cvmf manifest classes.jar *.* in a directory under wich I can have put all my class files. When I run the class containing the main program, everything works fine. However, when I run the executable jar file, I
-
Assets for Lesson 2 in "Classroom in a Book" for Premiere Pro CC?
hey there I'm a rookie and I'm just learning Premiere. I'm using the classroom in a book series and I've come to lesson 2 and the lesson is asking me to import a project sequence from Final Cut Pro and Avid Media Composer. I don't own either of these