如何在FsXaml

时间:2016-12-01 20:12:45

标签: f# fsxaml

我在解决方案资源管理器中右键单击了项目,添加了Report.rptReport.fs文件。在Report.fs中,我声明了两个类型Report()CachedReport(),它们在C#中自动生成,并通过查看CrystalReport生成的.cs文件在其中添加了F#代码一个C#WPF Projet。在Xaml我有

<ContentControl Content="{Binding ShowReport}"/>
<Button Command="{Binding ViewReport}" Content="Click" Grid.Row="1"/>

并在ViewModel中

let doc = new CrystalReportsViewer()
let setSource() = 
    let rpt = new Report()
    rpt.Load("~/Report.rpt")
    doc.ViewerCore.ReportSource <- rpt
member x.ShowReport =  doc
member x.ViewReport = self.Factory.CommandSync(setSource)

当我启动应用程序时,我可以看到CrystalReport Viewer。如果我单击按钮应用程序自动关闭。

如果我双击Report.rpt,会弹出一个对话框并显示This document could not be opened

如何在F#WPF中使用它? F#WPF还有其他报告工具吗?

1 个答案:

答案 0 :(得分:0)

我只需构建一个C#类库,将Report作为嵌入式资源,在F#引用中添加程序集并写入...

let doc = new CrystalReportsViewer()
let setSource() = 
    let rpt = new MyCsClass.CrystalReport1()
    ....
    doc.ViewerCore.ReportSource <- rpt 

这就是全部!