報表系統
我們有兩套報表系統可以提供報表設計和打印服務:
- Report Builder
這個是一代的報表系統,系統中的一些通用的報表可以繼續使用這個系統進行維護,以前的系統基本都是用這個。RP的特點是簡單,報表代碼以XML的形式保存在".REP"文件中,開發中隨時打印測試預覽。也正因為它簡單,對於一些復雜的報表,開發起來就顯得力不從心,需要很高的技巧才能搞定。 - Ghost Draft
這個是新引進的第三方提供的報表系統,全新的設計理念讓Report, Model和Data Source相互獨立,具有較高的靈活性和可設計性,同時讓多人協作也成為可能。這里說的報表系統不只是簡單的可以導出到Excel文件中的那種,我們需要輸出各種各樣的電子文檔,下面的就是一個在完全空白的PDF上輸出的文檔示例:

Report Builder
這里我將主要介紹這個報表系統,想從一些簡單的報表入手。
-
Report Builder的安裝
這個是綠色的,解壓即可,但是需要用MP_Report_Builder.old改名為exe后替換目錄下的MP_Report_Builder.exe -
配置
- setup.ini 配置數據庫連接信息
- 注冊表文件,同時數據庫和郵箱的信息還保存在注冊表中,打開一個現有的REG文件修改執行就可以了
-
注冊
第一次打開可能需要注冊,輸入你的max郵箱賬號信息就可以了 -
更新
打開時如果提示更新,就點擊更新,若果報錯就試幾次,一般都沒問題

-
常見問題 - 打開后不顯示界面
這個是因為如果文件是拷貝的,配置文件中可能保留了之前主窗口在桌面上的位置,看不見是因為顯示到你的桌面之外去了。只需要打開MP_Report_Builder.ini,修改一下top和left就搞定了 -
幫助文檔
根目錄下面有詳細的文檔- visual_report_builder_manual.pdf
- Visual_Report_Builder.chm
軟件界面介紹

報表開發簡介
這里選擇OIC系統下的一個Report演示講解報表的開發過程
C:\MTStingray_oih\oih\reports\comm\rateworksheet.rep
<DATA>
<PDF_PAGE_SETTING UsePageDefault="1" PageTop="30" PageLeft="20" RowHeight="20" RowCount="30" PageCase="NOCASE" DeleteBlankPage="1" />
<PDF_FIELD_FONT Font="4" Size="12" ColorR="0" ColorG="0" ColorB="0" />
<PDF_FIELD X="0" Y="40" Text="Rating Worksheet" />
<PDF_HEAD_FONT Font="8" Size="12" ColorR="0" ColorG="0" ColorB="0" />
<PDF_HEAD_FIELD X="0" Y="70" Text="Description" />
<PDF_HEAD_FIELD X="145" Y="70" Text="First Variable" />
<PDF_HEAD_FIELD X="270" Y="70" Text="Op." />
<PDF_HEAD_FIELD X="300" Y="70" Text="Second Variable" />
<PDF_HEAD_FIELD X="440" Y="70" Text="Result" />
<XLS_HEAD_FIELD Format="STRING" Text="Description" Width="50" />
<XLS_HEAD_FIELD Format="STRING" Text="First Variable" Width="50" />
<XLS_HEAD_FIELD Format="STRING" Text="Operation" Width="10" />
<XLS_HEAD_FIELD Format="STRING" Text="Second Variable" Width="50" />
<XLS_HEAD_FIELD Format="STRING" Text="Result" Width="50" />
<OPEN_QUERY Name="Main" Query="
select RW_FirstVar,
RW_FirstValue,
RW_Function,
RW_SecondVar,
RW_SecondValue,
RW_ResultVar,
RW_ResultValue,
Description = RW_Algorithm
from Rating_Worksheet as A with (nolock)
left join PolicyData as B with (nolock) on A.PQ_ID = B.PQ_ID
where A.PQ_ID = '#SRECID#' or
B.PD_ID = '#SRECID#'
order by A.RW_ID
" />
<BEGIN Name="Main" />
<PDF_FIELD_FONT Font="4" Size="8" ColorR="0" ColorG="0" ColorB="0" />
<PDF_FIELD Format="STRING" Text="#DMain.Description#" X="0" Y="90" />
<PDF_FIELD Format="STRING" Text="#DMain.RW_FirstVar# [#DMain.RW_FirstValue#]" X="145" Y="90" />
<PDF_FIELD Format="STRING" Align="RIGHT" Text="#DMain.RW_Function#" X="280" Y="90" />
<PDF_FIELD Format="STRING" Text="#DMain.RW_SecondVar# [#DMain.RW_SecondValue#]" X="300" Y="90" />
<PDF_FIELD Format="STRING" Text="#DMain.RW_ResultVar# = [#DMain.RW_ResultValue#]" X="440" Y="90" />
<XLS_FIELD Format="STRING" Text="#DMain.Description#" Width="50" />
<XLS_FIELD Format="STRING" Text="#DMain.RW_FirstVar# [#DMain.RW_FirstValue#]" Width="50" />
<XLS_FIELD Format="STRING" Text="#DMain.RW_Function#" Width="10" />
<XLS_FIELD Format="STRING" Text="#DMain.RW_SecondVar# [#DMain.RW_SecondValue#]" Width="50" />
<XLS_FIELD Format="STRING" Text="#DMain.RW_ResultVar# = [#DMain.RW_ResultValue#]" Width="50" />
<INC_ROW/>
<END GoTo="Main" />
<CLOSE_QUERY Name="Main" />
</DATA>
其他文章
posted @ 2017-03-02 16:59 by Mark
