kaydet işlemini yaparken aşağıdaki gibi yanlış tarih girilmesine karşın
aşağdaki tey except kodunu kullanıyorum,
yanlış girilmesi durumunda uyarıyı veriyor ama kaydetme işleminide gerçekleştiriyor.
yanlış girildiğinde kaydetme işlemini gerçekleştirmesin istiyorum.
try
DataModule2.IBDataSet1TARIHISLEM.Asstring:=maskedit3.text;
except
begin
showmessage('Lütfen Geçerli Bir Tarih Giriniz');
MaskEdit3.SetFocus;
end;
end;
DataModule2.IBDataSet1.Post;
try
DataModule2.IBDataSet1TARIHISLEM.Asstring:=maskedit3.text;
except
begin
showmessage('Lütfen Geçerli Bir Tarih Giriniz');
abort;
MaskEdit3.SetFocus;
end;
end;
DataModule2.IBDataSet1.Post;
şeklinde dener misin? Olmazsa eğer, kaydetme butonunun altına sadece;
evet bu şekilde hatayı engelliyor ama şöyle bir durum sözkonusu
ben kayıtlarımı datamodule yerleştirdiğim, ibdataset1 ile yapıyorum.
yani aynı dataseti 8 farklı formda kullanıyorum.
her fomdaki edit için ayrı ayrı yazarsam bu kodu problem çıkarmazmı?
başka bir yöntem mi bulmalıyım.
O zaman bir de form kontrolü olmalı. Hangi fromdan çağırdığın kontrol edilmeli. Onun için de şöyle bir şey yapılabilir. Datamodule'ünde bir formismi diye bir değişken tanımlarsın. Diğer formdaki kaydet butonlarının altında ise bu sefer;
try
begin
if formismi='form1' then
DataModule2.IBDataSet1TARIHISLEM.Asstring:=maskedit3.text;
end;
except on exception do
begin
showmessage('Lütfen Geçerli Bir Tarih Giriniz');
abort;
end;
end;
gibi bir yapı olmalı. Bu şekilde çeşitlendirilebilir. Sadece bir fikir benim söylediğim.
try
DataModule2.IBDataSet1TARIHISLEM.Asstring:=maskedit3.text;
DataModule2.IBDataSet1.Post;
except
begin
showmessage('Lütfen Geçerli Bir Tarih Giriniz');
MaskEdit3.SetFocus;
end;
end;
gercek_16 yazdı:evet bu şekilde hatayı engelliyor ama şöyle bir durum sözkonusu
ben kayıtlarımı datamodule yerleştirdiğim, ibdataset1 ile yapıyorum.
yani aynı dataseti 8 farklı formda kullanıyorum.
her fomdaki edit için ayrı ayrı yazarsam bu kodu problem çıkarmazmı?
başka bir yöntem mi bulmalıyım.
Bu kodu edit için yazmıyorsun, DataModule deki IBDataSet in BeforePost una yazıyorsun. Dolaysıyla nerden kayıt girersen gir kayıt esnasında bu kontrol yapılacak geçerli bir tarih girilmemiş ise kayıt işlemi iptal edilecek..
var
hata:boolean;
begin
hata:=false;
try
DataModule2.IBDataSet1TARIHISLEM.Asstring:=maskedit3.text
except
hata:=True;
end;
if hata=False then
DataModule2.IBDataSet1.post;
Bu şekilde olur mu?
Allah herkesin sırtına kaldırabileceği kadar yük koyar