Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: datekk am Januar 05, 2016, 10:43:49

Titel: Seitenumbruch selbst ermitteln
Beitrag von: datekk am Januar 05, 2016, 10:43:49
Hi. Ich habe hin und wieder das Problem, dass ein Bericht, welcher Gruppiert ist, eine neue Gruppe kurz vor dem Seitenende beginnt. Somit habe ich dann z.B. nur die Gruppenüberschrift dort stehen und auf der nächsten Seite beginnt dann der Detailsbereich.

Ist es nicht irgendwie möglich, dass der Bericht erkennt, dass nur noch wenig Platz zum Seitenende ist, einen Seitenumbruch einbaut und die komplette Gruppe auf der nächsten Seite "abarbeitet"?

LG
datekk
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MzKlMu am Januar 05, 2016, 10:49:16
Hallo,
eine Gruppe hat auch die Eigenschaft "Zusammen halten", gibt es sowohl im Gruppieren Fenster als auch in den Eigenschaften des Bereichs. Damit solltest Du mal etwas rum probieren .
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: datekk am Januar 05, 2016, 11:53:17
Da gibt es wiederum das Problem, dass Access mit der kompletten Gruppe auf der nächsten freien Seite beginnt und die vorherige dann z.B. nur halb oder viertel voll ist. Es handelt sich um Angebote welche direkt an meine Kunden gehen. Das sollte ordentlich und professionell aussehen. Gibt es da andere Möglichkeiten?
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: DF6GL am Januar 05, 2016, 12:01:44
Hallo,

Zitatdass der Bericht erkennt, dass nur noch wenig Platz zum Seitenende ist

Der Bericht kann halt mit "wenig" nix anfangen.....

Schau mal bei lebans.com nach, ob es dort ein  Beispiel zur Vermeidung solcher "Schusterjungen" gibt....


Den Bericht als Word-Dokument auszuführen und mit den Access-Daten zu befüllen wäre eine Alternative.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MaggieMay am Januar 05, 2016, 12:11:43
Hi,
ZitatDa gibt es wiederum das Problem, dass Access mit der kompletten Gruppe auf der nächsten freien Seite beginnt
dazu sollte es die Einstellung "Zusammenhalten mit 1. Datensatz" geben.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: datekk am Januar 05, 2016, 13:55:21
Hallo Maggi,

wo finde ich diese Einstellung?

Problem ist:

Kopfbereich / Überschrift
      Detail
      Detail
      Detail

Kopfbereich / Überschrift
      Seitenende

nächste Seite

      Detail
      Detail
      Detail



Der Kopfbereich müsste mit dem Detailbereich zusammengehalten werden können.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MzKlMu am Januar 05, 2016, 14:13:09
Hallo,
zu finden im Fenster für das Gruppieren, als eine der Möglichkeiten zum Zusammenhalten.
Auf das Gruppierenfenster hate ich weiter oben (in #1) schon hingewiesen.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MaggieMay am Januar 05, 2016, 14:21:42
Hi,

das "Gruppenfenster" gibt es ja leider in der gewohnten Form nicht mehr, statt dessen klickt man auf "mehr" im Gruppeneintrag und dann auf "... zusammenhalten". Dort kann dann die Option "Kopfzeile und ersten Datensatz auf einer Seite zusammenhalten" gewählt werden.

Die Eigenschaft "Zusammenhalten" des Gruppenkopfes sollte dann wohl auf "Nein" eingestellt werden. Auch die Eigenschaft "Bereich wiederholen" könnte für dich von Interesse sein.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: datekk am Januar 06, 2016, 13:53:20
Gibt es dafür auch vba code? Die Berichtsgruppierung wird bei mir durch VBA Code vorgenommen und kann sich je nach Situation auch ändern.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MaggieMay am Januar 06, 2016, 14:10:00
Dann zeig doch bitte mal deinen VBA-Code, damit man ihn ergänzen kann.
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: datekk am Januar 07, 2016, 11:24:40
Das sieht z.B. so aus:

If Me.OpenArgs = "Angebot" Then


    Select Case Forms!frm_Angebotsdruck_Optionen!Formatwahl
   
        Case "normal":
       
        Me.GroupLevel(0).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(1).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(2).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(3).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(4).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(5).ControlSource = "Ausgabe"
        Me.GroupLevel(6).ControlSource = "Ausgabe"
        Me.GroupLevel(7).ControlSource = "Ausgabe"
        Me.GroupLevel(8).ControlSource = "ET"
             
       
        'Me.GroupLevel(9).ControlSource = "Ausgabe"
        Me.OrderBy = "ET"
        Me.OrderByOn = True
               
       
        Case "nach Format":

        Me.GroupLevel(0).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(1).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(2).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(3).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(4).ControlSource = "Format"
        Me.GroupLevel(5).ControlSource = "Format"
        Me.GroupLevel(6).ControlSource = "Format"
        Me.GroupLevel(7).ControlSource = "Format"
        Me.GroupLevel(8).ControlSource = "Ausgabe"
       
       
        Me.OrderBy = "ET"
        Me.OrderByOn = True
       
       
       
       
   End Select
End If

If Me.OpenArgs = "Auftrag" Then

        Me.GroupLevel(0).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(1).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(2).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(3).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(4).ControlSource = "AngebotAuftrag_ID"
        Me.GroupLevel(5).ControlSource = "Ausgabe"
        Me.GroupLevel(6).ControlSource = "Ausgabe"
        Me.GroupLevel(7).ControlSource = "Ausgabe"
        Me.GroupLevel(8).ControlSource = "Ausgabe"

        Me.OrderBy = "ET"
        Me.OrderByOn = True
End If
Titel: Re: Seitenumbruch selbst ermitteln
Beitrag von: MaggieMay am Januar 07, 2016, 13:54:22
hi,

die Access-Hilfe gibt zur Eigenschaft GroupLevel folgende Informationen, inkl. weiterführende Links:
ZitatAnmerkung  Sie können diese Eigenschaft nur in Visual Basic verwenden, um die Eigenschaften SortOrder, GroupOn, GroupInterval, KeepTogether und ControlSource festzulegen. Sie legen diese Eigenschaften in der Open-Ereignisprozedur eines Berichts fest.
Damit sollte sich doch wohl etwas anfangen lassen.