Archive for category NDI

Depo Yetki Tanımlama (SQL)

Uzun bir zamandan sonra tekrar buradayım, yazmaya fırsat bulamadığım yazılarıma bugün bir yenisini eklemek istedim. Yoğun bir şekilde ihtiyaç duyulduğunu düşündüğüm bir uygulama, artık kullanıcılara depolar üzerinde işlem yapma yetkisi verebilirsiniz. Şuan için SQL veritabanı kullanan Netsis kullanıcıları için hazırlanmış olup ilerleyen günlerde Oracle veritabanıda desteklenir hale getirilecektir. Uygulamayı kullanmaya başlamak için aşağıdaki linkteki rar dosyasını indirin ve BeniOku dökümanındaki yönergeleri uygulayın.

  Depo Yetki Tanımlama SQL (152,9 KiB, 587 hits)

Umarım faydalı olur…

Tags: , , , , , , ,

File Open Dialog Vista/Windows7 Problemi

Daha önce buradaki yazımızda değindiğimiz dinamik kodlama ile Dosya Açma penceresini çağırabiliyorduk, ancak bu script Vista ve Windows7 kurulu olan Netsis clientlarında çalıştırıldığında  ” ActiveX component can’t create object: UserAccounts.CommonDialog’ “  hatası alınıyordu. İlgili scriptin  Vista ve Windows7 de düzgün çalışabilmesi için aşağıdaki safrcdlg.dll’in ilgili client’ta register edilmesi ve scriptinde aşağıdaki şekilde yazılması gerekmektedir.

 

Set objDialog = CreateObject( “SAFRCFileDlg.FileOpen” )
If objDialog.OpenFileOpenDlg Then
   Path.text = objDialog.FileName
End If

  File Open Dialog Vista/Windows7 (safrcdlg.dll) (21,5 KiB, 362 hits)

Tags: , , , ,

Stok Hareket Tarih Klitleme Sql Desteği

Uzun zamandır yapmayı planladığımız fakat bir türlü zaman ayıramadığımız Stok Hareket Tarih Kilitleme ekranımıza SQL desteğini getirdik. Daha önce sadece Oracle veritabanı kullanan ekranımız, SQL desteğiyle birlikte bazı yeniliklerde kazandı. Daha önce tarih kilitlemeyi devere dışı bırakmak ve aktive etmek veritabınından manuel yapılıyordu, şuan aktivasyon işlemide NDI hazırlanan bir ekranla temelsete eklenmekte ve tek tıklamayla bu işlemler gerçekleştirilmekte. İşleyiş hakkında tekrar bilgi vermek istersek, kilitleme işlemi için kilit tarihi bulunurken ilk olarak kullanıcıya daha sonra gruba son olarakta tüm kullanıcılara bakılmaktadır. 

Ör: 
Tüm Kullanıcılar 01.04.2009
Grup      01.03.2009
Kullanıcı  01.02.2009
 
Yukarıda belirtilen tanımlamada kullanıcı 01.02.2009 tarihinden küçük tarihli bir stok hareketinde insert-update-delete işlemlerini yapamayacaktır. Gruba bağlı diğer kullanıcılar 01.03.2009 tarihinden küçük tarihli kayıtlarda insert-update-delete işlemi yapamayacaklardır. Belirtilen gurup dışında kalan kullanıcılar 01.04.2009 tarihinden küçük tarihli kayıt yapamayacaklardır. Kullanmaya başlamak için benioku dökümanın içerisindeki talimatları sırasıyla uygulayın.

  Stok Hareket Kilitleme SQL (94,4 KiB, 866 hits)

Umarım faydalı olur.

Script ile NDI rehberi çağırma

Merhaba,

NDI’da hazırladığımız rehberleri hem Ndi’da hazırladığımız formlarda hemde temelsette script yardımıyla çağrıbilir ve dönen değeri görebiliriz. İlk olarak ndi’da hazırladığımız bir formdan daha sonrada temelsetin içinden script yardımıyla rehber  çağırmayı  inceleyelim.

  • Ndi Formunda herhangibir nesnenin herhangibir olayına aşağıdaki scripti yazalım.

 Set Rehber = sirket.CallLookUp(“0001″)  ‘Buradaki 0001 Ndi’daki Rehber Kodu

MsgBox Rehber.Items(0) ‘bize rehberde tanımlanan dönecek sahayı gösterir

  • Temelsette herhangibir nesnenin herhangibir olayına aşağıdaki scripti yazalım.  

Set krnl = CreateObject(“ndiapix40.kernel”)

Set Srkt = krnl.GetCompany(“NDI32″, “NDI”, “NDI”) ‘(veritabanı,kuladı,şifre)

Set Rehber = Srkt.CallLookUp(“0001″)

MsgBox Rehber.Items(0)

Güle güle kullanın J

Temelsetten Ndi Formu çağırma



Temelset içerisinde Ndi uygulamaları dışındada bir Ndi formunu çağırabilir ve tıpkı Ndi formundan başka bir Ndi formunu çağırdığımız şekilde bilgide taşıyabiliriz. Bu scriptte ndiapix40.dll‘inden faydalanacağız. Şimdi Temelsetteki hergangi bir nesnenin herhangi bir olayına aşağıdaki scripti yazalım ve inceleylim. Ben bu işlem için Cari Hesap Kayıtları formunda bir TMenuItem (sağ kilik) nesnesi yarattım.

Set Krnl = CreateObject(“ndiapix40.kernel”)

Set Srkt = Krnl.GetCompany(“NDI32″, “NDI”, “NDI”)

Set Dsgn = Srkt.CallWinDesign(“010″)’Dizayn Kodu

Dsgn.NDIComponentByName(“CariKod”).text = Cari_Kod.text

Dsgn.Show

Set Dsgn = Nothing

Set Srkt = Nothing

Krnl.FreeNetLib

Set Krnl = Nothing

  •  İlk satırda ndiapix40.dll’ni çağırıyoruz
  •  İkinci satırda tıpkı netopenxe bağlandığımız gibi ndi bağlanıyoruz. Sabit olarak verilmiş değişkenler sırasıyla Ndi veri tabanı adı, Ndi kullanıcı ismi, Ndi kullanıcı şifresi.

Alt satırlardaki scriptlere bir önceki yazımızda değinmiştik. Artık sizde temelsette istediğiniz yerde bir Ndi formu çağırabilirsiniz.

Bir Ndi Formundan diğer bir Ndi formunu çağırma

 Hazırladığımız formlarda script yardımıyla diğer bir formu çağırabildiğimizi biliyormuydunuz. Evet Ndi’da hazırladığımız formlarda herhangibir nesnenin herhangibir olayında diğer bir formu çağırabilir ayrıca temel formumuzdaki herhangibir bilgiyi çağırdığımız forma taşıyabiliriz. Şimdi bununla ilgili scriptimizi inceleyelim.

set Dsgn = SIRKET.CallWinDesign(“072″)

Dsgn.NDIComponentByName(“StokKodu”).text = Kod.text

Dsgn.Show

Set Dsgn = Nothing 

  •  İlk satırdaki “072” çağırmak istediğimiz formun dizaynkodu.
  • İkinci satırdaki “StokKodu” çağırdığımız formdaki netedit nesnemizin ismi, “Kod” ise ilk formumuzdaki bir netedit nesnenin ismi olup, Kod nesnesinin text özelliğindeki bilgi çağrılan formdaki StokKodu nesnesinin text özelliğine taşınmıştır.

Umarım faydalı olmuştur.

Temelsetten çalıştırılan formlarda aktif veritabanı adı yakalama

Merhaba, 

Uzun bir aradan sonra yazılara devam etme şansı buluyorum. Bu yazımızda veritabanı bağlantılı hazırlanan ekranlarda, formun çağrıldığı veritabanı adını nasıl bulacağımız ve bunu ne şekilde kullanacağımızı anlatmaya çalışacağım. Veritabanı bağlantılı ekranlar scriptle müdahale edilmediği taktirde formun çağrıldığı veritabanlarında işlem yaparlar. Ancak bu zaman zaman tam olarak işimizi görmez. Özellikle birden fazla şirkete saip firmalarda hazırlanan ekranların diğer bir şirket için tekrar hazırlanmasına gerek yoktur. Bu kısa açıkalamadan sonra sırasıyla yapmamız gereken işlemleri inceleyelim.

  1. Öncelikle hazırladığımız formun global kısmında aşağıdaki script yardımı ile formu çağırdığımız temelsetin veritabanı ismini bulalım.

·         SQL için: 

set ndicore = KERNEL.Values(“ts_core”)

set rs = ndicore.NetLibDB.GetNewQuery

query = “SELECT DB_NAME() AS SIRK”

rs.RecSQL(query)

DBName = rs.fieldbyname(“SIRK”).AsString

rs.close

set rs = Nothing 

·         Oracle için:

DBName = Kernel.Values(“ts_core”).NetLibSession.DBUse 

  1. Daha sonra dataset ve xgrid objelerinin sql cümlelerini aşağıdaki script yardımıyla veritabanı adına göre düzenleyelim. Bu scripti FrmFiktif nesnesinin OnNetScrSys_NDIFormAcilis olayına yazalım.

Query = “select * from “  & DBName & “..tblsokkod1

DataSet.SQL.Text = Query

DataSet. Active = False  

DataSet. Active = True

Xgrid1.SQL.Text = Query

Xgrid1. Active = False  

Xgrid1. Active = True

Artık hazırladığımız form çalıştırdığımız temelsetin bağlı olduğu veritabanındaki tablonuz üzerinde veritabanı işlemlerini yapabilir.

Güle güle kullanın J