Поделиться через


Занятие 4. Обновление определения отчета программным способом

После загрузки определения отчета с сервера отчетов и при наличии ссылки на него через поле отчета необходимо обновить определение отчета. В этом примере будет обновлено свойство Description отчета.

Обновление определения отчета

  • Замените код метода UpdateReportDefinition() в файле Program.cs (Module1.vb для Visual Basic) следующим кодом.

    private void UpdateReportDefinition()
    {
        System.Console.WriteLine("Updating Report Definition");
    
        // Create a list of the Items Choices for the Report. The 
        // ItemsChoiceType118 enum represents all the properties
        // available in the report and the ItemsElementName 
        // represents the properties that exist in the current 
        // instance of the report.
        List<ItemsChoiceType118> _reportItems = 
            new List<ItemsChoiceType118>(_report.ItemsElementName);
    
        // Locate the index for the Description property
        int index = _reportItems.IndexOf(
            ItemsChoiceType118.Description);
    
        // The Description item is of type StringLocIDType, so 
        // cast the item type first and then assign new value.
        System.Console.WriteLine("- Old Description: " + 
            ((StringLocIDType)_report.Items[index]).Value );
    
        // Update the Description for the Report
        ((StringLocIDType)_report.Items[index]).Value = 
            "New Report Description";
    
        System.Console.WriteLine("- New Description: " + 
            ((StringLocIDType)_report.Items[index]).Value );
    }
    
    Private Sub UpdateReportDefinition()
    
        System.Console.WriteLine("Updating Report Definition")
    
        'Create a list of the Items Choices for the Report. The 
        'ItemsChoiceType118 enum represents all the properties
        'available in the report and the ItemsElementName 
        'represents the properties that exist in the current 
        'instance of the report.
        Dim reportItems As List(Of ItemsChoiceType118) = _
            New List(Of ItemsChoiceType118)(m_report.ItemsElementName)
    
        'Locate the index for the Description property
        Dim index As Integer = _
            reportItems.IndexOf(ItemsChoiceType118.Description)
    
        'The Description item is of type StringLocIDType, so 
        'cast the item type first and then assign new value.
        System.Console.WriteLine("- Old Description: " & _
            DirectCast(m_report.Items(index), StringLocIDType).Value)
    
        'Update the Description for the Report
        DirectCast(m_report.Items(index), StringLocIDType).Value = _
            "New Report Description"
    
        System.Console.WriteLine("- New Description: " & _
            DirectCast(m_report.Items(index), StringLocIDType).Value)
    
    End Sub
    

Следующее занятие

На следующем занятии обновленное определение отчета будет сохранено назад на сервер отчетов. См. раздел Занятие 5. Публикация определения отчета на сервере отчетов.

См. также

Задания

Обновление отчетов с помощью классов, созданных из схемы языка определения отчетов (учебник по службам SSRS)