在线等待,解决立刻给分

online 2003-05-19 12:28:14
两个窗口
在一个窗口中有数据窗,根据条件retrieve数据
数据窗口中的dataobject是变化的.我不想用结构传递

请问,如何将retrieve后的数据窗传到另外一个窗口的数据窗中
第一个窗口传值
OpensheetWithParm(w_gy_printpreview,dw_1,w_cs_tj,1,layered!)
第二个窗口接收
dw=create datawindow
dw=message.powerobjectparm
dw.sharedata(dw_print)
可是dw_print没有东西
...全文
107 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
devil_heart 2003-05-19
  • 打赏
  • 举报
回复
我想你是想做打印预览吧!希望能给你些思路:
第一个窗口的程序不变
第二个窗口的程序如下:
datawindow ldw_data
ldw_data = message.powerobjectparm
blob lblb_data
ldw_data.getfullstate( lblb_data )
dw_print.setfullstate( lblb_data )
PoorStu 2003-05-19
  • 打赏
  • 举报
回复
up,gz
graty 2003-05-19
  • 打赏
  • 举报
回复
dw是对象,不能这样传。
online 2003-05-19
  • 打赏
  • 举报
回复
我直接这样做出来了
谢谢大家,散分了
dw=create datawindow
dw=message.powerobjectparm
dw_print.dataobject=dw.dataobject
dw_print.settransobject(sqlca)
dw.sharedata(dw_print)
devil_heart 2003-05-19
  • 打赏
  • 举报
回复
第一个窗口变化没有关系啊,每次都会将最新的传到第二个窗口,getfullstate完全可以将数据窗口原样取出的.
我的预览程序和joss(季节...夏至)很相近,只不过用共享的窗口在某种情况时,数据无法带出来,至于是哪种情况我忘了,好像是有嵌套报表的时候,可以多试试。

我的预览程序:

powerobject lpo_object
object type_obj
datawindow ldw_data
datastore lds_data
blob lblb_data
lpo_object = message.powerobjectparm
dw_preview.setredraw(false)
type_obj = lpo_object.Typeof()
CHOOSE CASE type_obj
CASE DataWindow!
ldw_data = lpo_object
ldw_data.getfullstate( lblb_data )


CASE DataStore!
lds_data = lpo_object
lds_data.getfullstate( lblb_data )
end choose

dw_preview.setfullstate( lblb_data )

抛砖引玉,有不对的地方,还请多指教!
joss 2003-05-19
  • 打赏
  • 举报
回复
自认为我自己的打印预览做得是不错的!
谈谈我的做法!
Title = "打印预览窗口"
iuo_parm = Create uo_parm_xt_print
iuo_parm = message.powerobjectparm //得到传递的内容
ii_visible = 0 //按钮无效

Choose Case iuo_parm.is_datatype
Case "DataWindow"
dw_print.dataobject = iuo_parm.idw_data.dataobject
dw_print.settransobject(sqlca)
iuo_parm.idw_data.sharedata(dw_print) //将带来的不可视对象中的数据窗口内容共享给打印窗口
Case "DataStore"
dw_print.dataobject = iuo_parm.ids_data.dataobject
dw_print.settransobject(sqlca)
iuo_parm.ids_data.sharedata(dw_print)
Case Else
gf_sys_msg(10088)
Close(this)
End Choose

Triggerevent("ue_resize")
wf_visible_type("start") //显示等待
//dw_print.visible = false

PostEvent("ue_postevent")

以上脚本是我的打印预览窗口的OPEN事件!
效果真的很好!
原理:
OPENWITHPARM+不可视用户对象+数据窗口共享 技术
优点:
灵活多变,适应性强!

希望对大家都有用处!!
(到目前为止本人认为这个技术是比其他打印预览技术都要来得好!效果也好!)
online 2003-05-19
  • 打赏
  • 举报
回复
to devil_heart(心魔)
实际上第一个窗口的dataobject是变化的
所以ldw_data.getfullstate( lblb_data )只能得到数据,但是没有dataobject
online 2003-05-19
  • 打赏
  • 举报
回复
to devil_heart(心魔)
谢谢

但是ldw_data = message.powerobjectparm接收后,用
ldw_data.getfullstate( lblb_data )可以得到数据窗的数据和表的样式吗??
还有个问题,like如何写,这样好像不对
if bh="0001" then
dw_1.retrieve(sj1,sj2,'%')
else
dw_1.retrieve(sj1,sj2,'%bh%')
end if

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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