起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 146|回复: 6

【结贴】自定义数据集的问题?**

[复制链接]
发表于 2008-9-10 11:40:03 | 显示全部楼层 |阅读模式
请问我现在做了这样的操作:
1.在窗体里添加了一个自定义数据集,同时在里面定义了三个数据字段,如图1所示。

1.jpg

79.9 KB, 下载次数: 109

回复

使用道具 举报

 楼主| 发表于 2008-9-10 11:44:51 | 显示全部楼层
2.我用一个DataGrid来显示这个自定义数据集,
3.其中temp字段我设置了一个Checkbox来显示,我希望能够通过单击DataGrid的一条记录来勾选这条记录,在DataGrid的OnClick事件中的代码我是这样写的:
     if DataSetYYZDYSJJ.Eof then exit;
     if  DataSetYYZDYSJJ.RecordCount>0 then
     begin
          DataSetYYZDYSJJ.Edit;
          if DataSetYYZDYSJJ.FieldByName('temp').AsString='F' then
             DataSetYYZDYSJJ.FieldByName('temp').AsString:='T'
          else
             DataSetYYZDYSJJ.FieldByName('temp').AsString:='F';
     end;
4.通过点击一个RadioButton来全选或者取消选择,在RadioButton的onClick的事件中的代码如下:
  if DataSetYYZDYSJJ.Eof then exit;
  if RadioButton1.Checked then
  begin
       DataSetYYZDYSJJ.Last;
       while not DataSetYYZDYSJJ.bof do
       begin
            DataSetYYZDYSJJ.edit;
           DataSetYYZDYSJJ.FieldByName('temp').AsString:='T';
            DataSetYYZDYSJJ.Refresh;
            DataSetYYZDYSJJ.Prior;
       end;
       DataSetYYZDYSJJ.first;
  end ;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-10 11:48:16 | 显示全部楼层
问题 :  
1.DataGrid的数据展开后,单击DataGrid中的一条记录并未选中,但是多次单击DataGrid的其他记录再来勾选这条记录则能够被选中。
2.DataGrid的数据展开后,单击RadioButton并未全选,但是多次点击DataGrid后又可以全选成功了。
请问上面这两个问题有办法能够解决没?
回复 支持 反对

使用道具 举报

发表于 2008-9-10 11:50:08 | 显示全部楼层
更正一下2楼的,
3.其中temp字段我设置了一个Checkbox来显示,我希望能够通过单击DataGrid的一条记录来勾选这条记录,在DataGrid的OnClick事件中的代码我是这样写的:
     if DataSetYYZDYSJJ.Eof then exit;
     if  DataSetYYZDYSJJ.RecordCount>0 then
     begin
          DataSetYYZDYSJJ.Edit;
          if DataSetYYZDYSJJ.FieldByName('temp').AsString='F' then
             DataSetYYZDYSJJ.FieldByName('temp').AsString:='T'
          else
             DataSetYYZDYSJJ.FieldByName('temp').AsString:='F';
     end;
这里不需要你用代码去给他赋值的。

4.通过点击一个RadioButton来全选或者取消选择,在RadioButton的onClick的事件中的代码如下:
  if DataSetYYZDYSJJ.Eof then exit;
  if RadioButton1.Checked then
  begin
       DataSetYYZDYSJJ.Last;
       while not DataSetYYZDYSJJ.bof do
       begin
            DataSetYYZDYSJJ.edit;
           DataSetYYZDYSJJ.FieldByName('temp').AsString:='T';
            DataSetYYZDYSJJ.Refresh;//取消这句
            DataSetYYZDYSJJ.Prior;
       end;
       DataSetYYZDYSJJ.first;
  end ;
另外,循环赋值的时候最好加上dataset.disablecontrols,循环结束后dataset.enablecontrols;
回复 支持 反对

使用道具 举报

发表于 2008-9-10 11:51:05 | 显示全部楼层
3楼的问题应该是
datagrid的属性设置问题。具体可以搜索一下论坛
回复 支持 反对

使用道具 举报

发表于 2008-9-10 11:53:03 | 显示全部楼层
设置选中OptionsBehavior--->edgoImmediateEditor和OptionsEx---->egoShowButtonAlways
看看结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-10 15:24:56 | 显示全部楼层
谢谢哦   结贴吧
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 02:28 , Processed in 0.041104 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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