Eingabeaufforderung für Parameter für Datums- und Uhrzeitangaben?

721
YetAnotherRandomUser

Ich arbeite mit Crystal Reports 2016. Die Datenquelle ist MS SQL Server 2008 R2. Derzeit kann ich den Benutzer mithilfe eines Parameters zur Eingabe eines Datumsbereichs für meinen Bericht auffordern. Ich möchte auch eine Aufforderung für einen Zeitbereich hinzufügen. Die Verwendung einer Eingabeaufforderung für einen DateTime-Parameter führt nicht zu dem, was ich möchte. Der Datumsbereich wird ein größeres Fenster mit Tagen auswählen, und der Zeitbereich bestimmt, zu welchen Zeiten der Bericht die Daten während des Tages anzeigt. Die Verwendung einer DateTime-Parameter-Eingabeaufforderung fügt dem Start- und Endtag / -zeitpunkt des Berichts lediglich Genauigkeit hinzu und führt nicht das aus, was ich möchte. Beide Eingabeaufforderungen beziehen sich auf denselben DateTime-Datensatz in der Datenbank.

Ich habe versucht, für die gerechte Zeit eine separate, zweite Parameteraufforderung hinzuzufügen. Dies hat jedoch das gleiche Ergebnis wie das Ändern der Parameteraufforderung in einen DateTime-Wert. Ich werde es noch einmal wiederholen: das ist nicht mein gewünschtes Ergebnis.

Als konkretes Beispiel möchte ich Daten verwenden, die für den Zeitraum vom 1. September bis 31. Oktober gültig sind, wobei das, worüber ich berichte, an einem oder allen dieser Tage zwischen 14.00 und 22.00 Uhr EST stattgefunden hat. Wenn ich eine DateTime-Auswahl habe, kann ich den 1. September um 14 Uhr und den 31. Oktober um 22 Uhr auswählen. Das versuche ich jedoch nicht zu wählen.

Wählen Sie grundsätzlich die Daten aus, die an diesen Tagen zwischen 14 und 22 Uhr aufgetreten sind. Wo Start- und Enddatum wählbar sind; Startzeit und Endzeit sind wählbar.

Eingabeaufforderung für Parameter für Datums- und Uhrzeitangaben?

Mit SQL-Sprachkenntnissen möchte ich einen inneren Join des Datumsbereichs und des Zeitbereichs (des mittleren Bereichs):

Eingabeaufforderung für Parameter für Datums- und Uhrzeitangaben?

Ein völlig anderes, aber ähnliches Beispiel. Dieses Phänomen ähnelt den Besprechungen in Outlook. Sie könnten (sollten aber nicht) ein wirklich langes Meeting abhalten, das an einem Tag / Uhrzeit beginnt und mehrere Tage später an einem anderen Tag / Uhrzeit endet. Sie sollten jedoch ein wiederkehrendes Meeting abhalten, um Ihren Zeitplan und die Ihrer Räume ordnungsgemäß zu verwalten. Ich suche nach Datensätzen, die einer wiederkehrenden Besprechung ähnlich sind.

Wie kann ich eine select expertRegel erstellen, um die gewünschten Daten zu erhalten? Gibt es eine andere Möglichkeit, dies zu tun? Vielleicht ein Unterbericht?

8
Es kann zu spät sein, da dieses Q jetzt eine Woche alt ist. Ich würde es als Beispieleingaben, benötigte Ausgaben und den besten Lösungsversuch umschreiben (ich weiß, dass CR-Entwickler auf viele eingebettete Widgets angewiesen ist, was die Veröffentlichung schwieriger macht). Aber ich kann mir nicht vorstellen, welches Problem Sie gerade lösen wollen. Wenn Sie sagen "Ich bekomme 2017-05-12.00: 00: 00Z aber ich möchte 2017-05-12.23: 59: 59", dann denke ich, dass es vielen Leuten leichter fallen würde zu helfen. Viel Glück. shellter vor 6 Jahren 1
Eine einfache Lösung ist es, eine Datenbankansicht in MS SQL zu erstellen, die auf die andere Tabelle zeigt, in der der Bericht die Daten abruft. Er soll jedoch nur die Werte abrufen. Die [Stunde] `HH` befindet sich zwischen 14.00 Uhr und 22.00 Uhr DATEPART`-Funktion. Verwenden Sie zum Beispiel SELECT-FROM-Tabelle WHERE DATEPART (hh, [DateField]) zwischen 14 und 22 in der Ansicht, und geben Sie dann den Bericht "select expert" an, um dessen Daten für ausgewählte Datumsperioden abzurufen. Eine andere Möglichkeit wäre, dieselbe T-SQL-Abfrage zu einem CR-SQL-Befehl zu machen, eine SQL-Ansicht kann jedoch wesentlich besser funktionieren. Pimp Juice IT vor 6 Jahren 1
Um zu verdeutlichen, dass die SQL-Abfrage, mit der Sie als SQL VIEW- oder CR-SQL-Befehlsobjekt spielen möchten, "SELECT * FROM Table WHERE DATEPART (hh, [DateField]) zwischen 14 und 22" lautet, können Sie spaltenspezifisch sein Bei der Abfrage in der SQL-Ansicht wählen Sie also `column1, column2 FROM ~` usw. anstelle von `*` aus. Pimp Juice IT vor 6 Jahren 1
Mein Beispiel war ein konkretes Beispiel. Ich möchte, dass der Benutzer die Start- und Endzeiten bestimmt, weshalb ich die Parameter erwähnt habe. Ich weiß nicht viel über SQL Views, aber ich schätze, wenn ich irgendetwas wie das hier einfüge, ist es statisch festgelegt, und der Benutzer, der den Bericht ausführt, kann es nicht sofort ändern. Ich werde sehen, wie die Frage in dieser Hinsicht klarer wird. YetAnotherRandomUser vor 6 Jahren 1
Okay, das würde nicht funktionieren, wenn die Benutzer den Zeitraum auswählen. Dies kann ein Job für eine gespeicherte Prozedur sein. Ich habe keine CR mehr und es ist schon ungefähr ein Jahr her, seit ich mich damit beschäftigt habe, irgendetwas zu testen, aber ich dachte, ich könnte bei einer möglichen SQL-Level-Lösung helfen, vorausgesetzt, Sie könnten den CR-Anteil einrichten und so konfigurieren, dass TSQL das zulässt die Filterung usw. Ich bin nicht sicher, ob Sie eine gespeicherte Prozedur erstellen und Start- und Endzeitparameter übergeben und die dynamische CR-Aufforderung für diese Werte usw. haben könnten, aber ich dachte, ich würde Ihnen zumindest ein paar Ideen geben ... Viel Glück ungeachtet. Pimp Juice IT vor 6 Jahren 0

0 Antworten auf die Frage