Home — Leistungserfassung — KB0369: Duplizieren von Berichten – Referenzen auf Unterberichte anpassen

KB0369: Duplizieren von Berichten – Referenzen auf Unterberichte anpassen

BESCHREIBUNG

Die meisten Berichte in der TimeSafe Leistungserfassung sind so aufgebaut, dass ein Rahmenbericht existiert, der einen oder mehrere Unterberichte beinhaltet. Wenn ein bestehender Bericht für eine Anpassung dupliziert wird, muss oft auch der Unterbericht dupliziert werden. Damit vom neuen Rahmenbericht der neue Unterbericht aufgerufen wird, muss der neue Rahmenbericht angepasst werden.

LÖSUNG FÜR RAHMENBERICHTE MIT EINEM STATISCHEN UNTERBERICHT

Die Eigenschaft „ReportName“ des Unterbericht-Controls im Rahmenbericht muss im Bericht-Designer im Berichts-Manager angepasst werden. Der Bericht wird aufgrund der Bezeichnung dieser Eigenschaft erstellt.

Beispiel:
Der Unterbericht „B0007_01_ProjektZeitvorgabeEinerGruppe“ wird dupliziert und der Eigenschaft „Referenz“ des duplizierten Berichts wird der Wert „B0007_01_ProjektZeitvorgabeEinerGruppeMitDetails“ zugewiesen. Im Rahmenbericht muss der Eigenschaft „ReportName“ des Rahmenberichts der Wert „B0007_01_ProjektZeitvorgabeEinerGruppeMitDetails“ zugewiesen werden.

LÖSUNG FÜR RAHMENBERICHTE MIT DYNAMISCHEN UNTERBERICHTEN

Es gibt Rahmenberichte, die einen Unterbericht dynamisch aufgrund gewisser Kriterien erzeugen. Dies kann z.B. eine im Berichtfilter gewählte Gruppierung sein. Bei diesen Berichten muss im Rahmenbericht mit Hilfe des Report-Designers der Script-Code für den Aufruf des Unterberichts angepasst werden.

Beispiel aus Bericht „0004 – Zeitleistungen zu einem Projekt“:

// Referenz des Unterberichts abhängig von der selektierten Gruppierung eruieren
// Hier kann manuell ein anderer Unterbericht zugewiesen werden, z.B. "UnterberichtZeitleistungenGruppiertNachDatum001"

switch ((BerichtGruppierung.Konstanten)mReport.Decorator.Filterkriterien[FilterkriteriumArt.BerichtGruppierung].Zahl)
{
  case BerichtGruppierung.Konstanten.Datum:
    mSubReportControl.ReportName = "B0004_01_ZeitleistungenGruppiertNachDatumINDIVIDUELLERUNTERBERICHT";
    break;

  case BerichtGruppierung.Konstanten.Mitarbeiter:
    mSubReportControl.ReportName = "B0004_02_ZeitleistungenGruppiertNachMitarbeiter";
    break;

  case BerichtGruppierung.Konstanten.Projektgruppen:
    mSubReportControl.ReportName = "B0004_03_ZeitleistungenGruppiertNachProjektgruppen";
    break;

  default:
    throw new NotImplementedException(string.Format("Die Gruppierung '{0}' wurde nicht behandelt!", (BerichtGruppierung.Konstanten)mReport.Decorator.Filterkriterien[FilterkriteriumArt.BerichtGruppierung].Zahl));

}