Satışta Müşteri Türüne Göre Uyarı Mesajı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Sayın @Akdatilla benim merak ettiğim bu koddaki abort işlemi bir queryden insert işlemi açtıktan sonra kullanılırsa o insert işlemini beklemeye mi işlemi cancel e mi düşürür? kolay gelsin.
UWESIS CORPORATION
Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Ben genelde Abort; yerine Exit; kullanıyorumakdatilla yazdı:merhaba
programınızda herhangi bir hata durumunda işlemi durdurmak için abort komutunu kullanabilirsiniz.bu kodları datasetin beforepost olayına veya kaydet prosedürünüzün üst kısmına yazabilirsiniz.Kod: Tümünü seç
if (dbedit10.text='Veresiye yasak') and (dbradiogroup1.itemindex=1) then begin showmessage ('bu müşteriye veresiye satış yasak') abort; end;
Bir kelimenin anlamını öğretsen bile yeter..



Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Abort mesaj vermeyen bir exception türüdür. Sessiz sakince exception atılır ve sistem try bloklarının arasında çıkar gider, eger bir except varsa abort yakalanabilir. EAbort abort ile atılan exception türüdür.
Exit ise bulunan procedureden çıkış için kullanılır.
Yukarıdaki blokta hesaplama yapılırken exit denirse, dosyayikaydet procedure u çalışacaktır, eger abort denirse, dosyayikaydet çalışmayacaktır. Aradaki fark birisinin procedure u sonlandırması, digerinin ise exception atmasıdır. Except blogunda bu abort u işleyebilirsiniz.
Abort ile raise arasindaki fark, raise ile atılan exception yakalanmazsa, application yakalayıp, bir pencerede exception u gösterir. Abort ile atilan exceptionda ise sistem dogrudan bir pencerede mesaj göstermez.
Exit ise bulunan procedureden çıkış için kullanılır.
Kod: Tümünü seç
procedure hesaplamayap;
....
if sonuc = 0 then exit
else abort;
......
end
try
dosyayikontrolet;
hesaplamayap;
dosyayikaydet;
except
....
end;
Abort ile raise arasindaki fark, raise ile atılan exception yakalanmazsa, application yakalayıp, bir pencerede exception u gösterir. Abort ile atilan exceptionda ise sistem dogrudan bir pencerede mesaj göstermez.
- supervisor
- Üye
- Mesajlar: 50
- Kayıt: 07 Kas 2005 10:38
- Konum: Turgutlu
Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Bence Yöntemde bir sorun var.



Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Abort ile exit komutları birbirinin yerini tutmaz. exit komutu bir prosedür veya fonksiyondan çıkmayı sağlar.conari yazdı: Ben genelde Abort; yerine Exit; kullanıyorum
Abort ise bir işten çıkmayı sağlar. Abort komutu doğru kullanılmazsa tehlikeli sonuçlar çıkartabilecek bir komuttur.
Abort kullanımını size anlatmak için şöyle bir kod bloğunu örnek olarak vermek istiyorum:
Kod: Tümünü seç
procedure tform1.satisbeforepost(dataset:tdataset);
begin
if dataset.fieldbyname('durumu').Value=1 then
begin
dataset.cancel;
abort;
end;
end;
procedure tform1.kart2beforedelete(dataset:tdataset);
begin
if dataset.fieldbyname('yetki').Value=0 then
begin
abort;
end;
end;
procedure tform1.kaydetclick(sender:tobject);
begin
satis.post;//eğer satis.durum alanının değeri 1 ise aşağıdaki komut(lar) çalışmaz.
showmessage('Bilgiler kayıt edildi');
end;
procedure tform1.silclick(sender:tobject);
begin
kart1.delete;
kart2.delete;///eğer kart2'nin yetki alanı 0 ise aşağıdaki komut(lar) çalışmaz.
kart3.delete;
showmessage('Kart bilgileri silindi.');
end;
procedure tform1.testclick(sender:tobject);
begin
////aşağıdaki kodlarda herhangi bir prosedür bir abort metodu çağırdığında işlem yarıda kesilir.
//bu durumda yetkilli olsa bile kart1 ve kart2 datasetlerinde kayıt silme işlemi yapılamayacaktır.
kartlariekle;
satisekle;
satis.edit;
satis.fieldbyname('durumu').value:=1;
kaydetclick(nil);
silclick(nil);
end;
Re: Satışta Müşteri Türüne Göre Uyarı Mesajı
Daha çok hangisi değil de nerede kullanıldığı önemli sanırım.
burada dediğiniz gibi exit kullanılır ise PS den çıkacağı için kayıt gerçekleşir.
Ben bu aşamada kullanıyorum.
Kod: Tümünü seç
procedure tform1.satisbeforepost(dataset:tdataset);
begin
if dataset.fieldbyname('durumu').Value=1 then
begin
Ben bu aşamada kullanıyorum.
Kod: Tümünü seç
procedure tform1.kaydetclick(sender:tobject);
begin
if 'durumu'=1 then begin
'bu şekilde olmaz'
exit;
else begin
satis.post;//
showmessage('Bilgiler kayıt edildi');
end;
end;
Bir kelimenin anlamını öğretsen bile yeter..


