Meminta parameter nilai tanggal dan waktu yang terpisah?

9

Saya bekerja dengan Crystal Reports 2016. Sumber data adalah MS SQL Server 2008 R2. Saat ini saya dapat meminta pengguna untuk rentang tanggal untuk laporan saya menggunakan parameter. Saya juga ingin menambahkan prompt untuk rentang waktu. Menggunakan prompt untuk parameter DateTime tidak melakukan apa yang saya inginkan. Rentang tanggal akan memilih jendela hari yang lebih besar, dan rentang waktu akan memilih waktu selama hari laporan akan menampilkan data. Menggunakan prompt parameter DateTime hanya menambah presisi pada awal / akhir hari / waktu laporan dan tidak melakukan apa yang saya inginkan. Kedua prompt akan merujuk ke catatan DateTime yang sama dalam database.

Saya telah mencoba menambahkan parameter yang terpisah, kedua, parameter untuk waktu yang tepat, tetapi itu memiliki hasil yang sama dengan mengubah prompt parameter ke nilai DateTime. Saya akan tegaskan: itu bukan hasil yang saya inginkan.

Sebagai contoh konkret, spesifik, saya ingin menggunakan data yang valid untuk 1 September - 31 Oktober di mana hal yang saya laporkan terjadi antara pukul 14:00 dan 22:00 EST pada setiap atau semua hari itu. Jika saya memiliki pilihan DateTime, saya dapat memilih 1 September, 2 siang dan 31 Oktober, 10 malam. Namun, bukan itu yang saya coba pilih.

Pada dasarnya, pilih data yang terjadi pada hari-hari ini antara pukul 14:00 dan 22:00. Di mana tanggal mulai dan tanggal akhir dapat dipilih; dan waktu mulai dan waktu selesai dapat dipilih.

masukkan deskripsi gambar di sini

Menggunakan SQL parlance, saya pikir saya ingin gabungan antara rentang tanggal dan rentang waktu (satu tengah):

masukkan deskripsi gambar di sini

Contoh yang sama sekali tidak terkait tetapi serupa; Fenomena ini mirip dengan pertemuan di Outlook. Anda dapat (tetapi tidak boleh) membuat pertemuan yang sangat panjang yang dimulai pada 1 hari / waktu, dan berakhir pada hari / waktu lain beberapa hari kemudian, tetapi Anda harus membuat pertemuan berulang untuk mengelola dengan benar jadwal kamar Anda dan Anda. Saya mencari untuk memilih catatan dengan cara yang mirip dengan pertemuan berulang.

Bagaimana saya bisa membuat select expertaturan untuk mendapatkan data yang saya cari? Apakah ada cara lain yang bisa saya lakukan ini? Mungkin subreport?

YetAnotherRandomUser
sumber
1
Mungkin sudah terlambat, karena Q ini sudah berumur seminggu sekarang. Saya akan menulis ulang sebagai input sampel, output yang diperlukan dan upaya terbaik Anda pada solusi (saya tahu sebagai CR dev Anda mengandalkan banyak widget tertanam, yang membuat posting lebih sulit). Namun, saya tidak dapat memvisualisasikan masalah apa yang Anda coba selesaikan secara khusus. Jika Anda mengatakan "Saya mendapatkan 2017-05-12.00: 00: 00Z tapi saya ingin 2017-05-12.23: 59: 59", maka saya pikir banyak orang akan merasa lebih mudah untuk membantu. Semoga berhasil.
shellter
1
Sebuah solusi sederhana mungkin adalah dengan membuat tampilan database dalam MS SQL yang menunjuk ke tabel lain di mana laporan mendapatkan data tetapi katakan itu untuk hanya mendapatkan nilai-nilai di sini [jam] HHadalah antara 14:00 dan 22:00 menggunakan DATEPARTfungsi. Jadi misalnya tanpa menggunakan kolom secara eksplisit SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22dalam tampilan dan kemudian arahkan select expertlaporan untuk mendapatkan data untuk periode tanggal yang dipilih darinya. Cara lain adalah dengan membuat permintaan T-SQL yang sama menjadi CR SQL Command tetapi tampilan SQL mungkin jauh lebih baik.
Pimp Juice
1
Jadi untuk menjadi jelas query SQL Anda mungkin ingin bermain dengan sebagai SQL VIEW atau objek SQL Command CR akan SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22dan Anda bisa menjadi kolom spesifik dengan permintaan dalam tampilan SQL jadi select column1, column2 FROM ~dll, bukan *.
Pimp Juice
1
Contoh saya adalah contoh spesifik. Saya ingin membiarkan pengguna menentukan waktu mulai dan berakhir, itulah sebabnya saya menyebutkan parameter. Saya tidak tahu banyak tentang SQL Views, tapi saya menduga jika saya menempelkan sesuatu seperti itu di suatu tempat, itu ditetapkan secara statis dan pengguna yang menjalankan laporan tidak dapat mengubahnya dengan cepat. Saya akan melihat tentang membuat pertanyaan lebih jelas dalam hal itu.
YetAnotherRandomUser
Oke, itu tidak akan berfungsi jika pengguna memilih rentang waktu. Ini mungkin pekerjaan untuk proc yang tersimpan. Saya tidak punya CR lagi dan sudah setahun atau lebih sejak saya mengacaukannya untuk menguji apa pun, tetapi saya pikir saya bisa membantu dengan solusi level SQL potensial dengan asumsi Anda bisa mendapatkan pengaturan porsi CR dan dikonfigurasi untuk memungkinkan TSQL melakukan pemfilteran, dll. Tidak yakin apakah Anda bisa membuat proc yang tersimpan dan memasukkan parameter waktu mulai dan akhir dan memiliki CR dynamic prompt untuk nilai-nilai itu, dll. tapi saya pikir saya setidaknya akan memberi Anda beberapa ide ... Semoga beruntung bagaimanapun juga.
Pimp Juice