Eray

AfterSave() Girilen Kayıdın engellenmesi

  Tiger/Logo Object Designer (LOD)

Merhaba , 

Yapmak istediğim işlem kredi kartı fişi (70) ile girilen kayıtta , kayıt içinde geri ödeme planı uygulanmamış ise fiş kayıt olmasını engellemek .. Bunun için fiş kayıt sırasında paytrans ta ki repayplansref kolonunda ki bilgiyi alıp 0 ise kayıt ettirmemek lazım sanırım.SaveData() ile paytranstan bu bilgiyi bi türlü alamadım , AfterSave() ile önce clfiche.logicalref bilgisine edindim ardından clfline.logicalref son olarakta paytransta ki repayplanref e ulaşıp istediğim bilgiye ulaştım , işlemimi yaptım ancak bu seferde proceed=1 özelliğini eventta çalıştıramadım( Çok uzun yoldan gitmiş olabilirim aklıma başka bir işlem gelmedi ). Önerilerinizi bekliyorum teşekkürler.


AfterSave() KayıtEngelle


NaciO

Öncelikle AfterSave() veritabanı kayıtları tamamlandıktan ve commit edildikten sonraki bir event. Kaydı ancak BeforeSave veya SaveData aşamalarında durdurabilirsiniz.

BeforeSave ve Savedata içerisinde ise aktif kayıtla ilgili header ve lines bilgilerine ulaşabilirsiniz. Paytrans ise ne yazık ki 70 numaralı fişin bir lines nesnesi değil. 70 numaralı fişteyken, LOD içerisindeki Rechandle ve gridRowHandle gibi metodlar ile Paytrans referans ve bilgilerine ulaşım sağlamayacaktır.

Bu bilgilere sizin de fark ettiğiniz gibi kayıt gerçekleştikten sonra ulaşabiliyoruz. Kullanıcıya bu konuda uyarı verip akabinde fişi  tekrar kullanıcının karşısına açtırabilirsiniz.


04/10/17 11:48


Eray

O da bir çözümdür aslında , fiş kaydolduktan sonra yani aftersave() methodunda kaydolurken paytrans repayplanref e ulaştım . Fiş kaydoldu yeniden aynı fişi karşısına çıkarıp bu fişte geri ödeme planını kontrol edip kayıt edin dersek de çok güzel olur . 

Uygulayabileceğim method ya da formül nedir uğraşayım ben..


04/10/17 12:23


NaciO

Referans bilgisini zaten alabilmişsiniz.

Bu referans bilgisi ile CreateAppForm metodunu kullanarak fişi ekrana getirebilirsiniz.

Metodun açıklaması için;

http://docs.logo.com.tr/public/wua/logo-object-designer/lod-kuetuephanesi/lod-application

Orada bir ID göreceksiniz. O Id çözüm ortağı setlerinde, formların köşesinde parantez içerisinde gözüken ID'dir. Örneğin malzeme browserı için (1017), malzeme kartı için (1001) yazan ID.



04/10/17 12:29


Eray

Cevabınız için teşekkür ederim, aşağıda ki kod ile o fişi açtırmayı sağlayamadım ..

Application.CreateAppForm(540,68,0, 0, 1, 2, 1, 68, MySelRef, MyFrm)

540 yerine kredi kartı fiş slip refereansını vermem lazım ama onu da bulamadım . Bu direkt cari hesap fişleri browserını açmakta.Direkt ilgili fişi ekrana açtıramıyorum ..



04/10/17 12:50


Sezgin ÖZDEMİR

Onaylanmış Cevap

Merhabalar,


Aşağıdaki kod parçasını kullanarak Kredi Kartı Fişi ekranını açabilirsiniz. 


Application.CreateAppForm(55,0,0, 70, 0, 1, 0, 0, MySelRef, MyFrm) 



05/10/17 09:13


Eray

Çok teşekkürler talebim çözüldü..


05/10/17 09:52

Cevap vermek için giriş yapmanız gerekmektedir.