× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: UIM panels - help & documentation?
  • From: "Simon Coulter" <shc@xxxxxxxxxxxxxxxxx>
  • Date: Sun, 08 Mar 98 11:48:57 +1100

//--- forwarded letter -------------------------------------------------------
> X-Mailer: Forte Agent 1.5/32.451
> Date: Tue, 17 Feb 98 00:46:18 +0000
> From: lgoodbar@tecinfo.com
> To: MIDRANGE-L@midrange.com
> Reply-To: MIDRANGE-L@midrange.com
> Subject: Re: UIM panels - help & documentation?

********* Stuff deleted *******************

> I know that UIM doesn't perform a refresh. My question was (or should
> be) how do I tell UIM to start displaying the list 3 pages down after
> I refresh? The WRKOUTQ/WRKSPLF commands, etc., leave you on the same
> screen when you perform a refresh. I'd like to do the same.
> 
> I'd also like an F11 (change view) type option as well, but I'll grab
> those manuals first!
> 
>  - lg -

Hello lg,

As promised, here is more information on repositioning a UIM list.

Firstly, the list should always be built by the List Exit Program (LEP).  The 
LEP is the only 
code that should mark a list as complete.  This is accomplished by the main 
program using the 
QUISETLA API to indicate the state of the list (incomplete) and name the LEP 
via a UIM 
dialogue variable.  The main program can simply display the panel knowing that 
the UIM will 
see the list is incomplete and therefore pass control to the LEP.  If there are 
entries to be 
added to list the LEP adds a page of entries, if no entries are to be added or 
no more entries 
can be found the LEP marks the list as complete.

Now, how to handle the refresh and reposition.

When the refresh function is indicated by the user the main program must 
determine where the 
list is currently.  Call the QUIRTVLA API to find the handle for the top row of 
the current 
page.  Then call the QUIGETLE API to fetch the values in the UIM variables for 
the top list 
entry.  Save these somewhere.  Delete the list by calling the QUIDLTL API.  
Call the QUISETLA 
API to mark the list as incomplete.  Finally, call the QUIGETLE API to search 
the list for the 
saved entries (use a greater than or equal search).

Now those of you who are paying attention will realise that I have just told 
the UIM to search 
an empty list!  However I marked the list as incomplete and that causes the UIM 
to call the 
LEP and search the entries built by the LEP.  If those entries are searched 
unsuccessfully and 
the list is still incomplete, the UIM again calls the LEP ..... and so on.  
This occurs until 
the search is successful or the list is complete.

Pretty neat, eh?

One caveat.  I cannot remember if you need to call the QUISETLA API to set the 
list display 
position to the entry found by the QUIGETLE API.  I think you do but you can 
experiment with 
it a little.

Finally display the panel by calling the QUIDSPP API.  The UIM takes care of 
the rest.

Regards,
Simon Coulter.

//----------------------------------------------------------
// FlyByNight Software         AS/400 Technical Specialists
// Phone: +61 3 9419 0175      Mobile: +61 3 0411 091 400
// Fax:   +61 3 9419 0175      E-mail: shc@flybynight.com.au
// 
// Windoze should not be open at Warp speed.
 

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.