Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Overflow data to next page.
Message
De
08/08/1997 10:50:00
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire de rapports & Rapports
Divers
Thread ID:
00043581
Message ID:
00043705
Vues:
40
>>>>>I have a report that will fit 10 columns across. Unfortunately, some users may require many more. Is there a way to get columns 1-10 to show on page one, and columns 11-20 on page 2? This report is also a multi-page report, so page 1 and 2 would be the first page of the entire report, 3 and 4 would be the second and so on. Any ideas? Thanks for any feedback.
>>>>>Marcus.
>>>>
>>>>don't think that can be done. solutions we've used include smaller fonts, landscape printing, legal paper (and legal landscape)
>>>
>>>Whenever you want to do anything like that which the report writer doesn't want to do, you have to make a cursor and run the report off that. It'll be something like
>>>SELECT ALL keyfield, 1 AS pagefield, page1field1, page1field2, ..., "" AS page2field1, "" AS page2field2...,memofield FROM yourtable INTO CURSOR tmpreport WHERE yourconditional UNION SELECT ALL keyfield, 2 AS pagefield, "" AS page1field1, "" AS page1field2, ..., page2field1, page2field2,...,memofield FROM yourtable WHERE yourconditional2
>>>for a two page report. Expand as needed for a 4 page report. "Yourconditional2" can include a condition for not printing page 2. Your report will have the controls for 2 (or 4, or whatever) pages all on one page, making a big mess. Each control has a PRINT WHEN pagefield = 1, or whatever page that field is supposed to print on. In order to make all of this work, you probably want your detail band to have a constant height, and your controls to be fixed in height and position (no stretching or floating).
>>
>>That's a way, but bulky one. Another solution might be to have two separate rert forms (e.g. rpt1 for 'main' 10 columns and rpt2 for addl 10). Then you run a loop:
>>lparameter nLines && number of lines on each pages (hopefully, it's fixed number)
>>Local nPointer
>>Select rptcursor
>>go top
>>DO While .T.
>> nPointer=recno()
>> Report Form rpt1 Next nLines to print
>> Go nPointer
>> Report Form rpt2 Next nLines to print
>> if eof()
>> exit
>> endif
>>Enddo
>
>then you also have to report form rpt1 for records in range, rpt 2 for same range. also fields may (probably) not be same for each run.

That's right: it really depends on report specifications, and weird specs will involve weird solutions.
Edward Pikman
Independent Consultant
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform