SQL Server Standard에서 Enterprise 용으로 지불하지 않으려 고했습니다. 첫째, "DDR 예약"이라는 보고서를 만들었습니다 (데이터 기반 보고서). 이 보고서에는 다음과 같은 매개 변수가 있습니다.
보고서에 대한보고 : 데이터 테스트가 충족 될 경우 트리거 할 SSRS 보고서 (폴더 포함)의 이름입니다. 예 : "/ Accounting/Report1".
매개 변수 집합 : 보고서에 사용할 매개 변수를 찾는 데 사용할 문자열입니다. 예 : "알파벳".
보고서를 실행해야하는지 확인하려면 쿼리에서 0 또는 0이 아닌 단일 값을 반환하는 SQL 쿼리를 실행하십시오. 0은 "이 보고서를 실행하지 마십시오."로 해석됩니다.
전자 메일 수신자 : 보고서가 실행되면 세미콜론으로 구분 된 전자 메일받는 사람 목록입니다.
"DDR 예약"보고서는 실제로 여기에서 실행되는 보고서이며 출력이 나에게 전송됩니다. 실행되는 것은 보고서입니다.이 경우 "/ Accounting/Report1"이고이 이메일 주소가 필요한 보고서입니다. 그래서 "일정 잡기 DDR"은 실제로는 보고서가 아니지만 일정이 잡히고 실행됩니다. 보고서를 작성하고 실행하는 가젯입니다. 이 경우 "ABC"- - 테이블의 레코드 세트가
CREATE TABLE [dbo].[ParameterSet](
[ID] [varchar](50) NULL,
[ParameterName] [varchar](50) NULL,
[Value] [varchar](2000) NULL
) ON [PRIMARY]
각 매개 변수 세트를 다음과 같이
는 또한 정의 된 SQL에서 테이블을 가지고있다. 이 경우 레코드는 ABC/placecode/AA 및 ABC/year/2013 일 수 있습니다. 즉, ABC에는 placecode 및 year라는 두 개의 매개 변수가 있으며 값은 "AA"및 "2013"입니다.
CREATE PROCEDURE [dbo].[DDR3]
@reportName nvarchar(200),
@parameterSet nvarchar(200),
@nonZeroQuery nvarchar(2000),
@toEmail nvarchar(2000)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select ddr.dbo.RunADDR(@reportName,@parameterSet,@nonZeroQuery,@toEmail) as DDRresult;
END
RunADDR은 CLR입니다 :
SSRS에서의 "DDR 예약"보고서에 대한 데이터 세트는 DDR3가 저장 프로 시저입니다
DDR.dbo.DDR3 @reportName, @parameterSet, @nonZeroQuery, @toEmail;
입니다. 어떻게 작동하는지에 대한 개요가 있습니다. 누군가 원하는 경우 일부 코드를 게시 할 수 있습니다.
- 설정 자격 증명
- 가 parameterSet 필드는 이러한 매개 변수 각각에 대한 예약합니다 DDR 보고서
- 에서 전달 된 매개 변수를 설정 한 이름과 일치하는 ParameterSet 테이블의 모든 매개 변수를 선택
- 검색된 행에 정의 된 매개 변수를 보유하도록 매개 변수 배열을 설정하십시오. (이것은 테이블을 사용하여 매개 변수를 동적으로 채우는 방법입니다.)
- 종료 다시 제로 행을 가지고있는 경우
- 는 그 다음 nonZeroQuery을 실행하고 종료 예약합니다 DDR에서 전달 된 "nonZeroQuery"값이 있다면
- 합니다. (이것은 몇 가지 조건이 충족되지 않을 경우 쿼리 실행을 방지하는 방법이다, 뭔가 영 (0)을 반환하는 모든 쿼리가 보고서를 실행할 수 있습니다)
- 지금 보고서를 실행하는 SSRS를 요청할 경우를 사용하여,
- 끝 매개 변수를 우리는 테이블에서 추출하고 보고서 이름은 출력을 얻고 로컬 파일에
- 이메일 예약합니다 DDR
에서 전달 된 어떤 이메일 주소로 파일을 그것을 쓰기
- 예약합니다 DDR에서 전달
아니, 어리석은 아이디어는 아니지만 t 그는 MS 부분적으로 회신 대답은 SSRS 엔터 프라이즈 상자에 데이터를 기반으로 구독을 얻으려면 갈 것입니다. –
누구든지 관심이 있다면 나는 포기하고 PHP로 그것을했습니다 :-) –