如何使用水晶报表显示动态生成的数据集内容?
各位达人,我刚开始接触水晶报表。
我的数据集是动态生成,如何在水晶报表中象使用datagrid那样显示数据集呢?
如果可以,将数据集绑定到水晶报表后,经过怎样的设计才能在报表中正确的显示?
请指点,谢谢!
问题点数:100、回复次数:11Top
1 楼qing520(墜落)回复于 2005-09-13 14:48:20 得分 30
你datagrid顯示的數據是通過一個dataset的吧,把哪個dataset 寫成一個xml文件,然後在水晶報表聯接這個xml文件就可以了 ,聯接了以後,把你想要顯示的字段拖到報表裡面就可以了
Top
2 楼jsnicle(js_nicle)回复于 2005-09-13 14:53:15 得分 0
是不是每次我生成这个dataset的时候我都要重新身成一个xml文件?Top
3 楼Randy_Lau(水恋无华)回复于 2005-09-13 14:58:52 得分 20
dataset绑定到水晶报表以后,就可以直接把下面的Table里面的字段一个一个拖到报表相应的位置了。只要你的table里的字段不改变名称,其每次查询出来不同的数据都会动态的更新。Top
4 楼jsnicle(js_nicle)回复于 2005-09-13 15:01:40 得分 0
我的数据集都是在代码中
dim mydataset as new DataSet定义的,生成相应的xml文件的时候,也只能动态生成,所以不可能每次都手工拖动要显示的列。所以请问这样可以显示吗?Top
5 楼jsnicle(js_nicle)回复于 2005-09-13 15:04:30 得分 0
我使用的这个数据集,动态生成,不会在执行目录下生成.xsd文件的。但是每次数据集里面的表的字段都是一样的。Top
6 楼baibai520(拜拜)回复于 2005-09-13 15:07:43 得分 40
Public Sub SetResult(ByVal adst_result As DataSet)
If Not adst_result Is Nothing Then
adst_result.DataSetName = "customer"
adst_result.WriteXmlSchema("d:\xml\customer.xml") '把dataset寫成xml文件
Me.datagrid1.AllowSorting = False
Me.datagrid1.DataSource = adst_result.Tables(0)
Else
Me.datagrid1.DataSource = Nothing
End If
End Sub
Public Sub btn_click() Handles MyBase.click
Dim lrpt_customer As New Report_CustomerManagementQuery
lrpt_customer_management_query.SetDataSou(SetResult)
Dim lfrm_customer_report As New CusotmerManagementReport
'CusotmerManagementReport 是你放了CrystalReportViewer控件的from
lfrm_customer_report.crt_result.ReportSource = lrpt_customer
lfrm_customer_report.ShowDialog(Me)
End SubTop
7 楼baibai520(拜拜)回复于 2005-09-13 15:11:16 得分 0
你聯接了 xml文件以後,只要你的SQL語句沒有改變,那麼xml文件就沒有用了,你把xml 文件聯接以後,就可以把生成xml文件的語句注釋掉Top
8 楼jsnicle(js_nicle)回复于 2005-09-13 15:43:17 得分 0
baibai520(拜拜)
lrpt_customer_management_query.SetDataSou(SetResult) 这个没看懂SetResult
过程SetResult中的dbgrid和报表有什么关系吗?
Top
9 楼HelloBaly(爱昵)回复于 2005-09-13 15:48:47 得分 10
我觉得你在执行目录下生成.xsd文件就可以,然后你不是说字段都是一样的吗?
你在邦定的时候把你动态的那个dataSet复制到你生成的那个.xsd文件dataSet应该就可以了吧。Top
10 楼baibai520(拜拜)回复于 2005-09-13 16:09:01 得分 0
to jsnicle(js_nicle)
lrpt_customer_management_query.SetDataSou(SetResult) 是把你dataset的數據傳到報表裡面去阿Top
11 楼jsnicle(js_nicle)回复于 2005-09-14 15:00:52 得分 0
谢谢各位,问题解决,揭帖!Top




