[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Re: [sqr-users] RE: On-break (lowest level identical while level above breaks)
Au contraire, mon ami (sorry for the poor french spelling).
While the construct does look good and should be working, and I
agree it's probably a problem in the break procedures... The begin-select
is most necessary. On-break is tied to begin-select for some of it's
logic (and won't even compile outside of a begin-select in some versions).
Having a one row select (from dual for most oracle users) allows the
on-break logic to be used for arrays or from reading a flat file. The
only caveat being that your array or file needs to already be sorted in
the order you need.
On Fri, 23 Jan 2004, White, Denise wrote:
> Hi Fred,
>
> I'm not really sure how to help, as the way you have constructed the
> breaks appears to be correct, and your assumptions as to how they should
> work are also correct. If you have a break at level 2 (afd2 to afd3)
> without any break at level 3, it should still perform the break logic.
> First it would do the logic associated with your level 3 break, and then
> the logic associated with your level 2 break (i.e. it 'clears' all
> lower-level breaks ['lower-level' being those with a higher level #]).
> Could it be something in the break procedures themselves that is making
> it appear that there has been no break? I've never seen on-break used
> when retrieving data from an array, only with data returned from a
> select, but I assume from what you are saying that it is working in
> general with just this one problem.
>
> BTW, I was wondering as I read the beginning of your message how you
> could possibly be selecting data from an array with a begin-select. I
> am not sure if you abbreviated the logic when you wrote your message,
> but there is really no reason at all for you to have that begin-select
> procedure, as you are not actually selecting anything. You could do
> your array logic within a regular begin-procedure paragraph.
>
> Denise M. White
> Sr. Software Engineer
> Vicor
> --__--__--
>
> Message: 6
> From: "Brandt, Fred" <fred.brandt@cz.nl>
> To: "'sqr-users@sqrug.org'" <sqr-users@sqrug.org>
> Date: Thu, 22 Jan 2004 16:00:36 +0100
> Subject: [sqr-users] On-break (lowest level identical while level above
>breaks)
> Reply-To: sqr-users@sqrug.org
>
> Hi,
>
> System:
> Peoplesoft 7.5 HRM
> Database: MsSQL 7.0
> SQR: 4.3.4
>
> In my code I use ON-BREAK with three levels. The data is in an array and is
> selected by a begin-select. In this select-statement is a WHILE-construction
> to get all the
> data from the array row by row.
> The lowest level (level=3) in the ON-BREAK-statement can be empty (value =
> "").
> I will show a part of the code:
>
> *********************************************************************
> let #idx4 = 0
>
> begin-select loops=1
> 'X'
> WHILE #idx4 <= #ar_rs_total_records
> get $divisie_id_rs $divisie_descr_rs $afdeling_id_rs $afdeling_descr_rs
> $groep_id_rs $groep_descr_rs $emplid_rs $sex_rs #fte_rs #teller_zv_emplid_rs
>
> #freq_rs #noemer_zv_emplid_rs #noemer_zd_emplid_rs #teller_zd_emplid_rs
> from result(#idx4)
> ar_rs_divisie_id ar_rs_divisie_descr ar_rs_afdeling_id
> ar_rs_afdeling_descr ar_rs_groep_id ar_rs_groep_descr ar_rs_Emplid ar_rs_Sex
> ar_rs_fte ar_rs_teller_zv_emplid
> ar_rs_freq_emplid ar_rs_noemer_zv_emplid ar_rs_noemer_zd_emplid
> ar_rs_teller_zd_emplid
>
> let #idx4 = #idx4 + 1
>
> print $divisie_descr_rs () ON-BREAK PRINT=never
> AFTER=DIV_BREAK LEVEL=1 SAVE=$OLD_DIV skiplines=1
> print $afdeling_descr_rs () ON-BREAK PRINT=never BEFORE=set-teller
> AFTER=AFD_BREAK LEVEL=2 SAVE=$OLD_AFD skiplines=1
> print $groep_descr_rs () ON-BREAK PRINT=never
> AFTER=GRP_BREAK LEVEL=3 SAVE=$OLD_GRP skiplines=1
>
> do compute-totals
> END-WHILE
> from PS_ABS_TYPE_TBL
> end-select
>
> ************************************************************************
>
> NB: structure of the data in the array concerning the first 3 fields (i.e.
> the ON-BREAK-fields) :
> divisie_descr_rs afdeling_descr_rs groep_descr
> div1 afd1 grp1
> div1 afd1 grp2
> div1 afd2 "" = <empty>
> div1 afd3 "" = <empty>
> div2 afd4 grp6
> etc.
>
> Result for div1: totals from afd2 and afd3 will be summarized, because there
> is no group-break on $groep_descr_rs.
>
> One possibility (work-around): fill the <empty> values with a value (for
> example '0' and the next empty value '1' and the next empty value '0' etc).
> In that case the BREAK will occur on the group-level (level=3).
> But in the rest of the code I have to make lots of adjustments if I choose
> this work-around.
> What I am looking for is a way to let SQR 'see' that when a break on a
> higher level occurs, it must automatically Break there, even when there is
> no break on a lower level.
> Can anyone help me?
>
> Thanks,
> Fred Brandt
>
> _______________________________________________
> sqr-users mailing list
> sqr-users@sqrug.org
> http://www.sqrug.org/mailman/listinfo/sqr-users
>
-----------------------------------------------------------------------
Donald Mellen | Ray Ontko & Co. - Richmond, IN - http://www.ontko.com/
donm@ontko.com | "In the beginning, there was nothing, which exploded"
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users