很简单的问题

borderland 2009-06-03 12:36:18
问题很简单,不过我就是不知道怎么做
有两个dw,dw_1和dw_2,都有个name列,我想要得到dw_2 中name列和dw_1 name列一样的数据,dw_1和dw_2都是动态的
所以不好直接用sql语句where name.表1=name.表2
或者把dw_1和dw_2的数据都弄到动态表1和表2中去,但不知道有这样该写什么sql语句,这样就可以用sql语句where name.表1=name.表2了

不知道我说明白没有
...全文
102 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan20010906 2009-06-12
  • 打赏
  • 举报
回复
7楼和10楼的办法肯定可以实现的
xiaozhe_song 2009-06-05
  • 打赏
  • 举报
回复
终于明白一些楼主要做什么了~

你可以将dw2设置一个retrieve参数,这个参数就是部门Id,然后在dw_1的rowfocuschanged事件里写上:

string ls_Id
if currentrow>0 then
ls_Id=This.Object.部门Id[currentrow]
dw_2.Reset()
dw_2.Retrieve(ls_Id)
//或者
//dw_2.Retrieve(This.Object.部门Id[currentrow])
end if
a123lm 2009-06-04
  • 打赏
  • 举报
回复
要用 sql 语句 那还不如 写个存储过程 好些
softvery 2009-06-03
  • 打赏
  • 举报
回复
方式应该很多,可以通过前台过滤实现,将dw_1的name列循环放到一个字符串里,加上分隔符,然后
dw_2.setfilter("pos('"+ls_name_list+"',name)>0");
dw_2.filter;
wag_enu 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 softvery 的回复:]
方式应该很多,可以通过前台过滤实现,将dw_1的name列循环放到一个字符串里,加上分隔符,然后
dw_2.setfilter("pos('"+ls_name_list+"',name)>0");
dw_2.filter;
[/Quote]

如果是想把DW_2中的部门ID与DW_1中的部门ID相同的都罗列出来的话
试试:

int i
string bmid = '('
for i = 1 to dw_1.rowcount()
bmid += dw_1.object.部门ID[i] + ','
next
bmid = mid(bmid,1,len(bmid) - 1) + ')'

dw_2.setfilter("部门ID in "+bmid);
dw_2.filter;

永生天地 2009-06-03
  • 打赏
  • 举报
回复
做法有很多,简单写一个吧:
在dw_1的rowfocuschanged事件里写上:

string ls_filter
if currentrow>0 then
ls_filter="部门ID="+string(dw_1.object.部门ID[currentrow])
dw_2.setfilter(ls_filter)
dw_2.filter()
end if
newease 2009-06-03
  • 打赏
  • 举报
回复
你的邮箱地址?我给你发过去一个示例
borderland 2009-06-03
  • 打赏
  • 举报
回复
真是不好意思,我不是搞软件专业的,pb只是业余兴趣。说不明白让大家费解了。
我现在的问题是这样的,我通过动态选择多表后查询,得到dw_1,里面有一列,比如为部门ID ,然后想考察dw_2中该相同部门ID
的所有数据,dw_1和dw_2并没有很大的关系,只不过都有一个列为部门ID ,可能连列名也不一定一样,dw_1中为
部门信息_部门ID,dw_2中是员工信息_部门ID
谢谢各位!
WorldMobile 2009-06-03
  • 打赏
  • 举报
回复
真没搞明白,用sql应该可以取出来

用数据窗口的过滤setfilter或者find应该也可以实现你的功能
newease 2009-06-03
  • 打赏
  • 举报
回复
我想你说的还是不太明白,

现在如果只分析你描述的需求,即使能满足你的要求,也不是最优或最简单的方案

首先最好明确一下两个dw的表源,它们之间是什么关系

而且最好把你现在的需求变为最原始的需求。

比如说我想实现两个表关联,一个主表,一个从表

主表为部门信息

从表为员工信息

主表和从表之间的关系是都有部门ID

选择任意一部门,从表即显示该部门的员工信息


xiaozhe_song 2009-06-03
  • 打赏
  • 举报
回复
有个函数是:sharedata~

不知道能不能满足你的需求~

743

社区成员

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

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