WOLVOX Pascal Script Geliştirme
WOLVOX'u işinize göre uyarlayın

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.

Neler Yapıyoruz

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.

Kod Örnekleri

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.

Sık Yapılan Hatalar

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.

Çalışma Şeklimiz

Script geliştirme süreci

WOLVOX Pascal Script geliştirme süreci
AdımNe yapıyoruz
1. İhtiyaçHangi ekranda, hangi anda, neyin olması gerektiğini birlikte netleştiriyoruz
2. KontrolKullanılacak her nesne ve metot, WOLVOX'un kendi sınıf listesinde ve dokümanında doğrulanır
3. GeliştirmeParça parça: önce ekran, sonra olay bağlantısı, sonra iş mantığı
4. TestVeri yazan her script önce test şirketinde; boş kayıt, ilk/son satır ve form yeniden açılışı denenir
5. TeslimPaket 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
Sık Sorulanlar

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.

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
AKINSOFT
Yetkili Çözüm Ortağı Lisans · kurulum · veri aktarımı · eğitim · destek · script geliştirme — tek muhatap.
WhatsApp