Condividi tramite


Pubblicare un report tramite il servizio Web Microsoft Dynamics CRM

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Per pubblicare un report in Microsoft Dynamics 365, è possibile creare un nuovo record del report o aggiornare un record del report esistente. Utilizzare il metodo IOrganizationService.Create per la creazione di un report o utilizzare il metodo IOrganizationService.Update per aggiornare un report. È necessario specificare il tipo di report, la visibilità del report, la categoria del report e le entità correlate per il report come illustrato di seguito.

Specificare il tipo di report

Quando si crea un record del report, specificare il tipo di report utilizzando l'attributo Report.ReportTypeCode. Un report può essere uno dei seguenti tipi:

  • Report di Reporting Services: per questo tipo di report, impostare un valore dell'attributo Report.BodyText. Inoltre, specificare il nome del file con estensione rdl che contiene la definizione del report tramite l'attributo Report.Filename.

  • Altro report: per questo tipo di report, impostare un valore dell'attributo Report.BodyBinary. Specificare il nome del file con estensione rdl che contiene la definizione del report tramite l'attributo Report.Filename.

  • Report collegato: per questo tipo di report, impostare un valore dell'attributo Report.BodyUrl.

Specificare la categoria dei report

Per visualizzare ed eseguire un report in categorie dei report diverse, ad esempio Marketing, Vendite o Servizio, utilizzare l'attributo ReportCategory.CategoryCode per specificare una categoria. È possibile specificare più categorie per un report.

Specificare la visibilità dei report

Per impostazione predefinita, il report è visibile nella visualizzazione Tutti i report, inclusi sottoreport nella griglia Report. Per visualizzare un report in visualizzazioni aggiuntive nella griglia o le diverse aree, ad esempio il modulo dell'entità o la griglia di entità, utilizzare l'attributo ReportVisibility.VisibilityCode per specificare la visualizzazione o l'area. È possibile specificare più visualizzazioni e aree per un report.

Specificare le entità report

Per specificare un'entità correlata per il report, utilizzare l'attributo ReportEntity.ObjectTypeCode. È possibile specificare più entità correlate.

Esempio

In questo esempio vengono illustrate le procedure per creare i record necessari a pubblicare un report.



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

Vedere anche

Guida per sviluppatori sui report per Microsoft Dynamics CRM 2015
Pubblicare report
Esempio: Pubblicare un report
Gestire un report in modalità offline

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright