Procedure TfrmsAA.dbgrdCellClick(Column: TColumnEh);
Begin
Inherited;
If (UPPERCASE(Column.FieldName) = 'ColNM') And (qry.FieldByName('ColPcode').AsString <> '') Then
Begin
TRY
IF Not (qry.State In [dsEdit, dsInsert]) Then
BEGIN
qry.Edit;
qry.Post;
END;
qry.DisableControls;
Column.PickList.clear;
Column.KeyList.clear;
With Sys.QryTemp Do
Begin
close;
sql.Clear;
sql.add('SELECT Pcode FROM Table1 WHERE code=' + qry.fieldbyname('colpcode').asstring);
open;
While Not eof Do
Begin
dbgrd.FieldColumns['colnm'].PickList.Add(fieldByName('pcode').AsString);
dbgrd.FieldColumns['colnm'].KeyList.Add(fieldByName('pcode').AsString);
Next;
End;
End;
Finally
qry.EnableControls;
End;
End;
End;
已确认是每次点击的时候,清除picklist导致,但是这种情况如何处理?是否有其他代替的方法?