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