none
Access 2010: Berichte: Wertabhängiges Sortieren und Gruppieren

    Frage

  • Salü alle zusammen

    Ich möchte gerne einen Bericht ausgeben, welcher je nach Wert eines Datensatzes Gruppiert ist oder eben nicht gruppiert ist. Dies versuche ich mit dem Ereignis im Detailbereich_Format wie folgt:

    Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
      If Me.fldSortierung.Value=True Then
          Me.GroupLevel(2).ControlSource = "a-artikel-text"
       End If
    End Sub
    


    Leider bekomme ich jedoch die Folgende Fehlermeldung:

    Laufzeitfehler '2192'
    Sie können die Steuerelement-Eigenschaft nicht in der Vorschau oder nach dem Start eines Druckvorgangs festlegen.


    Wo muss ich Me.GroupLevel anwenden, so dass sowohl die Daten bereits geladen sind als auch der Bericht noch formatiert werden kann?

    Vielen lieben Dank für Hinweise

    Dienstag, 4. März 2014 07:52

Alle Antworten

  • Hallo Sabrina,

    Versuch es mal im "Beim Öffnen"-Ereignis des Berichts, da sollte es funktionieren:

    Private Sub Report_Open(Cancel As Integer)
    If Me.fldSortierung.Value=True Then Me.GroupLevel(2).ControlSource = "a-artikel-text"
    End If End Sub


    Viele Grüße


    Dienstag, 4. März 2014 12:00
  • Hallo Powerzone3000

    Vielen lieben Dank für Deine Antwort.

    Das Ereignis Open wird, wenn ich richtig beobachtet habe, beim öffnen des Berichtes einmalig ausgeführt. Im Gegenteil zu Load sind bei Open noch keine Daten verfügbar. Das heisst, im Ereignis Open kann ich nicht feststellen, ob der Datensatz  formatiert werden muss oder nicht.

    Das auf Open folgende Ereignis Load kennt wohl die Daten, ich kann also auf den Datensatz zugreifen, aber auch Load wird nur einmalig ausgeführt. Ich habe also nur die Daten des ersten Datensatz vor mir. Würde ich nun Sortieren oder Grupieren würde das für den gesamten Bericht, also alle Datensätze gültig werden.

    Habe mir mittels einer globalen Variabel die Ereignisnamen sammeln lassen um festzustellen in welcher Reihenfolge diese abgearbeitet werden. Hier mein Ergebnis:

    Open;
    Load;
    Seitenkopf_Format;
    Print;
    Gruppenkopf0_Format;
    Gruppenkopf0_Print;
    Gruppenkopf1_Format(FormatCount:1);
    Gruppenkopf1_Print(PrintCount:1);
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;
    Detailbereich_Format;
    Detailbereich_Print(PrintCount:21;

    Leider habe ich noch immer keine Lösung für mein Problem.

    Wie kann ich im Bericht, in Abhängigkeit der Daten, die Sortierung/Gruppierung ändern?

    Mein Ziel ist es, eine Artikelliste zu drucken, welche in Abhängigkeit des KundenTyp entweder sortiert oder gruppiert ist. Es stehen folgende Felder zur Verfügung: KundeName, KundeTyp sowie ArtikelNr, ArtikelName, ArtikelTyp, ArtikelPreis. Wenn der KundeTyp=1 ist, dann sollen  die Artikel gruppiert werden nach ArtikelTyp und innerhalb der Gruppierung nach Artikelname sortiert. Wenn der KundeTyp=2 ist, dann sollen die Artikel lediglich nach ArtikelNr sortiert werden, ohne Gruppierung.

    Besten Dank für jegliche Hinweise.

    Viele liebe Grüsse

    Mittwoch, 5. März 2014 09:55
  • Hallo Sabrina,

    Hmm... Ich glaube ehrlich gesagt nicht, dass das innerhalb eines Berichts möglich ist.

    Ich glaube, in diesem Fall müsstest du zwei Berichte erstellen: Einmal für KundeTyp=1 und für KundeTyp=2 (bzw. den Bericht nach KundeTyp Filtern).

    Aber vielleicht ist hier ja auch ein Experte unterwegs der mehr weiß ;-)

    Viele Grüße
    Mittwoch, 5. März 2014 10:47
  • Am 05.03.2014 schrieb Sabrina Sanders:

    Wie kann ich im Bericht, in Abhängigkeit der Daten, die Sortierung/Gruppierung ändern?

    Die Daten siehst Du doch schon beim Open, oder nicht?

    Mein Ziel ist es, eine Artikelliste zu drucken, welche in Abhängigkeit des KundenTyp entweder sortiert oder gruppiert ist. Es stehen folgende Felder zur Verfügung: KundeName, KundeTyp sowie ArtikelNr, ArtikelName, ArtikelTyp, ArtikelPreis. Wenn der KundeTyp=1 ist, dann sollen  die Artikel gruppiert werden nach ArtikelTyp und innerhalb der Gruppierung nach Artikelname sortiert. Wenn der KundeTyp=2 ist, dann sollen die Artikel lediglich nach ArtikelNr sortiert werden, ohne Gruppierung.

    Du kannst beim Open die Recordsource anpassen, weshalb sollte man also
    dann die Gruppierung beim Open nicht ändern können? Ich hab es noch
    nicht probiert, IMHO sollte das schon funktionieren. Das könntest Du
    innerhalb der OpenArgs mit übergeben, beim Open fragst Du dann passend
    ab.


    Servus
    Winfried

    Gruppenrichtlinien
    WSUS Package Publisher
    HowTos zum WSUS Package Publisher
    NNTP-Bridge für MS-Foren

    Mittwoch, 5. März 2014 17:12