Link to home
Start Free TrialLog in
Avatar of newbies1512
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.OFFERING_ATTENDANCE');  
    Query_Master_Details(rel_id, '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.COURSE_AUTH');  
    Query_Master_Details(rel_id, '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
Avatar of newbies1512
newbies1512

ASKER

oh, i'm uising dev2000
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
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!
 
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.

ASKER CERTIFIED SOLUTION
Avatar of Mark Geerlings
Mark Geerlings
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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?
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.