Skip to Main Content

Oracle Forms

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

SYSTEM VARIABLE - SYSTEM.CURSOR_RECORD, SYSTEM.CURRENT_BLOCK.

VijethaNov 20 2013 — edited Nov 27 2013

Hi All;

I am unable to understand coding of the form which is already created by someone else long time ago, now have to make some changes in it.

There are many data-blocks in this form, like ENQACMHDR, ENQACMDTL, ENQACEHDR, BUTTON, DRGCHK, etc.

and there are many push button created for ENTER_QUERY, EXECUTE_QUERY, NEXT, PREVIOUS, FIRST, LAST, SAVE, CLEAR, EXIT, AMEND, etc.

When i run the form , i can enter all the data & save, the cursor allows me to enter in the 'ENQACMDTL' block,

But the problem is when i click on 'ENTER_QUERY' BUTTON, i must be able to query in the 'ENQACMDTL' block, but i am unable to even click on the field items of 'ENQACMDTL' block.

It is being blocked somewhere & i am not able to find out. Mainly i am not able to understand the following what exactly is this POST-BLOCK Trigger doing, I don't know what SYSTEM.CURRENT_BLOCK & SYSTEM.CURSOR_RECORD is doing?

FORM:TRIGGER : POST-BLOCK:

:GLOBAL.BLOCK := :SYSTEM.CURRENT_BLOCK;

The below trigger is for 'ENQACMDTL' data-block.

WHEN-NEW-RECORD-INSTANCE:

:ENQACMDTL.ITEM := :SYSTEM.CURSOR_RECORD;

The below trigger is for 'ENTER_QUERY' PUSH BUTTON.

PUSH BUTTON: ENTER_QUERY: WHEN BUTTON PRESSED :

DECLARE

  IT_ID1 ITEM;

  IT_ID2 ITEM;

  IT_ID3 ITEM;

  IT_ID4 ITEM;

  IT_ID5 ITEM;

  IT_ID6 ITEM;

  IT_ID7 ITEM;

  SENDTOE ITEM;

  SENDTOM ITEM;

BEGIN

  IT_ID1 := FIND_ITEM('BUTTON.EN_QUERY');

  IT_ID2 := FIND_ITEM('BUTTON.CA_QUERY');

  IT_ID3 := FIND_ITEM('BUTTON.EX_QUERY');

  IT_ID4 := FIND_ITEM('BUTTON.CLEAR');

  IT_ID5 := FIND_ITEM('BUTTON.SAVE');

  IT_ID6 := FIND_ITEM('BUTTON.PENDING');

  IT_ID7 := FIND_ITEM('BUTTON.AMEND');

  SENDTOE := FIND_ITEM('ENQACMHDR.SENDTOENGG');

  SENDTOM := FIND_ITEM('ENQACEHDR.SENDTOMKTG');

  SET_ITEM_PROPERTY(IT_ID3,ENABLED,PROPERTY_TRUE);

 

  if :system.mode<>'ENTER-QUERY' THEN

   set_item_property (it_id1,label,'CANCEL QUERY');

     SET_ITEM_PROPERTY(IT_ID4,ENABLED,PROPERTY_FALSE);

     SET_ITEM_PROPERTY(IT_ID5,ENABLED,PROPERTY_FALSE); 

     SET_ITEM_PROPERTY(IT_ID6,ENABLED,PROPERTY_TRUE);

   SET_ITEM_PROPERTY(IT_ID7,ENABLED,PROPERTY_FALSE);

   --  GO_BLOCK('ENQACMHDR');

  --  if :PARAMETER.ENQPAR ='MKTG' then

-- GO_BLOCK('ENQACMHDR');

-- end if;

   --CLEAR_BLOCK(NO_VALIDATE);

   ENTER_QUERY;

  set_item_property (it_id1,label,'ENTER QUERY');

  SET_ITEM_PROPERTY(IT_ID3,ENABLED,PROPERTY_FALSE);

  SET_ITEM_PROPERTY(IT_ID4,ENABLED,PROPERTY_TRUE);

  SET_ITEM_PROPERTY(IT_ID5,ENABLED,PROPERTY_TRUE);

     SET_ITEM_PROPERTY(IT_ID6,ENABLED,PROPERTY_FALSE); 

     SET_ITEM_PROPERTY(IT_ID7,ENABLED,PROPERTY_TRUE);

    

      IF :PARAMETER.ENQPAR ='ENGG' THEN

  GO_ITEM('ENQACMHDR.ENQNO');

  SET_ITEM_PROPERTY(IT_ID7,ENABLED,PROPERTY_FALSE);

  END IF;

  IF :ENQACMHDR.LOCKM = 1 THEN

   SET_ITEM_PROPERTY(SENDTOE,ENABLED,PROPERTY_FALSE);

  ELSE

   SET_ITEM_PROPERTY(SENDTOE,ENABLED,PROPERTY_TRUE);

  END IF;

  IF :ENQACEHDR.LOCKE = 1 THEN

   SET_ITEM_PROPERTY(SENDTOM,ENABLED,PROPERTY_FALSE);

  ELSE

   SET_ITEM_PROPERTY(SENDTOM,ENABLED,PROPERTY_TRUE);

  END IF;

  ELSE

  EXIT_FORM;

  END IF;

-- set_item_property('button.save',enabled,property_true);

END;

What must be changed in order to unblock the ENQACMDTL' block and allow it to be queried??

Help me please, Thank You.

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

Oracle Forms 6i.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 25 2013
Added on Nov 20 2013
18 comments
15,487 views