Hi Victor, A perfectly acceptable solution, I had thought there might have been an indeterminate number of roles, but with only two and hence only two RV's, your solution is far simpler.
My solution varied in that because of the indexing the roles with a Level were grouped, so what it looks for is a change from the previous record signalling the end of that group. While the group was unchanged it would just keep appending the name to the same line, but when a change of role occurred it would start a new line. The best solution to all these things is the one that works for you. Bye Brian -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Victor Warner Sent: Saturday, 3 October 2009 6:24 PM To: [email protected] Subject: Re: [Dataperf] Help with constructing a report Brian, Thank you very much for your reply. I had a number of queries in your response, as I could not work out for each PxFx you put whether I need to put the field for Qualification or Last Name, however, your explanation has inspired me to find a solution as follows: 1. Create index as you indicated: date + qualification + first + last 2. Two-level report sorted on date 3. Two-level header: RV10 containing = " " RV20 containing = " " 4. Report body RV1 containing = If P11F8 = "Lawyer" Then P11F2 Endif [P11F2 = Last Name field, P11F8 = Qualification] RV2 containing = If P11F8="Non-qualified volunteer" Then P11F2 Endif RV10 containing = cat.t[rv10;" "rv1] RV20 containing = cat.t[rv20;" "rv2] 5, Two-level footer Date [printed RV1] some text [printed RV2] This creates exactly what I was looking for (so far!). My understanding of DP is still so limited, I am sure that there is something I have got wrong in this approach (rather than yours). Victor Warner. Brian Hancock wrote: > Sometimes I worry that I should not weigh in about two-level reports because > I have had the need to use one, but that said I would think that you need to > have an index that reflects this the order, ie date + qualification + first > + last > > Create two RV's one to hold the cumulative concatenated result for a > qualification type within the two level , and the other one to preserve the > value of the previous records qualification value, > > If the value of the current and previous records RV's are the same the > append the name, but if they are different append firstly a CR and then the > name eg something like this > In the Two level header > ---Store value in RV1--- > RV1 = "" /* zap it */ > ---Store Value in RV2--- > RV2 = "" /* and zap you too */ > > > In the body > ---Store value in RV1--- > IF PxFx = RV2 THEN /* another same qualification */ > IF length[RV1] = 0 THEN > RV1 = PxFx /*ie first matching record in this group */ > ELSE > RV1 = RV1 " - " PzFX /* appending with a hyphen */ > ENDIF > ELSE > IF length[RV1] = 0 THEN > RV1 = PxFx /*ie first matching record,in this group */ > /* this may be redundant, but its early in the > And I have not had coffee yet > */ > ELSE > RV1 = cat.c[RV1;1;PzFX] /* appending with a a prior CR */ > ENDIF > ENDIF > ---Store Value in RV2--- > RV2 = PxFx /* remember the last qualification for next rec */ > > In the footer print > XXX>Two_Level_Date<XXX XXX>RV1:A60A0<XXX > > > On looking back on this, this is probably much the same as what I do when I > don't use Two-Level report when others do, so perhaps it would be easier to > somehow use a Two Level report inside a Two Level report, but thinking about > that would do my head in. I am very simple; I like a start, a middle and an > end. > > Regards > Brian > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Victor Warner > Sent: Saturday, 3 October 2009 5:16 AM > To: [email protected] > Subject: [Dataperf] Help with constructing a report > > I would be very grateful for some help in constructing a report for > which I have trying in vain for some time in finding a solution. > Apologies for the lengthy explanation which follows: > > 1. Panel which includes the following fields: > > First Name, Last Name, date, type of qualification held > > Typical entries include > > Victor,Warner,13/10/2009,Lawyer > Victor,Warner,09/12/2009,Lawyer > Adam, Smith,13/10/2009,Lawyer > Adam, Smith,09/12/2009,Lawyer > Alison,Jones,13/10/2009, Non-qualified volunteer > Alison,Jones,09/12/2009,Non-qualified volunteer > David,Burden,13/10/2009,Lawyer > David,Burden,09/12/2009,Lawyer > Richard,Anderson,13/10/2009,Non-qualified volunteer > Richard,Anderson,09/12/2009,Non-qualified volunteer > > 2. I wish to create a 2 level report sorted on date as follows: > > [appearing in two-level footer] > > 13/10/2009 Warner - Smith - Burden [One line] > Jones - Anderson [Separate line] > > 09/12/2009 Warner - Smith - Burden [One line] > Jones - Anderson [Separate line] > > Ie instead of > > 13/10/2009 > Warner > Smith > Burden > Jones > Anderson > > > I can put all the names together without putting a hard return between > one using a report variable (eg putting a report variable in the > two-level header containing " ", and putting the report variable with > the same number in the report body, containing etc cat.t[rv1;" "P11F5]. > > However the difficulty I have am having is putting together just the > names for those persons who are lawyers and then separately putting > together those names which are non-qualified volunteers. > > Help with this would be very gratefully received. > > Victor Warner. > > _______________________________________________ > Dataperf mailing list > [email protected] > http://lists.dataperfect.nl/mailman/listinfo/dataperf > > _______________________________________________ > Dataperf mailing list > [email protected] > http://lists.dataperfect.nl/mailman/listinfo/dataperf > > _______________________________________________ Dataperf mailing list [email protected] http://lists.dataperfect.nl/mailman/listinfo/dataperf _______________________________________________ Dataperf mailing list [email protected] http://lists.dataperfect.nl/mailman/listinfo/dataperf
