2012-10-08 66 views
2

我想知道使用WPF的FixedDocument作爲報告引擎。有沒有人有這樣的經歷?什麼是可能的陷阱?FixedDocument作爲報告引擎?

我正在開發的應用程序必須打印一些報告。這些是訂單,發票 - 也就是說,沒有什麼不尋常的。最近,我看了FlowDocumentFixedDocumet的概念,並且我發現,理論上說,FixedDocumet是我需要的。

比,我已經勾勒出樣品報告,並面臨着一個問題:

<PageContent> 
     <FixedPage Width="793.76" Height="1122.56" Margin="50,50,50,50" PrintTicket=""> 
      <ListView Width="Auto" Height="Auto" ItemsSource="{Binding}"> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn Header="First name" 
             Width="200" 
             DisplayMemberBinding="{Binding FirstName}"/> 
         <GridViewColumn Header="Last name" 
             Width="200" 
             DisplayMemberBinding="{Binding LastName}"/> 
        </GridView> 
       </ListView.View> 
      </ListView> 
     </FixedPage> 
    </PageContent> 

Footer of fixed document

沒有在報表中,通常的做法是拆分的長表類型的數據到多個頁面(例如1000個項目的發票)。另外,用戶通常可以選擇一個選項,在每個頁面上重複一個表頭,或者不重複。

是否有任何開箱即用的方式來做到這一點FixedPage/ItemsControl
如果否,如何在運行時定義當前要渲染的項目是否在頁面外?只要固定頁面只是一組UIElements,我就可以動態生成它們。

P.S.我知道不同的商業報告引擎,但問題與他們無關。

回答

3

我的經驗表明,FixedDocument在打印/自定義解決方案時完全沒有用處。

首先,它甚至不支持默認打印到多個頁面。您需要爲該功能定製DocumentPaginator。

我的兩分錢是,不要使用它。去ReportViewer。很大的靈活性。

完全可以使用FixedDocument完成所有任務,但成本/時間不值得。這與ASM和高級語言的比較幾乎相同。是的,你可以在ASM中做所有事情,但這不值得。

由於固定文檔沒有任何類似引擎的功能,因此無法真正稱爲報表引擎。

相關問題