我在解决方案资源管理器中右键单击了项目,添加了Report.rpt
和Report.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还有其他报告工具吗?
答案 0 :(得分:0)
我只需构建一个C#类库,将Report作为嵌入式资源,在F#引用中添加程序集并写入...
let doc = new CrystalReportsViewer()
let setSource() =
let rpt = new MyCsClass.CrystalReport1()
....
doc.ViewerCore.ReportSource <- rpt
这就是全部!