RE: logic puzzle / 4gl report challenge
Posted in 1996
Oh, well, I'll give it a try: database mydatabase main define p_num integer declare c1 cursor for select unique int_col from some_table order by 1 start report rpt1 to "rpt1.out" foreach c1 into p_num output to report rpt1 ( p_num ) end foreach finish report rpt1 end main {----------} report rpt1 ( current_number ) define current_number, current_last_number, first_number, last_number integer, format first page header let first_number="" let last_number="" on every row let current_last_number=last_number case when last_number=current_number-1 when first_number is null print current_number using "<<<<<<" ; let first_number=current_number when first_number=last_number print ", ", current_number using "<<<<<<"; let first_number=current_number otherwise print " - ", last_number using "<<<<<<<", ", ", current_number using "<<<<<<"; let first_number=current_number end case let last_number=current_number on last row if current_last_number=current_number-1 then print " - ", current_number using "<<<<<<<<" end if end report OOOPS, it can't be this easy :-) (be warned this has been written on the mailer and has not been tested at all, so don't blame me if this is just rubbish...) marco ____________________________________________________________________________ rem radioterapia, which I immeritately manage, seldom agrees with what I say marco greco (Catania, Italy) Work: marcog@ctonline.it rem radioterapia 39 95 447828 fax 446558 (was mar.greco@agora.stm.it) Achea 39 95 503117