Я создал rs.exe скрипт, который выполняет следующие действия:
развертывает отчет, основанный на файле Report.rdl. В отчете содержится одна ссылка на общий источник данных и одну ссылку на общий набор данных. Отчет развертывается в каталоге сервера отчетов.
Устанавливает источник данных для отчета в существующий общий источник данных на сервере отчетов. Источник данных развернут как /Источники данных/DS.
Установите DataSet для отчета в существующий общий DataSet на сервере отчетов. Источник данных развернут как /Наборы данных/DataSet.
Сценарий содержит следующий код:
Public Sub Main()
Dim definition As [Byte]() = Nothing
Dim warnings As Warning() = Nothing
'Read report from file on disk
Dim stream As FileStream = File.OpenRead("Report.rdl")
definition = New [Byte](stream.Length - 1) {}
stream.Read(definition, 0, CInt(stream.Length))
stream.Close()
'Deploy report
'ItemType, name, folder, overwrite, definition, properties
rs.CreateCatalogItem("Report", "Report", "/", True, definition, Nothing, warnings)
'Update existing report Data Souce reference to Shared Data Source on server
Dim dataSourceRefs(0) As DataSource
Dim dsr As New DataSourceReference
dsr.Reference = "/Data Sources/DS"
Dim ds As New DataSource
ds.Item = CType(dsr, DataSourceDefinitionOrReference)
ds.Name = "DS"
dataSourceRefs(0) = ds
rs.SetItemDataSources("/Report", dataSourceRefs)
'Update existing report DataSet reference to Shared DataSet on server
Dim dataSetRefs(0) as ItemReference
Dim dset as New ItemReference
dset.Name = "DataSet"
dset.Reference = "/Datasets/DataSet"
dataSetRefs(0) = dset
rs.SetItemReferences("/Report", dataSetRefs)
End Sub
Это звучит, как вы уже развертывания отчетов успешно.
Итак, основные примечания - это фрагменты кода, которые обновляют ссылку источника данных и ссылку DataSet. Следует отметить следующие методы:
SetItemDataSources для обновления Источник данных.
SetItemReferences для обновления DataSet.
Это для одного отчета, поэтому вам нужно будет обернуть код в подпрограмме для вашего сценария развертывания, но, надеюсь, это поможет вам.
Вы посмотрели на вышеупомянутое решение? Вам повезло с этим? –