AKINSOFT WOLVOX Script Geliştirme: eksik olan özelliği programın içinden ekleyin.
AKINSOFT WOLVOX'a kayıt öncesi doğrulama, özel form ve menü, SQL tabanlı rapor, grid'e hesaplanan kolon ve dış sistemlerle HTTP/JSON bağlantısı ekliyoruz. Ayrı program yok, veri iki yerde tutulmuyor.
// Event Script → SipHr_Ds → BeforePost → İşlem Öncesi procedure SipHr_DsBeforePost_Script_Before(DataSet: TDataSet); begin if DataSet.FieldByName('OZEL_KODU').AsString = '' then begin ShowMessage('Satırda Özel Kodu boş bırakılamaz!'); Abort; // kayıt veritabanına hiç yazılmaz end; end;
Hatalı satır kaydedilmeden durdurulur; kullanıcı neyi düzeltmesi gerektiğini görür.
WOLVOX Pascal Script ile yapılabilecekler
Standart programın dokunmadığı, ama işinizin her gün ihtiyaç duyduğu küçük ve kritik farklar.
Kayıt Öncesi Doğrulama
Fatura, sipariş ya da irsaliye kaydedilmeden önce zorunlu alan, vade, özel kod, fiyat alt sınırı veya cari risk limiti denetimi. Hatalı kayıt veritabanına hiç girmez.
SQL ile Özel Rapor
Standart raporlarda olmayan listeler: son alış fiyatı, döviz bazlı maliyet, şube karşılaştırması. Sorgular önce veritabanında ayrıca doğrulanır, sonra script'e alınır.
Forma Alan ve Kolon Ekleme
Mevcut ekranlara yeni giriş alanı, sekme ya da grid'e hesaplanan kolon. Kullanıcının kaydettiği tablo düzeni bozulmadan.
Özel Form ve Menü
Ana menüye kendi başlığınız, altında işinize özel ekranlar. Tasarım sekmesinde çizilen formlar menüden tek tıkla açılır.
Dış Sistem Entegrasyonu
Kayıt sonrası web servisine veri gönderme, dışarıdan JSON okuma. WOLVOX'u e-ticaret, B2B portal ya da başka bir ERP ile konuşturma.
Otomatik İşlemler
Form açılışında güncel kuru getirme, zamanlayıcıyla periyodik kontrol, belirli koşulda SMS veya e-posta bildirimi.
Gerçek işlerden, çalışan Pascal Script kalıpları
Müşteri projelerinden sadeleştirilmiş, genel örnekler. Kod, WOLVOX Script Tasarım ekranındaki ilgili sekmeye yapıştırılır.
Tüm satırları dolaşan denetim
Başlık kaydedilirken bütün hareket satırları kontrol edilir. Hata bulunursa imleç hatalı satırda bırakılır; kullanıcı hangi satır olduğunu doğrudan görür.
// Genel Script procedure SiparisSatirDenetle; var EskiRecNo: Integer; Hatali: Boolean; begin if not SipHr_Ds.Active then Exit; if SipHr_Ds.IsEmpty then Exit; // başlık ilk kez kaydedilirken satır yoktur Hatali := False; EskiRecNo := SipHr_Ds.RecNo; SipHr_Ds.DisableControls; try SipHr_Ds.First; while not SipHr_Ds.Eof do begin if SipHr_Ds.FieldByName('VADE_GUNU').AsInteger <= 0 then begin Hatali := True; Break; // imleç hatalı satırda kalsın end; SipHr_Ds.Next; end; if not Hatali then SipHr_Ds.RecNo := EskiRecNo; finally SipHr_Ds.EnableControls; end; if Hatali then begin ShowMessage('Tüm satırlarda Vade Günü sıfırdan büyük olmalıdır!'); Abort; end; end;
Ana menüye özel başlık
WOLVOX ana menüsüne kendi menünüzü ekler, tıklanınca Tasarım sekmesinde hazırladığınız formu açar.
// Genel Script var YeniMenu, YeniAlt: TMenuItem; procedure OzelFormAc(Sender: TObject); begin AsFormCreate('OZEL_RAPOR'); end; procedure MenuEkle; begin YeniMenu := TMenuItem.Create(Self); YeniMenu.Caption := 'Özel İşlemler'; MainMenu1.Items.Add(YeniMenu); YeniAlt := AsGenel1.AddMenuItem(YeniMenu, 'Özel Rapor', -1); SetEventMethod(YeniAlt, 'OnClick', 'OzelFormAc'); end; // Event Script → Script → OnStart → İşlem Öncesi begin MenuEkle;
Veritabanından tek değer okumak
Güncel döviz kurunu form açılırken getirir. Script motorunda varsayılan parametre yoktur; beş parametrenin hepsi yazılmalıdır.
var SQL: String; Kur: Extended; begin SQL := 'SELECT TOP 1 SATIS_FIYATI FROM DOVIZ_HAREKET ' + 'WHERE DOVIZ_BIRIMI = ''$'' ORDER BY TARIHI DESC'; Kur := AsGenel1.SQLCalistir1(Uretim_Q.Connection, SQL, 0, False, False);
Satırda zorunlu alan denetimi
Sipariş satırı kaydedilmeden önce iki alan kontrol edilir. Kural sağlanmazsa satır kaydedilmez, kullanıcı neyi düzeltmesi gerektiğini görür.
// Event Script → SipHr_Ds → BeforePost → İşlem Öncesi begin if DataSet.FieldByName('OZEL_KODU').AsString = '' then begin ShowMessage('Özel Kodu boş bırakılamaz!'); Abort; end; if DataSet.FieldByName('VADE_GUNU').AsInteger <= 0 then begin ShowMessage('Vade Günü sıfırdan büyük olmalıdır!'); Abort; end;
Ekrana yeni etiket ve alan eklemek
Mevcut bir bileşenin hemen altına etiket ve sayı alanı eklenir. Konum sabit koordinatla değil, o bileşene göre hesaplanır; form yeniden açıldığında alan ikinci kez eklenmez.
// Genel Script var KurLabel : TsLabel; KurEdit : TsCalcEdit; procedure KurAlaniEkle; begin if CheckBLOKE.Parent.FindComponent('KurLabel') <> nil then Exit; KurLabel := TsLabel.Create(CheckBLOKE.Parent); KurLabel.Name := 'KurLabel'; KurLabel.Parent := CheckBLOKE.Parent; KurLabel.Caption := 'USD Kur'; KurLabel.Left := CheckBLOKE.Left; KurLabel.Top := CheckBLOKE.Top + CheckBLOKE.Height + 18; KurEdit := TsCalcEdit.Create(CheckBLOKE.Parent); KurEdit.Name := 'KurEdit'; KurEdit.Parent := CheckBLOKE.Parent; KurEdit.Left := KurLabel.Left + KurLabel.Width + 10; KurEdit.Top := KurLabel.Top - 4; end; // Event Script → Script → OnStart → İşlem Öncesi begin KurAlaniEkle;
Script Tasarım ekranının yapısını, yazım kurallarını ve daha fazla örneği WOLVOX Pascal Script rehberimizde anlattık.
Pascal Script'te sessizce veri bozan tuzaklar
Hata mesajı vermeden yanlış sonuç üreten durumlar. Script'lerimizi bunlara karşı test ederek teslim ediyoruz.
Doğrulamayı AfterPost'a yazmak
AfterPost'ta Abort kaydı geri almaz; kayıt zaten yazılmıştır ve WOLVOX'un kendi işlemleri atlanır. Doğrulama her zaman BeforePost'ta yapılır.
Tam sayı bölmesi
İki tam sayı arasındaki bölme ondalığı sessizce atar: 2,05 olan fiyat 2,00 olur. Tablo yine makul göründüğü için fark edilmez. Reel sayıyla çarpılarak çözülür.
Ondalık ayırıcı
FloatToStr virgül üretir, StrToFloat nokta bekler. Sayıyı metne yazıp geri okumak çalışma anında Invalid float hatası verir.
Yutulan SQL hatası
Hata gösterimi kapalıyken bozuk bir sorgu varsayılan değeri döndürür; hücre sadece boş kalır. Yeni sorgu boş dönüyorsa ilk şüpheli SQL'in kendisidir.
Grid düzeninin kaybolması
Grid'e yanlış anda kolon eklenirse kullanıcının "tablo yerleşimini kaydet" komutu hiçbir şey yazmaz. Kolon, form tamamen yüklendikten sonra eklenmelidir.
Çoğalan nesneler
Form yeniden açıldığında script'le eklenen alan ikinci kez eklenir. Nesneye ad verilir ve varsa yeniden oluşturulmaz.
Script geliştirme süreci
| Adım | Ne yapıyoruz |
|---|---|
| 1. İhtiyaç | Hangi ekranda, hangi anda, neyin olması gerektiğini birlikte netleştiriyoruz |
| 2. Kontrol | Kullanılacak her nesne ve metot, WOLVOX'un kendi sınıf listesinde ve dokümanında doğrulanır |
| 3. Geliştirme | Parça parça: önce ekran, sonra olay bağlantısı, sonra iş mantığı |
| 4. Test | Veri yazan her script önce test şirketinde; boş kayıt, ilk/son satır ve form yeniden açılışı denenir |
| 5. Teslim | Paket dışarı aktarılarak yedeklenir; kurulum ve kullanım anlatılır |
| 6. Güncelleme sonrası | AKINSOFT sürüm güncellemesinden sonra script'lerin çalıştığı kontrol edilir |
WOLVOX Pascal Script hakkında
WOLVOX Pascal Script nedir?
AKINSOFT WOLVOX'un içine gömülü, Object Pascal sözdizimiyle çalışan bir betik dilidir. Programın kendi formlarına, kayıt olaylarına ve menülerine kod eklemeyi sağlar; ayrı bir program kurmadan WOLVOX'u işletmenize göre uyarlarsınız.
AKINSOFT sürüm güncellemesinde script bozulur mu?
Sabit koordinat ve sabit bileşen adına dayanan script'ler güncellemede sessizce bozulabilir. Biz nesneleri mevcut bir bileşene göre konumlandırır, çoğalmaya karşı koruma ekler ve güncelleme sonrası kontrol listesiyle doğrularız.
Script canlı verime zarar verir mi?
Veri yazan ya da silen her script önce test şirketinde denenir. Doğrulamalar kayıt yazılmadan önce (BeforePost) yapılır; böylece hatalı kayıt veritabanına hiç girmez.
Hangi WOLVOX sürümü ve veritabanı destekleniyor?
WOLVOX 8 ve WOLVOX 9 sürümlerinde; hem MSSQL hem Firebird veritabanı üzerinde geliştirme yapıyoruz. Farklı bir sürüm veya veritabanı kullanıyorsanız ilk görüşmede birlikte değerlendiririz.
Script paketi kime ait olur?
Script paketi WOLVOX lisans numaranıza sabitlenerek size teslim edilir ve yalnız bu lisans numarasıyla çalışır. Kaynak kodu teslim edilmez; paket kilitli olarak verilir, scriptler üzerinde düzenleme yapılamaz.
Bunlar da ilginizi çekebilir
WOLVOX'ta neyi değiştirmek istiyorsunuz?
Hangi ekranda, hangi anda ne olmasını istediğinizi anlatın; yapılabilirliğini ve kapsamını birlikte netleştirelim.
Hemen Arayın: 0 541 156 26 57 veya [email protected] adresine yazın

