请教DBGridEh对应字典显示的问题

rbwang 2013-10-12 03:40:44
才开始用EHLIB,向各位请教一下
有一基础数据,对应数据字典
基础数据都存的是代码,用一个dataset1显示出来,对应显示出来的都是代码,而想显示的是代码所对应的文字


前提是不用SQL语句拼写。

看网上各位大侠的资料上写的是在QUERY中设置LOOKUP字段
如果在CXGRID中,可以再设置一个dataset2。然后设置lookupcombobox的相应参数即可显示。
那DBGridEh有没有类似CXGRID这样的功能呢?
如果是在QUERY中定义好各项字段,好像程序的扩展性不太好吧?(比如要设置WHERE条件,或是根据权限设置不同的SQL语句)
请教各位大侠是如何处理的?

...全文
248 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rbwang 2013-10-14
  • 打赏
  • 举报
回复
加分了。盼解答:)
rbwang 2013-10-14
  • 打赏
  • 举报
回复
再顶一下喽。。。。
Alex-16888 2013-10-14
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/wozengcong/5510871 这里有picklist的用法
金卯刀 2013-10-14
  • 打赏
  • 举报
回复
看这个链接的例子。 http://www.360doc.com/content/11/0924/09/7662927_150803867.shtml 里面是硬编码的。但是你可以对你的数据字典进行排序后,逐行遍历添加进去。
rbwang 2013-10-14
  • 打赏
  • 举报
回复
引用 10 楼 Avan_Lau 的回复:
显示下拉方式的列 你可以通过KeyList 和 PickList 属性在相关的的字段中显示其它文本。KeyList显示包含在字段的值而非PickList索引所包含的值。 Column.NotInKeyListIndex to index of text from PickList that will be shown if field value do not contain in KeyList (for instance you can set index of text for Null field value). Set Column.DblClickNextval to True to change value on mouse double click. —————— http://blog.csdn.net/beyondqd/article/details/7721949 也是从老外那边翻译的。
还是不太清楚。麻烦版主给能详细介绍一下,万分感谢
金卯刀 2013-10-14
  • 打赏
  • 举报
回复
显示下拉方式的列 你可以通过KeyList 和 PickList 属性在相关的的字段中显示其它文本。KeyList显示包含在字段的值而非PickList索引所包含的值。 Column.NotInKeyListIndex to index of text from PickList that will be shown if field value do not contain in KeyList (for instance you can set index of text for Null field value). Set Column.DblClickNextval to True to change value on mouse double click. —————— http://blog.csdn.net/beyondqd/article/details/7721949 也是从老外那边翻译的。
rbwang 2013-10-12
  • 打赏
  • 举报
回复
引用 6 楼 twtynk1 的回复:
用SQL去关联吧,建一个过程。没什么扩展性不太好的,用lookup都没用过程来得灵活
嗯。用SQL的话很容易就实现了。 只是因为对EHLIB不熟悉。所以想知道这个DBGRIDEH是否也有类似CXGRID中的相关功能。 以前一直用CXGRID。现在发现DBGRIDEH的美观度不错。
Alex-16888 2013-10-12
  • 打赏
  • 举报
回复
用SQL去关联吧,建一个过程。没什么扩展性不太好的,用lookup都没用过程来得灵活
hhhfff2010 2013-10-12
  • 打赏
  • 举报
回复
帮顶,,,,作个记号,,
rbwang 2013-10-12
  • 打赏
  • 举报
回复
引用 2 楼 twtynk1 的回复:
在数据源的DataSet1CalcFields里,这样处理。

with dataset1 do
  begin   
    case FieldByName('Code').AsInteger of
      1: FieldByName('CodeName').AsString:='一';
      2: FieldByName('CodeName').AsString:='二';
      4: FieldByName('CodeName').AsString:='三';
      5: FieldByName('CodeName').AsString:='四';
    end;
  end;
这个确实也能实现。但是我基础表对应N个字典。 这样去写我会疯了的(比如地区字典)
rbwang 2013-10-12
  • 打赏
  • 举报
回复
引用 1 楼 xstdljj 的回复:
都可以的,查找字段,计算字段都行
是知道可以查找和计算字段。 可能我没有表达清楚 我仅仅只是为了将代码替换成中文展示出来而已 如果用SQL语句的话。很好写出来 但是以前用CXGRID的时候,他有个LOOKUPBOBOX。很好用(不需要在QUERY中设置lookup字段) 也是第一次使用Ehlib,不知道也是否支持这样的功能。 如果支持,怎么弄呢
Alex-16888 2013-10-12
  • 打赏
  • 举报
回复
在数据源的DataSet1CalcFields里,这样处理。

with dataset1 do
  begin   
    case FieldByName('Code').AsInteger of
      1: FieldByName('CodeName').AsString:='一';
      2: FieldByName('CodeName').AsString:='二';
      4: FieldByName('CodeName').AsString:='三';
      5: FieldByName('CodeName').AsString:='四';
    end;
  end;
鐵蛋 2013-10-12
  • 打赏
  • 举报
回复
都可以的,查找字段,计算字段都行

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧