Paginanummering op ander rapport

Status
Niet open voor verdere reacties.

terbeest

Gebruiker
Lid geworden
8 sep 2000
Berichten
437
Hallo,

Ik zit met het volgende probleem: Ik heb een rapport dat uit meerdere pagina's bestaat, afhankelijk van de data die erin moet komen.

Nu wil ik graag voor de groepsnamen een inhoudsopgave maken.

Ik kan de groepen wel uit een query halen, maar de paginanummers natuurlijk niet. Ook heb ik gezien dat ik een veld kan aanmaken op rapport1 en die op rapport2 kan weergeven, alleen staat op rapport2 dan alleen de laatst ingevoerde waarde in plaats van een opsomming van allerlei waardes.

Is het mogelijk op een simpele manier dit het zo voor elkaar te krijgen dat ik de groepsnamen en de bijbehorende paginanummers in een soort index te krijgen zodat ik een inhoudsopgave kan maken?
 
Haal aub je e-mail adres uit je handtekening, tenzij je van spam houd natuurlijk
 
Ik heb een hele goede spamblokker...

Maar heb je geen antwoord op mijn vraag?
 
je kunt gebruik maken van eventueel een kop tekst of zo.
 
Hoe bedoel je dat precies????

Ik denk dat het met een koptekst niet echt gaat lukken, maar misschien weet jij iets over kopteksten dat ik niet weet?
 
Euuuhhhh ik bedoelde eigenlijk het RapportKoptekst. Deze komt dan alleen op de eerste pagina van je rapport :cool:

Misschien is het verstandig om er een variabele en een constante bij te programeren.
De constante (C) heeft dan de waarde van het aantal regels ( ik neem aan dat dit nemen van personen zijn) dat je op een pagina wil hebben.
De variabele (V) geeft dan aan welke pagina de groepen komen. Want hier kun je een eenvoudige rekensom op los laten:
Inhoudsopgave = Pagina 1
Groep1 = Pagina 2
Groep2 = Pagina (PaginaGroep1 + AantalGroep2 DIV C)
Groep3 = Pagina (PaginaGroep2 + AantalGroep3 DIV C)
etc, etc

p.s. DIV = een funktie waarbij je een hele deling doet 4 div 3 = 1. 5 div 3 = 1. 6 div 3 = 2.
 
Laatst bewerkt:
Okay, laten we even het volgende aannemen:

Ik heb 200 namen, verdeelt over 20 groepen. Deze verdeling is niet altijd het zelfde, en een query zorgt er voor dat sommige namen niet, en andere wel in een bepaalde groep verschijnen. De groepen zijn hierdoor niet even groot en komen soms helemaal niet voor! Het kan dus ook zijn dat groep 4 soms op pagina 1 en dan weer op pagina 2 of zelfs 3 komt te staan.

Hierdoor verschilt de ruimte op een pagina ook drastisch, een pagina met 10 groepen heeft veel minder regels dan een pagina met 5 groepen omdat de groepskoptekst ook mee gerekend moet worden in de ruimte op de pagina.

Ik denk dat jou oplossing daarvoor te statisch is, of mis ik iets?
 
Laatst bewerkt:
Hoe zo te statisch ???
Je weet toch hoe veel regels je maximaal op een pagina kunt krijgen. Dit is altijd een vast gegeven ongeacht wat je op die pagina zet. Misschien zou je nog wel het aantal groepskoppen mee kunnen nemen in de formule.
Een andere manier zou kunnen zijn dat je gaat rekenen met centimeters op de pagina. Maar dit komt op hetzelfde neer. Dit omdat een A4-tje ALTIJD dezelfde maat heeft. :cool: :D :cool:

Mij lijkt het ook zinvol om twee verschillende rapporten te maken die je achter elkaar uitdraait.
Rapport 1 beval de inhoudsopgave en Rapport 2 de groepsgegevens.
Beide rapporten zijn natuurlijk wel gebaseerd op die ene query.
 
dat snap ik wel, maar ik maak ook gebruik van groepskopteksten... In mijn details gedeelte van het rapport heb ik bijvoorbeeld het volgende staan:

-------
groepsnaam 1
-------

record 1
record 2
record 3
....

-------
groepsnaam 2
-------

record 5
record 6
enz enz

Als ik 5 kleine groepjes heb passen die misschien wel op 1 pagina, maar als ik 5 grote groepen heb komen ze misschien wel op 3 of 4 pagina's. Zoals je ziet nemen de groepsnamen niet 1 regel voor hun rekening maar wel meerdere. Hierdoor is slecht te bepalen hoeveel regels er op 1 pagina gaan inclusief de groepsnamen...

Ik wilde eigenlijk een query (of rapport, maakt me eigenlijk niet zoveel uit) maken waarop alle groepsnamen staan vermeld (dat is niet zo moeilijk opzich, dat kan ik wel uit de query halen) en op welke pagina ze voorkomen (dat is wel moeilijk want dat kan ik niet bepalen). Ik kan wel op het rapport een veld maken dat groepspagina heet en daarin =[page] zetten, maar als ik die dan vervolgens in de query zet dan geeft ie alleen de laatste paginanummer weer en niet een lijstje met alle paginanummers...

Is dat een beetje duidelijk?
 
Geplaatst door terbeest
Ik wilde eigenlijk een query (of rapport, maakt me eigenlijk niet zoveel uit) maken waarop alle groepsnamen staan vermeld (dat is niet zo moeilijk opzich, dat kan ik wel uit de query halen) en op welke pagina ze voorkomen (dat is wel moeilijk want dat kan ik niet bepalen). *1). Ik kan wel op het rapport een veld maken dat groepspagina heet en daarin =[page] zetten, maar als ik die dan vervolgens in de query zet dan geeft ie alleen de laatste paginanummer weer en niet een lijstje met alle paginanummers...

*1)
Dit kun je uitstekend berekenen op de volgende manier:
1) Een A4 heeft een afmeting van 21*29.7 cm en ik ga voor het gemak er van uit dat je landscape gaat afdrukken.
2) Kop en voet teksten staan op 2.5 cm, marges links en rechts staan op 2.85 cm
3) je effectieve ruimte is dus 24 (breedte)*16 (lengte) cm.
4) Je weet welk lettertype je gebruikt en je weet hoe hoog je het betreffende groepsvak hebt gemaakt (bijv 1 cm)
5) je weet hoe hoog elk record is (bijv. 0.5 cm)
6) dus er gaan maximaal 30 records van één groep op één pagina.
16 cm - Groepsvak (1 cm) = 15 cm
15 cm / recordhoofte (0.5 cm) = 30.
7) stel je hebt 5 groepen met de volgende inhoud:
1: 10 records
2: 15 records
3: 8 records
4: 6 records
5: 9 records
8) Het totaal aantal records is dan 48 records
dus je hebt 48 * 0.5 + 5 * 1 = 29 cm ruimte nodig
29 / 16 meer dan 1 en kleiner dan 2 --> dus je hebt twee pagina's nodig.
9) In dit voorbeeld komen groep 1 & 2 op pagina 1
Nu kun je er voor kiezen om elk begin van een groep op een nieuwe pagina te laten beginnen dan staat groep 3,4 & 5 op pagina 2.

Ik hoop dat het nu wel duidelijk is :cool: :D :confused: :D :cool:
 
Dat kan toch nooit:

Niet altijd alle groepen komen voor en het zijn er 100 in totaal, dan moet je voor iedere groep een check maken waar hij terecht komt omdat dit afhankelijk is van de grootte van de vorige groepen.
 
Andere aanpak:

Zet de hele handel in Word. Daarin kun je wel wat je wilt doen. E.e.a. is ook redelijk goed te automatiseren. Is wel wat extra werk, maar dat is eenmalig.

Als je een Word template maakt waarin de inhoudsopgave etc. al goed staat gedefinieerd hoef je alleen nog een manier te vinden om aan een groep een titel kenmerk mee te geven.


Grtz,
 
Zou je misschien een klein voorbeeldje kunnen maken? Ik snap je bedoeling denk ik niet helemaal....
 
Hier een opzetje, het is niet echt recursief, maar het moet het wel doen. Voorbeeld in pascal moet je ff vertalen naar vba

paginanummers: array [1..AantalGroepen] of record
Naam: string
pagina:integer
end {record}

paginaID,paginanummerID,GroepTeller:integer


paginaID=1
paginanummerID=1
GroepTeller = 1

procedure PrintAlles;
while GroepTellen <= AantalGroepen do
PrintGroep (GroepNaam)
GroepTeller = GroepTeller+1
end {while}

procedure PrintGroep (Naam: ........)
x=1
paginanummers[paginanummerID].Naam = Naam
paginanummers[paginanummerID].Pagina = PaginaID
while x <= AantalInGroep do
PrintGroepRegel (Naam [x])
als Naam[x+1] niet meer op pagina past paginaID ophegen met 1 en op volgende pagina beginnen.
x = x+1
end {while}
 
Ik heb samen met een VBA'er het voor elkaar gekregen om de paginanummers en de groepsnamen in een tabel te krijgen. Voor de liefhebbers heb ik een document als attachment bij dit bericht gedaan die precies beschrijft hoe je te werk moet gaan...

Iedereen bedankt voor de antwoorden!
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan