2012-10-08 27 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中做所有事情,但这不值得。

由于固定文档没有任何类似引擎的功能,因此无法真正称为报表引擎。

相关问题