Підказка про параметри окремих значень дати та часу?


9

Я працюю з Crystal Reports 2016. Джерелом даних є MS SQL Server 2008 R2. Наразі я можу запропонувати користувачеві вказати діапазон дат для мого звіту за допомогою параметра. Я також хотів би додати підказку на часовий діапазон. Використання підказки для параметра DateTime не робить те, що я хочу. Діапазон дат буде вибирати більше вікно днів, а часовий діапазон визначатиме, у який час протягом дня звіт відображатиме дані. Використання запиту параметра DateTime просто додає точності до початку та кінця дня / часу звіту і не робить те, що я хочу. Обидва підказки будуть посилатися на один і той же запис DateTime в базі даних.

Я спробував додати окремий, другий, параметр підказки за той самий час, але це має такий же результат, як зміна запиту параметра на значення DateTime. Я ще раз зазначу: це не мій бажаний результат.

В якості конкретного, конкретного, прикладу, я хотів би використовувати дані, які дійсні для 1 вересня - 31 жовтня, коли річ, про яку я повідомляю, сталася між 14:00 та 22:00 EST у будь-який чи всі ці дні. Якщо у мене є вибір DateTime, я можу вибрати 1 вересня, 14:00 та 31 жовтня 22 вечора. Однак це не те, що я намагаюся вибрати.

В основному виберіть дані, які мали місце в ці дні між 14:00 та 22:00. Якщо дата початку та дата закінчення вибираються; і час початку і час закінчення вибираються.

введіть тут опис зображення

Використовуючи SQL-мову, я думаю, що я хотів би внутрішнього з'єднання діапазону дат і часового діапазону (центральний):

введіть тут опис зображення

Цілком незв'язаний, але подібний приклад; це явище схоже на зустрічі в Outlook. Ви могли (але не повинні) зробити дійсно довгу зустріч, яка розпочинається 1 день / час, а закінчується в інший день / час через кілька днів, але вам слід здійснити повторювану зустріч, щоб правильно керувати графіком вашого та ваших кімнат. Я хочу вибрати підписи аналогічно повторюваній зустрічі.

Як я можу скласти select expertправило для отримання даних, які шукаю? Чи є ще якийсь спосіб я це зробити? Може, підзвіт?


1
Це може бути пізно, оскільки цьому Q вже тиждень. Я б переписав це як зразок входів, необхідний вихід і ваша найкраща спроба рішення (я знаю, як CR dev, ви покладаєтесь на багато вбудованих віджетів, що ускладнює розміщення публікацій). Але я не можу уявити, в чому полягає проблема, яку ви намагаєтеся конкретно вирішити. Якщо ви скажете "Я отримую 2017-05-12.00: 00: 00Z, але я хочу 2017-05-12.23: 59: 59", я думаю, що багатьом людям буде легше допомогти. Удачі.
обстріл

1
Можливо, найпростішим рішенням є створення представлення баз даних у MS SQL, що вказує на іншу таблицю, де звіт отримує дані, але повідомляє йому, щоб отримати лише значення тут [година] HHстановить від 2 до 10 вечора за допомогою DATEPARTфункції. Наприклад, не маючи явного стовпця, використовуючи його SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22у представленні даних, а потім вкажіть select expertзвіт, щоб отримати з нього дані про вибрані періоди дати. Іншим способом було б зробити той самий T-SQL запит командою CR SQL, але подання SQL може працювати набагато краще.
Pimp Juice IT

1
Таким чином, для очищення запиту SQL, з яким ви можете грати як SQL VIEW або CR SQL Command буде об'єктом, SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22і ви можете мати стовпець, специфічний із запитом у вікні SQL, так select column1, column2 FROM ~тощо, а не *.
Pimp Juice IT

1
Мій приклад був конкретним прикладом. Я хочу дозволити користувачеві визначати час початку та закінчення, саме тому я згадав параметри. Я не так багато знаю про SQL Views, але я здогадуюсь, якщо я вставити щось подібне кудись, воно встановлено статично, і користувач, який запускає звіт, не може змінити його на льоту. Я побачу, як зробити питання більш зрозумілим у цьому плані.
інший випадковий користувач

Гаразд, це не буде працювати, якщо користувачі вибирають часовий діапазон. Можливо, це може бути завдання для збереженої програми. У мене більше немає CR, і пройшов рік або близько того, як я поспілкувався з ним, щоб протестувати що-небудь, але я подумав, що можу допомогти з потенційним рішенням рівня SQL, припускаючи, що ви можете налаштувати CR-частину і налаштовано так, щоб дозволити TSQL робити фільтрація і т. д. Не впевнений, чи зможете ви створити збережений протокол та передати параметри часу початку та кінця та мати динамічну підказку CR для цих значень тощо, але я подумав, що принаймні дам вам кілька ідей ... Удачі незалежно.
Pimp Juice IT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.