Re: Help with supressing messages

From: JEFF CHAMBLEE <chamblej_at_author.gsfc.nasa.gov>
Date: 4 Oct 1993 13:43 -0500
Message-ID: <4OCT199313432074_at_author.gsfc.nasa.gov>


In article <28hslf$hnl_at_charm.magnus.acs.ohio-state.edu>, apatanka_at_magnus.acs.ohio-state.edu (Atul Patankar) writes...
>Hello,
>
>I am a novice user of Oracle. We are using Oracle SQL Forms 3.0, Oracle
>Database 7.0 on a SUN platform. I have a question about supressing an
>acknowledgement message. The scenario is something like this -
>
>message('Working');
>synchronize ...
>message(' ');
>synchronize ...
>
>The second message generates a request for an ack (Hit enter to continue). I
>would like to know if this request for an ack can be supressed. All help is
>greatly appreciated. Please reply by email as I donot have access to USENET.
>
>Thank you,
>Atul.
>apatanka_at_magnus.acs.ohio-state.edu
>

The following messages are reprinted without permission:

Path: skates.gsfc.nasa.gov!ames!olivea!spool.mu.edu!howland.reston.ans.net!news.ans.net!malgudi.oar.net!uoft02.utoledo.edu!ocvaxa.cc.oberlin.edu!ocvaxc.cc.oberlin.edu!bamon Newsgroups: comp.databases.oracle
Subject: Re: Simulating 'Working...' in Forms 3.00 Message-ID: <1993Jul29.160729.1_at_ocvaxc.cc.oberlin.edu> From: bamon_at_ocvaxc.cc.oberlin.edu
Date: 29 Jul 93 16:07:29 EDT
References: <29JUL199320584486_at_vms1.iscs.nus.sg> Distribution: world
Organization: Oberlin College
Nntp-Posting-Host: ocvaxc.cc.oberlin.edu Lines: 24

In article <29JUL199320584486_at_vms1.iscs.nus.sg>, lowmeili_at_vms1.iscs.nus.sg (eArThLy ImPrEsSiOnS...only OnE EaRtH to InHeRiT) writes:
> Hi ...
>
> Has anyone ever done this before ? I am trying to simulate the Oracle
> message 'Working ...' in my form but is not facing much
> success.

In Forms 3.0 you can create a pop-up page which is just one line high and 80 characters wide, or whatever is just big enough to overlay your message line. Then you can write to this non-database field and display whatever you like, whenever you like, without the required acknowledgement.  We use this to display progress messages in lengthy triggers.

In Forms 4.0, the message syntax changes, and

    message('Working...',NO_ACKNOWLEDGE);

will do what you want.


Jennifer R. Amon            PHONE: (216) 775-6987   
Houck Computing Center        FAX: (216) 775-8573    
Oberlin College          
Oberlin, OH 44074        INTERNET: bamon_at_ocvaxc.cc.oberlin.edu
_____________________________________________________________________
 

Path: skates.gsfc.nasa.gov!ames!agate!howland.reston.ans.net!wupost!trinews.sbc.com!nuntius From: David R. Thrash <dthrash_at_sbctri.sbc.com> Newsgroups: comp.databases.oracle
Subject: Re: Simulating 'Working...' in Forms 3.00 Date: 30 Jul 1993 01:43:38 GMT
Organization: Southwestern Bell - Technology Resources Lines: 31
Distribution: world
Message-ID: <239uca$obk_at_sbctri.sbc.com> References: <29JUL199320584486_at_vms1.iscs.nus.sg> NNTP-Posting-Host: mac-thrash.sbc.com
X-UserAgent: Nuntius v1.1

In article <29JUL199320584486_at_vms1.iscs.nus.sg> eArThLy ImPrEsSiOnS...only OnE EaRtH to InHeRiT, lowmeili_at_vms1.iscs.nus.sg writes:
>Has anyone ever done this before ? I am trying to simulate the Oracle
>message 'Working ...' in my form but is not facing much
>success.
>

I finally solved this problem. What I did was create a pop-up form which "lived" on top
of the normal status line. This new form had no base table and only one input field. The key-startup trigger set the field to "Working..." and then did an "EXIT". So when
I'd write some time consuming trigger I'd call this form first and then do my work.
It worked like a champ.

Something like this:

begin

  call("working", NO_HIDE);

  for i in 1...1000000 loop

     select "Hello World" 
        into :global.dummy
        from dual;

  end loop;

end;

D. Thrash  

Path: skates.gsfc.nasa.gov!ames!elroy.jpl.nasa.gov!usc!cs.utexas.edu!not-for-mail From: p0070621_at_oxford-brookes.ac.uk (Tommy Wareing) Newsgroups: comp.databases.oracle
Subject: Re: Simulating 'Working...' in Forms 3.00 Date: 5 Aug 1993 00:43:09 -0500
Organization: Oxford Brookes University
Lines: 25
Sender: daemon_at_cs.utexas.edu
Message-ID: <CB8tLv.3DK_at_uk.ac.brookes> References: <29JUL199320584486_at_vms1.iscs.nus.sg> <1993Jul29.160729.1_at_ocvaxc.cc.oberlin.edu> NNTP-Posting-Host: cs.utexas.edu

bamon_at_ocvaxc.cc.oberlin.edu wrote:
> In Forms 3.0 you can create a pop-up page which is just one line high
> and 80 characters wide, or whatever is just big enough to overlay your
> message line. Then you can write to this non-database field and display
> whatever you like, whenever you like, without the required acknowledge-
> ment. We use this to display progress messages in lengthy triggers.
We've tried this one, and there's a catch (wouldn't you know it?). If there's a 'real' message produced (eg. some error arises), then you don't get to see the it, since it's now hidden behind your pop-up window. And your users wonder why it's taking a long time...

> In Forms 4.0, the message syntax changes, and
The next version. Always the next version...

> message('Working...',NO_ACKNOWLEDGE);
 

> will do what you want.

Goodie.

--
 _________________________   __________________________________________
/  Tommy Wareing          \ /  I've been looking for an original sin,  \
|  p0070621_at_brookes.ac.uk  X   One with a twist and a bit of a spin    |
\  0865-483389            / \     -- Pandora's Box, Jim Steinman       /
 ~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroups: comp.databases.oracle
Path: skates.gsfc.nasa.gov!ames!elroy.jpl.nasa.gov!decwrl!csus.edu!netcom.com!sjs
From: sjs_at_netcom.com (Stephen Schow)
Subject: Re: Simulating 'Working...' in Forms 3.00
Message-ID: <sjsCAxqyM.5J3_at_netcom.com>
Organization: NETCOM On-line Communication Services (408 241-9760 guest)
X-Newsreader: TIN [version 1.1 PL8]
References: <29JUL199320584486_at_vms1.iscs.nus.sg>
Date: Thu, 29 Jul 1993 16:54:21 GMT
Lines: 43

eArThLy ImPrEsSiOnS...only OnE EaRtH to InHeRiT (lowmeili_at_vms1.iscs.nus.sg) wrote:
: Hi ... 
 
: Has anyone ever done this before ? I am trying to  simulate the Oracle 
: message 'Working ...' in my form but is not facing much
: success.
 
: What I did was to do the follwing :
 
: BEGIN
:    MESSAGE ('Working...');
:    SYNCHRONIZE;
:    <trigger contents>
:    MESSAGE (' '); /* This is to clear the working msg above */
: END;
 
: But the above doesn't work without Forms asking me to acknowledge
: the first message first. I want to be able to do this without 
: the prompting messag ie. display the working msg and then clear it
: off. Is it possible ?
 
: In fact, I dun need the second MESSAGE as long as I can clear the first one.
: (but I dun know how !!!! .. so I resorted to the above technique)
: If you've done such things before, I would appreciate it very much if you 
: could share your knowledge with me...
 
: That's all .. thanxs ...

I tried this once to no avail.  Seems to me that at a fairly recent Oracle
conference I heard someone ask that question and Oracle says that that little
confirmation prompt that Oracle puts up is unavoidable.  Someone in the 
audience suggested writing a user_exit that was platform specific and would
display the message in the appropriate place on the screen.  Another thing
that you can do is create your own message line on the bottom line of the 
form.  It would be a non-database control block with a display only field that
you can put messages into as you will.

Good luck
-- 
------------------------------------------------------------------
Steve Schow    | But you don't have to use the claw, if you
sjs_at_netcom.com | pick the pear with the big paw paw......
(415) 354-4908 | Have I given you a clue......?
               |                       - Baloo the Bear
------------------------------------------------------------------



I provide my full WORKING.INP & WORKINGTEST.INP below.  WORKINGTEST 
shows how to call WORKING.

===================   Cut here.    WORKING.INP  =======================

/* Copyright (c) 1988 by the Oracle Corporation */


SQL*FORMS_VERSION = 03.00.16.12.00
TERSE = ON

DEFINE FORM

   COMMENT = <<<
   This form overcomes a major shortcoming with the message() command.
   THE PROBLEM:
   SQL*Forms 3.0 will not allow you to write "Working..." on the message line
    when you have a trigger that takes a long time (e.g. a host() program).
    SQL*Forms has no CLEAR_MESSAGE command and forces you to acknowledge a
    message if you try to overwrite one message with another instead of
    clearing the message line.
   This work-around uses a pop-up page which is just one line.
   TO INVOKE:
      :global.working_text := 'your text here';
      call('working', NO_HIDE);
   >>>

   NAME = WORKING
   TITLE = WORKING

   DEFINE TRIGGER

      NAME = KEY-STARTUP
      TRIGGER_TYPE = V3
      TEXT = <<<
      /*
      The calling form needs to assign a string to GLOBAL.WORKING_TEXT
      :GLOBAL.WORKING_TEXT := 'Press EXIT to continue';
      */
      :b.message := :global.working_text;
      synchronize;
      EXIT_FORM;
      >>>

   ENDDEFINE TRIGGER

   DEFINE BLOCK

      NAME = B
      ROWS_DISPLAYED = 1
      BASE_LINE = 1
      LINES_PER_ROW = 0
      ARRAY_SIZE = 0

      DEFINE FIELD

         COMMENT = <<<
         This field will overwrite the message line at the bottom of the screen.
         >>>

         NAME = message
         DATATYPE = CHAR
         LENGTH = 80
         DISPLAY_LENGTH = 80
         QUERY_LENGTH = 80
         BASE_TABLE = OFF
         PAGE = 2
         LINE = 1
         COLUMN = 1
         UPDATE = OFF
         QUERY = OFF

      ENDDEFINE FIELD

   ENDDEFINE BLOCK


   DEFINE SCREEN

      DEFINE PAGE

         PAGE = 1
         PAGE_XS = 0
         PAGE_YS = 0
         PAGE_PX0 = 0
         PAGE_PY0 = 0
         PAGE_PXS = 0
         PAGE_PYS = 0
         PAGE_SX0 = 0
         PAGE_SY0 = 0
         MODE = TEXT
         LINE = 3
         BOILER = <<<
             Customized message line
         >>>

      ENDDEFINE PAGE

      DEFINE PAGE

         PAGE = 2
         POPUP = ON
         DISSOLVE = ON
         PAGE_XS = 0
         PAGE_YS = 0
         PAGE_PX0 = 1
         PAGE_PY0 = 1
         PAGE_PXS = 80
         PAGE_PYS = 1
         PAGE_SX0 = 1
         PAGE_SY0 = 23

      ENDDEFINE PAGE

   ENDDEFINE SCREEN

ENDDEFINE FORM

===================   Cut here.    WORKINGTEST.INP  =======================

/* Copyright (c) 1988 by the Oracle Corporation */


SQL*FORMS_VERSION = 03.00.16.12.00
TERSE = ON

DEFINE FORM

   NAME = workingtest
   TITLE = workingtest
   DEFAULT_MENU_APPLICATION = DEFAULT

   DEFINE TRIGGER

      NAME = KEY-NXTBLK
      TRIGGER_TYPE = V3
      TEXT = <<<
      begin
         :global.working_text := 'Working...';
         call('working',NO_HIDE);
         /* Waste some time */
         for i in 1..1000 loop
            select 'hello, world' into :global.dummy from dual;
         end loop;
      /* The following will flash on the screen and disappear
         :global.working_text := 'Done.';
         call('working',NO_HIDE);
      */
         message('Done.');
      end;
      >>>

   ENDDEFINE TRIGGER

   DEFINE BLOCK

      NAME = test
      ROWS_DISPLAYED = 1
      BASE_LINE = 1
      LINES_PER_ROW = 0
      ARRAY_SIZE = 0

      DEFINE FIELD

         NAME = x
         DATATYPE = CHAR
         LENGTH = 10
         DISPLAY_LENGTH = 10
         QUERY_LENGTH = 10
         PAGE = 1
         LINE = 3
         COLUMN = 1

      ENDDEFINE FIELD

   ENDDEFINE BLOCK


   DEFINE SCREEN

      DEFINE PAGE

         PAGE = 1
         PAGE_XS = 0
         PAGE_YS = 0
         PAGE_PX0 = 0
         PAGE_PY0 = 0
         PAGE_PXS = 0
         PAGE_PYS = 0
         PAGE_SX0 = 0
         PAGE_SY0 = 0
         MODE = TEXT
         BOILER = <<<
         Press Page-Down
         >>>

      ENDDEFINE PAGE

   ENDDEFINE SCREEN

ENDDEFINE FORM
Received on Mon Oct 04 1993 - 19:43:02 CET

Original text of this message