起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 237|回复: 8

【结】如何修改数据集字段的显示名称

[复制链接]
发表于 2010-4-28 15:57:23 | 显示全部楼层 |阅读模式
创建代码如下,此时对DisplayName 的复制是OK生效的
  for I := 0 to AFieldCount - 1 do
  begin
    lField := TUserDataField.Create(FUserDataSet);
    lField.DataSet := FUserDataSet;
    lField.ID := 'TempID' + SysUtils.IntToStr(I);
    lField.DisplayName := 'TempDisplayName'+ SysUtils.IntToStr(I);
    lField.DataType := TDataType.dtString;
    lField.Size := 32;
    lField.Alignment := TAlignment.taRightJustify;
  end;

当需要动态再修改时候,就不管用了,求解,代码如下:
  for I := 0 to FUserDataSet.FieldCount - 1 do
    TUserDataField(FUserDataSet.Fields[I]).DisplayName := FUserDataSet.Fields[I].AsString;
回复

使用道具 举报

发表于 2010-4-28 16:25:50 | 显示全部楼层
调用一下docview的RefreshDoc方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-28 16:36:40 | 显示全部楼层
我这个没用到信息和文档,直接代码创建的数据集和字段,最后再连到一个缺省的DataGrid上的,再给看看呵呵
回复 支持 反对

使用道具 举报

发表于 2010-4-28 16:40:57 | 显示全部楼层
那就重新指定一下datagrid.datasource
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-28 16:51:12 | 显示全部楼层
呵呵你仔细看我三楼,我是把对数据集的这些操作都做完才连DataGrid的
现在问题主要是第一次创建字段时候改显示名称管用,再后来改就不生效了呢
回复 支持 反对

使用道具 举报

发表于 2010-4-29 08:40:35 | 显示全部楼层
如果一个datagrid已经连接到一个数据源以后,在想修改datagrid字段的显示名称,那么修改后需要刷新一下datagrid所在的docview或者重新设置一下datasource属性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-29 09:34:56 | 显示全部楼层
你仔细看我三楼,我是把对数据集的这些操作都做完才连DataGrid的

我已经反复试了一天了,麻烦请试一下呵呵
回复 支持 反对

使用道具 举报

发表于 2010-4-29 09:40:52 | 显示全部楼层
DataGrid1.DataSource :=nil;
  TSQLDataSet(DataSetBroker1.DataSet).BizFieldByName('zd2').DisplayName :='abc';
DataGrid1.DataSource := DataSetBroker1;

这个就是我测试代码,可以看到我修改的字段名
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-29 10:20:10 | 显示全部楼层
搞定了!BizFieldByName('zd2').DisplayName可以,我先前用TUserDataField(FUserDataSet.Fields[I]).DisplayName 第一次管用,再调用就不管用了,奇怪
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 06:15 , Processed in 0.067508 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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