Använda kombinationsrutor som filter
I instrumentpaneler är det vanligt att kombinationsrutor i en rapport styr värden som visas i en eller flera andra rapporter. De värden som är markerade i kombinationsrutorna överförs till variabler som används som rapportparametrar. Rapporten placeras i en widget på en instrumentpanel. Andra rapporter som har samma parametrar eller som refererar till samma uppslagning länkas automatiskt. Om du exempelvis väljer ett datum från en kombinationsruta uppdateras alla widgetar som innehåller en datumparameter.
Om du använder kombinationsrutor på detta sätt är det viktigt att säkerställa att kombinationsrutorna och värdena synkroniseras. Användare ska exempelvis inte kunna välja ett datum från en kombinationsruta men se värden för ett annat datum i de länkade rapporterna.
Du säkerställer att kombinationsrutor och värden synkroniseras genom att använda variablerna som överförs av kombinationsrutorna som både in- och utdatavariabler.
Det är inte lämpligt att använda kombinationsrutor som filter om du skapar dynamiska rapporter, dvs. rapporter som inte är beroende av en specifik datakälla. Överväg istället att använda xml-variabler.
Exempel
Följande exempel illustrerar hur kombinationsrutor och värden kan bli osynkroniserade:
En rapport visar en kombinationsruta som innehåller en lista med datum. Det förvalda datumet är Alla år.
Kombinationsrutans utdata går till en variabel, men har ingen indatavariabel. Variabeln används som en rapportparameter.
Du placerar rapporten på en instrumentpanel med andra länkade rapporter.
Du väljer 2004 i kombinationsrutan. Därmed överförs 2004 till variabeln.
Länkade widgetar på instrumentpanelen uppdateras automatiskt så att de visar värden för 2004.
Du sparar instrumentpanelen.
Som förval sparas parametrarnas värden i instrumentpanelen. Parameterns aktuella värde (2004) sparas.
Du loggar ut och läser sedan in instrumentpanelen på nytt.
Du väntar dig att 2004 är valt, men istället har kombinationsrutan återgått till Alla år.
Detta beror på att instrumentpanelen inte kunde överföra variabelns/parameterns värde, trots att detta sparades, till kombinationsrutan eftersom det inte finns någon indatavariabel.
Även de andra widgetarnas värden sparas dock i instrumentpanelen och visas när du läser in instrumentpanelen. När du öppnar instrumentpanelen på nytt återgår därmed kombinationsrutan till Alla år medan de andra widgetarna fortfarande visar värden för 2004.
Det finns två lösningar på detta problem. Den ena kan implementeras i Application Studio och den andra i instrumentpanelen. I Application Studio är lösningen att använda samma variabel som både indata- och utdatavariabel.
I en instrumentpanel är det enda alternativet att stänga av parameterlagring och göra kombinationsrutan till "huvudwidget". När instrumentpanelen blir inläst på nytt styr kombinationsrutan de andra widgetarna. Detta förhindrar inte att kombinationsrutan återgår till Alla år, men det säkerställer att värdena i de länkade rapporterna också hänvisar till Alla år.