Вопрос

Мне нужно пройти список клавишных значений в сохраненную процедуру в 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.

Другие советы

Я не думаю, что вы используете концепцию параметров в кристалле правильно. Насколько мне известно, лучше всего использовать для ввода вручную ввода данных (и вы пытаетесь пройти многомерное массив, не лучшее его использование). Рекомендую:

  1. Ваше первое представление о кормлении в таблице как запятую строку.
    ИЛИ
  2. Сохранение вывода вашей процедуры на временную таблицу на SQL-сервере и импортируя это.

Обычно кристаллический отчет, который запускается с процедурой, создается путем указания отчета при процедуре - какие-либо необходимые параметры для процедуры автоматически генерируются в отчете. Если вы сделали это в конструкторе Crystal Reals, без отчета, генерируя параметр ввода таблицы, то я не думаю, что вы можете сделать это таким образом.

Как еще одна альтернатива использования списка, разделенного запятыми, вы рассмотрели:

  • Создание таблицы для удержания идентификаторов сеансов и входных значений,
  • Заполните таблицу непосредственно перед запуском отчета с идентификатором сеанса и необходимыми значениями входных значений,
  • Передача идентификатора сеанса в отчет как параметр,
  • Передача идентификатор сеанса из отчета в процедуру в качестве параметра,
  • Кодирование процедуры для выбора входных значений из новой таблицы на основе идентификатора сеанса и удаление записей для идентификатора сеанса после запуска отчета?
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top