Amacım CxGrid de Hücreyi terkedeceğim zaman veri kontrolü yapmak kodum çalışıyor fakat mouse ile kayıtlar arasında tıklamalar yaptığımda kayıtlarım birbir siliniyor. Neyi yanlış yapıyorum acaba?
Kod: Tümünü seç
procedure TFrm_CariHesFisEkle.cxGrid1DBTableView1FocusedItemChanged(
Sender: TcxCustomGridTableView; APrevFocusedItem,
AFocusedItem: TcxCustomGridTableItem);
var
Cari_Kod, Cari_Unvan:String;
begin
//index Çıkış kontrolü
cxGrid1DBTableView1.DataController.Post;
if (cxgrid1DBTableView1.Controller.FocusedColumnIndex = 1) Then
begin
Cari_Kod := ibDetay.fieldByName('CARI_KOD').AsString;
if Cari_Kod = '' Then
begin
cxGrid1DBTableViewCARIUNVAN.EditValue := '';
end
Else
begin
with IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add('Select * From CARI Where CARI_KOD = '''+Cari_Kod+'''');
Open;
End;
if (IBQuery1.Bof) and (IBQuery1.Eof) Then
Begin
ShowMessage('Cari Kod Yanlış!');
cxGrid1DBTableViewCARIKOD.EditValue := '';
cxgrid1DBTableView1.Controller.FocusedColumnIndex := 0;
End
else
Begin
cxGrid1DBTableViewCARIUNVAN.EditValue := ibQuery1.FieldByName('CARI_UNVAN').AsString;
end;
End;
end
Else
//index Çıkış kontrolü
if (cxgrid1DBTableView1.Controller.FocusedColumnIndex = 2) Then
begin
if ibdetay.FieldByName('CARI_KOD').AsString = '' Then
Begin
Cari_Unvan := ibDetay.fieldByName('CARI_UNVAN').AsString;
if Cari_Unvan = '' Then
begin
cxGrid1DBTableViewCARIKOD.EditValue := '';
end
Else
begin
with IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add('Select * From CARI Where CARI_UNVAN = '''+Cari_Unvan+'''');
Open;
End;
if (IBQuery1.Bof) and (IBQuery1.Eof) Then
Begin
ShowMessage('Cari Ünvan Yanlış!');
cxgrid1DBTableView1.Controller.FocusedColumnIndex := 1;
cxGrid1DBTableViewCARIUNVAN.EditValue := '';
End
Else
begin
cxGrid1DBTableViewCARIKOD.EditValue := ibQuery1.FieldByName('CARI_KOD').AsString;
end;
End;
end;
End;
// cxGrid1.Refresh;
end;