Hi. Ich habe einen Bericht, bei welchem ich aber bei gewissen Anlässen die Gruppierungsordnung ändern möchte. Ich möchte dafür kein neues Formular anlegen.
Ich möchte z.B. Gruppenkopf 5 mit Gruppenkopf 4 tauschen. Dabei sollen aber die Inhalte in der jeweiligen Ebene gleich bleiben. Es gibt ja den Befehl Me.Grouplevel(x).Controlsource = "xxx"
Wenn ich diesen nutze, ändert sich bei mir aber nichts. Eventuell gehe ich das auch falsch an. Kann jemand helfen?
Hi,
grundsätzlich ist das möglich, zeig doch mal wie und wo du das machst.
Private Sub Report_Open(Cancel As Integer)
'// Wenn ein ANGEBOT gewählt wird:
If Me.OpenArgs = "Angebot" Then
Select Case Forms!frm_Angebotsdruck_Optionen!Formatwahl
Case "normal":
Case "nach Format":
Me.GroupLevel(7).ControlSource = "Format"
Me.GroupLevel(8).ControlSource = "Ausgabe"
End Select
End If
End Sub
Das zweite ist Grouplevel 8. Das Forum baut da einen Smily ein ;D
Wird der Code durchlaufen, hast du ihn mal im Unterbrechungsmodus getestet?
Die Gruppenköpfe 7 und 8 (so viele?!) existieren?
ZitatDabei sollen aber die Inhalte in der jeweiligen Ebene gleich bleiben.
Macht das denn auch Sinn?
Vielleicht beschreibst du den Berichtsaufbau mal ausführlicher oder zeigst einen aussagefähigen Screenshot vom Entwurf?
Hi, es würde Sinn machen, wenn es funktioniert :)
Der Code wird auch ausgeführt, dass hab ich mit MsgBox getestet.
Wenn die Gruppenbereiche Daten anzeigen, so kann man doch nicht beliebig das zu gruppierende Datenfeld ändern, das leuchtet mir irgendwie nicht ein. Ich habe das schonmal eingesetzt, um lediglich die Sortierung zu ändern, der Listenaufbau wurde dadurch nicht berührt.
Beschreibe doch bitte den Aufbau des Berichts noch etwas ausführlicher - oder lade eine Beispiel-DB hoch.
So, habe es selbst hinbekommen. Problem war, dass es in der Struktur noch eine Gruppierung gab, welche ich übersehen hatte. Ich habe dann den kompletten "Baum" VBA technisch abgebildet und konnte somit die Stuktur des Berichts meinen jeweiligen wünschen anpassen:
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 = "Ausgabe"
Me.GroupLevel(9).ControlSource = "Ausgabe"
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.GroupLevel(9).ControlSource = "Ausgabe"
End Select
Das ganze hat den Hintergrund, dass in meinem Anwendungsfall die Berichte für Angebote und Aufträge fast identisch sind. Ich brauche nur je nach Angebot oder Auftrag verschiedene Textblöcke und ab und an auch eine andere Gruppierung. Die Gruppenköpfe und Gruppenfüße habe ich dann einfach von 0-9 durchnummeriert, um nicht durcheinander zu kommen. Je nach Bedarf schalte ich die einzelnen Textblöcke ein. Manche sind dabei grundlegend eingeschaltet, manche richten sich nach gewissen Angaben im Detailsbereich.
z.B.:
Select Case Me.OpenArgs
Case "Angebot":
'//Grundeinstellungen
If Forms!frm_Angebotsdruck_Optionen!Formatwahl = "normal" Then
Me.Gruppenkopf1.Visible = True
Me.Gruppenkopf3.Visible = True
Me.Gruppenkopf4.Visible = True
Me.Gruppenfuß0.Visible = True
End If
If Forms!frm_Angebotsdruck_Optionen!Formatwahl = "nach Format" Then
Me.Gruppenkopf1.Visible = True
Me.Gruppenkopf3.Visible = True
Me.Gruppenkopf6.Visible = True
Me.Gruppenkopf7.Visible = True
Me.Gruppenfuß6.Visible = True
Me.Gruppenfuß0.Visible = True
End If
Case "Auftrag":
'//Grundeinstellungen
Me.Gruppenkopf1.Visible = True
Me.Gruppenkopf2.Visible = True
Me.Gruppenkopf3.Visible = True
Me.Gruppenkopf4.Visible = True
Me.Gruppenfuß4.Visible = True
Me.Gruppenfuß1.Visible = True
End Select
Dadurch kann ich bisher 5 verschiedene Berichte nun durch einen einzigen "SuperBericht" ersetzen. Änderungen z.B. im Seitenkopf brauche ich dann z.B. nur noch einmal statt 5 mal zu tätigen.