起步软件技术论坛-X3

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

【搞定】关于多选的问题**

[复制链接]
发表于 2007-12-17 16:07:56 | 显示全部楼层 |阅读模式
1.先在要进行选择的数据集上建好了数据字段,并在OnClick事件里写入了调用窗体代码
2.被调用的窗体是主从关系树,然后在每个DataGrid上 设置了CheckBox字段,而且代码都编好了。
但现在好像赋值语句不起作用
代码:
   procedure TGSCK.init;
var
  i: integer;
begin
  DataSetBroker6.DataSet.DisableControls;
DataSetBroker6.DataSet.First;
  try
    for i := 0 to DataSetBroker6.DataSet.RecordCount-1 do
    begin
      DataSetBroker6.DataSet.Edit;
      DataSetBroker6.DataSet.FieldByName('XZ').AsInteger := 0;
     DataSetBroker6.DataSet.Next;
    end;
  finally
    DataSetBroker6.DataSet.EnableControls;
    DataSetBroker6.DataSet.First;
  end;
end;

procedure TGSCK.Button1Click(Sender: TObject);
var
  i: integer;
begin
  DataSetBroker6.DataSet.First;
  for i := 0 to DataSetBroker6.DataSet.RecordCount - 1 do
  begin
    if DataSetBroker6.DataSet.FieldByName('XZ').AsString = 1 then
    begin
      DataSetBroker7.DataSet.Append;
      DataSetBroker7.DataSet.FieldByName('XH').asString := '1';
      DataSetBroker7.DataSet.FieldByName('GSBH').asString :=DataSetBroker6.DataSet.FieldByName('GSBH').asString;
    end;
    DataSetBroker6.DataSet.Next;
  end;
end;
回复

使用道具 举报

发表于 2007-12-17 16:26:43 | 显示全部楼层
设置断点跟踪代码。看看时机和逻辑是否对
回复 支持 反对

使用道具 举报

发表于 2007-12-17 16:46:05 | 显示全部楼层
好象是没post
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 17:24:09 | 显示全部楼层
我具体说一下我们的需求吧,因为设置了一些东西后,老是出现循环引用的问题,您帮忙看看能不能给出一个好一点的思路或方法,谢谢!
需求:如下图,想在弹出窗体里进行多选,而且想如果可能的话每一个DataGrid上都可以进行选择,这几个DataGrid都分别邦定了一个数据集,并且都设置了主从关系,窗体上引用的主从关系树控件。能实现吗?

概算多选.jpg

282.95 KB, 下载次数: 123

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-18 09:56:28 | 显示全部楼层
顶一下!
回复 支持 反对

使用道具 举报

发表于 2007-12-18 13:42:16 | 显示全部楼层
请给我们来个电话吧,需要电话沟通一下,因为对你的描述,实在看的有点晕
“如果可能的话每一个DataGrid上都可以进行选择,这几个DataGrid都分别邦定了一个数据集,并且都设置了主从关系,窗体上引用的主从关系树控件。”

1、如果可能的话每一个DataGrid上都可以进行选择,这几个DataGrid都分别邦定了一个数据集,
如果几个DataGrid连接的是一个数据集,那么所有的DataGrid显示记录都一样,请问用多个DataGrid的表现的意义在哪里?

2、并且都设置了主从关系,
哪个跟哪个设置主从

你是要实现在“合同清单明细表”的这个文档上,点击“概算编号”这个字段,弹出“概算管理”这个窗体,然后在这个窗体上进行选项,把“选择”这个字段为True的记录记录下来,是这样吗?
那你直接通过判断选中的字段是否true就可以了,看到你1楼的
procedure TGSCK.Button1Click(Sender: TObject);
这个过程好像在处理这个,你点击Button1了吗?执行了这段代码了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-18 15:27:21 | 显示全部楼层
现在从一个数据集多选可以实现了,现在我们想在不同的数据集上做多选:如代码
procedure TGSNRXZCT.init;
var
  i: integer;
begin
     DataSetBroker6.DataSet.DisableControls;
     DataSetBroker6.DataSet.First;
     try
      for i := 0 to DataSetBroker6.DataSet.RecordCount-1 do
       begin
        DataSetBroker6.DataSet.Edit;
        DataSetBroker6.DataSet.FieldByName('XZ').AsInteger := 0;
        DataSetBroker6.DataSet.Next;
      end;
    finally
    DataSetBroker6.DataSet.EnableControls;
    DataSetBroker6.DataSet.First;
    end;
end;
这个是DataSetBroker6的,我们现在是DataSetBroker1-6怎么可以用进行循环调用
回复 支持 反对

使用道具 举报

发表于 2007-12-18 16:42:08 | 显示全部楼层
已经电话沟通过了,正在等楼主反馈结果,

建议用户用一个数据集来实现左边的树,现在用户用了6个数据集来组织的
且,左边也用一个数据集来表现,不需要用这么多的数据集来表现,让用户操作“选择”这个字段
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-19 14:49:02 | 显示全部楼层
用您说的方法解决了,这样不需要用“选择”这个字段了,直接在字段的查找属性里设置为树形查找就可以了,结帖吧,谢谢了
回复 支持 反对

使用道具 举报

发表于 2007-12-19 15:05:34 | 显示全部楼层
ok
,谢谢反馈
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-2 15:41 , Processed in 0.040862 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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