爲SCOM創建自定義報表3

爲SCOM創建自定義報表3


上一次我們在創建了一個基本報表並且部署在SCOM的Report 服務器上

然後我們可以在控制檯查看這個報表了,

今天我們來看看怎麼把這個report 嵌入MP 隨着你導入MP自動把報表部署到report服務上


好了 不再廢話 還是那句話 要噴的出門左轉不謝

今天你要準備的工具

一個VS 一個是System Center Visual Studio Authoring Extensions

VS 不用多說了全宇宙最NB的IDE

System Center Visual Studio Authoring Extensions 是VS的一個關於寫MP的擴展

當然你安裝好擴展後

打開VS 就可開始寫MP了

好了 現在打開你的VS 創建新工程

如下圖所示 至於你要創建那個版本的隨便 我是選得12R2 這樣12R2 16 都能用

然後選位置保存 這個你隨意

然後注意下References 部分 要如下所示 引用這些

如果你沒有這些引用 請去你的OM的安裝鏡像去找 .MP文件 文件名就是這下面顯示的例如Microsoft.system.center.datawarhouse.library


然後在工程右鍵點添加 新建項 Empty ManagmentPack Fragment 選擇如下圖所示


然後把你做好的報表 XXXX.RDL文件 添加到工程 並且 右鍵選擇屬性

將Build Action 該成Embedded Resource 這樣當VS 編譯這個MP時候 會嵌入進MP


好了

大概準備好了

我們下面要做這麼幾個事情

1 改變原有報表的數據源 因爲我們一開始是手動指定的數據源服務器  當我們要嵌入MP的時候 我們所指定的報表數據源是無效的  所以我們要改變一下


在VS裏雙機你剛纔添加的rdl文件 會按照xml格式打開

找到 下面這部分 Name="DataSource1" 請注意 如果你是DataSource1 那麼經過替換之後 這個名字不要換 不然你的數據集是找不到數據源的

並且替換

<DataSource Name="DataSource1">

</DataSource>

替換爲

<DataSource Name="DataSource1">

     <ConnectionProperties>

       <DataProvider>SQL</DataProvider>

       <ConnectString>Data Source=omsql;Initial Catalog=OperationsManagerDW</ConnectString>

       <IntegratedSecurity>true</IntegratedSecurity>

     </ConnectionProperties>

     <rd:SecurityType>Integrated</rd:SecurityType>

     <rd:DataSourceID>33604ba9-136e-48d9-a820-67e3dd0dcd22</rd:DataSourceID>

</DataSource>


這樣我們就把自定義的數據源替換了 替換成om自己的默認報表數據源 這樣在導入MP的時候OM會自己根據自己的report server進行連接

然後打開我們剛創建的 Fragment

清空內容 並且將下面內容加進去

<?xml version="1.0" encoding="utf-8"?>

<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <TypeDefinitions />

 <Monitoring />

 <ConfigurationGroups />

 <Templates />

 <PresentationTypes />

 <Presentation />

 <Reporting>

   <Reports>

     <Report ID="rep.NewReport" Accessibility="Public" Visible="true">

       <ReportDefinition>Res.rep.NewReport</ReportDefinition>

       </Report>

   </Reports>

 </Reporting>


 <Resources>

   <ReportResource ID="Res.rep.NewReport" Accessibility="Internal" FileName="rep.NewReport.rdl" MIMEType="application/octet-stream" HasNullStream="false" />

 </Resources>

</ManagementPackFragment>

我來解釋下里面重要的地方

rep.NewReport 就是你打算把報表叫什麼名字 跟你的報表文件的文件明一樣就行

FileName="rep.NewReport.rdl" 這裏rep.NewReport.rdl就是我們剛纔加進來的rdl的文件名字 其他的地方如果你瞭解MP的結構可以隨意改變 只要符合要求即可如果不瞭解就直接默認就好了 如果你有多個報表嵌入 那麼請複製

<Report ID="rep.NewReport" Accessibility="Public" Visible="true">

       <ReportDefinition>Res.rep.NewReport</ReportDefinition>

       </Report>

以及下面的部分 更改名字即可

<ReportResource ID="Res.rep.NewReport" Accessibility="Internal" FileName="rep.NewReport.rdl" MIMEType="application/octet-stream" HasNullStream="false" />

此時報表我們已經嵌入完成了  然後讓VS 重新生成就是了

最後我們在生成目錄會找到mp 以及MPB文件 由於我們是嵌入式的 所以我們把mpb文件導入到scom即可 然後等待報表部署即可

本次博客結束 下次我們看看如何添加 報表參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章