newbies1512
asked on
oracle form error
hi,
a really big problem happen to my form,
its working fine untill when i try to re-run back the form i recieve the error as below
Compiling ON-POPULATE-DETAILS trigger on OFFERING data block...
Compilation error on ON-POPULATE-DETAILS trigger on OFFERING data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored
Compiling ON-POPULATE-DETAILS trigger on COURSE data block...
Compilation error on ON-POPULATE-DETAILS trigger on COURSE data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored
Compilation errors have occurred.
-------------------------- --
below is my offering datablock detail
-- Begin default relation program section
--
BEGIN
IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN
RETURN;
END IF;
--
-- Begin ATTENDANCE detail program section
--
IF ( (:OFFERING.OFFERING_ID is not null) ) THEN
rel_id := Find_Relation('OFFERING.OF FERING_ATT ENDANCE');
Query_Master_Details(rel_i d, 'ATTENDANCE');
END IF;
--
-- End ATTENDANCE detail program section
--
IF ( :System.cursor_item <> startitm ) THEN
Go_Item(startitm);
Check_Package_Failure;
END IF;
END;
--
-- End default relation program section
--
-------------------------- ---------- ---------- -
and below is course datablock
-----------------------
--
-- Begin default relation declare section
--
DECLARE
recstat VARCHAR2(20) := :System.record_status;
startitm VARCHAR2(61) := :System.cursor_item;
rel_id Relation;
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN
RETURN;
END IF;
--
-- Begin AUTH detail program section
--
IF ( (:COURSE.COURSE_ID is not null) ) THEN
rel_id := Find_Relation('COURSE.COUR SE_AUTH');
Query_Master_Details(rel_i d, 'AUTH');
END IF;
--
-- End AUTH detail program section
--
IF ( :System.cursor_item <> startitm ) THEN
Go_Item(startitm);
Check_Package_Failure;
END IF;
END;
--
-- End default relation program section
--
please help me solve it . really need urgent reply
a really big problem happen to my form,
its working fine untill when i try to re-run back the form i recieve the error as below
Compiling ON-POPULATE-DETAILS trigger on OFFERING data block...
Compilation error on ON-POPULATE-DETAILS trigger on OFFERING data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored
Compiling ON-POPULATE-DETAILS trigger on COURSE data block...
Compilation error on ON-POPULATE-DETAILS trigger on COURSE data block:
PL/SQL ERROR 201 at line 23, column 5
identifier 'QUERY_MASTER_DETAILS' must be declared
PL/SQL ERROR 0 at line 23, column 5
Statement ignored
PL/SQL ERROR 201 at line 31, column 6
identifier 'CHECK_PACKAGE_FAILURE' must be declared
PL/SQL ERROR 0 at line 31, column 6
Statement ignored
Compilation errors have occurred.
--------------------------
below is my offering datablock detail
-- Begin default relation program section
--
BEGIN
IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN
RETURN;
END IF;
--
-- Begin ATTENDANCE detail program section
--
IF ( (:OFFERING.OFFERING_ID is not null) ) THEN
rel_id := Find_Relation('OFFERING.OF
Query_Master_Details(rel_i
END IF;
--
-- End ATTENDANCE detail program section
--
IF ( :System.cursor_item <> startitm ) THEN
Go_Item(startitm);
Check_Package_Failure;
END IF;
END;
--
-- End default relation program section
--
--------------------------
and below is course datablock
-----------------------
--
-- Begin default relation declare section
--
DECLARE
recstat VARCHAR2(20) := :System.record_status;
startitm VARCHAR2(61) := :System.cursor_item;
rel_id Relation;
--
-- End default relation declare section
--
--
-- Begin default relation program section
--
BEGIN
IF ( recstat = 'NEW' or recstat = 'INSERT' ) THEN
RETURN;
END IF;
--
-- Begin AUTH detail program section
--
IF ( (:COURSE.COURSE_ID is not null) ) THEN
rel_id := Find_Relation('COURSE.COUR
Query_Master_Details(rel_i
END IF;
--
-- End AUTH detail program section
--
IF ( :System.cursor_item <> startitm ) THEN
Go_Item(startitm);
Check_Package_Failure;
END IF;
END;
--
-- End default relation program section
--
please help me solve it . really need urgent reply
ASKER
ok
nevermind
settle already
the dev2k automaticaly delete my trigger and procedure body* .
this file is auto generated when created the form masterdetail.
so i recreate a sample master detail form, and copy this 3 files back to my form.
now running back to normal
regards
nevermind
settle already
the dev2k automaticaly delete my trigger and procedure body* .
this file is auto generated when created the form masterdetail.
so i recreate a sample master detail form, and copy this 3 files back to my form.
now running back to normal
regards
Procedure 'Query_Master_Details(rel_ id, 'AUTH');' is receiving two Actual Prameters 'rel_id' and 'AUTH', if you pass both parameters you're OK, that is variable rel_id gets a value assigned to it in the IF statement ( rel_id := XXXXX )
If rel_id is null, then you must have a default value in your procedure specification ( unsupported parameter ) which is causing causes the error, since Forms' triggers don't support this type of calls.
Workaround:
Create a stored package with:
overloaded procedure specification in the package specification.
a private implementation using default parameters in the package body.
Hope this helps!
If rel_id is null, then you must have a default value in your procedure specification ( unsupported parameter ) which is causing causes the error, since Forms' triggers don't support this type of calls.
Workaround:
Create a stored package with:
overloaded procedure specification in the package specification.
a private implementation using default parameters in the package body.
Hope this helps!
ASKER
ok since i have no other question for the error,
i have another question to replace the above question
i have already build a master-detail form name 'special' by using dev2k.
now i wish to make a 2nd master-detail form that is the read only form for the above ' special'
form.
how do i do that?
i have try out to use duplicate to duplicate the speacial and rename it to 'specialro'
and also duplicate the canvas to 'specialro'
but it come out error when i compile it.
the error are as below;
frm30015-ambiguous item name SITE_ID
lov lov20
form question3
frm-30085:Unable to adjust form for output
i really dont know what to do now.
i have another question to replace the above question
i have already build a master-detail form name 'special' by using dev2k.
now i wish to make a 2nd master-detail form that is the read only form for the above ' special'
form.
how do i do that?
i have try out to use duplicate to duplicate the speacial and rename it to 'specialro'
and also duplicate the canvas to 'specialro'
but it come out error when i compile it.
the error are as below;
frm30015-ambiguous item name SITE_ID
lov lov20
form question3
frm-30085:Unable to adjust form for output
i really dont know what to do now.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
what i want to do is to create a 2nd form for a read only form OF the current form IN THE SAME BLOCK.
for example i want to both form full access form and read only form in the same block and save in the emp.fmb file.
The steps you mention is it creating another emp.fmb file?
for example i want to both form full access form and read only form in the same block and save in the emp.fmb file.
The steps you mention is it creating another emp.fmb file?
It seems that there is a problem with terminology you are using. In Oracle Forms, a "form" = a *.fmb file. That is, one *.fmb file is (contains) exactly one form. This form may contain multiple blocks, and some blocks may allow full access and other blocks may be select-only, but you cannot have two "forms" in one *.fmb file.
So, please clarify what you want. Is it two separate Oracle Forms, or is it one Form with different blocks, one or more of which are full-access, and one or more are read-only? Having one Form with different blocks that access the same table but with different abilities is possible, but this doesn't look to me like good application design.
Are you aware that if your users each use their own database login, that just one full-access form may be all you need? That would reliably limit the read-only users to the read-only access they should have, but allow the full-access users all of the features they need. This may not be the most user-friendly approach, since it would appear to allow read-only users to make changes, then give them an erro when they try to save or exit, but it would be reliable.
So, please clarify what you want. Is it two separate Oracle Forms, or is it one Form with different blocks, one or more of which are full-access, and one or more are read-only? Having one Form with different blocks that access the same table but with different abilities is possible, but this doesn't look to me like good application design.
Are you aware that if your users each use their own database login, that just one full-access form may be all you need? That would reliably limit the read-only users to the read-only access they should have, but allow the full-access users all of the features they need. This may not be the most user-friendly approach, since it would appear to allow read-only users to make changes, then give them an erro when they try to save or exit, but it would be reliable.
ASKER