APEX_ITEM. DATE_POPUP2 in case of manual tabular forms
Hi allI'm unable to view the based on jQuery popup calendar in my manuals tabular forms by using the APEX_ITEM. Function DATE_POPUP2. It displays the text of an item but without the calendar button. What I need to change the attributes of the column and set the option ' display as ' on 'Date Picker?'
Request Express 4.0.2. Here is my report query:
SELECT
cust_first_name,
cust_last_name,
apex_item.hidden(1,customer_id,NULL,'f01_'|| '#ROWNUM#')
||
apex_item.date_popup2(
2,
SYSDATE,
'MM/DD/YYYY',
12,
12,
NULL,
'f02_' || '#ROWNUM#'
) dob
FROM demo_customers
Please let me know what the problem with my query above.Thank you!
JMcG
Hello
Try
SELECT
cust_first_name,
cust_last_name,
apex_item.hidden(1,customer_id,NULL,'f01_'|| ROWNUM)
||
apex_item.date_popup2(
2,
SYSDATE,
'MM/DD/YYYY',
12,
12,
NULL,
'f02_' || ROWNUM
) dob
FROM demo_customers
I think the problem is that you can't use substitution #ROWNUM # in the report query.
Your code has generated the same attribute of id for all text fields (id = "" f02_ #ROWNUM # ' ").
ID attribute must be unique within the HTML document.
Kind regards
Jari
Tags: Database
Similar Questions
-
Adding line by submitting the manual tabular form while adding lines
Hi all
I'm a newbie in the Apex.
I created a manual tabular form based on Apex_Collection. In addition, created the buttons ADD, DELETE and APPLY the CHANGES .
The data below are the steps that I did.
1 initialize the Collections
Process: When loading - before header
Enforcement process: once a Page visit
Source:
DECLARE l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE; l_bind_names APEX_APPLICATION_GLOBAL.VC_ARR2; l_bind_values APEX_APPLICATION_GLOBAL.VC_ARR2; l_query VARCHAR2(32767); BEGIN l_collection_name := 'EMAILDETAILS'; IF apex_collection.collection_exists(l_collection_name) THEN apex_collection.delete_collection(p_collection_name => l_collection_name); END IF; l_query := ' SELECT cmp_cd, ' --c001 => f01 || ' email, ' --c002 => f02 || ' tab_seq_id, ' --c003 => f03 || ' NULL, ' --c004 => f04 || ' NULL, ' --c005 => f05 || ' NULL, ' --c006 => f06 || ' NULL, ' --c007 => f07 || ' NULL, ' --c008 => f08 || ' NULL, ' --c009 => f09 || ' NULL, ' --c010 => f10 || ' NULL, ' --c011 => f11 || ' NULL, ' --c012 => f12 || ' NULL, ' --c013 => f13 || ' NULL, ' --c014 => f14 || ' NULL, ' --c015 => f15 || ' NULL, ' --c016 => f16 || ' NULL, ' --c017 => f17 || ' NULL, ' --c018 => f18 || ' NULL, ' --c019 => f19 || ' NULL, ' --c020 => f20 || ' NULL, ' --c021 => f21 || ' NULL, ' --c022 => f22 || ' NULL, ' --c023 => f23 || ' NULL, ' --c024 => f24 || ' NULL, ' --c025 => f25 || ' NULL, ' --c026 => f26 || ' NULL, ' --c027 => f27 || ' NULL, ' --c028 => f28 || ' NULL, ' --c029 => f29 || ' NULL, ' --c030 => f30 || ' NULL, ' --c031 => f31 || ' NULL, ' --c032 => f32 || ' NULL, ' --c033 => f33 || ' NULL, ' --c034 => f34 || ' NULL, ' --c035 => f35 || ' NULL, ' --c036 => f36 || ' NULL, ' --c037 => f37 || ' NULL, ' --c038 => f38 || ' NULL, ' --c039 => f39 || ' NULL, ' --c040 => f40 || ' NULL, ' --c041 => f41 || ' NULL, ' --c042 => f42 || ' NULL, ' --c043 => f43 || ' NULL, ' --c044 => f44 || ' NULL, ' --c045 => f45 || ' NULL, ' --c046 => f46 || ' ''O'', ' --c047 (for record status) || ' wwv_flow_item.md5(cmp_cd, email, tab_seq_id) ' --c048 (for optimistic locking) --c049 for (not used in collection/reserevered for seq_id array) --c050 (not used in collection/reservered for delete checkbox array) || ' FROM Cmp_Email ' || ' WHERE cmp_cd= v(''P9_CMP_CD'') '; apex_collection.create_collection_from_query_b ( p_collection_name => l_collection_name, p_query => l_query ); IF :REQUEST = 'ADD' THEN APEX_COLLECTION.ADD_MEMBER(p_collection_name => l_collection_name); END IF; END;
2. tabular Guide
Type: SQL query
Source:
SELECT apex_item.hidden(4,c047,NULL,'f04_'|| '#ROWNUM#') || apex_item.hidden(5,c048,NULL,'f05_'|| '#ROWNUM#') || apex_item.hidden(6,seq_id,NULL,'f06_'|| '#ROWNUM#') || apex_item.hidden(3,c003,NULL,'f03_'|| '#ROWNUM#') || apex_item.hidden(1,c001,NULL,'f01_'|| '#ROWNUM#') || apex_item.checkbox( 7, seq_id, NULL, CASE WHEN c047 = 'D' THEN seq_id END, ':', 'f07_' || '#ROWNUM#' ) AS delete_checkbox, apex_item.text( 2, c002, 20, 50, NULL, 'f02_' || '#ROWNUM#' ) AS email_id FROM apex_collections WHERE collection_name ='EMAILDETAILS' ORDER BY c002
The buttons used:
1. name button: ADD
Action: send the Page
2 button name: DELETE
Action: send the Page
3 Collection page
Point process: present now - before the calculations and Validations
Enforcement process: once a Page visit
Source:
DECLARE l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE; l_original_md5 VARCHAR2(32); l_latest_md5 VARCHAR2(32); BEGIN l_collection_name := 'EMAILDETAILS'; FOR x IN 1 .. apex_application.g_f06.count LOOP IF apex_application.g_f01(x) IS NOT NULL --ID exists, check to see if record was updated THEN SELECT c048 INTO l_original_md5 FROM apex_collections WHERE collection_name = l_collection_name AND seq_id = apex_application.g_f06(x); l_latest_md5 := wwv_flow_item.md5( apex_application.g_f01(x), apex_application.g_f02(x), apex_application.g_f03(x) ); IF l_original_md5 != l_latest_md5 THEN apex_collection.update_member( p_collection_name => l_collection_name, p_seq => apex_application.g_f06(x), p_c001 => apex_application.g_f01(x), p_c002 => apex_application.g_f02(x), p_c003 => apex_application.g_f03(x), p_c047 => 'U', p_c048 => apex_application.g_f05(x) ); END IF; ELSE --ID does not exist, must be new record apex_collection.update_member( p_collection_name => l_collection_name, p_seq => apex_application.g_f06(x), p_c001 => apex_application.g_f01(x), p_c002 => apex_application.g_f02(x), p_c003 => apex_application.g_f03(x), p_c047 => 'N', p_c048 => apex_application.g_f05(x) ); END IF; END LOOP; IF :REQUEST = 'DELETE' THEN FOR x IN 1 .. apex_application.g_f07.count LOOP apex_collection.update_member_attribute( p_collection_name => l_collection_name, p_seq => apex_application.g_f07(x), p_attr_number => '47', p_attr_value => 'D' ); END LOOP; END IF; END;
4. table collection
Point process: submit now - after calculations and Validations
Enforcement process: once a Page visit
Source:
DECLARE l_table_md5 VARCHAR2(32); l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE; l_del_count PLS_INTEGER := 0; l_upd_count PLS_INTEGER := 0; l_ins_count PLS_INTEGER := 0; l_success_message VARCHAR2(32767); CURSOR op_lock_check_cur (p_id IN NUMBER) IS SELECT wwv_flow_item.md5(cmp_cd, email, tab_seq_id) FROM Cmp_Email WHERE tab_seq_id = op_lock_check_cur.p_id FOR UPDATE; BEGIN l_collection_name := 'EMAILDETAILS'; FOR x IN ( SELECT * FROM apex_collections WHERE collection_name = l_collection_name AND c047 IN ('N','U','D')) LOOP IF x.c047 = 'N' THEN INSERT INTO Cmp_Email(tab_seq_id,cmp_cd,email) VALUES (cmp_email_seq.nextval, :P5_CMP_CD_HIDN, x.c002 ); l_ins_count := l_ins_count + 1; ELSIF x.c047 = 'U' THEN OPEN op_lock_check_cur(x.c003); FETCH op_lock_check_cur INTO l_table_md5; IF l_table_md5 != x.c048 THEN raise_application_error(-20001,'Current version of data in database has changed since user initiated update process.'); END IF; UPDATE Cmp_Email SET cmp_cd=:P5_CMP_CD_HIDN ,email = x.c002 WHERE CURRENT OF op_lock_check_cur; CLOSE op_lock_check_cur; l_upd_count := l_upd_count + 1; ELSIF x.c047 = 'D' THEN DELETE FROM Cmp_Email WHERE tab_seq_id = x.c003; l_del_count := l_del_count + 1; END IF; END LOOP; apex_collection.delete_collection(p_collection_name => l_collection_name); l_success_message := l_ins_count || ' rows inserted, ' || l_upd_count || ' rows updated, ' || l_del_count || ' rows deleted'; :P5_SUCCESS_MESSAGE:= l_success_message; END;
When I press the ADD button, a new line must be added to the shape of the table and the data should be saved to the collection. , But currently, the page is being submitted to the database table when adding new lines in the form of tables. The data should only be saved in the database when the user clicks on the APPLY CHANGES button
I searched the Forum about this issue and have found many discussions which suggested to use JavaScript to add new lines. As I have no knowledge of JavaScript, these solutions have been strange for me.
Please help me solve this problem.
Thanks in advance.
Kind regards
Aravind
Hi Christophe,
Follow the changes mentioned below
1. remove this your Collections initialize
IF :REQUEST = 'ADD' THEN APEX_COLLECTION.ADD_MEMBER(p_collection_name => l_collection_name); END IF;
2 condition your collection process initialize
Modify your process-> conditions-> PLSQL Expressions->: REQUEST IS NULL
3. create a process more onload I say Add new line to the collection
DECLARE l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE; BEGIN l_collection_name := 'EMAILDETAILS'; IF apex_collection.collection_exists(l_collection_name) THEN APEX_COLLECTION.ADD_MEMBER(p_collection_name => l_collection_name); END IF; END;
4 condition your Add new line to the collection
Modify your process-> conditions-> request = Expression1-> ADD (this should be request ADD button)
5. change your button-> Action addition-> redirect to this application page :-> page no (same page)->-> ADD APPLICATION
6. check your through the process conditional Page collection
Modify your process-> conditions-> PLSQL Expressions->: ASK IN ('ADD', 'APPLY_CHANGES', 'DELETE')
7. check your subject to the process of Collection to Table under condition
Modify your process-> conditions-> PLSQL Expressions->: ASK IN ('APPLY_CHANGES')
8. for the whole process to remove the conditions when the button is pressed.
If the problems persists, create a sample on apex.oracle.com and share the connection information with the name of workspace.
Hope this helps you,
Kind regards
Jitendra
-
How to add a new line at the top of manual tabular form
I have a manual tabular form. I am trying to add a line at the top of the form, instead of the new line of being displayed at the bottom. any ideas are appreciated.
Thank you
SuryaIf you did a manual tabular presentation using a select statement as follows:
Choose option...
Union of all the
Select... of doubleTry to simply reverse the two select:
Select... of double
Union of all the
Choose option...I did this in an application, and it works.
(I've never tried with sorting...)
Concerning
Stefano Corradi -
How to store tabular / manual tabular form of report header?
Hello
How can I keep the heading for a report?
For example:
SELECT EMP_ID, ENAME, SALARY OF THE EMP
WHERE DEPNO = 60
It will give "data Found." How can I change the page so that eventhough query cannot return a row header is to be displayed.
Kind regards
BenzHello
One way to do this would be...
Run the report...
Right click and select View Source or view Page Source
Copy the html tag that makes you the header... in my case it was the code below (I've added the <- able="">at the end to close the tag table >)Click in the Message tab and attributes report where it found data paste you the copied html tag...
USER_ID FIRST_NAME LAST_NAME ACCESS_LEVEL EMAIL_ID [E X A M P L E | http://apex.oracle.com/pls/otn/f?p=28314:41]
Kind regards
->
Shijesh -
Hello
Is it possible to add an apex_item to an existing query in tabular form, such as the one below?
SELECT APEX_ITEM. SELECT_LIST_FROM_QUERY (3, job, 'Employment SELECT DISTINCT FROM emp') job
WCP
It is an example that can be found at APEX_ITEM.
My actual query is as follows:
Select
"ROWID",.
"REF."
"DESCR",.
APEX_ITEM. SELECT_LIST_FROM_QUERY (10, code, 'SELECT code FROM lov') 'CODE '.
of ' #OWNER # '. " LOVREF ".
The report definition, I put the element 'Code' as 'List of selection (query based LOV)' and I get the following error when I run the report:
report error: ORA-20001: Error fetching column value: ORA-20001: Query must begin with SELECT or WITH
Code Can someone please say if the use of APEX_ITEM. SELECT_LIST_FROM_QUERY is valid in tabular form?
Thanks in advance
Yes, but your column definition must use "column of report Standard", if you want to use apex_item.
-
Default values &; javascript in tabular form manual
Hello!
I have a table that shows a new line in the upper part of the report... my sql statement is in the form of:
I used to have default values defined in the report attributes but those lost when I started using the approach above.SELECT NULL EMPNO, NULL ENAME, NULL MGR, NULL SAL, NULL COMM, 0 SORTITEM, 'N' STATUS, '' MD5_VALUE FROM DUAL UNION ALL SELECT...etc
How to reference the value of an element on the page, a default value for the line empty? For example, if the element: P60_EMPNO contains the employee ID for work, I want the EMPNO field in the empty line is pre populated with this value.
Also, I used to have a javascript function which ran "onkeypress" for a field in the new row, but now I don't know how to implement with the new tabular form.
Thank you!
Tammy
(currently using APEX 3.1.2)Hi Tammy!
You can replace all NULL values in the SQL statement by your default values. The only condition would be that you should have at least one field that is NULL so that the code in the process knows that the user has not completed registration. In my example, I check:
IF vSTATUS = 'N' AND vENAME IS NOT NULL THEN
Yes, as long as the status is ' only and the user has not completed the ENAME field, the record will not be created - if, however, I put a default to ENAME, IF this test would be satisfied and, therefore, a new record would be created each time the page has been sent.
What does javascript code? The APEX_ITEM. Text() function allows the inclusion of additional attributes for the INPUT tag that will be generated. See: http://download.oracle.com/docs/cd/E17556_01/doc/apirefs.40/e15519/apex_item.htm#CHDCDHJI
In my example, I have:
APEX_ITEM.TEXT(5, SAL, 7, 7, 'style="text-align:right;"') "Salary"
Which adds the attribute "style" to the issue of the STARTING salary. You could do something like that to add in "onkeypress =" javascript:yourfunction (...); » "
Andy
-
APEX: Can we add additional items in tabular form existing
Hi Experts,
I built a nice tabular form with all the buttons and whistles. All goes well until my request for the user to add another
the point in the form of tables and here's my night Mare, I have this error code
failed to parse SQL query: ORA-01403: no data found
I pinned it down to the process of the ApplyMRU or ApplyMRD; because once I delete these.
I see the tabular presentation.
But when I tried to manually recreate the SRM process, with the same criteria, I have the same error code
Is this a Bug or just the way the behaviour of tabular presentation?
What should I do to fix the error?
Please don't tell me that I have to rebuild the tabular presentation. :-(
Hi JAS-Oracle,
JAS-Oracle wrote:
Hi Experts,
I built a nice tabular form with all the buttons and whistles. All goes well until my request for the user to add another
the point in the form of tables and here's my night Mare, I have this error code
failed to parse SQL query: ORA-01403: no data found
I pinned it down to the process of the ApplyMRU or ApplyMRD; because once I delete these.
I see the tabular presentation.
But when I tried to manually recreate the SRM process, with the same criteria, I have the same error code
Is this a Bug or just the way the behaviour of tabular presentation?
What should I do to fix the error?
Please don't tell me that I have to rebuild the tabular presentation. :-(
Here an other elements means another column in the form of tables... Right?
This column to another is the same table on which you build your tabular presentation.
If this is the case, then you must add the extra column in your select query and a few changes in the properties of this column, no need to do anything with the process of the MRU.
for that go to report attributes-> change the newly added column-> slot of the attributes of tabular form
The Table - name of the schema reference owner
The Table name - name of the reference table
Column name of the column in reference
If this isn't the case then of additional information on the same.
If the column is in the other table, to check out this blog: manipulate several tables in a tabular form
or create the sample on the apex.oracle.com, allowing the user to resolve your issue quickly.
,
Hope this helps you
Kind regards
Jitendra
-
Button to apply tabular form - can I just update region c. send this page?
Hi all -
I have a tabular form of base with a button apply. After the button is clicked the MRU is done properly, but it then triggers a sending of full page. I would rather just refresh the region like nothing else on the page requires a refresh. If I create a dynamic action, I think that I need the pl/sql to do the update and I hope I can find an easier way around this.
The only action the button options are send page, redirect to a page or the url and "defined by the dynamic action. I'm on request Express 4.1.0.00.32.
I hope it's something really basic but I have ideas or suggestions,
JohnHi John,.
If you want to stay with the built-in feature in a table, as the process of page MRU, optimistic locking, etc., then you need send a page and the full reload. You can easily navigate the game following lines using partial page refresh and also make sort. But for writing data in the database, you must send the page. Especially if you have extra in the form of validations and related processes. Of course, you could go entirely manual, write your own JavaScript to collect the data from all the tables in table form and submit this via an AJAX request and initiate an update of only the region in table form. But you loose some features in doing so.
We are looking for in this, addressing a new component to edit grid several rows before us for inclusion in the APEX 5.0:
http://www.Oracle.com/technetwork/developer-tools/Apex/application-express/Apex-sod-087560.html
... However for the moment, I would strongly recommend to stick to submit to full page and reload in this case.
Kind regards
Marc -
Tabular form using dynamic Action set
I have a tabular presentation created using APEX_ITEM.
That is to say. APEX_ITEM. SELECT_LIST_FROM_LOV(3,NVL(D.FK_ATTENDANCE_CODE,'%null%')
I want to use a dynamic Action to set the value based on the value of a hidden page element.
I created a Page element 'P1358_HOLD_ATTENDANCE_CODE', and I can see he's up to the correct value.
I tried to create a dynamic Action (run Javascript) to set the form of tab selection list item (f03), but it does not work.
Here is what I tried:
var line = $x_UpTill (this.triggeringElement, 'TR');
var otherElement = $(' input [nom = "f03"]', ligne) [0];
otherElement.value = $x('P1358_HOLD_ATTENDANCE_CODE').value;
Any ideas?
I know, as a backup, I could put the ID = when creating elements in a tabular form so that all the lines are different, but I hope that the JQuery can do it more easily.
Thank youDid change selection that I said fix the prob?
If this isn't the case, him DA is without a doubt was fired at your event?
-
Call skillbuilder tabular form modal plugin
Hello
I have a tabular presentation, which I try to call the modal skillbuilders one of the columns page.
The field I want to use to pass the modal page ID can be null, so I put a bit of functionality in the display only the link, if the ID is filled.
I used the modal plugin before, but don't ever use this kind of functionality (from link on status of tabular form) as I have always previously used a button and assigned the id.
Can someone advise how to assign the field WIP_TRACKING ID please that I can use to go to modal page?
The tables SQL code is below:
SELECT COMMENT_ID, COMMENT_ID COMMENT_ID_DISPLAY, APPLY_COMMENT_TIMING, CUSTOMER_NUMBER, ITEM_NUMBER, SAP_NSC_NAME, SAP_CUSTOMER, SET_STOP_INFLATING_ODR_SSD, COMMENT_TEXT, DISABLED_FLAG, CASE WHEN NVL(APPLY_COMMENT_TIMING,-1) =3 THEN '<a href="' || 'f?p=&APP_ID.:2:&SESSION.::&DEBUG.::' || 'P2_COMMENT_ID:' || COMMENT_ID || '">' || '<img src="#IMAGE_PREFIX#edit_big.gif" alt="">' || '</a>' ELSE 'Not Tracked' END WIP_Tracking FROM #OWNER#.XXMEL_CPE_COMMENTS
Cashy,
You didn't say if your Apex 4 or 5. So better idea is now under the HTML code, or add custom attributes id = "
". Laurent
-
The value for an item hidden in a tabular form in detail.
I use Apex 5.0 with database 12 c.
I created a detailed form maser, in detail, that I need a value for the hidden element set.
the code used is
FOR I IN 1..APEX_APPLICATION.G_F02.COUNT LOOP APEX_APPLICATION.G_F02(I) := '111'; END LOOP;
but it is only useful if the item is displayed on the form.
Reference:--
https://docs.Oracle.com/CD/E14373_01/apirefs.32/e13369/apex_item.htm#AEAPI196
You can use the apex_item.hidden function
for creating hidden point
APEX_ITEM. HIDDEN)
p_idx in NUMBERS
p_value IN VARCHAR2 DEFAULT
p_attributes IN VARCHAR2 DEFAULT NULL,
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL
)
Select
apex_item. Hidden (p_idx-online 1, p_value-online 111) |
apex_item.date_popup2 (p_idx-online 2, p_value => null, p_size,-online 20, p_maxLength => 2000) as "datepicker".
Double;
-
Request Express 5.0.0.00.31/Tabular form/number of lines
Hello
I would like to ask how to configure the number of lines displayed per page.
I did the below and also I tried to re-charge/reload, but impossible to get what I want.
Implement a tabular form
Set the presentation attributes of the State and the paging number of rows 50
Registered and run this page, it shows still 15 ranks in this page.
A I missed something? Or as a table don't allow no more than 15 lines be shown on 1 page?
Thank you.
Hello
Pagination settings are cached for the duration of the session. This change is visible immediately, close the session, restart the brower and connect again or manually re - request the page from the browser's address bar, adding the ClearCache position 'RP' in the URL.
Do not set anything in number of lines (point). This is used to identify an element of the page containing the number of lines to allow users to control this
(Note: If you think it answers your question, please mark it as correct answer.) This will help other users in the community)
Thank you
Benhamdia
-
Error ORA-01445 tabular form on a Collection in APEX 5
When I load a page with a tabular presentation built on a display of a collection to the APEX 5, I'm getting an ORA-01445: cannot select ROWID, or the sample, a view of joining without an error table preserved key.
I create a view
CREATE or REPLACE FORCE VIEWS test_coll_vw
(
C001,
C002,
C003,
C004,
seq_id
)
AS
SELECT TO_NUMBER (c001),
C002,
TO_NUMBER (c003),
TO_NUMBER (c004),
seq_id
Of apex_collections
WHERE collection_name = 'TEST '.
Then create a tabular presentation on the view with the primary key of the source SEQ_ID and primary key of the trigger existing through the wizard.
Debug information shows the statement which is a failure:
Select NULL NULL "CHECK$ 01", "SEQ_ID,' NULL 'C001', NULL"C002', 'C003', 'C004', NULL NULL NULL "APEX$ ROWID ' sys.dual union all select ' CHECK$ 01", 'SEQ_ID', 'C001', 'C002', 'C003', "C004", "APEX$ ROWID" in (select NULL "CHECK$ 01", "SEQ_ID", "C001", "C002", "C003", "C004", "ROWID" "APEX$ ROWID" (select).
"SEQ_ID."
"C001."
"C002."
"C003."
"C004.
of 'WPCAMS_APP '. "" TEST_COLL_VW ".
) APEX$ RPTSRC
order of 1, 7
).
These tabular forms worked up to 4.2, but they seem to fail at 5 APEX for upgrade or newly created pages one. The generated query is identical between versions, but it seems that the underlying apex_collections view has changed between versions and the origin of the problem.
Does anyone have a solution or workaround?
Thank you
Hi Phil,
APEX 5.0 the definition of the view of apex_collection had to be changed for security reasons. This change introduced a regression with tabular form validations, when the table refers to this view. Tabular form declarative validations require the ROWID in order to restore your changed data after a validation failed, and for this reason, APEX is insert the IDENTIFIER in the query in a table. It is currently not possible when tables refers to the sight of apex_collections. We are looking at a solution to this problem, but for now the only way to get around this is not, in this case, use the declarative validation and use some custom validations or process.
Kind regards
Marc -
How to refer to the primary key column of newly inserted rows of tabular form
Hello
I use APEX 4.2.0.00.27 with Oracle DB 11.2.0.3.0.
I work with a tabular presentation wizard-created for insert and update a table using the integrated SRM process (sequence 10). I'm trying to use a process of anonymous block of PL/SQL (sequence 30) to make another manipulation of table after the records were inserted or updated. The manual process is associated with my tabular form and I use the variables of name of column binding in my program block.
My (rsn_test) table has 3 columns: test_id (number), test_nbr (number), test_id2 (number). Test_id column is identified as the primary key and the type of the source already exists a sequence rsn_test_seq. Column test_id2 gets its default value 0 to a hidden page element.
I would use my manual process for updating the value of the test_id2 column. If it's 0 then I want to put the value of the column test_id. If it is any other value, then it must remain at this value. My logic works very well for an existing line, but I'm running into a problem with the newly added lines. The new lines get inserted, but the test_id2 column remains the default value 0. I can tell the debugger that the SRM process is triggered first and inserts the line, then my manual dealing with fires. The problem seems to be that the connection variable: TEST_ID for the primary key column remains NULL after insertion. I don't know how to get the value of the column test_id of my newly created line to use in my PL/SQL block to my update.
Process of PL/SQL:
DECLARE BEGIN :P7_SHOW := NULL; :P7_SHOW := NVL(:TEST_ID2,555) || ' and ' || NVL(:TEST_ID,787) || ' and ' || NVL(:TEST_NBR,9999); IF :TEST_ID2 = 0 AND :TEST_ID IS NOT NULL THEN UPDATE rsn_test SET test_id2 = :TEST_ID WHERE test_id = :TEST_ID; ELSE :TEST_ID2 := :TEST_ID2; END IF; END;
Excerpt from the debugger:
0.01625 0.00010 Processes - point: ON_SUBMIT_BEFORE_COMPUTATION 0.01635 0.00008 Branch point: Before Computation 0.01643 0.00003 Process point: AFTER_SUBMIT 0.01646 0.00022 Tabs: Perform Branching for Tab Requests 0.01668 0.00008 Branch point: Before Validation 0.01676 0.00024 Validations: 0.01700 0.00135 Perform basic and predefined validations: 0.01835 0.00020 Perform custom validations: 0.01855 0.00049 ...Validation "TEST_NBR must be numeric" - Type: ITEM_IS_NUMERIC 0.01904 0.00007 ......Skip for row 1 because row hasn't changed 0.01911 0.00016 ......Skip for row 2 because row hasn't changed 0.01927 0.00012 ...Validation "TEST_ID2 must be numeric" - Type: ITEM_IS_NUMERIC 0.01939 0.00007 ......Skip for row 1 because row hasn't changed 0.01945 0.00018 ......Skip for row 2 because row hasn't changed 0.01964 0.00005 Branch point: Before Processing 0.01968 0.00004 Processes - point: AFTER_SUBMIT 0.01972 0.00588 ...Process "ApplyMRU" - Type: MULTI_ROW_UPDATE 0.02560 0.00154 ...Execute Statement: declare function x return varchar2 is begin begin for c1 in ( select "RSN_TEST_SEQ".nextval pk from sys.dual ) loop return c1.pk; end loop; end; return null; end; begin wwv_flow.g_value := x; end; 0.02714 0.00140 ......Row 3: insert into "APPPCSRSN"."RSN_TEST" ( "TEST_ID", "TEST_NBR", "TEST_ID2") values ( :b1, :b2, :b3) 0.02854 0.00011 ...Process "ApplyMRD" - Type: MULTI_ROW_DELETE 0.02865 0.00004 ......Skip because condition or authorization evaluates to FALSE 0.02869 0.00015 ...Process "Process Submit" - Type: PLSQL 0.02884 0.00007 ......Skip for row 1 because row hasn't changed 0.02891 0.00012 ......Skip for row 2 because row hasn't changed 0.02903 0.00012 ......Process row 3 0.02915 0.00429 ...Execute Statement: begin DECLARE BEGIN :P7_SHOW := NULL; :P7_SHOW := NVL(:TEST_ID2,555) || ' and ' || NVL(:TEST_ID,787) || ' and ' || NVL(:TEST_NBR,9999); IF :TEST_ID2 = 0 AND :TEST_ID IS NOT NULL THEN UPDATE rsn_test SET test_id2 = :TEST_NBR WHERE test_id = :TEST_ID; ELSE :TEST_ID2 := :TEST_ID2; END IF; END; end; 0.03344 0.00013 ...Session State: Saved Item "P7_SHOW" New Value="0 and 787 and 1300" 0.03356 0.00004 Branch point: After Processing 0.03360 0.00048 ...Evaluating Branch: "AFTER_PROCESSING" Type: REDIRECT_URL Button: (No Button Pressed) Condition: (Unconditional) 0.03407 0.00013 Redirecting to f?p=290:7:8717971109610:::::&success_msg=0%20row(s)%20updated%2C%201%20row(s)%20inserted.Success%2FEBD244168556408CBA714E3974918C09%2F 0.03420 0.00012 Stop APEX Engine detected 0.03432 0.00007 Stop APEX Engine detected 0.03439 - Final commit
Any suggestions?
I have run tests on
https://apex.Oracle.com/pls/apex/f?p=83488:1 demo/demo
to see your problem.
I have 2 solution for your problem.
I add trial NOT tabular just usual block of PL/SQLBEGIN I'm IN (SELECT TEST_ID FROM RSN_TEST WHERE TEST_ID2 = 0) LOOP UPDATE RSN_TEST SET test_id2 = TEST_ID WHERE test_id = i.TEST_ID; END LOOP; END; and works very well, you can see in the sample.
The other solution is to show new generated TEST_ID
Adding a sequence as a default value for a column in a table field
And to execute your procedure.
I get how is with the good luck of time.
By
-
Capitalization in tabular form
I work in APEX 4.0.
I want to be able to define a column of tabular forms in capital letters. I can do this with javascript for the elements of the page, but I can't do the same for tabular columns forms. Please, if you know a way to do this, I would appreciate your help.Doug wrote:
I work in APEX 4.0.I want to be able to define a column of tabular forms in capital letters. I can do this with javascript for the elements of the page, but I can't do the same for tabular columns forms. Please, if you know a way to do this, I would appreciate your help.
This can be done easily by a dynamic action and a built-in JavaScript API.
Create a dynamic action as follows:
Event: Unlock key
Selection type: JQuery selector
Replace your internal column name attribute or name of f03 = "fxx", you can get this by inspecting one of your field column in chrome/firefox
Jquery selector: input [name = "f03"]Add real Action as follows
Action: Run the JavaScript Code
It is generic and not need to change
Code: $v_Upper (this.triggeringElement);Change the dynamic action now and define the scope of the event on +(this change is required so that this dynamic action will work for newly added rows) + live
It is now, as soon as you type something in this column and release the button, the text will be converted to upper case
Thank you
VikramPublished by: VC on April 20, 2013 18:35
Maybe you are looking for
-
Satellite L550 - 1 8: error 0X8007045D code and code error 24-380136-00000000
I have a new Toshiba L550 8 1 computer with Windows 7 64 bit. The problem is that I can t burn my files on my DVD PIONEER DVD - RW DVRTD09A preinstalled! If I right click on the file and choose send to E:DVD - I got the error 0X8007045D drive code. I
-
Satellite A100-237 - Broken map supply
I bought a laptop "Satellite A100-237" for about a year.After months, I made a big mistake when I plug the battery bus power supply. Unfortunately, it doesn't work after him. When I take it to the Office, they told me that the power Board is broken d
-
Microsoft Virtual Academy does not load
Hi, since yesterday I can't enter Microsoft Virtual Academy, when I select my module it is just saying loading and never charge. Please help me
-
The icons on the desktop in my laptop now appear as white rectangles with colorful inside globe.
-
When you send an e-mail using Outlook Express, I immediately get this message; "Some errors occurred while processing the requested tasks. Please see the list of errors below for more details". Unfortunately, there are no errors listed below and the