2

我想知道使用 WPFFixedDocument作为报告引擎。有没有人有这样的经历?有哪些可能的陷阱?

我现在正在开发的一个应用程序,必须打印一些报告。这些是订单,发票 - 也就是说,没有什么不寻常的。最近,我查看了FlowDocument一些FixedDocumet概念,我发现了,也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>

固定文档的页脚

报告中的一种常见做法是将长表类数据拆分为多个页面(例如,包含 1000 个项目的发票)。此外,用户通常可以选择在每一页上重复表头,或者不重复。

有什么开箱即用的方法可以用FixedPage/做到这一点ItemsControl吗?
如果不是,如何在运行时定义当前要渲染的项目不在页面中?只要固定页面只是一组 UIElements,我就可以动态生成它们。

PS 我知道不同的商业报告引擎,问题不在于它们。

4

1 回答 1

3

我的经验表明,FixedDocument 在打印/自定义解决方案方面完全没用。

首先,它甚至默认不支持打印多页。您需要具有该功能的自定义 DocumentPaginator。

我的两分钱就是,不要用。使用 ReportViewer。很大的灵活性。

使用 FixedDocument 可以完成所有工作,但成本/时间不值得。这与比较 ASM 和高级语言几乎相同。是的,你可以在 ASM 中做任何事情,但这不值得。

FixedDocument 不能真正称为报告引擎,因为它没有任何“类似引擎”的功能。

于 2012-10-08T07:59:05.460 回答