起步软件技术论坛-X3

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

【结贴】能否按列展开数据集?**

[复制链接]
发表于 2008-2-4 15:36:30 | 显示全部楼层
1、不要把UserFilter 写到数据集的AfterRefresh上
2、UserFilter  跟 Filter 和SQLFilter  不一样,这个方法没有开关。(对你这句代码感觉比较怪,好像是在设置UserFilter  的开关)
3、进行Close 和 Open 数据集,就不需要refresh了,

所以,只需要在Button1Click 上,直接写
   DataSetZHYB.UserFilter := 'Y = '''+DataSetCXSJJ.FieldByName('Y').AsString+'''';
   DocViewZBYWXX_ZHYBB.Doc.Close;
     DocViewZBYWXX_ZHYBB.Doc.Open(TDocMode.dmEdit,DocViewZBYWXX_ZHYBB);
这样就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-4 15:57:08 | 显示全部楼层
还是报同样的错误
procedure TMainForm.Button1Click(Sender: TObject);
begin
     TSQLDataSet(DataSetBroker1.DataSet).UserFilter := 'FDYZB.Y = '''+TSQLDataSet(DataSetBroker2.DataSet).FieldByName('Y').AsString+'''';
     TSQLDataSet(DataSetBroker1.DataSet).Filtered := True;
     DocViewZBYWXX_ZHYBB.Doc.Close;
     DocViewZBYWXX_ZHYBB.Doc.Open(TDocMode.dmEdit,DocViewZBYWXX_ZHYBB);
end;

在下面一句报
     TSQLDataSet(DataSetBroker1.DataSet).UserFilter :=
回复 支持 反对

使用道具 举报

发表于 2008-2-4 16:34:03 | 显示全部楼层
FDYZB.Y 这个是啥?是表.字段ID吗?还是就是一个字段的ID?
还有,你看一下UserFilter 后面传进去的是啥?是你要的那?对不?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-4 16:51:04 | 显示全部楼层
名称                                                                     值
TSQLDataSet(DataSetBroker2.DataSet).FieldByName('Y').AsString                                         2008
'FDYZB.Y = '''+TSQLDataSet(DataSetBroker2.DataSet).FieldByName('Y').AsString+''''             FDYZB.Y='2008'
TSQLDataSet(DataSetBroker1.DataSet).UserFilter                                                                   空字符串

奇怪,等号右边是有值的,怎么左边是空呢?
回复 支持 反对

使用道具 举报

发表于 2008-2-4 17:33:06 | 显示全部楼层
报的啥错误?把原始的错误信息贴出来看看
另外,用SQLFilter呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-5 09:00:04 | 显示全部楼层
报错的内容和40楼的是一样的。

procedure TMainForm.Button1Click(Sender: TObject);
begin
     TSQLDataSet(DataSetBroker1.DataSet).SQLFilter := 'FDYZB.Y = '''+TSQLDataSet(DataSetBroker2.DataSet).FieldByName('Y').AsString+'''';
     TSQLDataSet(DataSetBroker1.DataSet).Filtered := True;
     DocViewZBYWXX_ZHYBB.Doc.Close;
     DocViewZBYWXX_ZHYBB.Doc.Open(TDocMode.dmEdit,DocViewZBYWXX_ZHYBB);
end;

使用了SQLfilter后还是报错,这个“CLRModel.bpl”是什么东西啊,上次在aftercommit刷新数据集的时候好像也报这个错误~~

能远程看看么?

baocuo.jpg

9.38 KB, 下载次数: 187

回复 支持 反对

使用道具 举报

发表于 2008-2-5 09:17:54 | 显示全部楼层
DataSetBroker1.DataSet  连的是什么类型的数据集
回复 支持 反对

使用道具 举报

发表于 2008-2-5 09:19:35 | 显示全部楼层
报错停在那一句上?

另外,用SQLFilter ,下面的Filtered也要用SQLFiltered
TSQLDataSet(DataSetBroker1.DataSet).SQLFiltered := True;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-5 09:31:58 | 显示全部楼层
最初由 lixy 发布
[B]DataSetBroker1.DataSet  连的是什么类型的数据集 [/B]


是标准数据集

这个问题最好还是远程给看一下的好,从头到尾都是这个错误,还是年前给解决了吧:)
.                                                                                                                                                                              .
.                                                                                                                                                                              .

baocuo.jpg

38.88 KB, 下载次数: 184

回复 支持 反对

使用道具 举报

发表于 2008-2-5 09:47:57 | 显示全部楼层
出这个错误一般是有大的语法错误。比如类型转换的类型写的错误。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 03:04 , Processed in 0.042481 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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