다음을 통해 공유


Microsoft Dynamics CRM 웹 서비스를 사용한 보고서 게시

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

보고서를 Microsoft Dynamics 365에 게시하기 위해 새 보고서 레코드를 만들거나 기존 보고서 레코드를 업데이트할 수 있습니다.IOrganizationService.Create 메서드를 사용하여 보고서를 만들거나 IOrganizationService.Update 메서드를 사용하여 보고서를 업데이트합니다. 보고서 유형, 보고서 표시 영역, 보고서 범주 및 보고서 관련 엔터티를 아래와 같이 지정해야 합니다.

보고서 유형 지정

보고서 레코드를 만들 때 Report.ReportTypeCode 특성을 사용하여 보고서 유형을 지정합니다. 보고서는 다음 유형 중 하나가 될 수 있습니다.

  • 보고 서비스 보고서: 이 보고서 유형의 경우 Report.BodyText 특성의 값을 설정합니다.Report.Filename 특성을 사용하여 보고서 정의가 포함된 .rdl 파일의 이름도 지정합니다.

  • 기타 보고서: 이 보고서 유형의 경우 Report.BodyBinary 특성의 값을 설정합니다.Report.Filename 특성을 사용하여 보고서 정의가 포함된 .rdl 파일의 이름을 지정합니다.

  • 연결된 보고서: 이 보고서 유형의 경우 Report.BodyUrl 특성의 값을 설정합니다.

보고서 범주 지정

마케팅, 영업, 서버와 같이 다른 보고서 범주에서 보고서를 표시하고 실행하려면 ReportCategory.CategoryCode 특성을 사용하여 범주를 지정합니다. 보고서에 여러 범주를 지정할 수 있습니다.

보고서 표시 영역 지정

기본적으로 보고서는 보고서 표의 하위 보고서를 포함한 모든 보고서 보기에 표시됩니다. 보고서를 표의 추가 보기 또는 엔터티 양식이나 엔터티 표와 같은 다른 영역에 표시하려면 ReportVisibility.VisibilityCode 특성을 사용하여 보기 또는 영역을 지정합니다. 보고서에 여러 보기와 영역을 지정할 수 있습니다.

보고서 엔터티 지정

보고서 관련 엔터티를 지정하려면 ReportEntity.ObjectTypeCode 특성을 사용합니다. 관련 엔터티를 여러 개 지정할 수 있습니다.

예제

이 샘플에서는 보고서를 게시하는 데 필요한 레코드를 만드는 방법을 보여 줍니다.



// Define an anonymous type to define the possible values for
// report type.
var ReportTypeCode = new
{
    ReportingServicesReport = 1,
    OtherReport = 2,
    LinkedReport = 3
};

// Define an anonymous type to define the possible values for
// report category.
var ReportCategoryCode = new
{
    SalesReports = 1,
    ServiceReports = 2,
    MarketingReports = 3,
    AdministrativeReports = 4
};

// Define an anonymous type to define the possible values for
// report visibility
var ReportVisibilityCode = new
{
    ReportsGrid = 1,
    Form = 2,
    Grid = 3,
};

// Instantiate a report object.
// See the Entity Metadata topic in the SDK documentation to determine
// which attributes must be set for each entity.

Report sampleReport = new Report
{
    Name = "Sample Report",
    BodyText = File.ReadAllText("SampleReport.rdl"),
    FileName = "SampleReport.rdl",
    LanguageCode = 1033, // US English
    ReportTypeCode = new OptionSetValue(ReportTypeCode.ReportingServicesReport)
};
// Create a report record named Sample Report.
_reportId = _serviceProxy.Create(sampleReport);


// Set the report category.
ReportCategory sampleReportCategory = new ReportCategory
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    CategoryCode = new OptionSetValue(ReportCategoryCode.AdministrativeReports)
};
_reportCategoryId = _serviceProxy.Create(sampleReportCategory);

// Define which entity this report uses.
ReportEntity reportEntity = new ReportEntity
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    ObjectTypeCode = Account.EntityLogicalName
};
_reportEntityId = _serviceProxy.Create(reportEntity);


// Set the report visibility.
ReportVisibility rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.Form)
};
_reportVisibilityId1 = _serviceProxy.Create(rv);

rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.Grid)
};
_reportVisibilityId2 = _serviceProxy.Create(rv);

rv = new ReportVisibility
{
    ReportId = new EntityReference(Report.EntityLogicalName, _reportId),
    VisibilityCode = new OptionSetValue(ReportVisibilityCode.ReportsGrid)
};
_reportVisibilityId3 = _serviceProxy.Create(rv);

Console.WriteLine("{0} published in Microsoft Dynamics CRM.", sampleReport.Name);


' Define an anonymous type to define the possible values for
' report type.
Dim ReportTypeCode = New With {
     Key .ReportingServicesReport = 1,
     Key .OtherReport = 2,
     Key .LinkedReport = 3}

' Define an anonymous type to define the possible values for
' report category.
Dim ReportCategoryCode = New With {
     Key .SalesReports = 1,
     Key .ServiceReports = 2,
     Key .MarketingReports = 3,
     Key .AdministrativeReports = 4}

' Define an anonymous type to define the possible values for
' report visibility
Dim ReportVisibilityCode = New With {
     Key .ReportsGrid = 1,
     Key .Form = 2,
     Key .Grid = 3}

' Instantiate a report object.
' See the Entity Metadata topic in the SDK documentation to determine
' which attributes must be set for each entity.

Dim sampleReport As Report =
 New Report With {
  .Name = "Sample Report",
  .BodyText = File.ReadAllText("SampleReport.rdl"),
  .FileName = "SampleReport.rdl",
  .LanguageCode = 1033,
  .ReportTypeCode = New OptionSetValue(ReportTypeCode.ReportingServicesReport)
 }
' Create a report record named Sample Report.
_reportId = _serviceProxy.Create(sampleReport)


' Set the report category.
Dim sampleReportCategory As ReportCategory =
 New ReportCategory With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .CategoryCode = New OptionSetValue(ReportCategoryCode.AdministrativeReports)
 }
_reportCategoryId = _serviceProxy.Create(sampleReportCategory)

' Define which entity this report uses.
Dim reportEntity As ReportEntity =
 New ReportEntity With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .ObjectTypeCode = Account.EntityLogicalName
 }
_reportEntityId = _serviceProxy.Create(reportEntity)


' Set the report visibility.
Dim rv As ReportVisibility =
 New ReportVisibility With {
  .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
  .VisibilityCode = New OptionSetValue(ReportVisibilityCode.Form)
 }
_reportVisibilityId1 = _serviceProxy.Create(rv)

rv = New ReportVisibility With {
 .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
 .VisibilityCode = New OptionSetValue(ReportVisibilityCode.Grid)
}
_reportVisibilityId2 = _serviceProxy.Create(rv)

rv = New ReportVisibility With {
 .ReportId = New EntityReference(Report.EntityLogicalName, _reportId),
 .VisibilityCode = New OptionSetValue(ReportVisibilityCode.ReportsGrid)
}
_reportVisibilityId3 = _serviceProxy.Create(rv)

Console.WriteLine("{0} published in Microsoft Dynamics CRM.", sampleReport.Name)

참고 항목

Microsoft Dynamics CRM 2015용 보고서에 대한 개발자 가이드
보고서 게시
샘플: 보고서 게시
오프라인 모드에서 보고서 관리

© 2017 Microsoft. All rights reserved. 저작권 정보