다음을 통해 공유


하위 보고서 매개 변수 코드 추가

이제 코드 숨김 클래스에 하위 보고서의 매개 변수 코드를 추가할 준비가 되었습니다. 먼저 SetDateRangeForOrders()라는 private 도우미 메서드를 만듭니다.

SetDateRangeForOrders() 메서드를 만들고 코딩하려면

  1. Web Form 또는 Windows Form을 엽니다.

  2. 보기 메뉴에서 코드를 클릭합니다.

  3. 클래스의 위쪽에서 이전 자습서를 진행하는 동안 추가한 기존의 PARAMETER_FIELD_NAME 상수 아래에 두 개의 새로운 상수를 추가합니다.

    Private Const SUBREPORT_PARAMETER_FIELD_NAME As String = "OrderDateRange"
    Private Const SUBREPORT_NAME As String = "CustomerOrders"
    
    private const string SUBREPORT_PARAMETER_FIELD_NAME = "OrderDateRange";
    private const string SUBREPORT_NAME = "CustomerOrders";
    
  4. 클래스의 맨 아래에 ReportDocument, 문자열 startDate 및 문자열 endDate를 매개 변수로 사용하는 SetDateRangeForOrders()라는 새 private 메서드를 만듭니다.

    Private Sub SetDateRangeForOrders(ByVal myReportDocument As ReportDocument, ByVal startDate As String, ByVal endDate As String)
    
    End Sub
    
    private void SetDateRangeForOrders(ReportDocument reportDocument, string startDate, string endDate)
    {
    }
    
  5. 이 메서드 내에서 ParameterRangeValue 클래스를 선언하고 인스턴스화합니다.

``` vb
Dim myParameterRangeValue As ParameterRangeValue = New
ParameterRangeValue()
```

``` csharp
ParameterRangeValue parameterRangeValue = new
ParameterRangeValue();
```

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\e2c9s1d7.alert_note(ko-kr,VS.90).gif" alt="Note" class="note" />참고</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>ParameterRangeValue 클래스에 액세스하려면 CrystalDecisions.Shared 네임스페이스에 대한 &quot;Imports&quot; [Visual Basic] 또는 &quot;using&quot; [C#] 문을 코드 숨김 클래스 위에 포함시켜야 합니다. 이 선언은 <a href="ms227453(v=vs.90).md">&quot;프로젝트 설정&quot;</a> 과정에서 추가했습니다.</p></td>
</tr>
</tbody>
</table>
  1. ParameterRangeValue 인스턴스의 StartValue 속성을 startDate 메서드 매개 변수로 설정합니다.

    myParameterRangeValue.StartValue = startDate
    
    parameterRangeValue.StartValue = startDate;
    
    Note참고

    ParameterRangeValue 클래스의 StartValue 및 EndValue 속성에는 Object 형식의 값이 사용됩니다. 이와 같은 제네릭 형식을 사용하면 텍스트, 숫자, 날짜, 통화 또는 시간을 비롯한 여러 가지 형식으로 범위 값을 전달할 수 있습니다.

  2. ParameterRangeValue 인스턴스의 EndValue 속성을 endDate 메서드 매개 변수로 설정합니다.

    myParameterRangeValue.EndValue = endDate
    
    parameterRangeValue.EndValue = endDate;
    
  3. 하한 및 상한의 경계가 포함되도록 설정합니다.

    myParameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive
    myParameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive
    
    parameterRangeValue.LowerBoundType = RangeBoundType.BoundInclusive;
    parameterRangeValue.UpperBoundType = RangeBoundType.BoundInclusive;
    
    Note참고

    BoundInclusive를 사용하면 상한 및 하한 값이 범위에 포함됩니다.

    이제 하위 보고서의 매개 변수에 ParameterRangeValue 인스턴스를 할당할 준비가 되었습니다.

  4. ReportDocument 인스턴스의 DataDefinition 속성에서 ParameterFieldDefinitions 개체를 검색합니다.

    Note참고

    ParameterFieldDefinitions는 ParameterFieldDefinition 클래스의 인스턴스가 포함된 인덱싱된 클래스입니다.

    Dim myParameterFieldDefinitions As ParameterFieldDefinitions = myReportDocument.DataDefinition.ParameterFields
    
    ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
    
  5. 두 개의 인덱싱된 값인 하위 보고서 매개 변수 필드 이름과 하위 보고서 이름을 기준으로 인덱싱된 ParameterFieldDefinitions 클래스에서 ParameterFieldDefinition 인스턴스를 검색합니다. 클래스의 맨 위에서 선언한 두 개의 상수 값을 전달합니다.

    Dim myParameterFieldDefinition As ParameterFieldDefinition = myParameterFieldDefinitions(SUBREPORT_PARAMETER_FIELD_NAME,
    SUBREPORT_NAME)
    
    ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[SUBREPORT_PARAMETER_FIELD_NAME,
    SUBREPORT_NAME];
    
  6. ParameterFieldDefinition 인스턴스의 CurrentValues 속성에 대해 Clear() 메서드를 호출하여 CurrentValues 속성에서 기존의 값을 모두 제거합니다.

    myParameterFieldDefinition.CurrentValues.Clear()
    
    parameterFieldDefinition.CurrentValues.Clear();
    
  7. 이전에 만든 ParameterRangeValue 인스턴스를 ParameterFieldDefinition 인스턴스의 CurrentValues 속성에 추가합니다.

    myParameterFieldDefinition.CurrentValues.Add(myParameterRangeValue)
    
    parameterFieldDefinition.CurrentValues.Add(parameterRangeValue);
    
  8. ApplyCurrentValues() 메서드를 호출하고 ParameterFieldDefinition 인스턴스의 CurrentValues 속성을 전달합니다.

    myParameterFieldDefinition.ApplyCurrentValues(myParameterFieldDefinition.CurrentValues)
    
    parameterFieldDefinition.ApplyCurrentValues(parameterFieldDefinition.CurrentValues);
    

이 단계에서는 시작 날짜 및 끝 날짜 값을 ParameterRangeValue 인스턴스로 설정하고 이러한 값을 CustomerOrders 하위 보고서의 OrderDateRange 매개 변수에 전달하는 절차를 설명했습니다.