Как указать параметр ввода типа SQL таблицы в Crystal Reports?
-
25-09-2019 - |
Вопрос
Мне нужно пройти список клавишных значений в сохраненную процедуру в SQL-сервере, и эта сохраняемая процедура возвращает значения, необходимые для отчета Crystal.
Вместо того, чтобы отправлять запятую список, а затем распределить это, было предложено, чтобы я использовал тип таблицы. Итак, я определил этот тип таблицы как просто из целых чисел:
CREATE TYPE [dbo].[SiteIdentifiers] AS TABLE
(
[SiteId] BigInt,
PRIMARY KEY ([SiteId])
)
Однако сейчас мне нужно изменить мой Crystal Chate, чтобы принять это в качестве входного параметра. (Хранимая процедура начинается с ...
CREATE PROCEDURE [dbo].[sp_SiteReport]
@SiteIds [dbo].[SiteIdentifiers] ReadOnly
AS
Отчеты в основном будут называться ColdFusion или C # .NET, поэтому я не думаю, что будет проблемой в добавлении идентификаторов на тип таблицы. Но я не знаю, как определить этот параметр в кристалле. Список типов в мастере создания нового параметра является Rahter Scant.
Решение 3
Насколько я могу сказать, это невозможно. Кристалл не предпринимает типы данных, которые он не распознает из других приложений, таких как SQL Server.
Другие советы
Я не думаю, что вы используете концепцию параметров в кристалле правильно. Насколько мне известно, лучше всего использовать для ввода вручную ввода данных (и вы пытаетесь пройти многомерное массив, не лучшее его использование). Рекомендую:
- Ваше первое представление о кормлении в таблице как запятую строку.
ИЛИ - Сохранение вывода вашей процедуры на временную таблицу на SQL-сервере и импортируя это.
Обычно кристаллический отчет, который запускается с процедурой, создается путем указания отчета при процедуре - какие-либо необходимые параметры для процедуры автоматически генерируются в отчете. Если вы сделали это в конструкторе Crystal Reals, без отчета, генерируя параметр ввода таблицы, то я не думаю, что вы можете сделать это таким образом.
Как еще одна альтернатива использования списка, разделенного запятыми, вы рассмотрели:
- Создание таблицы для удержания идентификаторов сеансов и входных значений,
- Заполните таблицу непосредственно перед запуском отчета с идентификатором сеанса и необходимыми значениями входных значений,
- Передача идентификатора сеанса в отчет как параметр,
- Передача идентификатор сеанса из отчета в процедуру в качестве параметра,
- Кодирование процедуры для выбора входных значений из новой таблицы на основе идентификатора сеанса и удаление записей для идентификатора сеанса после запуска отчета?