EditValueChanged事件中处理单元格编辑业务
但在这个事件中判断焦点列的编辑状态时,为false,有谁遇到这种情况吗?
if tvBatch.Controller.FocusedColumn.Editing then
begin
end注:主表的tv中此事件判断没有问题。cxgrid
但在这个事件中判断焦点列的编辑状态时,为false,有谁遇到这种情况吗?
if tvBatch.Controller.FocusedColumn.Editing then
begin
end注:主表的tv中此事件判断没有问题。cxgrid
当我选中行的时候,查看数据集的数据,确实是正确的。
从表的keyfieldnames也设置了。。
如下, 变量s分别记录数据提交前, 提交后值
procedure TForm1.vw1EditValueChanged(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
var
s : Variant;
begin
//vw1 : TcxGridBandedTableView;
if vw1.DataController.IsEditing then
s := vw1.DataController.Values[vw1.Controller.FocusedRowIndex, vw1.Controller.FocusedColumnIndex]; vw1.DataController.Post();
s := vw1.DataController.Values[vw1.Controller.FocusedRowIndex, vw1.Controller.FocusedColumnIndex];
end;
从表应该也是如此(我没测试). 如果不能解决问题给我留言, 我上班后试一下. :)ps:
tvBatch.Controller.FocusedColumn.Editing 是判断当前列是否可编辑, 按说在EditValueChanged方法中应该为True才对.
如下, 变量s分别记录数据提交前, 提交后值
procedure TForm1.vw1EditValueChanged(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
var
s : Variant;
begin
//vw1 : TcxGridBandedTableView;
if vw1.DataController.IsEditing then
s := vw1.DataController.Values[vw1.Controller.FocusedRowIndex, vw1.Controller.FocusedColumnIndex]; vw1.DataController.Post();
s := vw1.DataController.Values[vw1.Controller.FocusedRowIndex, vw1.Controller.FocusedColumnIndex];
end;
从表应该也是如此(我没测试). 如果不能解决问题给我留言, 我上班后试一下. :)ps:
tvBatch.Controller.FocusedColumn.Editing 是判断当前列是否可编辑, 按说在EditValueChanged方法中应该为True才对.谢谢你的解答,是的,我在主表的editvaluechanged事件里,处理完全都ok的,这个值是true,而且取到的焦点行、列index都是正确的。。
但在从表的这个事件里,这个editing是false,然后焦点列的index也正确,但FocusedRowIndex为-1,所以用以上方法取到的value是null。。但当焦点定位到从表某记录时,结果集的数据也确实是正确的,我新建了一个空的工程和2个表测试,结果也是如此。。
我在这个事件里,想做的就是通过tv.Controller.EditingController.Edit.EditingValue,把当前编辑的数值直接取到。
第一次使用这个控件,很多地方还搞不太明白,如果有时间,麻烦新建一个测试一下。谢谢啦
AItem: TcxCustomGridTableItem);
var
s, s1 : Variant;
begin
//主从表时, 从表有焦点单元格.
// AItem.FocusedCellViewInfo.RecordViewInfo.Index; //行
// AItem.FocusedCellViewInfo.Item.Index; //列
s := AItem.FocusedCellViewInfo.Value; //单元格值
if AItem.Editing then
Sender.DataController.Post();
s1 := AItem.FocusedCellViewInfo.Value;end;
但修改从表的数值后,主表跟随变化,试了一些办法,都会报错,很头疼,请问有什么好的办法吗?
在从表的编辑事件里,取到编辑后的数据,然后调用主表数据集的locate方法报错,或者对主表进行过滤,调用结果集的enablecontrol也报错。。
想实现这个,有其他的事件可以用吗,试了几个都不理想。。或者有更好的办法?