起步软件技术论坛-X3

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

【结贴】[请求]请问如何动态创建DataEdit控件并与标准数据集关联?

[复制链接]
发表于 2009-7-30 14:06:42 | 显示全部楼层 |阅读模式
需求是这样的:
子表中有一个图片字段,若干条关联编号相同的记录需要在一个窗体中显示图片,由于用IMAGE控件有很多图片格式限制的问题,所以我想用TDataEdit来做。可是不知道表中有多少条记录,只能动态生成数据集,动态生成的数据集绑定到控件后显示的是乱码,就是表现形式不对了,可是窗体中播放的数据集就没有这样的问题。这个怎么解决?
回复

使用道具 举报

发表于 2009-7-30 14:10:51 | 显示全部楼层
你发个例子资源吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-30 14:22:19 | 显示全部楼层
我建立一个标准数据集查询出关联编号为某个值的数据,然后循环,在循环体中每次新建一个TSQLDataSet和TDataEdit控件,将这个数据集绑定到控件上,TSQLDataSet是这么创建的:
ds := TSQLDataSet.Create(...);
ds.ConnectString := ...
ds.Close;
ds.SQL.Text := 'select TP from XXX where ZBH = ' + ...;
ds.Open;
可是和控件绑定后显示的就是乱码,不是图片,窗体中拖放的数据集就可以显示图片。请问代码中要怎样写才能让它以图片显示?
回复 支持 反对

使用道具 举报

发表于 2009-7-30 14:33:00 | 显示全部楼层
你那个xxx表是否映射到了x3平台里面,也就是建立了数据表没有?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-30 14:36:54 | 显示全部楼层
建立了的,其实循环外面那个数据集也是这个表,比如说叫dsMain,SQL就是'select TP from XXX where GLBH = ' + ...;dsMain就绑定到控件上就会显示图片,但是循环了之后图片也会变,只能显示最后一张,所以我在循环里面取到数据集的ZBH,然后建立一个新的数据集ds,可这个数据集绑定到控件上就只能显示字符,不知道怎么控制格式。
回复 支持 反对

使用道具 举报

发表于 2009-7-30 16:26:10 | 显示全部楼层
问题在于你动态创建的数据集,取不到该字段的表现类型(或者说取得是错的)
解决方法就是自己动态创建一个字段,重载该字段的表现类型就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-30 16:48:21 | 显示全部楼层
自己动态创建一个字段,重载该字段的表现类型
怎么做?可不可以写点示例代码出来?
回复 支持 反对

使用道具 举报

发表于 2009-7-30 16:52:38 | 显示全部楼层
参考代码

  lUserDataField := TUserDataField.Create(nil);  
    lUserDataField.DataSet := lSQLDataSet;
    lUserDataField.ID := 'TX';
    lUserDataField.DataType := TDataType.dtBlob;
    lUserDataField.EditStyleID := 'Graphic';
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-31 13:08:27 | 显示全部楼层
多谢高手指教!
结贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 16:19 , Processed in 0.036667 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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