Help with Cursor in QDESIGN

Deskin, Bob Bob.Deskin at Cognos.COM
Wed Mar 5 12:25:18 CST 2008


Here's something I got to work:
 
screen t
temp sk_flag char*1
declare x cursor for select branch, city, branch as sk from branches
where (:sk_flag = 'B') union all select branch, city, city as sk from
branches where (:sk_flag = 'C')
cursor x occurs 10
access request sk_flag orderby sk
field sk_flag
align (,,1) (,,25) (,,50)
cluster occurs with x
field sk size 20
field branch size 20
field city size 20
 
When you do a find on this screen, you're prompted for sk_flag. Entering
a B results in a sequence by Branch and entering C results in a sequence
by City. Note that the temp sk_flag must be declared before the cursor.
It's the cursor statement where the SQL is parsed. For some reason I had
to put the orderby on the access statement. I kept getting syntax errors
when I put it on the declare cursor.
 
I'm sure you could run a DESIGNER procedure from your function keys that
set sk_flag and did a PUSH FIND or something similar.
 
Bob


________________________________

	From: powerh-l-bounces+bob.deskin=cognos.com at lists.sowder.com
[mailto:powerh-l-bounces+bob.deskin=cognos.com at lists.sowder.com] On
Behalf Of Ken Langendock
	Sent: March 5, 2008 11:17 am
	To: powerh-l at lists.sowder.com
	Subject: Help with Cursor in QDESIGN
	
	
	Hello all, I need some help with making my screen work the way I
want it too.
	 
	I have a table (simplified version):
	RECORD Users
	  UserId CHARACTER * 8, &
	  UserName CHARACTER * 40
	 
	On a screen the User can select to view the data in UserId or
UserName order by means of a function key (toggle switch).
	I use a variable (not actual syntax)
	 
	Element T-Option CHARACTER * 1 
	  Values "C" CAPTION "Code" 
	         "D" CAPTION "Description"
	 
	In my screen I created a cursor to handle the orderby but I have
no idea if I can "override" a field size in the statement.
	See below, SortField needs to be the same size (character * 40)
for the Cursor to work but I can't get the syntax to work.
	Maybe this needs a declare clause embedded...not sure
	 
	@if ORACLE
	SQL IN MYDB &
	   DECLARE UsersCursor CURSOR FOR &
	     SELECT Users.UserId, &
	            Users.UserName, &
	            Users.UserName AS SortField  &
	       FROM Users &
	      WHERE 'D' = :T-Option &
	    UNION ALL &
	     SELECT Users.UserId, &
	            Users.UserName, &
	            Users.UserId AS SortField  &
	       FROM Users &
	      WHERE 'C' = :T-Option &
	   ORDER BY SortField
	 
	CURSOR UsersCursor PRIMARY &
	       ALIAS Users &
	       OCCURS 17
	@else
	FILE Users PRIMARY &
	     OCCURS 17
	  ACCESS VIA UserId &
	         SEQUENTIAL
	@endif
	
	Any help would be appreciated.
	Ken
 
     This message may contain privileged and/or confidential information.  If you have received this e-mail in error or are not the intended recipient, you may not use, copy, disseminate or distribute it; do not open any attachments, delete it immediately from your system and notify the sender promptly by e-mail that you have done so.  Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.sowder.com/pipermail/powerh-l/attachments/20080305/6c62513a/attachment.htm


More information about the powerh-l mailing list