DBGrid动态添的列不能手动输入,而且取不到值
DBGrid动态加的列不能手动输入,而且取不到值
procedure TFormGzffmxb.FormShow(Sender: TObject);
var
dbColumn: TColumnEh;
dbColumn:=DBGridEh1.Columns.Add;
dbColumn.Index:=DBGridEh1.Columns.count-1;
dbColumn.Title.Caption:=FieldByName('qm').AsString;
dbColumn.FieldName:='je_'+FieldByName('bh').AsString;
dbColumn.Width:=84;
dbColumn.ReadOnly:=False;//这里不能手动输入
for i :=0 to DBGridEh1.Columns.count-1 do
begin
ShowMessage(DBGridEh1.Fields[i].FieldName);//动态加的列在这里取不到值
我用的控件是DBGridEh,DBGrid也一样取不到值,为什么,怎么改?
------解决方案--------------------
也遇到这样的问题,帮顶。
------解决方案--------------------

------解决方案--------------------
dbColumn.FieldName:='je_'+FieldByName('bh').AsString;这句有误。
你如果换成:dbColumn.FieldName:='bh';肯定正确。但不是你所要的。
这个应该用“计算字段”。
比如:新加一字段xbh,让它的值='je_'+FieldByName('bh').AsString就行了(实际不是这样写)。
双击ADOTable1调出字段编辑器,再新加字段就可以调出计算字段的编辑窗口。
procedure TFormGzffmxb.FormShow(Sender: TObject);
var
dbColumn: TColumnEh;
dbColumn:=DBGridEh1.Columns.Add;
dbColumn.Index:=DBGridEh1.Columns.count-1;
dbColumn.Title.Caption:=FieldByName('qm').AsString;
dbColumn.FieldName:='je_'+FieldByName('bh').AsString;
dbColumn.Width:=84;
dbColumn.ReadOnly:=False;//这里不能手动输入
for i :=0 to DBGridEh1.Columns.count-1 do
begin
ShowMessage(DBGridEh1.Fields[i].FieldName);//动态加的列在这里取不到值
我用的控件是DBGridEh,DBGrid也一样取不到值,为什么,怎么改?
------解决方案--------------------
也遇到这样的问题,帮顶。
------解决方案--------------------
------解决方案--------------------
dbColumn.FieldName:='je_'+FieldByName('bh').AsString;这句有误。
你如果换成:dbColumn.FieldName:='bh';肯定正确。但不是你所要的。
这个应该用“计算字段”。
比如:新加一字段xbh,让它的值='je_'+FieldByName('bh').AsString就行了(实际不是这样写)。
双击ADOTable1调出字段编辑器,再新加字段就可以调出计算字段的编辑窗口。