Freigeben über


Einen Bericht mithilfe des Microsoft Dynamics 365-Webdiensts veröffentlichen

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Wenn Sie einen Bericht in Microsoft Dynamics 365 veröffentlichen möchten, können Sie entweder einen neuen Datensatz erstellen oder einen vorhandenen Datensatz aktualisieren. Verwenden Sie IOrganizationService.Create Möglichkeit, um einen Bericht zu erstellen oder die IOrganizationService.Update-Methode, um einen Bericht zu aktualisieren. Sie müssen den Berichtstyp, die Berichtssichtbarkeit, die Berichtskategorie und die für den Bericht verknüpften Entitäten wie nachfolgend gezeigt definieren.

Berichtstyp definieren

Wenn Sie einen Datensatz erstellen, geben Sie den Typ des Berichts mit dem angegebenen Report.ReportTypeCode-Attribut an. Ein Bericht kann einem der nachfolgenden Typen angehören:

  • Reporting Services-Bericht: Für diesen Berichtstyp legen Sie einen Wert für das Attribut Report.BodyText fest. Entsprechend geben Sie den Namen der RDL-Datei an, die die Berichtsdefinition enthält, indem das Attribut Report.Filename verwendet wird.

  • Anderer Report: Für diesen Berichtstyp legen Sie einen Wert für das Attribut Report.BodyBinary fest. Entsprechend geben Sie den Namen der RDL-Datei an, die die Berichtsdefinition enthält, in dem das Attribut Report.Filename verwendet wird.

  • Verknüpfter Bericht: Für diesen Berichtstyp legen Sie einen Wert für das Attribut Report.BodyUrl fest.

Berichtskategorien angeben

Wenn Sie einen Bericht in anderen Berichtskategorien anzeigen, z.B. Marketing, Verkauf oder Service verwenden Sie das Attribut ReportCategory.CategoryCode, um eine Kategorie anzugeben. Sie können einen Bericht für mehrere Kategorien angeben.

Berichtssichtbarkeit definieren

Standardmäßig sind die Berichte unter Alle Berichte einschließlich Unterberichte im Berichtsraster sichtbar. Wenn Sie einen Bericht in zusätzlichen Ansichten im Raster oder anderen Bereichen wie im Entitätsformular oder der Entitätstabelle anzeigen möchten, verwenden Sie das Attribut ReportVisibility.VisibilityCode, um die Ansicht oder den Bereich anzugeben. Sie können einen Bericht für mehrere Ansichten und Bereiche angeben.

Berichtsentitäten definieren

Um verknüpfte Entitäten für den Bericht zu definieren, verwenden Sie das Attribut. ReportEntity.ObjectTypeCode. Sie können mehrere verknüpfte Entitäten definieren.

Beispiel

Dieses Beispiel zeigt, wie Datensätze erstellt werden die erforderlich sind, um einen Bericht zu veröffentlichen.



// 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)

Siehe auch

Entwicklerhandbuch zu Berichten für Microsoft Dynamics 365
Veröffentlichen von Berichten
Beispiel: Veröffentlichen eines Berichts
Verwalten eines Berichts im Offlinemodus

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright