起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: Mephist

帮忙看看这段代码哪里有问题??谢谢 **

[复制链接]
 楼主| 发表于 2005-12-29 10:48:31 | 显示全部楼层
顶一下。。。
回复 支持 反对

使用道具 举报

发表于 2005-12-29 11:53:35 | 显示全部楼层
TSQLDataSet(DataSetAsset_Card_Data).GetLookupData('UseMan').Refresh ;
即便你这么做,它会到数据库中重新取数据,但它始终用的是原始SQL

另,你这个需求,根本不需要写代码,如果那个部门是你输入的,就在查找定义中使用挡墙数据集的字段值做为条件,如果是当前用户的部门,就用业务参数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-29 19:59:30 | 显示全部楼层
用当前数据集作条件的话,只能取到直接下属的人员,找不到子部门下的人员的,我要根据部门过滤出该部门下包括子部门的所有人员
回复 支持 反对

使用道具 举报

发表于 2005-12-30 14:53:45 | 显示全部楼层
是这样的,首先你理解一下平台的机制
首先,数据集在打开的时候,就把该数据集的定义数据查找的记录一起取到本地,后面不会再去服务端刷新数据。对于你更改查找的SQL是没有用的,除非关闭再打开当前的数据集。
当然,如果选中查找属性的 自动刷新 选项,查找的数据在再次下拉的时候会跟服务器比较如果有差异那么它会重新取差异的记录。

第二、
lFilter := 'where fpath like ''%\'+ Text +'.dpt%'' and fkind = ''.psm'''; 这句话是有问题的,前面不要百分号,也没有.dpt,因为你到 TORGSYSTEM 表去看 fpath 没有.dpt 的,参考代码如下:

var
ltext : String;
begin
  ltext := 'ROOT\JG1.OGN\BM1';
  TSQLDataSet(zzjgDataSet.DataSet).SQLFilter := 'fpath like ''\'+ lText +'%'' and fkind = ''.PSM''';
  TSQLDataSet(zzjgDataSet.DataSet).SQLFiltered := true;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-30 15:48:10 | 显示全部楼层
对于第一点,是不是说选中查找属性的自动刷新后,不用关闭数据集也能更改查找条件 ??
至于第二点, torgsystem 里面的fpath 是有 .dpt的,sql 语句没有问题, 我的text 取的是部门id ,而不是url, 比如说 BM1
回复 支持 反对

使用道具 举报

发表于 2005-12-30 15:58:21 | 显示全部楼层
对于第一点,是不是说选中查找属性的自动刷新后,不用关闭数据集也能更改查找条件 ??

你还是没有理解我的意思?这是两个概念,选中自动刷新,如果查找的数据集,就是后台表中的数据发生变化时,在下拉的时候,客户端会自动检查,自动同步,这是建立在不更改查找条件的的情况下

对于更改条件,一定要关闭当前的数据集,不是查找的数据集,因为他是在打开当前数据集的时候,查找的数据就取到本地了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-30 16:06:42 | 显示全部楼层
懂了
那要怎样才能实现根据部门找出包括子部门下的所有人员呢??

14楼那个代码 ???
回复 支持 反对

使用道具 举报

发表于 2005-12-30 16:21:00 | 显示全部楼层
哦,看差了是有的,这样你跟踪一下代码看看 TSQLDataSet(DataSetAsset_Card_Data).BizFieldByName('UseMan').LookupDef.SQL.Text  这个值是什么。

另外有点要说明的就是要理解更改查找条件的相关机制
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-30 16:22:53 | 显示全部楼层
这个值是没有问题的,加上了过滤条件

另外一个帖子???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-30 16:24:03 | 显示全部楼层
试过了,关闭数据集确实能更改,但是这样肯定不行的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 17:53 , Processed in 0.036871 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表