Need Help Creating Manual Tabular Form
Hello,
I am trying to use Denes Kubicek example. [http://htmldb.oracle.com/pls/otn/f?p=31517:170:370485826041084::NO]
I am not getting any errors; however, my table is not getting updated.
Updatable Query:
SELECT DISTINCT
apex_item.HIDDEN(1,PE_BID) PE_BID,
apex_item.HIDDEN(2,PE_TERM_CODE) PE_TERM_CODE,
apex_item.HIDDEN(3,PE_CRN) PE_CRN,
apex_item.HIDDEN(4,PE_INSTRUCTOR_ID) PE_INSTRUCTOR_ID,
PE_BID PE_BID_DISPLAY,
SUBSTR(PE_STUDENT_NAME, (INSTR(PE_STUDENT_NAME, ',') + 1),77)|| ' ' ||
SUBSTR(PE_STUDENT_NAME, 1,(INSTR(PE_STUDENT_NAME, ',') - 1)) Stu_Name,
PE_ATH_CODES Sport,
PE_CRN PE_CRN_DISPLAY,
PE_CRSE_SUBJECT || ' ' || PE_CRSE_NUMBER || '.'||PE_CRSE_SECTION COURSE,
apex_item.SELECT_LIST(5,PE_SATTEND,'YES;YES,NO;NO') PE_SATTEND,
apex_item.SELECT_LIST(6,PE_SPERFORM,'YES;YES,NO;NO') PE_SPERFORM,
apex_item.SELECT_LIST(7,PE_MAKE_APPT,'YES;YES,NO;NO') PE_MAKE_APPT,
apex_item.TEXTAREA(8,PE_COMMENTS,3,30) PE_COMMENTS,
apex_item.TEXT(9,PE_ACTIVITY_DATE,15) PE_ACTIVITY_DATE
FROM PC_ST_TB_INSTR_ATHL_PR_ENTRY
WHERE PE_TERM_CODE = :P4_TERM
AND (PE_INSTRUCTOR_ID = :P4_DISPLAY_INSTRUCTOR_ID
OR PE_INSTRUCTOR_ID = :P4_DISPLAY_INSTRUCTOR_ID2)Page Process:
DECLARE
v_updatecount NUMBER := 0;
BEGIN
FOR i IN 1 .. apex_application.g_f01.COUNT
LOOP
UPDATE PC_ST_TB_INSTR_ATHL_PR_ENTRY
SET pe_sattend = apex_application.g_f05(i),
pe_sperform = apex_application.g_f06(i),
pe_make_appt = apex_application.g_f07(i),
pe_comments = apex_application.g_f08(i),
pe_activity_date = apex_application.g_f09(i)
WHERE pe_instructor_id = apex_application.g_f04(i)
AND pe_bid = apex_application.g_f01(i)
AND pe_term_code = apex_application.g_f02(i)
AND pe_crn = apex_application.g_f03(i);
v_updatecount := v_updatecount + 1;
END LOOP;
:P4_DISPLAY_COUNT := v_updatecount;
END;I can't use the wizard because it appears to only allow for 2 primary keys. My table has 4.
Regards,
Kelly
Hi,
The first thing to do is concatenate the HIDDEN items in front of a displayed item:
SELECT DISTINCT
apex_item.HIDDEN(1,PE_BID) || apex_item.HIDDEN(2,PE_TERM_CODE) || apex_item.HIDDEN(3,PE_CRN) || apex_item.HIDDEN(4,PE_INSTRUCTOR_ID) || PE_BID PE_BID_DISPLAY,
..etc..That way, you don't have to worry about the first 4 columns in the report.
Then you need to double-check that the process is actually being run. Immediately after the BEGIN line, enter:
raise_application_error(apex_application.g_f01(1));When you submit the page, you should get an error showing the PE_BID value in the first row. If you don't get the error, then the process isn't being run - in which case, check the process to (A) make sure it is triggered by the Submit button and (B) is before any other sequence (especially if you have a "reset page" process). If you do get the error, but there is no value shown, then f01(1) isn't pointing to the PE_BID value - in which case, you should do a View Source on the loaded page and check for input items with a name attribute of "f01". If you get the error and the value is correct, then remove the above line and let the process run - it could be that concatenated the columns may resolve the issue. If, after all that, the process still won't save the data, let us know.
Andy
Similar Messages
-
Query for create manual tabular form using apex collection add row button functionality
Hello everyone
My requirement is i created a tabular form manually using apex collection but if i click on add row button then previously selected data refreshed and added new row in this form it is fine.but i don't want to refreshed previously selected data and click on add row button then add new row .how it is possible? plz help
Thanks & Regards,
UjwalaUjwala
Instead of starting a new thread with the same question as Query for create manual tabular form using apex collection add row button functionality.
Could you answer the question about what you see while debug the javascript code.
If you don't understand the question or have trouble debug javascript let us know.
Nicolette -
Query for create manual tabular form using apex collection using item textfield with autocomplete
can we create a manual tabular form inside item textfield with autocomplete ?
how it is possible?
with Apex_item API used for this item.
i used this code for creat cascading select list
select seq_id,
APEX_ITEM.SELECT_LIST_FROM_QUERY(
p_idx => 1,
p_value => c001,
p_query => 'SELECT C001 D
, C002 R
FROM APEX_COLLECTIONS
WHERE COLLECTION_NAME = ''col1''',
p_attributes => 'style="width:150px" onchange="f__name(this,parseInt(#ROWNUM#));"',
p_show_null => 'Yes',
p_null_value => null,
p_null_text => '- Select name -',
p_item_id => 'f01_'|| LPAD (ROWNUM, 4, '0'),
p_item_label => 'Label for f01_#ROWNUM#',
p_show_extra => 'NO') name,
APEX_ITEM.SELECT_LIST_FROM_QUERY(
p_idx => 2,
p_value => c002,
p_query => ' SELECT null d, null r FROM dual WHERE 1 = 2
p_attributes => 'style="width:150px"',
p_show_null => 'Yes',
p_null_value => null,
p_null_text => '- Select name -',
p_item_id => 'f02_'|| LPAD (ROWNUM, 4, '0'),
p_item_label => 'Label for f02_#ROWNUM#',
p_show_extra => 'NO')name2,
from apex_collections
where
collection_name = 'COLLECTION1'
It is fine .
but i want item in tabular form textfield with autocomplete and remove select list. my requirement is using textfield with autocomplete select a employee name and second item textfield with autocomplete display dependent perticular employee related multiple task.
how it is created.i have no idea related textfield with autocomplete.Please help me....pt_user1
I understand that the add row button is currently doing a submit.
To not submit the page you need a dynamic action on the page.
Does the javascript function addRow do what you want?
Otherwise have a look at the following two threads Add row in manual tabular form using dynamic action and Accessing Tabular Form & Add Elements to Collection without Page Submit.
You're process could be something like:
Add the new values to the collection using the idea's in the second thread and at the same time add the new row.
And as second action refresh your tabular form.
If you get stuck set up what you have done on apex.oracle.com using the tables from the demo application.
Nicolette -
Need help creating a simple form in Dreamweaver CS3!!
I'm trying to create a form in Dreamweaver CS3, and while I have the form built I'm confused as to how to make it actually function. What I'm trying to do is create a form that when the visitor clicks submit, the data is emailed to me. Can someone help me figure out how to accomplish this?
Thanks so much!Ute's answer is spot on - you need a FormMail script to process the form. Check with your host (or via the control panel) and see if they supply such a form for free.
If not, google for "formail script' and you'll find quite a few available - all free to use.
You just need to add a couple of lines to your html code, change a few things in the formmail script and the form will process. Sounds complicated but most scripts come with a help file to help you get off the ground.
Nadia
Adobe® Community Expert : Dreamweaver
http://www.perrelink.com.au
Unique CSS Templates |Tutorials |SEO Articles
http://www.DreamweaverResources.com
http://csstemplates.com.au/
http://twitter.com/nadiap -
Creating a manual tabular form on an empty table
Hi all,
I am trying to create a manual tabular form on an empty table. Is it possible to display textboxes and column headers, when I run the report I get "no data found".
Regards,Hi Denes and thank you for your valuable input.
My problem is in fact that, I have created the tabular form by using a report region with a SQL query, something like,
select apex_item.display_and_save(1, p.bolge) bolge,
apex_item.display_and_save(2, p.hafta) hafta,
apex_item.display_and_save(3, p.yil) yil,
apex_item.display_and_save(4, p.mamul) mamul,
apex_item.display_and_save(5, p.tahmin1) tahmin1,
apex_item.display_and_save(6, p.tahmin2) tahmin2,
apex_item.display_and_save(7, p.tahmin3) tahmin3,
apex_item.display_and_save(8, p.tahmin4) tahmin4,
apex_item.display_and_save(9, p.tahmin5) tahmin5,
apex_item.display_and_save(10, p.tahmin6) tahmin6,
apex_item.display_and_save(11, p.revize4) revize4,
apex_item.display_and_save(12, p.revize5) revize5,
apex_item.display_and_save(13, p.revize6) revize6
from portal_link.v_planlama p
The problem is that, since there is no data in the table, when I run the page, I cant get the form to be rendered, and I get a nice "no data found". There should be a way to get the form rendered, hence making it available for data input.
Regards,
Onur -
Iscripts - Need help creating a form in one
I am confused about delimiting in iscripts. I need to create the fiollowing form:
In iscript named IScript1
in function: buildform
buildform has these two inputs, firstname and lastname
the action of the form is also in iscript1 function getinputs
iscript getinputs will just print out the firstname and lastname
Could I get some help with this?
Thanks, Allen CunninghamYour site is running on an Apache server, so it definitely doesn't support ASP. Apache frequently supports PHP, but I couldn't tell from the headers sent by your server whether it's supported on your site.
I suggest that you contact BT Business support to see if they offer a formmail script. Most hosting companies do. The support pages should describe how to set it up. -
Delete Functionality in manual tabular form
Hi everyone,
I have created 2 tabular forms on the same page.everthing is working fine.Both the tabular form are able to insert and update.I am getting problem to implement the DELETE functionality in those tabular form.
I inserted this code htmldb_item.checkbox(6, id) del in the region and i created a delete process.But i am getting (no data found) error.
could anyone help me in solving this.
thanks
phani
===========================================================
DELETE PROCESS:
FOR i in 1..HTMLDB_APPLICATION.G_F01.count
LOOP
DELETE FROM (TABLE NAME)
WHERE id = HTMLDB_APPLICATION.G_F06(i);
END LOOP;
=============================================================
TABULAR FORM 1:
REGION:
select x.column1,
x.column2,
x.column3,
x.column4,
x.column5,
x.del,
x.cks
from (
select htmldb_item.hidden(1,column1) column1,
htmldb_item.text(2,column2,10) column2,
htmldb_item.text(3,column3,10) column3,
htmldb_item.text(4,column4,10) column4,
wwv_flow_item.date_popup(5,null,column5) column5,
htmldb_item.checkbox(6,column1) del,
htmldb_item.md5_checksum(column2,column3,column4,column5) cks
from TABLENAME
union all
select htmldb_item.hidden(1,null) column1,
htmldb_item.text(2,null,10) column2,
htmldb_item.text(3,null,10) column3,
htmldb_item.text(4,null,10) column4,
wwv_flow_item.date_popup(5,null,null) column5,
htmldb_item.checkbox(6,null) del,
htmldb_item.md5_checksum(null,null,null,null) cks
from dual) x
==================================================================
PROCESS:
declare
l_cks wwv_flow_global.vc_arr2;
j pls_integer := 1;
begin
-- Get original MD5 checksum
select wwv_flow_item.md5(column2,column3,column4,column5) cks
BULK COLLECT INTO
l_cks
from TABLE;
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
-- for i in 1..l_cks.count
-- loop
-- if htmldb_application.g_fcs(i) != l_cks(i) then
-- rollback;
-- raise_application_error(
-- -20001,
-- 'Current version of data in database has changed '||
-- 'since user initiated update --process.');
--return;
-- end if;
-- end loop;
-- update
for i in 1..htmldb_application.g_f01.count
loop
if htmldb_application.g_f01(i) is not null then
update TABLENAME
set column2= htmldb_application.g_f02(i),
column3 = htmldb_application.g_f03(i),
column4 = htmldb_application.g_f04(i),
column5 = htmldb_application.g_f05(i)
where column1 = htmldb_application.g_f01(i);
else
if htmldb_application.g_f03(i) is not null then
insert into TABLE
(column2,
column3,
column4,
column5
values
(htmldb_application.g_f02(i),
htmldb_application.g_f03(i),
htmldb_application.g_f04(i),
htmldb_application.g_f05(i));
end if;
end if;
end loop;
end;
I created the other tabular form on the same page with
htmldb_application.g_f11(i)
htmldb_application.g_f12(i)
htmldb_application.g_f13(i)
htmldb_application.g_f14(i)
used the same code.Have you got any response on this? I would like to know how to do it too. I am trying to implement a manual tabular form on a page and need this functionality.
I do know one thing. After attending the ODTUG conference last week, Raj said something about you have to process check boxes and radio groups separately from the rest of the form.
Thanks,
Michelle -
Manual tabular form -- add rows
Hi everybody, I am making a manually tabular form following the Denes Kubicek tutorials:
http://apex.oracle.com/pls/otn/f?p=31517:170:1304244099066416::NO
and
http://apex.oracle.com/pls/otn/f?p=31517:190:1304244099066416::NO
The SQL for the tabular form is:
SELECT apex_item.checkbox (31,
idint,
'onclick="highlight_row(this,' || ROWNUM || ')"',
NULL,
'f31_' || LPAD (ROWNUM, 4, '0')
) delete_checkbox,
idint,
apex_item.text (32,
tipus_modif,
1,
1,
'style="width:20px" ',
'f32_' || LPAD (ROWNUM, 4, '0')
) tipus
FROM GPPC_DETALLS_ESMENA_PROP_V
where esmena_idint = :P18_IDINT
and tipus_modif ='A'
The Report is created correct. Now I modify the "Form Region" template like this:
<table class="t6FormRegion" id="MY_TAB" border="0" cellpadding="0" #REGION_ATTRIBUTES# summary="">
<tr><td class="t6Header">#TITLE#</td></tr>
<tr><td class="t6ButtonHolder">#CLOSE# #PREVIOUS##NEXT##DELETE##EDIT##CHANGE##CREATE##CREATE2##EXPAND##COPY##HELP#</td></tr>
<tr><td class="t6Body">#BODY#</td></tr>
<tr><td><img src="#IMAGE_PREFIX#themes/theme_6/t.gif" width="400" height="1" alt="" /></td></tr>
</table>
Now I add a Button URL with the code:
javascript:va_AddTableRow(this,'MY_TAB',1);
and add this Javascript in the region header of the SQL Report
<script>
function va_AddTableRow(pThis,pThat,pNum){
var tt = html_GetElement(pThat);
for(i=0;i<pNum;i++){
var ogTR = tt.rows[1];
var trClone = ogTR.cloneNode(true);
trClone.firstChild.innerHTML='(null)';
var last_child=trClone.lastChild.getElementsByTagName('input')
for (var j=0;j<last_child.length;j++)
if (last_child[j].type=="hidden" && last_child[j].name=="f01")
last_child[j].value="";
if(document.all){
myNewRow = tt.insertRow(tt.rows.length);
oReplace = myNewRow.replaceNode(trClone);
}else{
tt.appendChild(trClone);
</script>
In this moment, when I push the botton appears the text (nulll) in the same region but not as a new line in the SQL report, what is the problem??
Thank you for your helpAlberto,
When you get a chance, see if maybe this (old version) of my app does something similar to what you need/want.
[http://apex.oracle.com/pls/otn/f?p=26115:3]
It's not working right now though, I keep getting the Oracle error:
ORA-01116: error in opening database file 17252 ORA-01110: data file 17252: '/u03/oradata/marvlprd/MARVLPRD/datafile/o1_mf_flow_172_23qtsjpr_.dbf' ORA-27041: unable to open file Linux Error: 23: Too many open files in system Additional information: 3
So, as way of an explanation (until Joel gets the Linux process fixed), I have a simple little screen that I use for letting the users specifiy search criteria. Each line has four columns, what field they want to search, a condition (equals or not equals), the text to search for, and an optional 'And/or' argument. If the 'And/Or' gets populated, a new blank line automatically gets created. There is also a red 'X' on each line so they users can delete a line if they want.
Not sure if this is what you need, but this page uses the same set of javascript code, so perhaps when it's working again, you can see if there are any similarities or differences.
Also, for reference, so you can see the code and variables, etc., the workspace is wbfergus, and the id and password are both htmldb-apex.
Bill Ferguson -
I have a couple of problems with the manual tabular form I have created and would appreciate some help,
First the htmldb_item.popup_from_query is not populating the field when I select the item:
The query looks something like this:
Select x.data1,
x.data2,
x.data3,
x.CKS
From (
Select htmldb_item.display_and_save(1, data1) data1,
htmldb_item.text(3, data2, 50) data2,
htmldb_item.select_list(4,data3,'Yes;Y,No;N') data3
htmldb_item.md5_checksum(data1,data2, data3) CKS
FROM my_table
UNION ALL
Select htmldb_item.popup_from_query(1, NULL, 'select code || CHR(45) || description descrip, code from PRODUCT_STREAM', 2, 2) data1,
htmldb_item.text(3, NULL, 50) data2,
htmldb_item.select_list(4,'N','Yes;Y,No;N')data3,
htmldb_item.md5_checksum(null,null,null) CKS
FROM dual
) x;
When this page is run, the existing data is displayed with a blank line at the bottom as expected, it I click on the popup icon a list of codes is displayed, but I cannot click on any of the items to populate the data1 field. If I change the query on the top of the union so the first data1 is also htmldb_item.popup_from_query then it works fine, but data1 cannot (user requirement) be changed by the user, how can I fix this so the popup list works.
Second thing:
CKS is showing as another column in the tab form, if I uncheck show it doesnât work anymore, there us no data showing in the column just the heading, and I can get rid of the text but there is still allocated size for it.Why do you have to write the tabular form manually? Why not use the tabular wizard and have the form, including checksums, generated for you? In HTML DB 1.6 you can include options to automatically add new empty rows to your tabular form and have a row selector with delete functionality.
Neither the manual tabular forms nor the automatically generated tabular forms support mixing display types for columns. Having a display-and-save display type for existing rows and a popup for new rows doesnât work. All rows, including new ones, have to use the same display type to work properly. If itâs a requirement to have this data1 column be read-only for existing rows, then you need to create a separate form for adding new rows. So e.g. you could have a tabular form only for existing data and an add-row button that takes the user to a data entry form on another page.
Youâre checksum btw shows up in itâs own column because you defined it to be an extra column in your SQL statement. Since itâs just rendering a hidden form field, you could append the checksum to another column:
htmldb_item.select_list(4,'N','Yes;Y,No;N') ||
htmldb_item.md5_checksum(null,null,null) data3
When using manual tabular forms, the column alias names are irrelevant. But again, Iâd recommend using the built-in functionality.
Regards,
Marc -
Manual Tabular Form using checksum
I have a manual tabular form which updates OK but when I add the htmldb_item.mds_checksum it does not always work. It does not pass the MD5 checksum test in the update process. Sometimes it works some times it does not. No one else is updating this data so it should pass the checksum error.
I need a manual tabular form so I can to retrieve this same data in a collection if the page is submitted for a cascading dropdown in another region. That is correct?
Of course, I could do the cascading dropdown another way instead of select list on submit. This is puzzling me.
Here is the sql query:
select htmldb_item.hidden(1,sub_id) sub_id,
htmldb_item.display_and_save(2,column_id) column_id,
htmldb_item.display_and_save(3,column_name) column_name,
htmldb_item.display_and_save(4,primary_key) primary_key,
htmldb_item.display_and_save(5,required) required,
htmldb_item.select_list(6,isselected,'Yes;Y,No;N') isselected,
htmldb_item.md5_checksum(isselected) cks
from sub_columns
where sub_id = :P26_SUB_ID
order by 2
Here is the update process:
declare
l_cks wwv_flow_global.vc_arr2;
j pls_integer := 1;
begin
-- Get original MD5 checksum
select wwv_flow_item.md5(isselected) cks
BULK COLLECT INTO
l_cks
from sub_columns
where sub_id = :P26_SUB_ID;
for i in 1..l_cks.count
loop
if htmldb_application.g_fcs(i) != l_cks(i) then
rollback;
raise_application_error(-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
end if;
end loop;
-- update Subscription
for i in 1..htmldb_application.g_f01.count
loop
update sub_columns
set isselected = replace(htmldb_application.g_f06(i),'%'||'null%',NULL)
where sub_id = :P26_SUB_ID and
column_id = htmldb_application.g_f02(i);
end loop;
commit;
end;
Any help would be appreciated. I just don't see what I am doing wrong and I don't see any other way to do it.I had already read this paper before doing the tabular form manually. I tried to follow it as closely as I could. My tabular form is a little different since I have a where clause in my SQL and only updating one field. The other fields are display_and_save. And I was branching to a different page than the page containing the tabular form. I would think none of these differences should make it not work. I did change to branch to the same page. That made no difference.
I did not need to do an insert so I skipped doing that step and then went to Adding Optimistic Locking. It is failuring in my update process with this code:
-- Get original MD5 checksum
select wwv_flow_item.md5(isselected) cks
BULK COLLECT INTO
l_cks
from sub_columns
where sub_id = :P26_SUB_ID;
for i in 1..l_cks.count
loop
if htmldb_application.g_fcs(i) != l_cks(i) then
rollback;
raise_application_error(-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
end if;
end loop;
I get the Error process message and then the above -20001 error message when I click on the Submit button. Is there something wrong with my above code? I would assume I would need to add the where clause to the above select since I am only updating whose records.
I had created a submit button with action submit page and redirect to URL. The process executes on the condition when the submit button is pressed.
I need to get this working soon. I would assume other people have done a similar thing. I have tried many things. Another thing I notice is if I tell it to not display the first column, sub_id, and the last column, cks, (unselecting display in Report Attributes section) then the update does not work. I must be doing something wrong but I don't know what.
I created the page with component, report, SQL Report, and region type SQL Query. -
Hi friends,
I am new to Apex and am making a timesheet application. I have 2 main tables which I am using and their structures are as follows:
TB_OPMI_PROJ_ACT_MAP:
PROJ_REF VARCHAR2
REL_ID VARCHAR2
ACT_CODE VARCHAR2
TB_OPTI_EMP_TS:
PROJ_REF VARCHAR2
REL_ID VARCHAR2
EMP_ID VARCHAR2
ACT_CODE VARCHAR2
TS_WDI NUMBER
TS_WD2 NUMBER
TS_WD3 NUMBER
TS_WD4 NUMBER
TS_WD5 NUMBER
TS_WD6 NUMBER
TS_WD7 NUMBER
TS_REMARKS VARCHAR2
TS_STATUS VARCHAR2
Now I have to create a manual tabular form based on data from these 2 tables and either insert or update data into the timesheet table.
The page structure is such that I have created page items for emp_id, proj_ref and rel_id(all are LOV’s). And there is a button that submits the page. So when the user inputs the data and clicks on submit, the report whose source code is as follows shows up with data from both tables:
DECLARE
v_query varchar2(10000);
BEGIN
IF :P7_RELEASE_ID is not null THEN
v_query := 'SELECT b.act_code activities,
apex_item.text (1, a.ts_wd1, 10, 10) monday,
apex_item.text (2, a.ts_wd2, 10, 10) tuesday,
apex_item.text (3, a.ts_wd3, 10, 10) wednesday,
apex_item.text (4, a.ts_wd4, 10, 10) thursday,
apex_item.text (5, a.ts_wd5, 10, 10) friday,
apex_item.text (6, a.ts_wd6, 10, 10) saturday,
apex_item.text (7, a.ts_wd7, 10, 10) sunday,
apex_item.text (8, a.ts_remarks, 70, 128) remarks
from tb_opti_emp_ts a, tb_opmi_proj_act_map b
WHERE a.proj_ref = b.proj_ref
AND a.rel_id = b.rel_id
AND a.act_code = b.act_code
AND a.emp_id = '''||:P7_EMPLOYEE||'''
AND b.rel_id = '''||:P7_RELEASE_ID||'''
AND a.proj_ref = '''||:P7_PROJ_REF||''';';
ELSE
v_query := 'SELECT 1 FROM dual WHERE 1=0';
END IF;
return(v_query);
END;
Now this query is working fine. The data in the tb_opmi_proj_act_map is basically the activities mapped on each project reference and release id.
Now when there is no corresponding data for the emp_id,proj_ref,rel_id and act_code in the main timesheet table, even then I need to generate to a tabular form structure with all the activities listed for the input proj_ref and rel_id and the 8 respective columns for the days of the week and remarks for each row or activity. I don’t know how to progress and am stuck. I just had a thought of modifying my region source a bit something like this.
DECLARE
v_query varchar2(10000);
v_count number;
BEGIN
+Select count(*) into v_count from tb_opti_emp_ts where emp_id=P7_EMPLOYEE and proj_ref=P7 PROJREF and rel_id=P7_REL_ID;+
IF (:P7_RELEASE_ID is not null) and (v_count>0) THEN
v_query := 'SELECT b.act_code activities,
apex_item.text (1, a.ts_wd1, 10, 10) monday,
apex_item.text (2, a.ts_wd2, 10, 10) tuesday,
apex_item.text (3, a.ts_wd3, 10, 10) wednesday,
apex_item.text (4, a.ts_wd4, 10, 10) thursday,
apex_item.text (5, a.ts_wd5, 10, 10) friday,
apex_item.text (6, a.ts_wd6, 10, 10) saturday,
apex_item.text (7, a.ts_wd7, 10, 10) sunday,
apex_item.text (8, a.ts_remarks, 70, 128) remarks
from tb_opti_emp_ts a, tb_opmi_proj_act_map b
WHERE a.proj_ref = b.proj_ref
AND a.rel_id = b.rel_id
AND a.act_code = b.act_code
AND a.emp_id = '''||:P7_EMPLOYEE||'''
AND b.rel_id = '''||:P7_RELEASE_ID||'''
AND a.proj_ref = '''||:P7_PROJ_REF||''';';
ELSIF (:P7_RELEASE_ID is null) then
v_query := 'SELECT 1 FROM dual WHERE 1=0';
else
[code for generating my requirement in case the input is legit and there is no data in the timesheet table.]
END IF;
return(v_query);
END;
Please could someone help me????
Also in either case, whether data is generated from the join if already existing or if no data exists, I need to then insert the data or update it accordingly and have no idea how to proceed.
I know the solution will be a lengthy one but please its urgent and I am stuck. Please any help would be greatly appreciated.
Thanks in advance……Hi all,
In response to my previous post, I would like to update that I have been able to generate my required region.
Now the final query is as follows:
DECLARE
v_query varchar2(10000);
v_count number;
BEGIN
select count(*) into v_count from tb_opti_emp_ts where emp_id=:P7_EMPLOYEE and proj_ref=:P7_PROJ_REF and rel_id=:P7_RELEASE_ID;
IF ((:P7_RELEASE_ID is not null) and (v_count>0)) THEN
v_query := 'SELECT b.act_code activities,apex_item.text (1, a.ts_wd1, 10, 10) monday,apex_item.text (2, a.ts_wd2, 10, 10) tuesday,apex_item.text (3, a.ts_wd3, 10, 10) wednesday,apex_item.text (4, a.ts_wd4, 10, 10) thursday,apex_item.text (5, a.ts_wd5, 10, 10) friday,apex_item.text (6, a.ts_wd6, 10, 10) saturday,apex_item.text (7, a.ts_wd7, 10, 10) sunday,apex_item.text (8, a.ts_remarks, 70, 128) remarks from tb_opti_emp_ts a, tb_opmi_proj_act_map b WHERE a.proj_ref = b.proj_ref
AND a.rel_id = b.rel_id
AND a.emp_id = '''||:P7_EMPLOYEE||'''
AND b.rel_id = '''||:P7_RELEASE_ID||'''
AND a.proj_ref = '''||:P7_PROJ_REF||''';';
ELSIF (:P7_RELEASE_ID is null) then
v_query := 'SELECT 1 FROM dual WHERE 1=0';
else
v_query:='select (select act_desc from tb_opmi_act_code a where a.act_code=b.act_code) as activities,apex_item.text(1,null) Monday,apex_item.text(2,null) Tuesday,apex_item.text(3,null) Wednesday,apex_item.text(4,null) Thursday,apex_item.text(5,null) Friday,apex_item.text(6,null) Saturday,apex_item.text(7,null) Sunday,apex_item.text(8,null) Remarks from tb_opmi_proj_act_map b where proj_ref='''||:P7_PROJ_REF||''' and rel_id='''||:P7_RELEASE_ID||''';';
END IF;
return(v_query);
END;
Now I have created a button which have dynamic action as its on click action. Now in the dynamic action I have to write the code for inserting/updating the data in the timesheet table.
I need help with it please its urgent.......... -
I need to create a fillable form and then generate a reports.
Hello everybody. I need to create a fillable form and then generate a report using numbers. You know, for example if you have customers, I need to be able to write the usual , name, last name, address, and some other details and then using a standard letter I would like the form to be able to populate these fields automatically in a standard pre formatted letter by our company and then be able to print it.
Any help to point me in the right direction I would appretiate very much.
I have iwork 9 installed in my macbook proThis is acalled a mail merge and is solved using a combination of Numbers (or address book) and Pages. To get detailed help how to performa a mail merge start in Pages, then in the help menu type Mail Merge:
Also download the help files for Numbers and Pages here:
http://support.apple.com/manuals/#
Page 247 in the Pages User's Guide has details how to perform a a mail merge.
Post back with specific questions if you need to.
Regards,
Wayne -
How to Multi Row Update function in Manual Tabular Form
Hi All,
In my application I am using manual tabular form, for Update and insert i have written pl/sql process,
but i want to make use of MULTI_ROW_UPDATE function for update and insert operations.
How can I implement default tabular form behaviour in manual tabular form.
I am using:
Oracle Database 11g
ApEx Version 4.0
please help me, it's urgent.
thanks
MRHi Joao,
First Can u pl let us know your view is based on how many
tables?
If it is a simple view ,you can open the form in update mode
passing a parameter to it thru a procedure or thru a url or what
ever you feel like(form to form,etc)..I will give you an example
on how to open the form in update mode like below..
1.develop a form based on a simple view
2.Call that form Thru a simple URL
3.In the above you are opening a form with module id
ex:1234567890 in update mode and change portal30 to suit
accordingly..
4.You are passing a parameter called "ABCDEF" TO "NAME" Field to
that form for querrying..
5.Now the form will be opened in update mode and all the fields
are pertaining to the parameter "ABCDEF" and you can update the
fields....
II..Now regarding the check boxes i need to know which version
of the portal are u using..As for as my knowledge goes (up to
3.0.6) there are lot of bugs with the check boxes and check box
checked value is always "yes"(if u want to insert in to the data
base).So try not to depend on checkboxes and instead Combo is
the right answer till oracle portal is free of bugs.
No triggers are required for your requirement....
Hope i have answered your problem ...If any please revert back
with full details
Thanks
Vishnu Singireddy -
Hi everyone,
I have created a maual tabular form with the help of (HOW TO) document in OTN.For that I wrote maual update and manual delete process and evething is working fine.But in the manual update process i did not include the code to compare the checksum of the submitted data with the old data (still its working fine).But in my application i have created several manual tabular forms like this .Do the application get any problem in the futher as i am not checking the checksum.If i compare the checksum i am getting error.I decoded that error by
inserting the checksum values to a (test table).The checksum values for a row is changing even if there is no change in the data of the table.
any suggestions please
Here is my code
declare
l_cks wwv_flow_global.vc_arr2;
j pls_integer := 1;
begin
-- Get original MD5 checksum
-- select wwv_flow_item.md5( column1,column2,column3,column4) cks
-- BULK COLLECT INTO
--l_cks
-- from table;
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
-- for i in 1..l_cks.count
--loop
--if htmldb_application.g_fcs(i) != l_cks(i) then
-- rollback;
--raise_application_error(
-- -20001,
-- 'Current version of data in database has changed '||
-- 'since user initiated update process.');
-- return;
--end if;
--end loop;
-- update EMP
for i in 1..htmldb_application.g_f07.count
loop
if htmldb_application.g_f07(i) is not null then
update table
set
column2 = replace(htmldb_application.g_f08(i),'%'||'null%',NULL)
where column1 = htmldb_application.g_f07(i);
else
if htmldb_application.g_f08(i) is not null then
insert into table
( column1 ,
column2,
column3)
values
replace(htmldb_application.g_f08(i),'%'||'null%',NULL));
end if;
end if;
end loop;
end;
Thanks
phaniPhani,
I don't understand what you have working, what does not work, and what that code does (much of it is commented out). Can you put an example on apex.oracle.com that shows the problem?
Scott -
Checksum error in Manual Tabular Form
Hi everyone,
I have created 2 (manual tabular forms) on a same page but i am getting checksum error for one of the tabular form.
Here is my code:
1 st Tabular Form:
select
x.del,
x.ECGEXST_ID,
x.LEAD_CD,
x.ST_ID,
x.ENTERED_DTS,
X.ENTERED_BY_NM,
X.UPDATED_DTS,
X.UPDATED_BY_NM,
x.cks
from (
select
htmldb_item.checkbox(1,ECGEXST_ID) del,
htmldb_item.hidden(2,ECGEXST_ID) ECGEXST_ID,
htmldb_item.select_list_from_query (3, LEAD_CD,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
htmldb_item.select_list_from_query(5,ST_ID,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 17',25) ST_ID,
wwv_flow_item.display_and_save(6,to_char(ENTERED_DTS,'MM/DD/YYYY')) ENTERED_DTS,
au.LAST_NM || ', ' || au.FIRST_NM ENTERED_BY_NM,
wwv_flow_item.display_and_save(7,to_char(UPDATED_DTS,'MM/DD/YYYY')) UPDATED_DTS,
au1.LAST_NM || ', ' || au1.FIRST_NM UPDATED_BY_NM,
htmldb_item.md5_checksum(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
from ECGEXST,
app_user au,app_user au1 where au.MSPR_ID(+) = ECGEXST.ENTERED_BY_MSPR_ID and au1.MSPR_ID(+) = ECGEXST.UPDATED_BY_MSPR_ID
and ECGEXDT_ID = :P65_ECGEXDT_ID
union all
select
htmldb_item.checkbox(1,null) del,
htmldb_item.hidden(2,null) ECGEXST_ID,
htmldb_item.select_list_from_query (3,null,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
htmldb_item.select_list_from_query(5,null,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 17',25) ST_ID,
wwv_flow_item.display_and_save(6,null) ENTERED_DTS,
null ENTERED_BY_NM,
wwv_flow_item.display_and_save(7,null) UPDATED_DTS,
null UPDATED_BY_NM,
htmldb_item.md5_checksum(null,null,null,null,null) cks
from dual) x
UPDATE PROCESS:
declare
l_cks wwv_flow_global.vc_arr2;
j pls_integer := 1;
val1 varchar2(100);
val2 varchar2(100);
begin
-- Get original MD5 checksum
select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
BULK COLLECT INTO
l_cks
from ECGEXST where ECGEXDT_ID = :P65_ECGEXDT_ID;
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
for i in 1..l_cks.count
loop
if htmldb_application.g_fcs(i) != l_cks(i) then
rollback;
raise_application_error(
-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
-- return;
end if;
end loop;
-- update ECGRSTST
for i in 1..htmldb_application.g_f02.count
loop
if htmldb_application.g_f02(i) is not null then
update ECGEXST
set
ECGEXDT_ID = :P65_ECGEXDT_ID,
LEAD_CD = replace(htmldb_application.g_f03(i),'%'||'null%',NULL),
ST_ID = replace(htmldb_application.g_f05(i),'%'||'null%',NULL)
where ECGEXST_ID = htmldb_application.g_f02(i);
else
if htmldb_application.g_f03(i) is not null then
insert into ECGEXST
(ECGEXST_ID ,
ECGEXDT_ID,
LEAD_CD,
ST_ID)
values
(ECGEXST_SEQ.nextval,
:P65_ECGEXDT_ID,
replace(htmldb_application.g_f03(i),'%'||'null%',NULL),
replace(htmldb_application.g_f05(i),'%'||'null%',NULL));
end if;
end if;
end loop;
end;
The first tabular form is working fine.But for the second tabular form i am getting the checksum error.I have created a test table and checked the checksum values.The checksum values are changing.
Here is the code of my 2nd tabularform:
select
x.del,
x.ECGEXT_ID,
x.LEAD_CD,
x.T_ID,
x.ENTERED_DTS,
X.ENTERED_BY_NM,
X.UPDATED_DTS,
X.UPDATED_BY_NM,
x.cks
from (
select
htmldb_item.checkbox(11,ECGEXT_ID) del,
htmldb_item.hidden(12,ECGEXT_ID) ECGEXT_ID,
htmldb_item.select_list_from_query (13, LEAD_CD,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
htmldb_item.select_list_from_query(15,T_ID,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 18',25) T_ID,
wwv_flow_item.display_and_save(16,to_char(ENTERED_DTS,'MM/DD/YYYY')) ENTERED_DTS,
au.LAST_NM || ', ' || au.FIRST_NM ENTERED_BY_NM,
wwv_flow_item.display_and_save(17,to_char(UPDATED_DTS,'MM/DD/YYYY')) UPDATED_DTS,
au1.LAST_NM || ', ' || au1.FIRST_NM UPDATED_BY_NM,
htmldb_item.md5_checksum(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
from ECGEXT,
app_user au,app_user au1 where au.MSPR_ID(+) = ECGEXT.ENTERED_BY_MSPR_ID and au1.MSPR_ID(+) = ECGEXT.UPDATED_BY_MSPR_ID
and ECGEXDT_ID = :P65_ECGEXDT_ID
union all
select
htmldb_item.checkbox(11,null) del,
htmldb_item.hidden(12,null) ECGEXT_ID,
htmldb_item.select_list_from_query (13,null,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
htmldb_item.select_list_from_query(15,null,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 18',25) T_ID,
wwv_flow_item.display_and_save(16,null) ENTERED_DTS,
null ENTERED_BY_NM,
wwv_flow_item.display_and_save(17,null) UPDATED_DTS,
null UPDATED_BY_NM,
htmldb_item.md5_checksum(null,null,null,null,null) cks
from dual) x
UPDATE PROCESS:
declare
l_cks wwv_flow_global.vc_arr2;
j pls_integer := 1;
val1 varchar2(100);
val2 varchar2(100);
begin
-- Get original MD5 checksum
select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
BULK COLLECT INTO l_cks
from ECGEXT where ECGEXDT_ID = :P65_ECGEXDT_ID;
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
for i in 1..l_cks.count
loop
if htmldb_application.g_fcs(i) != l_cks(i) then
-- val1 := htmldb_application.g_fcs(i);
-- val2 := l_cks(i);
-- insert into test2 (val_1,val_2) values (val1,val2);
rollback;
raise_application_error(
-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
return;
end if;
end loop;
-- update ECGRSTST
for i in 1..htmldb_application.g_f12.count
loop
if htmldb_application.g_f12(i) is not null then
update ECGEXT
set
ECGEXDT_ID = :P65_ECGEXDT_ID,
LEAD_CD = replace(htmldb_application.g_f13(i),'%'||'null%',NULL),
T_ID = replace(htmldb_application.g_f15(i),'%'||'null%',NULL)
where ECGEXT_ID = htmldb_application.g_f12(i);
else
if htmldb_application.g_f13(i) is not null then
insert into ECGEXT
(ECGEXT_ID ,
ECGEXDT_ID,
LEAD_CD,
T_ID)
values
(ECGEXT_SEQ.nextval,
:P65_ECGEXDT_ID,
replace(htmldb_application.g_f13(i),'%'||'null%',NULL),
replace(htmldb_application.g_f15(i),'%'||'null%',NULL));
end if;
end if;
end loop;
end;
please help me in solving this.The same code its good for one tabular form and for the other it giving the checksum error.
Thanks in advance
phaniHi patrick,
Thanks for the reply i am getting the checksum error even if i used my primary key in the select statement of the MD5 checksum.
My primary key in the second tabular form is
htmldb_item.hidden(12,ECGEXT_ID) ECGEXT_ID
so i changed the process to:
for i in 1..htmldb_application.g_f12.count
loop
if htmldb_application.g_f12(i) is not null
then
select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
BULK COLLECT INTO l_cks
from ECGEXT where ECGEXT_ID = htmldb_application.g_f12(i);
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
if htmldb_application.g_fcs(i) != l_cks(i) then
-- val1 := htmldb_application.g_fcs(i);
-- val2 := l_cks(i);
-- insert into test2 (val_1,val_2) values (val1,val2);
rollback;
raise_application_error(
-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
end if;
end if;
end loop;
It's not possible to use BULK COLLECT to get the MD5 checksum of all >>>rows. Because the index positions in the MD5 array and the >>>apex_application.g_fxx array index will probably not match, especially if you >>>don't order or if you are on a second page.How come the first tabular form is running i used the bulk collect in the first tabular form
HERE IS THE CODE FOR THE FIRST TABULAR FORM:
-- Get original MD5 checksum
select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
BULK COLLECT INTO
l_cks
from ECGEXST where ECGEXDT_ID = :P65_ECGEXDT_ID;
-- Compare the original checksum, l_cks,
-- with submitted checksum, htmldb_application.g_fcs.
-- If they are different, raise an error.
for i in 1..l_cks.count
loop
if htmldb_application.g_fcs(i) != l_cks(i) then
rollback;
raise_application_error(
-20001,
'Current version of data in database has changed '||
'since user initiated update process.');
-- return;
end if;
end loop;
Maybe you are looking for
-
Satellite Pro A200-1MI - Need driver for PCI memory controller
I have the Toshiba Satellite Pro A200-1MI(PSAE7E) having a problem with PCI Memory Controller on my notebook. When I go to Device Manager it shows question mark in the tab Other Devices and when I go there, it's yellow ?(question mark) and !(exlamati
-
With clause join using ISO JOIN Sysntax
Hi, One of my query looks like: SELECT t2.col1, t3.col1, t3.col2 FROM t2 JOIN t2 ON t2.col1 = t3.col1; Now I need to use a WITH clause to hold some values which has to be used to filter the results from the original query.
-
Unable to connect to home network (WPA2-PSK, works on Windows)
Hello! I am having problems with connecting to my home network (on a FRITZ!Box Fon WLAN 7360 SL) which uses WPA2-PSK encryption. Windows works normally so I don't think that it is a router issue. In addition, I managed to connect to my Universities W
-
No "ANGLE" Option for Linear Gradients in Motion 4!
Referring to the help section for Motion 4, there should be an "angle" tool for linear gradients, but there's not! I have a linear gradient that runs top to bottom and I want it to run left to right. Is there any other way to do this without having t
-
Hi, I'm running OS X server 2.2.2 on OS X 10.8.5 on a Mac Pro (Mid 2012). Everything works well, except for the FTP service. It's very unreliable. It fails to transfer almost all of the time with more than one or two files (so the only way to get