2016-06-01 6 views
0

ich einen Bericht haben mit Parametern und Enddatum beginnen und ist speziell für die Zeichnung zu verstehen, die zwei Arten von Abonnements dienen sollte: 1, One für frühere Geschäfts Woche -> Start Das Datum ist der erste Tag der vorherigen Steuerwoche und das Enddatum ist der letzte Tag der vorherigen Steuerwoche. 2, Eins für vorherigen Tag -> Anfangsdatum ist vorheriger Tag und Enddatum ist auch vorheriger Tag.Abonnement enthält Parameterwerte, die nicht gültig sind

Dataset Datefields: Dies sind die Dataset-Abfrageergebnisse für beide verfügbaren Datumsparameter und Standardwerte. Wenn ich ein Abonnement für den vorherigen Tag erstelle, läuft es nur an diesem Tag ... nach Mitternacht an diesem Tag, beginnen Datum und Enddatum Parameter Werte sind leer und die Subskription scheitert mit einer Statusmeldung "Das Abonnement enthält Parameterwerte, die nicht gültig sind" -Werte . Das Abonnement, das für die vorherige Steuerwoche erstellt wurde, gilt für eine Woche, bis sich die Werte der Anfangs- und Enddaten der vorherigen Steuerwoche ändern.

Antwort

0

Sie verwenden ein Dataset für Standardwerte und Werte für Datumsparameter, was wahrscheinlich nicht der beste Ansatz ist.

Die Art und Weise, wie ich Berichte verarbeitet habe, die Endbenutzer abonnieren sollen, und die Standarddatumswerte variieren je nachdem, ob es sich um eine tägliche, wöchentliche oder monatliche Subskription handelt, muss einen zusätzlichen Parameter enthalten das ist möglich.

Der Parameter, den ich dem Bericht hinzufüge, ist ein I-Punkt (oder Berichtsperiode), und er muss der erste Parameter im Bericht sein oder mindestens vor den Datumsparametern aufgeführt sein. Die einzigen Werte im Dropdown-Menü für diesen Parameter sind Daily, Weekly und Monthly (falls zutreffend). Diese können sein, was auch immer Sie brauchen. Geben Sie diese Werte manuell als Wertoptionen in den Parameter im Bericht ein, da sich diese wahrscheinlich nicht häufig ändern. Je nachdem, was der Endbenutzer beim Erstellen eines Abonnements für diesen Parameter auswählt, ändern sich die Standarddatumswerte. Dies geschieht über einen Ausdruck im Standardwert für die Datumsparameter, der den aus dem Dropdown-Menü Zeitraum ausgewählten Wert auswertet.

Wenn also der Endbenutzer eine tägliche Subskription wünscht, wählt er aus der Dropdown-Liste Zeitraum die Option Täglich, und die Standardwerte für die Start- und Enddatumsparameter ändern sich nur auf den vorherigen Tag. Wenn sie "Wöchentlich" auswählen, ändern sich die Start- und Enddatumsparameter nur in die vorherige Woche usw.

Hier ist ein Beispiel für den Parameter für den Standardwert des Startdatums.

=Switch(Parameters!Period.Value = "Daily" , DateAdd(DateInterval.Day, -1, Today), 
Parameters!Period.Value = "Weekly" , DateAdd(DateInterval.WeekOfYear, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)-1), Today)) , 
Parameters!Period.Value = "Monthly" , DateAdd(DateInterval.Month, -1, DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)-1), Today))) 

Für das Enddatum Parameter ...

=Switch(Parameters!Period.Value = "Daily" , Today, 
Parameters!Period.Value = "Weekly" , DateAdd(DateInterval.Day, -(DatePart(DateInterval.Weekday, Today, 0, 0)), Today) , 
Parameters!Period.Value = "Monthly" , DateAdd(DateInterval.Day, -(DatePart(DateInterval.Day, Today, 0, 0)), Today)) 

Warnung !! Wenn Sie den Wert für den Zeitraum entweder im Berichts-Designer (Vorschau) oder online ändern, werden die Datumswerte nicht automatisch vor Ihren Augen geändert. Es wird jedoch beim Erstellen (und damit beim Ausführen) eines Abonnements verwendet. Ich habe nie darüber nachgedacht, warum das so ist. Ich habe andere, weniger schmerzhafte Dinge, um meine Zeit zu füllen.

Probieren Sie es aus.

Verwandte Themen