Richiedere il parametro di valori di data e ora separati?


9

Sto lavorando con Crystal Reports 2016. L'origine dati è MS SQL Server 2008 R2. Sono attualmente in grado di richiedere all'utente un intervallo di date per il mio rapporto utilizzando un parametro. Vorrei anche aggiungere un prompt per un intervallo di tempo. L'uso di un prompt per un parametro DateTime non fa quello che voglio. L'intervallo di date selezionerà una finestra di giorni più ampia e l'intervallo di tempo selezionerà gli orari durante il giorno in cui il rapporto mostrerà i dati. L'uso di un prompt dei parametri DateTime aggiunge semplicemente precisione all'inizio e alla fine del giorno / ora del report e non fa ciò che desidero. Entrambi i prompt faranno riferimento allo stesso record DateTime nel database.

Ho provato ad aggiungere un secondo prompt dei parametri separato per il momento giusto, ma questo ha lo stesso risultato della modifica del prompt dei parametri in un valore DateTime. Lo ripeterò: non è il risultato desiderato.

Come esempio concreto, specifico, vorrei utilizzare dati validi per il periodo dal 1 ° settembre al 31 ottobre in cui la cosa che sto segnalando è avvenuta tra le 14:00 e le 22:00 EST in uno o tutti quei giorni. Se ho una selezione DateTime, posso scegliere 1 settembre, 14:00 e 31 ottobre, 22:00. Tuttavia, non è quello che sto cercando di selezionare.

Fondamentalmente, selezionare i dati che si sono verificati in questi giorni tra le 14:00 e le 22:00. Dove sono selezionabili la data di inizio e di fine; e l'ora di inizio e l'ora di fine sono selezionabili.

inserisci qui la descrizione dell'immagine

Utilizzando SQL parlance, penso che vorrei un join interno dell'intervallo di date e dell'intervallo di tempo (quello centrale):

inserisci qui la descrizione dell'immagine

Un esempio completamente indipendente ma simile; questo fenomeno è simile alle riunioni in Outlook. Potresti (ma non dovresti) organizzare una riunione davvero lunga che inizia 1 giorno / ora e termina in un altro giorno / ora alcuni giorni dopo, ma dovresti organizzare una riunione ricorrente per gestire correttamente il programma della tua stanza. Sto cercando di selezionare i record in modo simile a una riunione ricorrente.

Come posso creare una select expertregola per ottenere i dati che sto cercando? C'è un altro modo in cui posso farlo? Forse un sottoreport?


1
Potrebbe essere troppo tardi, poiché questa Q è vecchia di una settimana. Lo riscriverei come input di esempio, output richiesto e il tuo miglior tentativo di soluzione (so che come sviluppatore CR fai affidamento su molti widget incorporati, il che rende la pubblicazione più difficile). Ma com'è, non riesco a visualizzare qual è il problema che stai cercando di risolvere in modo specifico. Se dici "Sto ricevendo il 12/05/2017: 00: 00Z ma voglio il 12/05/2017: 23: 2017: 59: 59", penso che molte persone troverebbero più facile aiutare. In bocca al lupo.
shellter

1
Una soluzione semplice forse è quella di creare una vista del database in MS SQL che punta all'altra tabella in cui il report ottiene i dati ma gli dice di ottenere solo i valori qui [ora] HHè tra le 14:00 e le 22:00 utilizzando la DATEPARTfunzione. Quindi, ad esempio, senza essere esplicito SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22nella colonna usando nella vista e quindi punta il select expertrapporto per ottenere i dati per i periodi di data selezionati da esso. Un altro modo sarebbe quello di rendere la stessa query T-SQL un comando CR CR, ma una visualizzazione SQL potrebbe funzionare molto meglio.
Pimp Juice IT

1
Quindi, per essere chiari, la query SQL con cui potresti voler giocare come un oggetto SQL VIEW o CR SQL Command potrebbe essere SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22e puoi essere specifico della colonna con la query nella vista SQL, ecc select column1, column2 FROM ~. Invece di *.
Pimp Juice IT

1
Il mio esempio è stato un esempio specifico. Voglio consentire all'utente di determinare i tempi di inizio e fine, motivo per cui ho citato i parametri. Non so molto di SQL Views, ma immagino che se incolgo qualcosa del genere da qualche parte, è impostato staticamente e l'utente che esegue il report non può modificarlo al volo. Vedrò di rendere la domanda più chiara al riguardo.
YetAnotherRandomUser

Va bene, non funzionerebbe se gli utenti scegliessero l'intervallo di tempo. Questo potrebbe essere un lavoro per un proc memorizzato forse. Non ho più CR ed è passato circa un anno da quando ho fatto un casino con esso per testare qualsiasi cosa, ma ho pensato di poter aiutare con una potenziale soluzione di livello SQL supponendo che tu potessi ottenere l'installazione della porzione CR e configurarla per consentire a TSQL di fare il filtro, ecc. Non sono sicuro di poter costruire un proc memorizzato e passare i parametri di inizio e fine e avere un prompt dinamico CR per quei valori, ecc. ma ho pensato che almeno ti avrei dato alcune idee ... Buona fortuna indipendentemente.
Pimp Juice IT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.