Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Berichtsgruppierung dynamisch ändern

Begonnen von datekk, Juli 30, 2015, 11:52:08

⏪ vorheriges - nächstes ⏩

datekk

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?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hi,

grundsätzlich ist das möglich, zeig doch mal wie und wo du das machst.
Freundliche Grüße
MaggieMay

datekk

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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

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?
Freundliche Grüße
MaggieMay

datekk

Hi, es würde Sinn machen, wenn es funktioniert :)

Der Code wird auch ausgeführt, dass hab ich mit MsgBox getestet.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

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.
Freundliche Grüße
MaggieMay

datekk

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.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps