[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Re: on-break processing
Hi Fiona,
I understand that this can be very frustrating.
As a rule, I never print anything within the Begin-Select statement. I always
have printing in a separate routine. This gives me more control. It also eases
challenges encountered with the on-break statement. I believe that your biggest
problem here is that you have two things happening at one time, and the routine
is stumbling over a timing issue.
So, try:
begin-procedure Main
begin-select DISTINCT
B.SQS_DESTINATION () on-break level=1 print=never before=Break1-Before
A.ACAD_PROG () on-break level=2 print=never before=Break2-before
A.SQS_APPLICATION_ID
A.EMPLID
C.NAME
B.SQS_ACTION_DATE
B.OPRID
Do PrintRoutine
FROM PS_SQS_APPLIC_REG A,
PS_SQS_APPLIC_TRAC B,
PS_PERSONAL_DATA C
WHERE B.SQS_APPLICATION_ID = A.SQS_APPLICATION_ID
AND C.EMPLID = A.EMPLID
AND B.SQS_APTRACK_ACTION = 'OUT'
AND B.SQS_DESTINATION <> 'STUDENT ADMIN'
AND B.SQS_ACTION_DATE = (SELECT MAX(X.SQS_ACTION_DATE)
FROM PS_SQS_APPLIC_TRAC X
WHERE X.SQS_APPLICATION_ID = A.SQS_APPLICATION_ID)
order by B.SQS_DESTINATION,
A.ACAD_PROG,
A.SQS_APPLICATION_ID,
A.EMPLID
end-select
end-procedure Main
Fiona Darroch <Fiona.Darroch@USQ.EDU.AU> on 01/08/2001 12:28:18 AM
Please respond to sqr-users@list.iex.net
To: SQR-USERS@list.iex.net
cc: (bcc: Rodney Wright/Trcb/Rouse)
Subject: on-break processing
I have the select statement (below) with 2 break levels. What I am trying to
achieve is a report wherein the string: 'Transfer Credits logged out to:
' is printed prior to the value of break level 1 and the string: 'Program:
' is printed prior to the value of break level 2.
begin-procedure Main
begin-select DISTINCT
B.SQS_DESTINATION (,34) on-break level=1 print=change/top-page
before=Break1-Before
A.ACAD_PROG (,20) on-break level=2 before=Break2-before
A.SQS_APPLICATION_ID (+1,2)
A.EMPLID (,22)
C.NAME (,42)
B.SQS_ACTION_DATE (,62)
B.OPRID (,72)
FROM PS_SQS_APPLIC_REG A,
PS_SQS_APPLIC_TRAC B,
PS_PERSONAL_DATA C
WHERE B.SQS_APPLICATION_ID = A.SQS_APPLICATION_ID
AND C.EMPLID = A.EMPLID
AND B.SQS_APTRACK_ACTION = 'OUT'
AND B.SQS_DESTINATION <> 'STUDENT ADMIN'
AND B.SQS_ACTION_DATE =
(SELECT MAX(X.SQS_ACTION_DATE)
FROM PS_SQS_APPLIC_TRAC X
WHERE X.SQS_APPLICATION_ID = A.SQS_APPLICATION_ID)
order by B.SQS_DESTINATION, A.ACAD_PROG, A.SQS_APPLICATION_ID, A.EMPLID
end-select
end-procedure Main
begin-procedure Break1-Before
new-page
Print 'Transfer Credits logged out to: ' (,1)
end-procedure
begin-procedure Break2-Before
Print 'Program: ' (+1,1) !need to print DESCRIPTION after course - put in
select
end-procedure
I thought this would be a normal business type usage of this statement.
However, the output I get is:
Transfer Credits logged out to:
Program: ADEE COMMERCE
EX113 0100192 Exchange,Student 05-JAN-01 PS
Program: BBUS
EX115 0100202 Plan,Change 05-JAN-01 PS
EX15 0100192 Exchange,Student 08-JAN-01 PS
EX16 0100204 Fees,Cancel 08-JAN-01 PS
Program: DPHD
VV 0100193 Doctor,Study 02-JAN-01 PS
The problem is that 'COMMERCE ' is the level 1 variable b.SQS_DESTINATION
and it prints out on the same line as the level 2 variable and its string
viz. 'Program: ADEE'
I have tried heaps of things such as putting a minus 1 in the print
position, i.e.
B.SQS_DESTINATION (-1,34) on-break level=1 print=change/top-page
before=Break1-Before
but that actually makes the whole report go awry.
I have also tried concatenating the string and variable values for each
level and doing the break on those concatenated values, but that doesn't
give the desired output either.
Do I have totally the wrong impression of what this on-break feature is for?
Thanks
Fiona
Fiona Darroch
SA Team Member
IBIS
46 312628
JPEG File Interchange