Question

Est-il possible de changer la valeur par défaut de la formule Time Intelligence post ??

J'ai un tableau de bord où j'utiliser à partir de la date et aux filtres de date, pour calculer les valeurs entre la période sélectionnée par l'utilisateur, pour les filtres que j'utilise le, mais la valeur par défaut Time Intelligence post Formule lorsque le utilisateur entre la page est toujours la date d'aujourd'hui sur les deux filtres. (et à partir d'aujourd'hui à l'analyse d'aujourd'hui n'a pas de sens pour cela)

Ce que je voudrais à est d'avoir une Date d'être quelque chose comme 30 jours avant la date d'aujourd'hui, mais pas forcé sur le rapport réception des filtres, je veux juste le filtre d'avoir une valeur par défaut, puis laisser l'utilisateur choisir tout il veut.

Tout le monde sait quelque chose qui peut être fait, ou tout simplement ce ne peut pas être fait?

EDIT:

Throught recherche sur ce lien m'a montré qu'il ne peut se faire via normale façons:

sgrice a posé cette question: J'aime le calendrier et la facilité de relier à mon cube; cependant, nous n'avons jamais données pour « Aujourd'hui », qui est la date par défaut. Par conséquent, nos tableaux de bord sont toujours vide quand ils viennent et notre client a pour sélectionner une date. Est-il possible de changer la date par défaut?

L'auteur du message dit sur une réponse de commentaire:

Non désolé, mais je vais saisir cela comme une suggestion fonction.

Merci,

Alyson

Donc il n'y a pas de façon formelle de le faire, je suis tellement essayer de le faire d'une autre manière. Donc, je suis en train de le faire d'une manière plus obscure et sans papier, throught javascript. Je vous serais reconnaissant de l'aide à trouver une façon de le faire.

Était-ce utile?

La solution 3

Je l'ai résolu throught javascript et JQuery. Je Fondamentalement vérifié ce que le calendrier a fait, et reproduit, je l'ai réalisé toogled la visibilité du calendrier lorsque vous avez cliqué sur le jour, et que je n'étais pas intéressé à ce que je l'ai enlevé, et a appelé une méthode avec ce nom pps_TI_calendar_render passant trois paramètres, on était l'id du td calendrier, et les deux autres était la date que vous avez sélectionné un nom complet. J'ai vérifié si elle accepterait seulement deux paramètres, et la date dans un format plus simple le résultat est cet appel javascript (notez que je ne changer le premier calendrier date pps):

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

(ce format de date est mois / jour / année) si vous mettez par exemple 14/01/2010, il placera le calendrier en février 2011. D'abord Alors attention.

NOTE Dans le premier paramètre que j'ai utilisé une sélection JQuery pour obtenir l'identifiant que je voulais, cela pourrait être changé, mais le paramètre doit être l'id de l'élément pps utilise.

Hope this helps.

Autres conseils

D'accord, j'ai suivi ce fil pendant un certain temps et essayé tant de méthodes pour obtenir ce travail, finalement je piraté mon chemin à travers presque tout le SP2010 et SP2007 JavaScript et trouvé ce qui suit pour travailler sur SP2010 et je l'ai eu à travailler en SP2007 avec un préfixe peu différent.

Étape 1:. Savoir ce que le préfixe identifiant Javascript de vos parties civiles sont

  • Pour ce faire, commencez votre tableau de bord IE8 ou IE9 et appuyez sur F12 pour démarrer le Javascript Debugger.
  • utilisateur le Javascript getElementByTagName ( "TD") pour obtenir une liste complète de toutes les balises de TD sur la page.
  • Recherchez les balises qui ont un GUID dans l'id et qui se terminent par _Selection et Selection_Toggle.
  • Ceux-ci seront vos parties de filtre de calendrier. Notez que le préfixe de départ (en SP2007 il a été ct_100_ en SP2010 il est pps _)

Étape 2: ajouter les éléments suivants Javascript à la fin de votre page maître qui est utilisé pour les Dashboards (voir fin du post)

Étape 3: enregistrer la page principale et actualisez votre navigateur et la date devrait changer hier.

J'ai créé cela pour un tableau de bord avec deux filtres de calendrier sur elle pour permettre le filtrage de la plage de dates et ce tournerai la première date à 11 jours plus tôt et la deuxième date hier. Questions 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>

Vous devez créer deux calendriers, puis la carte un à la date de début et une à la date de fin. Ceci est décrit dans ce commentaire sur le blog de Performance point.

La technique est la suivante:

  

Pour travailler avec une date de début et de fin, vous devez créer 2 calendriers. Ensuite, vous liez un calendrier pour <> et l'autre à <>. Comme la formule que vous entrez juste jour: Jour.   Dans le rapport que vous devrez créer un ensemble appelé « DateRange » ou quelque chose de similaire.

WITH 
SET [DateRange] AS
   <<StartDate>>.Item(0) :  <<EndDate>>.Item(0)
SELECT
NON EMPTY 
[DateRange]
ON COLUMNS,
{ [Measures].[Price Total] }
ON ROWS
FROM [TurnoverCube]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top