cxGrid讨论专题,请不懂者在此提问,高手者帮忙解答。(Thanks) (200分)

  • 主题发起人 主题发起人 Herb
  • 开始时间 开始时间
我想在grid中前面几列显示数据,不能编辑,只能浏览,后面几列在数据库中这些字段都有值,我想让这些值不显示,显示的是个空界面,就象编辑框一样,可以编辑,输入数据,然后通过一个“保存”按钮将其保存到数据库中,我是这样想的,但是我试了一下,这样好像实现不了呀,后面几个需要编辑的列如果不把它跟某个字段绑定的话,那么自己输入的值就显示不出来,如果跟字段绑定后,它就会显示原来的值,我想让它为空界面,应该怎么做呢?
代码如下:
with DM.adoQuery1 do //这是要跟grid绑定的数据集adoQuery1
begin
connection:=DM.adoConn;
DM.adoConn.Connected:=true;
//设置连接
close;
sql.Clear;
strSql:='';
sql.Add(strSql);
open;
viewXjjd.DataController.DataSource:=DM.ds1;//数据源控件
viewXjjddwmc.DataBinding.FieldName:='dwmc';
viewXjjdjxxmmc.DataBinding.FieldName:='jxxmmc';
viewXjjddw.DataBinding.FieldName:='jxxmdw';
viewXjjdzsl.DataBinding.FieldName:='jhjxsl';
viewXjjdywcsl.DataBinding.FieldName:='ywcsl';//上面这5列是只能浏览的列字段。
viewXjjdbcwcsl.DataBinding.FieldName:='wcjxsl';
viewXjjdtbrq.DataBinding.FieldName:='jxtbrq';
viewXjjdbz.DataBinding.FieldName:='bz';//这3个是需要设置为空界面,输入值的字段
end;
 
pizixiao:

以前也有好多解决类似你问题的方法。我想实现你所想要的效果并不难。

首先,数据感应控件的各个列一定要对应数据集的每一个字段。这样的话,你可以做3个空字段在你的数据集里,就是在SQL组串时放3个临时字段(我想你应该知道怎么做吧),这3个字段是用来显示在界面上,让用户编辑的。

然后,待触发“保存”事件时,将这3个临时字段的值完全拷贝到你数据库表中的3个原始字段(这3个子段一定要在组SQL时一并取得,不然,你就无法完全COPY用户的输入乃至提交数据了。还有,这3个字段你完全可以不显示在界面上,即不必在Grid中体现它们的列)里进行保存。

这样应该可以解决了吧。你可以试试。
 
后退
顶部