Générateur de rapports - Set datetime paramètre
J'ai un rapport qui contient des paramètres StartDate et EndDate. Je voudrais que le EndDate paramètre est le temps de la partie par défaut à la fin de la journée, lorsqu'il est sélectionné à partir du menu déroulant.
Par exemple, si un utilisateur sélectionne 5/15/2008 à partir de la liste déroulante, la valeur affichée dans la zone doit être '5/15/2008 23:59:59' pas '5/15/2008 12:00:00'
Son assez facile de faire cela en .Net en utilisant le modèle d'événement et d'une ligne de code, mais dans le Générateur de Rapports version 2.0, qu'est ce que je dois faire?
Code que j'ai besoin d'écrire pour ce ou ai-je raté quelques funky expression qui pourrait gérer cela?
Grâce.
AboutDev
- Oh, et la création d'un tableau avec des valeurs de temps et en utilisant ce n'est pas une option! Juste pensé que je le mentionne que 🙂
Vous devez vous connecter pour publier un commentaire.
Il a été un certain temps depuis que je l'ai utilisé SSRS, si patient avec moi. Vous aurez à faire un peu de traduction, mais voici ce que j'ai fait dans le passé.
Lorsque vous définissez votre date de fin de paramètres, de créer un paramètre supplémentaire nommé EndDateEOD, après la date de fin dans la liste de vos paramètres. Faire ce paramètre une valeur cachée, et le dernier moment de la journée, de la même façon que Jeremy calcule.
Ensuite, vous pouvez utiliser @EndDateEOD dans votre requête de rapport où vous avez @date de fin désormais.
Quand StartDate est sélectionné, vous pourriez avoir de la date de fin par défaut sa valeur, de sorte que EndDateEOD sera automatiquement placé à la fin de la date de début.
Je voudrais vous suggérons de définir le paramètre par défaut dans les Paramètres de Rapport de la section. Vous pouvez obtenir ce à partir d'un Rapport > Paramètres de Rapport.
Cela vous permet de définir un non-interrogé par défaut. Là, vous pouvez entrer une expression comme
=DateAdd(Microsoft.VisualBasic.DateInterval.Deuxièmement ,-1,dateadd("d",1,aujourd'Hui))
Qui devrait vous donner une valeur par défaut pour la fin d'aujourd'hui.
Modifier: Vraiment utile que pour une seule valeur par défaut.
Utilisez le paramètre dans un
DATEADD()
expression dans votre jeu de données.Plutôt que
faire quelque chose comme ceci:
Qui va aller de l'avant d'un jour (le
+1
), puis retournez à 3 millisecondes, au dernier instant de la journée enregistrable par un datetime.Vous pouvez faire quelque chose comme ceci:
=CDate(Paramètres!StartDate.Valeur + "23:59:59")
La partie de Paramètres!StartDate.La valeur peut être n'importe quelle date, mais pas la date de fin.La valeur elle-même. Par exemple:
- Aujourd'hui()
- Dernier jour du mois à partir de la date de début:
=CDate(DateSerial(Year(Paramètres!StartDate.Valeur), Le Mois(Paramètres!StartDate.Valeur) + 1, 0)+" 23:59:59")
Espérons que cette aide.