起步软件技术论坛-X3

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

关于数据导航 DataNavigator 的用法

[复制链接]
发表于 2004-4-6 13:28:35 | 显示全部楼层 |阅读模式
DataNavigator在使用中有很多技巧,举例说明如下:

1、可以通过设置DataNavigator的ShowCaptions属性,以便用户使用

2、可以设计一组按钮,用ToolBar或者BitButton都可以,并连接系统提供的Action直接处理相应DataSet的Insert、Post等操作,以达到DataNavigator的效果

3、可以在DataNavigator的BeforeAction事件中截获到用户操作的那个按钮,代码示例如下:

  case TBizDataSetAction(Sender).ID of
      BizActnConsts.ActionDataSetFirst: ShowMessage('ActionDataSetFirst'); { 最前 }
      BizActnConsts.ActionDataSetPrior: ShowMessage('ActionDataSetPrior'); { 向前 }
      BizActnConsts.ActionDataSetNext: ShowMessage('ActionDataSetNext'); { 向后 }
      BizActnConsts.ActionDataSetLast: ShowMessage('ActionDataSetLast'); { 最后 }
      BizActnConsts.ActionDataFetch: ShowMessage('ActionDataFetch'); { 取下一页 }
      BizActnConsts.ActionDataFetchAll: ShowMessage('ActionDataFetchAll'); { 全部取 }
      BizActnConsts.ActionDataSetRefresh: ShowMessage('ActionDataSetRefresh'); { 刷新 }
      BizActnConsts.ActionDataSetFilter: ShowMessage('ActionDataSetFilter'); { 过滤 }
      BizActnConsts.ActionDataSetInsert: ShowMessage('ActionDataSetInsert'); { 插入 }
      BizActnConsts.ActionDataSetCopyInsert: ShowMessage('ActionDataSetCopyInsert'); { 插入复制 }
      BizActnConsts.ActionDataSetAppend: ShowMessage('ActionDataSetAppend'); { 新增 }
      BizActnConsts.ActionDataSetCopyAppend: ShowMessage('ActionDataSetCopyAppend'); { 新增复制 }
      BizActnConsts.ActionDataSetCancel: ShowMessage('ActionDataSetCancel'); { 取消 }
      BizActnConsts.ActionDataSetDelete: ShowMessage('ActionDataSetDelete'); { 删除 }
      BizActnConsts.ActionDataSetSave: ShowMessage('ActionDataSetSave'); { 保存 }
    ......
  end

4、如果想更改 DataNavigator 中的某个按钮的 Caption,可以通过如下代码:
TToolButton(DataNavigator.Controls[0]).Caption:='首条';

5、如果需要屏蔽数据导航的下拉菜单,只需要把下拉的按钮项在DataNavigator的 VisibleButton 中去掉就可以了。

6、ActionDataSetCancelUpdates,它执行的动作是"取消所有修改",即DataSet.CancelUpdate
回复

使用道具 举报

发表于 2004-6-26 17:14:41 | 显示全部楼层

如何获取数据导航条当前感知的数据集

procedure TMainForm.SpeedButton1Click(Sender: TObject);
var
  ls: string;
begin
  ls := TBizDataSetAction(DataNavigator.Buttons[0].Action).CurrentDataSource.DataSet.Name;
  dialogs.ShowMessage(ls);
end;


注意,这里面使用的是SpeedButton,因为SpeedButton不会获得焦点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-12-10 14:26:09 | 显示全部楼层

数据导航条(DataNavigator) 不感应数据集的解决方法

数据导航条不感应数据集有多种情况:

1、连接的数据集没有打开;

2、焦点没有在数据感知控件上;

3、当前数据集如果没有增加、删除等等操作权限,那么增加、删除等按钮也是灰色的;

4、数据导航的属性 AutoDetect  没有选中,且 DataSource 没有连接任何数据源
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-21 10:28:10 | 显示全部楼层

DataNavigator中的插入、插入复制、新增、新增复制四个按钮并列摆放,而不是叠放

步骤:
1、自己定义一个界面方案
2、从 系统空间 - 默认用户界面 - 工具栏 中继承“数据集导航条”
3、修改继承后的“工具条”的“数据集导航条”,清空【tlbAppend】的【DropDownMenu】属性,
4、新增相应的TOOLBUTTON,然后链接相应的Action

<用户界面方案,请参考:http://bbs.justep.com/forum.php?mod=viewthread&tid=975>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-22 09:10:43 | 显示全部楼层

如何从感知特殊的数据集切换到自动感知数据集

参考代码如下:
DataNavigator1.AutoDetect:=true;
DataNavigator1.Refresh;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-22 10:15:59 | 显示全部楼层

点击DataNavigator的删除按钮时,弹出删除确认对话框

选中DataNavigator的属性 ConfirmDelete 属性就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-14 17:12:59 | 显示全部楼层

望远镜下拉的字段只能是物理字段,

望远镜下拉的字段只能是物理字段,其他的字段,例如临时字段、计算字段都不支持
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-22 23:29 , Processed in 0.037343 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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