Editing record items in a multi-record block - 1 record at a time.
Hello,
I have the following scenario: Currently in my multi-record block, to edit an item of a record, the user has to double click on the record to enable the 'save changes' button. However, I want to turn the navigation to all other records turned off. The only way the user should be able to edit other records is save changes first, then again double click on the desired record to re-enable the 'save changes' button (at this time navigation to all other records should be turned off). ie., the user should be able to edit 1 record at a time (At any given time, I won't be having many records in the block which the user may have to modify).
How can this be achieved?
Thanks,
Chiru
That is pretty odd requirement, but this might work:
When the user double-clicks the record, enable the Save button, and set a value in any column of the record to its current value. This will cause Forms to set the record status to CHANGED, and will not permit navigation away from the record until the When-validate-record trigger runs successfully.
In the Save button, start a non-repeating timer to run maybe 20 milliseconds, then issue a Validate(Record_Scope); command. Check form_success then commit_form.
In the when-validate-record trigger: Do any record validation that may be necessary, and Raise Form_Trigger_Failure if anything is wrong. Then check for the existence of your Save button's timer. If it does NOT exist, issue a message like: "You must Save the changes first" and Raise Form_Trigger_Failure; If the timer exists, do not raise the error.
Similar Messages
-
How to calculate total in multi-row block
How can I calculate and display the total amount in a multi-row
block that records are not yet save into database?
nullKanekan (guest) wrote:
: How can I calculate and display the total amount in a multi-
row
: block that records are not yet save into database?
Hi,
I worked with similar type of requirement. If you are
working with Forms5.0 there is a new property of formula/summary
in property palette of text item. In the same block or in
control block create non database item( It's non base table item
in forms4.5). In it's property palette give the data type as
number and set the source item name and set summary property.(
opetions are max,min,sum etc available). This value will change
when you navigate from the source item( I mean after validation).
I think this is informative.
Nag
null -
Updating a value of a text item in a multi record block based on a change
Hi,
I need to change the value of a text item in a multi record block based on a change to another item's value in the same block.
Suppose there's a text item in a multi record block called dt1 which is of type date, which is changed in a particular record. I want to change the values of the another item in the same multi record block, for all other records by running a loop through all the records in multi record block. I dont want to do it on the press of a button, it should do automatically on change. Help me resolve this issue.Hi,
I need to change the value of a text item in a multi record block based on a change to another item's value in the same block.
Suppose there's a text item in a multi record block called dt1 which is of type date, which is changed in a particular record. I want to change the values of the another item in the same multi record block, for all other records by running a loop through all the records in multi record block. I dont want to do it on the press of a button, it should do automatically on change. Help me resolve this issue. -
About populating a non-database item in a multi-records block
Hi, all
I have a problem about populating a non-database item in a
multi-records block. This block is set to database block with a
controlled item which needs to be populated after query. so I
create a post-query trigger, but my problem is when the records
listed in this block are less than 10 ( the record number is set
to 10), the trigger fires no problem. but when the retrieved
records are greater than 10, the error message is 'post query
trigger raised unhandled exception ora 01403'. anyone can help me
fix this problem?
Thanks in advance
DianaDiana,
When you have an unbound item in a block and want to fetch
some data into it you need to write a post-query trigger.What
you have done is right.But it seems that u are getting a No data
found error.I am sure about how u r populating data into that
field.If u have written a select statement to fetch the data in
post-query trigger, kindly handle an exception and find out the
problem.Having a look at ur code(pos-query) would be much more
helpful for giving a better solution.Try this a let me know.
Thanks
Vinod. -
Validation item in a multi-record
Hi!
I have a multi-record block and I want to avoid duplicated items from the user on it (these record aren´t saved yet, I want to validate them before commit).
Anyone knows how I can validate them ? I made a procedure but it only works in trigger Key-Next-Item from the block.
Thanks
VeronicaRe: duplicate records in a multi record block
-
How to re-query changed record in multi-row block after update in a called form
Hi,
I have a form that I use to perform searches, which is a multi-record block.
The user can navigate to a record, press a button on call another form which provides
more detail, and allows update of the record.
If the user changes it, and returns to the original search form, how can I re-query the
changed record to update the fields on the search form.
Is there a way other than to re-query the
whole block - a built-in to just update on record if it's changed on the database.
If not, can I use globals to pass back the data (since only a few fields are updatable),
and change the record without effecting its forms status.
Many thanks
BernieBD,
I haven't managed to look at a solution yet, but the block is a large multi-row block,
with an ORDER BY, and since it can return a large number of records, there is a short
delay. I was hoping there was a way of just
re-querying the one record, which was displayed
in the second form for update.
I'll give the query a go, or might try and pass back some globals with the update values.
By the way, DML Return Value is an excellent feature, but only works against Oracle 8.
It basiclly adds the RETURNING clause to any DML statement (see SQL manual), so that if
a trigger changes/adds values you didn't provide, it will return them back to you
so the values in your form are correct.
I use a trigger on the DB to populate history fields (create/update,who/when) and
the PK sequence. Using this feature, those values are returned to the block and displayed.
Regards
Bernie -
Dynamic poplist in a multi-record item.
I have a multiprecord list item. I need to query and update the poplist everytime the user click on thge poplist, so I call a procedure pop_bcg_list() to upadet from the WHEN-NEW-ITEM-INSTANCE trigger,
PROCEDURE rgroup_to_ilist( ilist IN VARCHAR2,
rgroup IN VARCHAR2 )
IS
rows_rg NUMBER := 0;
list_index NUMBER := 0;
ivalue NUMBER;
BEGIN
rows_rg := get_group_row_count( rgroup );
clear_list( ilist );
FOR index_rg in 1..rows_rg LOOP
ivalue := get_group_char_cell( rgroup || '.C1', index_rg );
list_index := list_index + 1;
add_list_element(ilist, list_index, ivalue, ivalue );
END LOOP;
END rgroup_to_ilist;
PROCEDURE pop_bcg_list
IS
query_string varchar2(500) := null;
rg_id recordgroup;
current_ilist VARCHAR2(80) := :SYSTEM.Cursor_Item;
BEGIN
query_string := 'select to_char(bcg_group) C1, bcg_group C2 from loc_bcg_group ' ||
' where version = ''' || :control_block.set_version ||'''';
rg_id := create_group_from_query( 'RG_BCG_GROUP', query_string );
if populate_group( rg_id ) = 0
then
rgroup_to_ilist( current_ilist, 'RG_BCG_GROUP' );
end if;
delete_group(rg_id);
END pop_bcg_list;
It works fine on the cursor record, but when I click on the other records, the items in the poplist are duplicated. It keeps duplicating when I click on other records. Apparently clear_list() only clears the poplist in the current record? Is the true? Is there a way around this?
Thanks.
Clayton.I remember coding a dynamic t list in one of my forms some time ago.
My code's something like this:
l_group_id := Create_Group_From_Query(l_rg_name, l_query);
l_status := Populate_Group(l_group_id);
IF l_status = 0
THEN -- No Error. Record Group has been Populated.
clear_list('CONTROL.list1');
POPULATE_LIST('CONTROL.list1', l_group_id);
:CONTROL.list1 := Get_List_Element_Value('CONTROL.list1', 1);
END IF; -- IF l_status = 0
DELETE_GROUP(l_rg_name);
Why arent u using populate_list builtin. -
Tab navigation between multiple record items
Hey guys...
How can I navigate between item 1, record 1, to item 2, record 1... then back to item 1, record 2... then to item 2, record 2 etc.?
Then after the last record in item 2, to item 3?
Does this make sense? It's easy to navigate between items and blocks w/o multiple records using the KEY-ITEM-NEXT and GO_ITEM, BLOCK etc. but I'm having problems tabbing back and forth between the appropriate records in the item/block.
Edited by: Mark Folden on Nov 6, 2008 9:22 AMCraig, I'm trying to understand how this solves my problem? Help me out here...
I understand the defaults and have my items arranged as close to the flow as I can get in the object navigator. Unfortunately this doesn't help navigate back and forth between Items (in the same Block) based on the "record".
Maybe this will help explain it better: I have two Items in the same data block (first item is "select_questions", second item is "enter_answer") Each Item displays 3 records. Basically the user has to select and then answer three questions. When they select the first record ("question") from Item one, I want the "tab" to take them to the first record ("answer") in next Item. After the User enters his/her answer and again hits the "Tab", I want to go back to the first Item, second record so they can select their next question. Then to 2nd Item, 2nd record etc.
I'm OK maneuvering between items and blocks w/o this "multiple record" factor. I hope this makes sense?
Thanks.... Mark -
How to display records into a non table base block..
Hi,
Can anybody help me how to display records into a non table base block....
Find below is my coding but it only display the last record in the first line
in the block.
PROCEDURE CREATE_CARTON_QUESTION IS
CURSOR car_c IS
select /*+ rule */ question_id, question_description
from WHOP.QADB_QUESTIONS
where question_category = 'Carton'
and question_active_flag = 'Y';
v_found VARCHAR2(10);
v_status boolean;
v_error varchar2(150);
v_count number;
car_r car_c%rowtype;
begin
begin
select count(*) into v_count
from WHOP.QADB_QUESTIONS
where question_category = 'Carton'
and question_active_flag = 'Y';
exception
when no_data_found then
v_count := 0;
end;
if v_count > 0 then
for car_r in car_c loop
---populating carton questions
:la_carton.carton_question_id := car_r.question_id;
:la_carton.carton_question_answer := 'N';
:la_carton.carton_error_details := null;
:la_carton.attribute2 := car_r.question_description;
end loop;
end if;
end;
Thanks in advance.
Regards,
JunHi SNatapov,
Thanks for you reply but still I get this error...
FRM-40737 Illegal restricted procedure GO_BLOCK in WHEN-VALIDATE-ITEM trigger.
Please note that I call that program unit in the last field of my control block inside when-validate-item trigger the questions should be display in la_carton block which is my non-base table block.
Find below is the code....
begin
go_block('la_carton');
first_record;
for car_r in car_c loop
---populating carton questions
:la_carton.carton_question_id := car_r.question_id;
:la_carton.carton_question_answer := 'N';
:la_carton.carton_error_details := null;
:la_carton.attribute2 := car_r.question_description;
next_record;
end loop;
end;
Hoping you can help me this problem...
Thanks in advance.
Regards,
Jun -
Highlight row in a multi-row block; disable cursor to go to individual item
We need to highlight the entire row in the multi-row screen for record selection by the user. But, in Oracle Forms, it keeps blinking in one of the items.
Pl. suggest some solution.in the wehn-item_new-instance trigger,
if :poplist = 'specificvalue' then
Set_Item_Instance_Property('textitem', CURRENT_RECORD,
updateable,property_false);
else
Set_Item_Instance_Property('textitem', CURRENT_RECORD,
updateable,property_true);
end if; -
Disadvantage of 'QUERY ALL RECORDS' set to YES in DATA BLOCK
Dear all,
Can any one tell me disadvantage of 'QUERY ALL RECORDS' set to YES in DATA BLOCK. I have made a datablock 'QUERY ALL RECORDS' set to YES becoz of requirement 'restrict duplicate data entry'.For your information
my datablock is multi record.
Than YouWhat if you have 1,000,000 records in your table and you query all records. Ouch!
restrict duplicate data entryThat is standard database functionality: primary or unique key on the table. -
Make Record for folder and multi-selected files
Hi,
'Make Record' item disappeared in MENU for folders not for files.
And it can't make record for multi-selected files.
I can only make Record by one and one.
How to make Records for folder and multi-selected files?
Regards
KitaeProgramatically, only a single document at a time can be made a record :-
makeRecord
public Item makeRecord(long parentId,
long docId,
NamedValue[] attrs,
AttributeRequest[] attributes)
throws FdkException
You could potentially through a custom workflow triggered on UserRequest allow multiple submitted documents to be made records through a custom BPEL process calling Content DB Web Services.
Matt. -
Table from block - complex records
I want to populate a record based upon blocks in my form.
I have a master detail relationship (although it could be master-detail-detail), and I want to populate a record based upon the records held in these tables. The record structure is something like
TYPE detailTab IS RECORD (column1 NUMBER, column2 NUMBER)
TYPE masterTab IS RECORD (columna VARCHAR2, columntab1 detailTab)
I know this isn't syntactically correct, but I wanted to give you an idea of what I want to achieve.
To populate the records, do I need to create some loops that will go through each record in the master, jumping to the detail for each one to populate the detail record? Is there an easier way?
Thanks
Richarduser648759 wrote:
Hi
Table_From_Block Build-in Package is not working in Oracle 10G
Kindly advice..Provide a little more information. Forms version OS version, more information about your problem and question.
--and explain what on earth Table_From_Block* mean's--
Tony
PS: TABLE_FORM_BLOCK is a built-in for internal use, usually auto generated by forms. For a moment I didn't get what that meant, need more coffee.
Edited by: Tony Garabedian on Aug 29, 2008 12:39 PM -
hi
1)
i heard about blocking a record in the DAtaBase.
may i know how to do this...
2)
i am working into plsql developer at backend. my project using front end as .Net and back end as Oracle 10g...
when i am creating SP's at database side, i am giving input and output to Front end peoples...this is the way.
now my problem is.. SP giving correct output at front end.. while deploying my modules at client side, they didnt get result..???
a) front end peoples have checked their code, it was correct.
b) at backend output is coming correctly, and data is valid in database,
But at client side we didnt get output for one particular field (ListItem)..???The question is so vague.
One thing I understand. If you are getting an output on the backend test (pl/sql developer or some other IDE), and you are not getting the output on the front end (.NET in this case), then, obviously there is a difference in the environments.
Your (along with your front-end developers) trick is to find what the difference in the env's is. You can put some debugging in the code to make sure the procedure is even getting called from the front end... Good luck. -
Hi!
i have a little problem like, i want to block certain records in USER1, so that other user should not see those blocked records when they issue SELECT STATEMENT from USER1,USER2 . like example (blocking record 1,2 in user USER1) . USER2,USER3 should see only 3,4 if they issue select statement.
USER1(table name TEMP)
A B
1 cat
2 rat
3 mat
4 hat
USER2 (select * from USER1.TEMP)
A B
3 mat
4 hat
USER3 (select * from USER1.TEMP)
A B
3 mat
4 hat
hope its clear.
thanks
viq.Hi!
I got the solution . i have applied VPD.
thanks
Maybe you are looking for
-
OfficeJet 6500 E709N Series ~ Cannot Print Wirelessly....
TRIED EVERYTHING~ Here it goes: We have a Mac running OSx 10.5.7 and PC with Windows XP, and A Laptop with windows XP. Our Wireless Router is a Lnksis 3-G wireless. I purchased the HPOJ-6500-e709n yesterday and have setting it up all night. Tried t
-
how do I plot xy data between two cursor (a ROI) in another xy plot?
-
Weather App in iTouch now shows temps in Celsius
I restored my iTouch now the weather app shows the temps in Celsius! How do I get it back to fahrenheit? I checked the help topics, for iPods, apple menus, and the discussion groups. I looked in preferences, and anything else that I could think of. I
-
Apple TV, PS3, Time Capsule compatibility
I have heard that to access your movies on iTunes with Apple TV iTunes must be open. But can an Apple TV access the movies on the time capsule hard drive to play them. Also can the PS3 access the movies on the time capsule?
-
DVDSP preset question with batch processing.
I hope someone can help. When I drag my files that I want to batch process, where I can choose the output, for example DVD HD, etc. These presets have different times with them for video, like 120, 190, or even 30. My question is, what is the differe