起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 190|回复: 9

【结】查询条件为业务参数的docview怎么不显示

[复制链接]
发表于 2008-3-7 18:27:26 | 显示全部楼层 |阅读模式
http://bbs.justep.com/forum.php?mod=viewthread&tid=3289 有点类似,我的代码[/url]
procedure TDLXRYBD.FormDocCreate(Sender: TObject);
begin
     Label1.Caption := DataSetBroker2.DataSet.FieldByName('XMMC').AsString;
     docview2.Doc.Close;
end;

procedure TDLXRYBD.DataGrid1DblClick(Sender: TObject);
var
   CurUser: Business.Model.TBizParam;
   lBizURL1: TBizURL;
begin
   lBizURL1 := TBizURL.Create;
   lBizURL1.URL := 'Biz:\XMGLXTYWKJ\GGYWCSZ.PARAMGROUP';

   CurUser := SystemUtils.TContextUtils.GetParam(Self.Context,lBizURL1,'RYBSCS');
   if CurUser<>nil then
   begin
     CurUser.Value := DataGrid1.DataSource.DataSet.FieldByName('RYBS').AsString;
      DocView2.Doc.Open(TDocMode.dmEdit, DocView2);
     DocView2.ReFreshDoc(true);
   end;
end;
datagrid1是人员列表,docview2是显示介绍每个人员详情的表格,这个表格的数据集设置的条件是一个业务参数,可是当我把条件设为具体值时显示正常,业务参数时docview显示的就没有取上值得样子!
回复

使用道具 举报

发表于 2008-3-7 19:27:18 | 显示全部楼层
楼主在DocView2刷新以后刷新一下他下面的数据集看一下呢?
BizURL1没有free
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 08:56:07 | 显示全部楼层
docview2连接的是一个表单文档,表单中插入的数据集区域,怎么刷新他下面的数据集阿?
回复 支持 反对

使用道具 举报

发表于 2008-3-10 09:18:31 | 显示全部楼层
可以在窗体上放置一个datasetbroker,然后连接到这个docview所使用的信息上选择对应的数据源,然后刷新。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 10:13:57 | 显示全部楼层
上面这个问题解决了,我想问一下如何在窗体打开的时候让这个业务参数自动获取datagrid第一条记录的值,默认显示第一个人员的详细信息!
主要是想问一下怎么取dataset的一条记录
回复 支持 反对

使用道具 举报

发表于 2008-3-10 10:53:27 | 显示全部楼层
dataset.first
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-11 09:05:26 | 显示全部楼层
DataGrid1.DataSource.DataSet.Open;
     DataGrid1.DataSource.DataSet.First;
     while not DataGrid1.DataSource.DataSet.Eof do
       begin
          FirstUser.Value := DataGrid1.DataSource.DataSet.FieldByName('RYBS').AsString;
          DataSetBroker3.DataSet.Refresh;
          DataSetBroker3.DataSet.Next;
       end;
first是这样的用法吗?可是我不需要循环阿!
回复 支持 反对

使用道具 举报

发表于 2008-3-11 10:24:28 | 显示全部楼层
当然不用循环了,不知道楼主想实现什么需求。如果是想实现左边是datagrid点击的时候在右边的docview中显示该条记录的详细信息,如果使用的同一数据集那就什么都不用做了会自动关联显示。参考业务模型\业务系统\客户关系管理(CRM)\客户管理\用户基本信息\用户联系人网格

如果不在同一个数据集,那就在datagrid的click事件中把选中的记录关键信息作为详细记录使用数据集的filter过滤条件过滤出来就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 11:15:20 | 显示全部楼层
我属于第二种情况,通过点击datagrid中的某条记录显示其的详细信息的功能实现了,可是在页面刚打开的时候,我想让docview默认显示datagrid的第一条记录的详细信息!
DataGrid1.DataSource.DataSet.Open;
     DataGrid1.DataSource.DataSet.First;
     FirstUser.Value := DataGrid1.DataSource.DataSet.FieldByName('RYBS').AsString;
     DataSetBroker3.DataSet.Refresh;
     DataSetBroker3.DataSet.Next;
   
我是不是直接这样写就对了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-12 17:07:34 | 显示全部楼层
这样写代码我想要实现的就实现了,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 14:52 , Processed in 0.041288 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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