Home — Leistungserfassung — KB0612: Rechnungsdeckblatt: Spesen summiert pro Spesenart ausgeben

KB0612: Rechnungsdeckblatt: Spesen summiert pro Spesenart ausgeben

BESCHREIBUNG

Auf den Rechnungsdeckblättern (Berichtsnummer 2000) können die Spesenleistungen sehr einfach im Detail oder nur als Summe ausgegeben werden.

In diesem Artikel wird beschrieben, wie die Spesen summiert nach Spesenart ausgegeben werden können.

LÖSUNG

  1. Original-Unterbericht «0005.04» duplizieren, einen aussagekräftigen Titel definieren und unter „Ansicht >> Erweitert“ die Referenz anpassen auf «B0005_04_SpesenSummiertProSpesenartAufRechnung».
  2. Auf diesem Bericht die Sektionen „GruppenKopfSpaltenÜberschriften“ und  „GruppenFussSpaltenüberschriften“ ausblenden (Visible: False)
  3. Auf dem Deckblatt „SpesenSummiertK“ ausblenden (Visible: False) und „SpesenDetailsK“ einblenden (Visible: True)
  4. Auf dem Deckblatt in der Gruppe SepsenDetailsK in den Eigenschaften des Unterberichts den ReportName ändern auf den Referenznamen «B0005_04_SpesenSummiertProSpesenartAufRechnung»
  5. Den Script-Code des Deckblattes anpassen für die Datenaufbereitung des Berichts:
    1. Bereich löschen: mUnterberichtSpesen = mReport.Decorator.ErzeugeUnterbericht(mSubReportSpesenDetailliert);
          if (mUnterberichtSpesen != null)
          { […] }
    2. An der Stelle folgenden Code einfügen:
 mUnterberichtSpesen = mReport.Decorator.ErzeugeUnterbericht(mSubReportSpesenDetailliert);
    if (mUnterberichtSpesen != null)
    {
        // Einträge einlesen
        //***IList<TExpenseService> lSpeseneinträge = lRechnungsdaten.Speseneinträge;
        
        // Filtern (mit Linq)
        //lSpeseneinträge = (from lEintrag in lSpeseneinträge where lEintrag.DecAmountInvoiced > 0 select lEintrag).ToList<TExpenseService>();
        
        // Sortieren (mit Linq)
        //***lSpeseneinträge = (from lEintrag in lSpeseneinträge orderby lEintrag.Datum select lEintrag).ToList<TExpenseService>();
        
        
        IList<ILeistung> lLeistungen = lRechnungsdaten.LiefereLeistungen(Leistungsart.Spesen);
        
        // Einträge gruppieren und summieren
        IList<LeistungGruppiert> lLeistungenGruppiertSummiert = lRechnungsdaten.GruppiereUndSummiere(lLeistungen, LeistungGruppiert.GruppiertUndSummiertNach.Art);
        
        // Sortieren nach Spesenart (mit Linq)
        lLeistungenGruppiertSummiert = (from lEintrag in lLeistungenGruppiertSummiert orderby lEintrag.Art select lEintrag).ToList<LeistungGruppiert>();
        
        
        // Subreport ausblenden falls keine Daten
        mSubReportSpesenDetailliert.Visible = (lLeistungenGruppiertSummiert.Count > 0);
        
        // Daten trotzdem setzen
        //***mUnterberichtSpesen.SetzeDatenquelle<TExpenseService>(lSpeseneinträge);
        mUnterberichtSpesen.SetzeDatenquelle<LeistungGruppiert>(lLeistungenGruppiertSummiert);
        mUnterberichtSpesen.Decorator.SetzeControlText("GruppenKopfSpaltenüberschriften", "mLabelTitel", lRechnungsdaten.SpesenLabel);
    }

Danach sollten auf dem Rechnungsdeckblatt die Spesen pro Spesenart summiert werden.

Die Breite und Position der Spalten kann auf dem in Schritt 1 duplizierten Unterbericht «0005.04» angepasst werden.