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

baqiao1211 2003-10-19 09:15:27
我的结构分为三层
客户端: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 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
baqiao1211 2003-10-21
  • 打赏
  • 举报
回复
WEBSERVICE里面是不能返回DATASET这种类型
----------------------------------------------
TO:qcf2003(qcf) :
你讲的不对,不仅能返回,而且很能!
haibodotnet 2003-10-20
  • 打赏
  • 举报
回复
TO:qcf2003(qcf)
已经很多次,已经很多人,这样做了……
hc_z 2003-10-20
  • 打赏
  • 举报
回复
学习
qcf2003 2003-10-20
  • 打赏
  • 举报
回复
WEBSERVICE里面是不能返回DATASET这种类型
haibodotnet 2003-10-20
  • 打赏
  • 举报
回复
强制类型转换最简单!
如果可行……
Montaque 2003-10-20
  • 打赏
  • 举报
回复
Try 中间层返回 DsPrt 类型
Kain 2003-10-19
  • 打赏
  • 举报
回复
有分还是要的
jonescheng 2003-10-19
  • 打赏
  • 举报
回复
帮你顶一下吧。我也做了类似的架构。可是没有用到水晶报表。
有空大家交流一下 QQ:110420300
haibodotnet 2003-10-19
  • 打赏
  • 举报
回复
强制类型转换!
DsPrt = SellContract.LoadPriXiaoShouHeTong(Trim(Frm.Text合同 号.Text), Trim(Frm.Text买方.Text), DsPrt) as DsPrt
szch 2003-10-19
  • 打赏
  • 举报
回复
up
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
解决了,可是没人顶,我怎么给分啊?快来顶啊。。。
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
这是我的解决办法:拿出来大家共享:
我是在WEB Service中间层上添加引用DsPrt类,然后用adapter直接填充DsPrt的一个实例,然后让方法返回DsPrt类,然后在客户端调用方法
DsPrt = SellContract.LoadPriXiaoShouHeTong(Trim(Frm.Text合同 号.Text), Trim(Frm.Text买方.Text), DsPrt)
海波大哥的方法应该也可以,还没来及试。
baqiao1211 2003-10-19
  • 打赏
  • 举报
回复
帮你顶一下吧。我也做了类似的架构。可是没有用到水晶报表。
有空大家交流一下 QQ:110420300
----------------------------------------------
有时间多多交流 QQ 185234427
E-mail:Baqiao1211@263.net
谢谢大家捧场!

1,178

社区成员

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

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