Frage

Gibt es eine Möglichkeit, den Standardwert für die Zeit Intelligence nach Formel ??

zu ändern

Ich habe ein Armaturenbrett, wo ich von Datum und bis Datum Filter verwenden, um die Werte zwischen dem Benutzer ausgewählten Zeitraum zu berechnen, für die Filter verwende ich die Zeit Intelligence nach Formel , aber die Standardeinstellung, wenn die Benutzer gibt die Seite ist immer das aktuelle Datum auf beiden Filter. (und von heute bis heute Analyse macht keinen Sinn für diese machen)

Was möchte ich an ist wie ein Von-Datum so etwas wie 30 Tage vor dem heutigen Datum, aber nicht zu dem Bericht gezwungen, die Filter empfangen, ich möchte nur die Filter einen Standardwert hat, und lassen Sie dann den Benutzer wählen, was auch immer er will.

Jeder weiß von etwas, das getan werden kann, oder dies kann nicht getan werden?

EDIT:

Throught Forschung auf diesen Link hat mir gezeigt, dass es nicht über normale Wege getan werden kann:

sgrice diese Frage gestellt: Ich liebe den Kalender und die Leichtigkeit der es meinem Würfel verbindet; aber wir haben nie Daten für „Heute“, die das Standarddatum ist. Daher sind unsere Dashboards immer leer, wenn sie zum ersten Mal kommen und unser Kunde hat ein Datum auszuwählen. Gibt es eine Möglichkeit das Standarddatum zu ändern?

Der Autor des Post sagt auf einen Kommentar antworten:

Keine Entschuldigung, aber ich werde geben dies als Feature Vorschlag.

Danke,

Alyson

Es gibt also keine formelle Art und Weise, es zu tun, so ich versuche, dies auf eine andere Weise zu tun. Also versuche ich es in einer mehr undokumentiert und obskure Weise, throught Javascript zu tun. Ich würde Hilfe auf der Suche nach einem Weg zu schätzen wissen, dies zu tun.

War es hilfreich?

Lösung 3

Ich habe es Throught Javascript und JQuery gelöst. Ich habe im Grunde, was der Kalender hat, und reproduzierte es, ich habe erkannt, es die Sichtbarkeit des Kalenders toogled, wenn Sie am Tag angeklickt, und da ich nicht interessiert war, dass ich es entfernt, und ein Verfahren, mit diesem Namen pps_TI_calendar_render genannt drei Parameter übergeben, war einer der ID des Kalenders td, und die beiden anderen war das Datum, das Sie in einem vollständigen Namen ausgewählt haben. Ich habe überprüft, ob es nur zwei Parameter akzeptieren würde, und das Datum in einem einfacheren Format das Ergebnis ist der JavaScript-Aufruf (beachten Sie, dass ich nur die ersten pps Kalender zu ändern):

pps_TI_calendar_render(  $('.pps_calendarToggleDown').first().parent().closest('td').attr('id'),'01/01/2010');

(das Datumsformat Monat / Tag / Jahr) wenn Sie zum Beispiel 14.01.2010 gesetzt wird es den Kalender im Februar setzt erste von 2011. So Watch out.

Hinweis In den ersten Parametern habe ich eine JQuery Auswahl verwendet, um die ID Ich wollte zu bekommen, das geändert werden könnte, aber die Parameter Bedürfnisse die ID der Element pps Anwendungen sein.

Hope, das hilft.

Andere Tipps

Okay, ich gefolgt diesen Thread für eine Weile und so viele Methoden versuchte, dies zu Arbeit zu bekommen, schließlich gehackt ich mich durch fast alle SP2010 und SP2007 JavaScript und fand auf SP2010 folgende Arbeit und ich hatte es funktioniert in SP2007 mit einem anderen bisschen Präfix.

Schritt 1:. Herauszufinden, was der Javascript-ID-Präfix Ihres Kalender Teile

  • Um dies zu tun, starten Sie Ihr Armaturenbrett in IE8 oder IE9 und Hit F12, um die Javascript-Debugger zu starten.
  • Benutzer die Javascript GetElementByTagName ( "TD"), um eine vollständige Liste aller TD-Tags auf der Seite zu erhalten.
  • Suchen Sie nach den Tags, die eine GUID in der ID und dieses Ende mit _Selection und Selection_Toggle haben.
  • Diese werden Ihre Kalenderfilterteile sein. Beachten Sie die Start-Präfix (in SP2007 war es ct_100_ in SP2010 ist pps _)

Schritt 2: fügen Sie den folgenden Javascript zu Ende Ihrer Masterseite, die für die Armaturenbretter (Blick auf Ende des post)

verwendet wird,

Schritt 3: Speichern der Master-Seite und aktualisieren Sie Ihren Browser und das Datum zu gestern ändern sollte.

Ich habe auch dies für ein Armaturenbrett mit zwei Kalendern Filter auf sie erstellt für Datumsbereich Filterung zu ermöglichen, und dies wird das erste Datum bis 11 Tage früher, und den zweiten Termin gestern eingestellt. Irgendwelche Fragen emil.swanepoel@live.co.za

<script type="text/JavaScript">


var isFirstLoad;
var calendarLoaded = false;
var srcID = "ctl00_m_WebPart_293af46d1c5c4320893d47f86614325bSelection";
var strDate = "Tue Aug 2 00:00:00 UTC+0200 2011";
var t;
var dateBackA = 1;
var dateBackB = 10;
testForCalendar();

function testForCalendar()
{
    isFirstLoad = true;
    if(calendarLoaded != true)
        t = setTimeout("waitForIt()", 5);
}

function waitForIt()
{
    var foundControl = -1;
    var t = document.getElementsByTagName("TD");
    var ts = "";
    var subDateFound = false;
    var xPoint = 0;
    for(var x = 0; x < t.length; x++)
    {
        if((t[x].id.indexOf("pps_") == 0) && t[x].id.indexOf("Selection_Toggle") > 0)
        {
            foundControl = x;
            ts = t[x].id.substring(0, t[x].id.indexOf("_Toggle"));
            xPoint = x;
            x = t.length;
        }
    }
    if(foundControl > -1)
    {
        if(isFirstLoad == true)
        {   
            if(t[xPoint].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.innerHTML.indexOf("Start Date:") > -1)
                calendarIntercept(ts, calendarDate(new Date(), dateBackB));
            else 
                calendarIntercept(ts, calendarDate(new Date(), dateBackA));
            waitForItSub(xPoint, ts);
            calendarLoaded = true;
            isFirstLoad = false;
        }
        else
            t = setTimeout("waitForIt()", 5);
    }
    else
        t = setTimeout("waitForIt()", 5);   
}

function waitForItSub(startPoint, firstTag)
{
    var foundControl = -1;
    var t = document.getElementsByTagName("TD");
    var tsub = "";
    var xPointNew = 0;
    for(var x = (startPoint++); x < t.length; x++)
    {
        if(t[x].id.indexOf(firstTag) == -1)
        {
            if((t[x].id.indexOf("pps_") == 0) && t[x].id.indexOf("Selection_Toggle") > 0)
            {
                foundControl = x;
                tsub = t[x].id.substring(0, t[x].id.indexOf("_Toggle"));
                xPointNew = x;
                x = t.length;
            }
        }
    }
    if(foundControl > -1)
    {
        if(isFirstLoad == true)
        {   
            if(t[xPointNew].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.innerHTML.indexOf("Start Date:") > -1)
                calendarIntercept(tsub, calendarDate(new Date(), dateBackB));
            else
                calendarIntercept(tsub, calendarDate(new Date(), dateBackA));
            calendarLoaded = true;
            isFirstLoad = false;
        }
    }
}

function calendarIntercept(inSrcID, inDate)
{
    strDate = (inDate.getMonth()+1) + "/" + inDate.getDate() + "/" + inDate.getFullYear(); 
    pps_TI_calendar_render ( inSrcID, strDate , strDate );
}

function calendarDate(inDate, daysBack)
{
    var returnValue = new Date();
    returnValue.setDate(returnValue.getDate() - daysBack);
    return returnValue;
}

</script>

Sie haben zwei Kalender zu erstellen, und dann eine Karte auf das Startdatum und eine bis zum Enddatum. Dies ist in der dieser Kommentar auf Performance-Point-Blog.

Die Technik ist wie folgt:

  

Um die Arbeit mit einem Start- und Enddatum benötigen Sie 2 Kalender zu erstellen. Dann verknüpfen Sie einen Kalender auf <> und das andere auf <>. Als Formel geben Sie nur Tag: Tag.   In dem Bericht werden Sie einen Satz erstellen namens ‚Daterange‘ oder etwas ähnliches.

WITH 
SET [DateRange] AS
   <<StartDate>>.Item(0) :  <<EndDate>>.Item(0)
SELECT
NON EMPTY 
[DateRange]
ON COLUMNS,
{ [Measures].[Price Total] }
ON ROWS
FROM [TurnoverCube]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top