1

사용자가 두 가지 유형의 날짜 중 하나를 선택할 수있는 요구 사항이 있습니다. 1. 사고 날짜 2. 만든 날짜 드롭 다운에서. 해당 사용자의 기초에 날짜 범위가 채워집니다. 내 문제는 이것을 달성 할 수있는 방법입니다.이를 위해 엔티티에 두 개의 다른 필드가 있습니다. 나는 이것을 시도했다fetch xml ssrs report의 입력 매개 변수를 통해 조건 속성 이름을 추가 할 수 있습니까?

<filter type="and"> 
     <condition attribute="@DateType" operator="on-or-after" value="@FromDate" /> 
     <condition attribute="@DateType" operator="on-or-before" value="@ToDate" /> 

    </filter> 

그러나 나는 그렇게 생각하지 않는다. 그래서 이것을 달성하는 다른 방법이 있습니다. 미리 감사드립니다.

답변

0

xml을 가져오고 언어가 매우 제한적이어서 쉽게 얻을 수있는 방법을 모르겠습니다. 그러나 이것을 달성하기위한 약간의 "해킹"이 있습니다.

첫 번째로, "@DateType"값의 값이 날짜 범위를 필터링 할 속성의 이름이라고 가정합니다.

이제 원하는 것을 얻으려면 기본적으로 자신의 매개 변수로 사전 필터링을 하이재킹해야합니다. 기본 쿼리에서 필터를 제거하고 사전 필터링을 활성화하십시오. 다음 (내 경우에는 내가 리드에서 테스트되었다)와 같은 뭔가 :

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> 
    <entity name="lead" enableprefiltering="true" prefilterparametername="FilterParam"> 
    <attribute name="fullname" /> 
    <attribute name="createdon" /> 
    <attribute name="modifiedon" /> 
    <attribute name="statuscode" /> 
    <attribute name="subject" /> 
    <attribute name="ownerid" /> 
    <attribute name="leadid" /> 
    <order attribute="createdon" descending="true" /> 
    </entity> 
</fetch> 

enableprefiltering="true" prefilterparametername="FilterParam"과 참조 사전 필터링 매개 변수 FilterParam되는 중요한 부분 (당신은 당신이 원하는대로이 이름을 지정할 수 있습니다).

자 이제 FilterParam이라는 새 매개 변수가 자동으로 만들어 졌을 것입니다. 이 매개 변수의 속성을 열고이 대신 읽어 기본값을 편집

= "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" + 
"<entity name='lead'><all-attributes/>" + 
"<filter type='and'>" + 
"<condition attribute='" + Parameters!DateType.Value + "' operator='on-or-after' value='" + Format(Parameters!DateFrom.Value, "yyyy-MM-dd") + "' />" + 
"<condition attribute='" + Parameters!DateType.Value + "' operator='on-or-before' value='" + Format(Parameters!DateTo.Value, "yyyy-MM-dd") + "' />" + 
"</filter></entity></fetch>" 

은 기본적으로 당신이 프리 필터로 전달하는 FetchXML 문자열을 구축하기 위해 매개 변수에 식을 사용하고 있습니다. 이것은 날짜 매개 변수를 사용하여 올바른 필터를 작성합니다.

이제 실행하면 2 개의 다른 날짜로 필터링됩니다.

+0

고마워요! 내가 이해 한 것에 대한 대답에 따라 우리는 기록을 미리 필터링하고 있지만 그렇지 않습니다. 사용자는 사고 날짜 또는 생성 날짜 중 두 날짜 중 하나를 선택하려고합니다. 그러나 사전 필터링 된 레코드가 아닙니다. –

+0

내가 말하는 것은 아닙니다. 내가 말한 것은 동일한 사전 필터링 매개 변수를 사용하여 요청한 결과를 얻을 수 있다는 것입니다. 나는 당신이 현재 미리 필터링하지 않는다는 당신의 질의에 의해 추정 해왔다. –