起步软件技术论坛-X3

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

【结贴】文档关联的问题??***

[复制链接]
发表于 2009-5-13 10:19:20 | 显示全部楼层
稍等,这个现在没有时间,下午给你做个例子吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-13 10:21:44 | 显示全部楼层
好的,谢谢,在线等
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-13 15:13:57 | 显示全部楼层
尚工有结果了吗?
回复 支持 反对

使用道具 举报

发表于 2009-5-13 15:36:48 | 显示全部楼层
现在没有时间,我给你说说他的意思吧,你照着20楼方法做一下
上面的那个连接中的意思是在文档关联表中单独建立一个字段用来与另外一个附件建立关联,
过程是这样的:
首先建立一个  FCustomFilter: String;这样的变量用来存第2个附件的主键,当第2个表的数据集打开的时候对这个变量赋值,并且用这个变量从文档关联表中过滤一下附件,就是这段:
procedure TRelevancyGrid.SetDocRelevancyFilter(AFilter: String);  //实现不同的显示框过滤
begin
  if FCustomFilter <> AFilter then
  begin
    FCustomFilter := AFilter;
    DataSetDocRelevancy.SQLFilter := '标记字段名' + FCustomFilter;
    DataSetDocRelevancy.SQLFiltered := true;
  end;
end;

当你在插入第2个表的附件的时候往 文档关联表中你定义的那个字段中把你的主键添加进去就可以了,就是这段:
procedure TRelevancyGrid.NewDocFromLocal(const AOSFileName: string);  //修改原过程,于用保存标记(“从我的电脑引入”菜单)
begin
    ...
    DataSetDocRelevancy.FieldByName('FFILESTATE').AsInteger := TDOCRELEVANCYINFO2.FileState_New;   //原代码
    DataSetDocRelevancy.FieldByName('FLBJ').AsString := FCustomFilter;  //增加的代码
    DataSetDocRelevancy.Post;   //原代码
    ...
end;

procedure TRelevancyGrid.NewDoc(const AFileName: string;
  AFileAttribute: TFileAttribute);//修改原过程,于用保存标记(“新建文档”菜单)
begin
  ……
    DataSetDocRelevancy.FieldByName('FSUBDIRNAME').AsString := SubDirName; //原代码
    DataSetDocRelevancy.FieldByName('FLBJ').AsString := FCustomFilter;  //增加的代码
    DataSetDocRelevancy.Post; //原代码
  ……
end;

你先照着做着,如果有不明白的地方你贴出来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-13 16:26:28 | 显示全部楼层
关联主键定义 里定义的是表1的BH字段。
新增的那个字段 ,记录的是我表2某条编号的值(假如为B2)。

不可能在表1过滤出B2吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-13 16:28:01 | 显示全部楼层
尚工你帮我做个简单的例子吧。
那段代码我昨天试过了。
实在想不通楼上的问题。
明天就要交付了,急
回复 支持 反对

使用道具 举报

发表于 2009-5-13 17:14:33 | 显示全部楼层
电话沟通过,有问题也可以打电话
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-13 17:38:28 | 显示全部楼层
刚测出问题
原来在DataSetDocRelevancy.FieldByName('FLBJ').AsString := FCustomFilter;  //增加的代码
这里,FCustomFilter竟然为空。怪不得看不出效果。
怎么到这里就为空了,反反复复看了,不得其解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-14 08:54:03 | 显示全部楼层
今天要交付了,急啊,帮我远程看一下吧
回复 支持 反对

使用道具 举报

发表于 2009-5-14 08:56:57 | 显示全部楼层
要不就自己定义个业务参数,在SetDocRelevancyFilter中对参数赋值,然后用这个参数对DataSetDocRelevancy.FieldByName('FLBJ').AsString 赋值。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 05:54 , Processed in 0.041621 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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