Multiselect List and Branches
Hi,
1. I understand that multiselect list problem has discussed here multiple times but I could not find any answer for my situation. May be someone can give me an advise.
I have a page that has 8 multiselect lists. A user makes his selection, presses button “Report” and gets redirected to the report page (say page A) that displays records according to the user selection. Report source on page A is PL/SQL function body returning SQL query.
I created the button “Report” with wizard (selected option Submit Page & Redirect to URL). Everything was working fine till report was created in the same browser window. But a customer wanted to have a report displayed as a new page. So I changed ”Optional URL Redirect” target from “No Target” as it was before to URL and inserted a call to the JavaScript as URL Target ( I use this approach on several other pages).
Now when a user presses “Report” button he is redirected to the page A but that page displays completely different set of records. It looks like multiselect lists values are not passed to the report on page A any more. What am I missing?
2. As I mentioned before a main page has 8 multiselect lists so SQL statement is very long and I will need to create a lot of different reports based on the selections in those multiselect lists .
Is it possible to create an Application Level Variable, pass “WHERE” part of the SQL statement into it when button “Report” is pressed ( button has setting Submit Page & Redirect to URL!) and then use it in the SQL report source to generate reports?
Thank you in advance.
Val
Scott,
Thank you for your reply.
At the moment I switched to the URL it stopped passing multiselect list parameters( I have javascript function in the HTML Header section and call this function from the button).
If I understand the problem correctly I do not submit page as it was before. Session window does not show any parameters.
The only reason I need this switch - create a report in a new window.
Val
Similar Messages
-
Create multiple Insert statements from multiselect list
I want to thank everyone in advance for the help on this one.
I have a multiselect list that I would like to use to create multiple Insert statements. I would like to then take those statements and execute them against the database, thus inserting the records. My thoughts are below;
1. Customer selects multiple items in the list
2. Clicks the submit button
3. onclick event walks through the string created by the multiselect list and creates the Insert statements by walking through an array of the values.
4. the Insert statements get executed against the database
5. page redirects to the proper page after the process is done.
I actually have already created a javascript function that will use the split command on the string to create an array. I then get the length of the array and walk through a loop creating the sql statements. I am not sure what to do from here. How can I get the sql to execute.
I am not wed to this approach. If there is a better idea out there please do not hesitate to share it with me. I am relatively new to APEX and have not done much work in pl/sql or javascript. But I learn fast, so don’t hold back.
Thanks again and please let me know what questions you have for me.
Derek.I setup the demo app on apex.oracle.com:
http://apex.oracle.com/pls/apex/f?p=26255:3
Login as demo / demo
Go to the "products" tab. There is a Test region with a multiselect list. It shows product names (with product id's) from the demo_product_info table.
When you select multiple things from the list and click apply, it uses the following procedure to simply insert a new record for each into the product table. It increments the product_id by 1000 and prepends "DUPLICATE " to the product_name:
declare
cursor c_products is
select product_name, product_id
from demo_product_info
where instr(':' || :P3_X || ':', ':' || product_id || ':') >= 1
order by 1
begin
for r_product in c_products loop
insert into demo_product_info (product_id, product_name)
values (r_product.product_id + 1000, 'DUPLICATE ' || r_product.product_name);
end loop;
end;
You can see that is working by using it on the duplicate entries themselves.
-Richard -
How to unselect an item in a multiselect list?
Hi all,
I am displaying a static lov as a multiselect list. And when I select the item in the list, the item is highlighted and I am displaying a region. Now I need to unselect that item and hide the corresponding region. No database transaction is involved. Can anyone please give me some hints?
Rgds,
Suma.When you use a select list that allows for multiple selections, the "value" attribute is only the first one selected.
For example, if you had 3 options on the list with their "value" attributes set as "A", "B" and "C" and selected A and C, alert(document.getElementById("xxx").value) would display "A" not "A;C".
What you need to do is to loop through each of the options and see if its "selected" value is "true". Something like:
function testForSelected()
var i;
var x = document.getElementById("X");
var o;
for (i = 0; i < x.options.length; i++)
o = x.options;
if (o.value == "A" && o.selected == true)
alert("A is selected");
Where "X" is the multiselect list and "A" is the value of the option item you want to test for. Replace alert(...) with your show/hide function call.
Regards
Andy -
Need to create an edit Page from a Multiselect List
I make one or more selections of values from a Multiselect List; I need to branch to another page in which I display all of the selected List items and two other columns (per item) that can be edited; i.e., this second page will look like one or more rows consisting of (1) List item, (2) value1 from a Table, (3) value2 from a Table. I need to be able to change value1 and/or value2 for any or all of the rows and have those changes reflected in the Database. (The List item is display only).
My question is: which construction wizard can I use for this second page? I can collect my List items in a PL/SQL Table, but how can I display them and their related columns so the column values are editable?Thanks for the reply. I understand how to create Collections with the values I need to display and modify; however, I'm unsure which construction Wizard to employ to launch the Page ("Form based upon a Procedure", etc.)
I looked in the Tutorials for a "collection demo" and found these potential candidates: "Build an Issue Tracking System", "Create a Simple Survey Application", and "Serving Application Express Reports". Is it one of these? If not, please tell me where I can find the "collection demo". Thanks. -
How to get the selected values from multiselected list
Hi,
I have a multiselect list displaying all the years from 2003 to 2008 (used dynamic LOV). The user can choose one or more years as per his needs, and then when user clicks on the link the selected values of the list are to be captured and a pop up page of a Discoveror report needs to be opened where these years get passed as a parameter. I tried several methods to capture the value, but either one or all are getting passed but not exactly what the user has chosen.
This is how it looks:
P2_FISCAL_YEAR is a multiselect list containing values from 2003,2004... 2008
If user chooses 2004 and 2007
then I want the url to capture these values and pass as parameters for my discoveror reports. as '&qp_fiscal_year=2004,2007'
Any help is appreciated!
Thanks in advance,
Sapna.Hi,
I have a multiselect list displaying all the years from 2003 to 2008 (used dynamic LOV). The user can choose one or more years as per his needs, and then when user clicks on the link the selected values of the list are to be captured and a pop up page of a Discoveror report needs to be opened where these years get passed as a parameter. I tried several methods to capture the value, but either one or all are getting passed but not exactly what the user has chosen.
This is how it looks:
P2_FISCAL_YEAR is a multiselect list containing values from 2003,2004... 2008
If user chooses 2004 and 2007
then I want the url to capture these values and pass as parameters for my discoveror reports. as '&qp_fiscal_year=2004,2007'
Any help is appreciated!
Thanks in advance,
Sapna. -
Multiselect list in APEX 3.2.1.00.12
Hello,
I'm having troubles with a multiselect list that could potentially return a very large result set. I have a function called 'GET_LIST' that basically calls the apex_util.STRING_TO_TABLE(p_string,p_delimiter); function since the multiselect list returns a colon delimited string. If I try to select all of the values on the list I get the following message:
Bad Request
The request could not be understood by server due to malformed syntax.Are there any known workarounds to this issue?
Thanks in advance!
~JakeDo any pros out there have a suggestion for this? My multiselect list has over 35,000 entries in it for certain owners. It is doubtful that anyone would ever select them all but if they should happen to they would receive an error.
The list of values (P10_ACCTS) is simply
select a.account_name d, a.account_id v
from accounts a
where a.owner = :P10_OWNERI then display a report that uses the results of the select list in the where clause:
and (account.id in (select column_value from table (GET_LIST(nvl(:P10_ACCTS,'::'))))GET_LIST is defined as:
CREATE OR REPLACE FUNCTION GET_LIST (
p_string IN VARCHAR2,
p_delimiter IN VARCHAR2 DEFAULT ':'
RETURN vc_array_1 PIPELINED
IS
l_string varchar2(32000);
l_array wwv_flow_global.vc_arr2;
BEGIN
l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
for i in l_array.first..l_array.last loop
pipe row (trim(l_array(i)));
end loop;
return;
end;I believe that my limitation is the 'l_string varchar2(32000);' I need (in some cases) to be able to pass over 100,000 characters. I've tried converting GET_LIST to use a clob instead of varchar2 but have yet to be successful in implementing that approach.
THanks in advance!
Edited by: jhammer on Oct 15, 2010 3:13 PM -
ApEx newbie here,
I'm trying to get the output of a multi select list into an in list of a sql query for a report. The error message I'm getting is report error:
ORA-01722: invalid number. (The inlist is a list of id numbers, and the data type for this column in the database is NUMBER)
I've got a page item called P3_x which is populated from a MultiSelect list. I learned that these come out as colon delimited strings. (found a reference to hidden items in a blog that helped me figure this out)
So I created a hidden item called P3_x_in_list which does this:
Select '('|| regexp(:p3_x,':',',')||')' from dual which turns this into a comma separated list, like so: (1,2,3,4)
I put this hidden item, P3_X_IN_LIST into the sql in my report region
So in the report my sql looks like:
select a, b, c
from t1
where id in: P3_x_in_list
and some_date between :P1_X and :P2_X
For some reason it throws an invalid number error when it runs. I haven't been able to find anything in the documentation or on the web that sheds any light on this. I'm hoping that there is a benevolent, experienced developer that can point me in the right direction. The debuging information from the page is below:
Here is the debugging information
0.24: ...Session State: Save "P3_X" - saving same value: "1:2:3:4:5"
0.24: ...Session State: Save "P1_X" - saving same value: "01-DEC-2008"
0.24: ...Session State: Save "P2_X" - saving same value: "04-DEC-2008"
0.30: ...Session State: Save Item "P3_X_IN_LIST" newValue="(1,2,3,4,5)" "escape_on_input="N"
0.30: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
0.46: show report
0.46: determine column headings
0.46: parse query as: my_schema
1.76: binding: ":P3_X_IN_LIST"="P3_X_IN_LIST" value="(1,2,3,4,5)"
2.64: binding: ":P2_X"="P2_X" value="04-DEC-2008"
report error:
ORA-01722: invalid number
ORA-02063: preceding line from my_schema
3.23: Computation point: AFTER_BOX_BODY
3.23: Processing point: AFTER_BOX_BODY
3.23: Computation point: BEFORE_FOOTER
3.23: Processing point: BEFORE_FOOTER
3.23: Show page tempate footerWell, let's say you had a SQL statement like
select * from obj where object_id in 12345
where object_id is defined to be a number type.
Now, if you replace the literal '12345' with a bind variable and then bind "(1,2,3,4,5)" to this bind variable it will be clear why the SQL fails.
As for using pipeline functions it is pretty straightforwad
Here's an example
CREATE OR REPLACE TYPE vc_array_1 AS TABLE OF VARCHAR2 (50);
CREATE OR REPLACE FUNCTION get_list (
p_string IN VARCHAR2,
p_delimiter IN VARCHAR2 DEFAULT ':'
RETURN vc_array_1 PIPELINED
IS
l_string varchar2(32000);
l_array wwv_flow_global.vc_arr2;
BEGIN
l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
for i in l_array.first..l_array.last loop
pipe row (trim(l_array(i)));
end loop;
return;
end;
select column_value from table (get_list('1:2:3:4:5'));Your query can now be
select a, b, c
from t1
where id in (select column_value from table get_list(: P3_x_in_list)) )
and some_date between :P1_X and :P2_XVarad -
Delete in database based on multiselect list values
Hi,
I have a selectlist in Apex and a function in the database to do some delete based on the selected value from the select list.
FUNCTION delete_batch (v_batch VARCHAR2) RETURN VARCHAR2
IS
BEGIN
IF v_batch like 'M%'
THEN
RETURN ('A monthrun cannot be deleted');
ELSE
DELETE FROM so_disco_pa
WHERE batch = v_batch
DELETE FROM so_batch_pa
WHERE batch = v_batch
COMMIT;
RETURN ('Batch '||v_batch||' has been deleted');
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN ('Batch could not be deleted');
END delete_batch;The package function is called when the delete button is clicked with following process:
BEGIN
DECLARE
x varchar2(100);
BEGIN
x := pa_control.delete_batch (:P3_BATCH);
:F105_MESSAGE := x;
END;
END;Now I want to change the selectlist to a multiselect list so that multiple batches can be deleted.
How do I change my procedure and process to delete batches based on the selected values?
Thanks,
DianaI got this so far, but only the first batch selected in the list is being deleted. The other selected batch values are not deleted.
Some help please.
FUNCTION delete_batch (v_batch VARCHAR2) RETURN varchar2
IS
T Apex_application_global.vc_arr2;
BEGIN
T := apex_util.string_to_table(v_batch);
For I in 1..t.count loop
IF t(i) like 'M%'
THEN
RETURN ('A monthrun cannot be deleted');
ELSE
DELETE FROM so_disco_pa
WHERE batch = t(i)
DELETE FROM so_batch_pa
WHERE batch = t(i)
COMMIT;
RETURN ('Batch '||v_batch||' has been deleted');
END IF;
end loop;
EXCEPTION
WHEN OTHERS THEN
RETURN ('Batch could not be deleted');
END delete_batch; -
Help with Multiselect List Item
Assuming one employee can work for multiple departments, I want to display the departments employee 7844 works for preselected in a multiselect list.
I am using the following query statement in a report region.
select htmldb_item.select_list_from_query_xl(1, deptno ,'select DEPTNO,DNAME from scott.dept ','MULTIPLE HEIGHT=25', 'Y',null,null,null,'Department',null) a from scott.emp where empno = 7844
The result I am seeing is a multiple multiselect lists with one department selected in each list.
How should I modify the query to get what I want?
Thanks
MinaHi Carlos,
I set up a test case in exactly the same way and it worked fine for me. I created a page item called P1_DA_DEMO and added some static select list values then added some help text. The settings I used are below, I suggest you try again but also make sure you have no other Javascript errors on the page. Use a tool like firebug to check.
Name : Dynamic Action Demo
Sequence: 10
Even: Click
Selection type: Item(s)
Item(s): P1_DA_DEMO <- a selection list item
Condtion: - No Condition -
True Actions
Sequence: 10
Action : Execute JavaScript Code
Fire when event result is :True
Fire on page load: Not Ticked
Code: javascript:popupFieldHelp('277938589795252851','1545903379570909')
Event Scope set a s Bind.
Thanks
Paul -
Query Regarding multiselect list
Hi,
I have a multiselect list having the names of columns of one of the table say "example" table. I want to select only those columns from the "example " table which the user has chosen from the multiselect list.
eg:
the multiselect list has the following entries say entr1,entr2,entr3
and my "example" table has 3 columns entr1,entr2,entr3.
If the user selects entr1 and entr2 from the multiselect list then , I want to select only entr1 and entr2 columns from my table ie "select entr1,entr2 from example"
I need to display those columns only in a report.
Is there any way to do it. Any input would help.
Regards,
DeepthiYou could have a dynamic query region where the column list is built using the value of the multiselect list.
declare
q long;
begin
q := 'select pk,';
q := q || replace(:P1_MULTI_SELECT,':',',');
q := q ||' from some_table where ....';
return q;
end;And choose the 'Generic columns, parse query at run-time' option under Region Definition.
An easier option would be to write a static query with all possible columns and simply put a PL/SQL condition on each column (Report Attributes/Column Attributes) to hide it if the column name/alias is not in the multiselect's value. Something like
instr(:P1_MULTI_SELECT,'COLUMN_NAME') > 0Hope this helps. -
How to pass multiselect list values to javascript?...
Hi, guys...
(continuation...)
Here is a Q. I have two multiselect lists item on the page. I need to use the values of these items in ODP. The button calls javascript, and javascript envoke ODP. Everything is working fine if i submit the page and then call javascript, But this is extra step and it's not kind of cool...
So i am looking for the way to pass the value of multiselect lists to javascript without submitting the page first...
Thnks...
Mike
Edited by: mishkar on Oct 1, 2009 10:59 AMMike:
Try using v('page_item') instead of :page_item in the ODP code
varad -
I created a Multiselect list for item :P5_REGIONS(USING DYNAMIC )
DYNAMIC QUERY IS
SELECT DISTINCT DEPTNO FROM DEPT;
Mutiselect list
10
20
30
40
50
I have another item name :P5_SELECTED_REGIONS
So what I want to do is
When user select multi values from Multiselect list
10,20,30,40
I want to display in :P5_SELECTED_REGIONS as string '10,20,30,40'
I have another Submit button which will take the :P5_SELECTED_REGIONS values and pass to database package
Any help is appreciatedHi,
Add the following into the regions "Region Header" setting:
<script type="text/javascript">
function showSelected(item, field)
var sel = new Array();
var index = 0;
for (var intLoop = 0; intLoop < item.options.length; intLoop++)
if (item.options(intLoop).selected)
index = sel.length;
sel[index] = item.options(intLoop).text;
$f_SetValue(field, sel.join());
</script>
add the following into the HTML Form Element Attributes for the select list:
onchange="showSelected(this, 'P5_SELECTED_REGIONS');"
That should do it.
Regards
Andy -
I have a select list on Page 0 (so it shows on all my pages). When the users makes a selection from the list, I want to re-display the current page, passing the selected value (used in my fetch condition). I see there are several options for select list (with branch, re-direct etc.). What is the best way to do this when select list is on page 0?
You can select ( select list with branch to a URL) .. and then specify the URL . use some hidden item to save page id on each page you want to have that list on, so that in list URL you can use that item to build the URL for that page depending on the item's value ( page id )
Thanks,
Sam K -
Choose From List and Golden arrow link in System Matrix UDF column
I'm wondering if there is a way through the SDK to create a 'Choose From List' and Golden arrow linked button in a System Matrix UDF column?
For example the Item Code in a sales order matrix does both.Hi,
Try this code for adding CFL.
SAPbouiCOM.ChooseFromListCollection oCFLs = null;
SAPbouiCOM.Conditions oCons = null;
SAPbouiCOM.Condition oCon = null;
oCFLs = oForm.ChooseFromLists;
SAPbouiCOM.ChooseFromList oCFL = null;
SAPbouiCOM.ChooseFromListCreationParams oCFLCreationParams = null;
oCFLCreationParams = ( ( SAPbouiCOM.ChooseFromListCreationParams )( SBO_Application.CreateObject( SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams ) ) );
oCFLCreationParams.MultiSelection = false;
oCFLCreationParams.ObjectType = "object id ";
oCFLCreationParams.UniqueID = "CFL1";
oCFL = oCFLs.Add( oCFLCreationParams );
oColumn.ChooseFromListUID = "CFL1";
//where oColumn is the instance of that column.
Hope u will get help....
Thanks and Regards,
Lalit -
Multiselect List selected by default
Hi, I have a Multiselect List populated with a LOV (elements in the "name" column of "TAB1").
I would like that if "TAB1"."check" = 1 the name into my Multiselect List was SELECTED when page is charged but I found nothing about that.
Do you have some suggestions ???
THANK YOU ...Your solution is OK if my table is static but it isn't.
If I use static / sam:pet when I update table with a new item Multiselect is not updated.
I need to use the result of the query:
select name
from TAB1
where check = 1
and select these item into my Multiselect List where source code is:
select name
from TAB1
Something like:
DECLARE my_table wwv_flow_global.vc_arr2;
begin
SELECT name INTO my_table
FROM TAB1
WHERE check = 1;
FOR i in 1..my_table.count
LOOP
P1_SELECT.value (my_table(i)) = CHECKED;
END LOOP;
end;
I konw this code is not right but just to give you an idea of the way it has to work.
THANKS
Maybe you are looking for
-
9630 Keyboard/Buttons not working; hard resets and multiple reloads of OS did not correct
My BlackBerry 9630 Tour is a little more than a year old. Yesterday the keyboard, trackball, and all buttons stopped working while I was typing out an email. I could not power off the Blackberry without removing the battery for a hard reset. Unfortun
-
How to post a header using GUI_DOWNLOAD
hello: i would like to ask one favor, i trying to download a fiel to a PC i am using the GUI_DOWNLOAD function when i sent the it_table to the function this works well , but now i need to sent the name of the colums for each colums, i sending a table
-
Can you turn off autosave and versions in mountain lion?
Is this possible?
-
AS2 noScale and pixelation issue
We are doing a number of banners for a client in AS2 using Flash 8 Pro. The version was their specification. Now I've generated a series of PNGs in photoshop at precisely the same dimensions an imported them directly into the Flash Library.The proble
-
So my OV 3.1 environment had some serious issues. The two VM servers kept rebooting repeatedly - I tried booting into rescue mode but I couldn't find any issues with any config files. It just looked like the OVS agent on each server was losing the he