хранимая процедура с несколькими SELECT и службами отчетов - PullRequest
0 голосов
/ 26 июля 2011

У меня большие проблемы со службами отчетов.Мне нужно использовать хранимую процедуру с 2 параметрами (2 идентификатора).Если 1-й параметр заполнен, то запускается SELECT.Если второй параметр заполнен, то запускается еще один SELECT.

CREATE Procedure apGetEvrPourRapport
@id_exu int, @id_exd int
AS
BEGIN
  IF isnull(@id_exu, 0) > 0
    print 'id_exu : ' + cast(@id_exu as nvarchar(16))
    BEGIN
        EXEC apReport_Extrait_Lecture_Filtre @id_exu, null
    END
-- Cas du document unique et document de travail
  IF isnull(@id_exd, 0) > 0
    print 'id_exd : ' + cast(@id_exd as nvarchar(16))
    BEGIN
               --EXEC another sp
    END
END

В Data Services Report я получаю хороший SELECT, когда заполняю правильный параметр при выполнении восклицательным знаком, но в представлении набора данных яполучить только 2-й SELECT, поэтому предварительный просмотр завершился неудачно: (

Как настроить набор данных для учета этого переключателя SELECT?

Спасибо за помощь.

1 Ответ

0 голосов
/ 26 июля 2011

Я сделал это примерно месяц назад.

Что вам нужно сделать, это вручную добавить поля в XML с помощью узла «Поля» узла «Набор данных» отчета, а затем вызвать хранимую процедуру со всеми ее параметрами. Вы захотите скрыть все столбцы, которые не получат значения в определенном сценарии, или они покажут «#ERROR».

    <Field Name="status">
      <DataField>status</DataField>
      <rd:TypeName>System.Byte</rd:TypeName>
    </Field>
    <Field Name="longname">
      <DataField>longname</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
    <Field Name="name">
      <DataField>name</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>

Вы не сможете снова изменить свой набор данных в конструкторе, иначе он сотрет ваши поля и / или не сохранится. Однако вы можете изменить другие части отчета в конструкторе.

...