Подскажите параметр отдельных значений даты и времени?

537
YetAnotherRandomUser

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

Я попытался добавить отдельную, вторую подсказку для параметра на это время, но это имеет тот же результат, что и изменение подсказки для параметра на значение DateTime. Я повторю: это не мой желаемый результат.

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

В основном, выберите данные, которые произошли в эти дни между 14:00 и 22:00. Где дата начала и дата окончания могут быть выбраны; и время начала и время окончания выбираются.

enter image description here

Используя язык SQL, я думаю, что мне нужно внутреннее соединение диапазона дат и диапазона времени (центральное):

enter image description here

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

Как я могу создать select expertправило для получения данных, которые я ищу? Есть ли другой способ сделать это? Может быть, подотчет?

8
Это может быть слишком поздно, так как этому Q уже неделя. Я бы переписал его как пример ввода, требуемый вывод и вашу лучшую попытку решения (я знаю, что как CR dev вы полагаетесь на множество встроенных виджетов, что делает публикацию более сложной). Но я не могу себе представить, какую проблему вы пытаетесь решить. Если вы скажете: «Я получаю 2017-05-12.00: 00: 00Z, но хочу 2017-05-12.23: 59: 59», то я думаю, что многим людям будет легче помочь. Удачи. shellter 6 лет назад 1
Возможно, простое решение состоит в том, чтобы создать представление базы данных в MS SQL, указывающее на другую таблицу, в которую отчет получает данные, но скажите, чтобы она получала только те значения, которые здесь [час] `ЧЧ` находится между 14:00 и 22:00, используя` Функция DATEPART`. Так, например, не являясь явно столбцом, используя `SELECT * FROM Table WHERE DATEPART (hh, [DateField]) между 14 и 22` в представлении, а затем укажите отчет` select expert`, чтобы получить из него данные за выбранные периоды дат. Другим способом было бы сделать тот же запрос T-SQL командой CR SQL, но представление SQL может работать намного лучше. Pimp Juice IT 6 лет назад 1
Таким образом, для ясности SQL-запроса, с которым вы, возможно, захотите поиграть как SQL VIEW, или как объект CR SQL Command, необходимо выбрать «SELECT * FROM Table WHERE DATEPART (hh, [DateField]) BETWEEN 14 И 22», и вы можете быть специфичными для столбца с запросом в представлении SQL, поэтому `выберите column1, column2 FROM ~` и т. д. вместо `*`. Pimp Juice IT 6 лет назад 1
Мой пример был конкретным примером. Я хочу позволить пользователю определить время начала и окончания, поэтому я упомянул параметры. Я не так много знаю о представлениях SQL, но я предполагаю, что если я вставлю куда-нибудь что-то подобное, оно будет статически установлено, и пользователь, запустивший отчет, не сможет изменить его на лету. Я посмотрю, как сделать вопрос более ясным в этом отношении. YetAnotherRandomUser 6 лет назад 1
Хорошо, это не сработает, если пользователи выберут временной диапазон. Это может быть работа для хранимого процесса, возможно. У меня больше нет CR, и прошел год или около того с тех пор, как я проверил его, чтобы что-то протестировать, но я подумал, что смогу помочь с потенциальным решением на уровне SQL, предполагая, что вы можете настроить часть CR и настроить ее так, чтобы TSQL мог выполнять фильтрация и т. д. Не уверен, что вы могли бы создать сохраненный процесс и передать параметры времени начала и окончания и иметь динамическое приглашение CR для этих значений и т. д., но я подумал, что по крайней мере дам вам некоторые идеи ... Удачи несмотря на. Pimp Juice IT 6 лет назад 0

0 ответов на вопрос