Grid son satır

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Grid son satır

Mesaj gönderen sevgi_kelbas »

Herkese merhaba
Çok saçma bir şeyle uğraşıyorum ama takıldım kaldım bana yardım ederseniz sevinirim.
Gridde ard arda satırları aşağı ok ile yeni satır açarak giriyorum. ama bu durumda son satır boş oluyor ve kullanıcı bu şekilde kaydetmeye kalktığında program o satırında doldurulmasını bekliyor. Ben satır boş ise o kaydın otomatik silinip kayıt işleminin yapılmasını istiyorum ama bir türlü olmadı. Sanki bir yerlerde bir özellikle oynamam gerekiyor ama bulamadım.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Tablonun BeforePost una aşağıdakini yaz :wink:

Kod: Tümünü seç

 if DataSet.State in [dsEdit, dsInsert] then
  DataSet.Cancel;
Bu şekilde kaydet demediğin sürece kaydetmez.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

cevabınız için teşekkür ederim ama daha beforepost evente gelmeden hata mesajı alıyorum. sanki o arada kendi bir yerlerde bir kontroller yapıyor.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Şöyle deneyin;

Kod: Tümünü seç

  Abort; 
Post işlemini sonlandırır fakat Edit/Insert modundan çıkmaz..

Düzeltme: Burada zaten Edit/Insert modunda olduğundan State i kontrole gerek yok :roll:
En son rsimsek tarafından 09 Tem 2007 02:54 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

peki verdiği hata mesajı nedir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kayıt için bir tuş tanımlıysa DBGrid in OnExit ına yukarıda yazdığım kod yazılmalı. Bunu sormamın sebebi tuşa basılacağından DBGrid in OnExit i tetiklenecek de ondan :wink:

Kod: Tümünü seç

if DBGrid1.DataSource.DataSet.State in [dsEdit, dsInsert] then
  DBGrid1.DataSource.DataSet.Cancel; 
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

gridin bağlı olduğu tabloda HesapPlaniID alanı var o alan indeks li ve HesapPlaniId alanının doldurulmasını bekliyor.

"Field HesapPlaniID must have a value"

Ben IBDataset kullanıyorum belki yardımcı olabilir.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

Yukardaki hata HesapPlaniI alanına girişin zorunlu olduğunu söylüyor.
Generator alanın nasıl değer alacağını ayarladığınız kısımda sanırım
On Post seçeneğini seçmişsiniz bu durumda bu alana değer girmeniz gerekir, buradakaki seçeneği On new record yaparsanız numarayı kendi alır.

siz dataset ayarlarında yeni kayıt durumunun hangi olaya bağlı olduğunu kontrol edin.
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

haklısınız hesapplanıId alanı zorunlu bir alan. Ama kullanıcı zaten bu alanı dahil o satırda hiç bir bilgiyi girmeden bir üst satıra geçebilir bu durumda boş satır silinmeli.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

siz aşağı ok tuşuna basarak yeni bir kayıt açtığınızda hiç bir şey yazmadan tekrar yukarı ok tuşuna bastığınızda zaten bu son boş satır kaydedilmez.
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

evet daha öncede ben böyle bir şey ile karşılaşmamıştım. çok fena takıldım. sanırım kilitlendim ben.. Ama burada kaydetmeye çalışıyor o satırı
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

dataset yada gridinin eventlerine bakar mısınız, herhangi bir kod var mı, yada gererator alan hangi durumda değer alıyor bir de onu kontrol edin
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Mesaj gönderen Lost Soul »

BeforePost olayına

Kod: Tümünü seç

if IBDataSet.FieldByName('HesapPlaniID').IsNull then Abort;
yazdığınızda @rsimsek abimizin de dedigi gibi problemin cözülmesi lazim. Doğru dataSet olayına yazdığına emin misin.
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

cevap yazan tüm arkadaşlara teşekkürler. Özelliklede white Rose arkadaşım çok teşekkür ederim. Sayende sorun çözüldü: Ben Dataset'in Beforeinsert event inde default değerler atıyordum kafam bir türlü basmadı ki bu durumda o record edit yemiş oluyor o bilgileri onnewrecord event e alınca düzeldi.

Her zaman en basitten karmaşığa gitmek işe yarıyormuş her şeyi silip tek tek yapınca sorun çözüldü.
Cevapla