高难度的问题!恭请Herry,思归,和海波三位大侠及其他星级高手入内!中间层为Web Service的三层结构的水晶报表问题!有兴趣的也可以进来

baqiao1211 2003-10-19 09:20:01
我的结构分为三层
客户端:winForm窗体
中间层:Web Service
服务器:SQL SERVER
中间层写可一个LoadPriXiaoShouHeTong方法用来取数据:
LoadPriXiaoShouHeTong(ByVal HeTongHao As String, ByVal MaiFang As String, ByVal Ds As DataSet) As DataSet
Sql1="Select * from....."
Sql2="Select * from....."
Sql3="Select * from....."
.............
Adp.Fill(Ds, "tblXiaoShouHeTongZongBiao")
Adp2.Fill(Ds, "tblXiaoShouHeTongXiBiao")
Adp3.Fill(Ds, "tblWaiXiaoKeHu")
.....
return Ds '返回DS
客户端在预览报表时调用该方法:
Dim DsPrt As New DsPrt()'DsPrt是Rpt文件中用到的Dataset.xsd组件的名字
Dim CrtXiaoShou As New CrtXiaoShou() 'CrtXiaoShou是rpt报表文件名
DsPrt = SellContract.LoadPriXiaoShouHeTong(Trim(Frm.Text合同 号.Text), Trim(Frm.Text买方.Text), DsPrt)
系统报错:转换无效。当然是指从dataset类到DsPrt类的转换无效。
我跟踪显示:
在中间层,DS的确取到了数据。
然而在客户端却无法完成从dataset类到DsPrt类的转换。
是不是xsd组件不能基于SOAP协议利用XML传输啊?
如何才能把dataset中的数据填充到dataset.xsd数据集中?
注意:同样的方法我把LoadPriXiaoShouHeTong写在客户端Model里面就可 以!可是这就成两层了,呵呵!
...全文
30 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
haibodotnet 2003-10-19
  • 打赏
  • 举报
回复
强制类型转换!
DsPrt = SellContract.LoadPriXiaoShouHeTong(Trim(Frm.Text合同 号.Text), Trim(Frm.Text买方.Text), DsPrt) as DsPrt
wideroad 2003-10-19
  • 打赏
  • 举报
回复
呵呵!一个星级高手都没来1
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
解决了。。。,一会公布答案
52juanjuan 2003-10-19
  • 打赏
  • 举报
回复
go
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
楼上的大哥,您讲的很有道理啊,我马上去试试,应该可以吧?我也不清楚,先试试再说。。。
Kain 2003-10-19
  • 打赏
  • 举报
回复
是否可以吧水晶报表作为服务器端,由客户端调用。
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
楼上的我没有往webservice中添加水晶报表啊,只是在webservice里写了一个从数据库中提取数据的方法。然后在客户端调用。
Kain 2003-10-19
  • 打赏
  • 举报
回复
在webservice工程添加水晶报表时,系统会提示你是否将其作为服务器端一起发布!
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
谢谢海波大哥,您的方法比我的好,我是在WEB Service中间层上添加引用DsPrt类,然后用adapter直接填充DsPrt的一个实例,然后让方法返回DsPrt类,然后在客户端调用方法
DsPrt = SellContract.LoadPriXiaoShouHeTong(Trim(Frm.Text合同 号.Text), Trim(Frm.Text买方.Text), DsPrt),和您的是一个道理吧?

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧