Ana içeriğe geç

Barcode

Tek bir metin değerini tutan ve bu değeri seçilen barkod türünde (QR, Code128, EAN13 vb.) çizen giriş nesnesidir. Değeri her zaman bir metin (string) olarak saklar; sakladığı bu metin, ekranda seçtiğiniz simgolojiye göre barkod görüntüsüne dönüştürülür.

Değer tipi: string

Ne zaman kullanılır?

Stok kodu, ürün etiketi, seri numarası ya da sevkiyat numarası gibi bir değeri barkod olarak göstermek veya forma yazmak için kullanın. Değeri sabit bir metin olarak verebilir (ValueType = Constant) ya da formdaki bir alana bağlayarak dinamik üretebilirsiniz (ValueType = Dynamic). Sadece serbest metin girişi gerekiyorsa TextBox daha uygundur.

Tasarımcı özellikleri

Bir Barcode seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Barkod1). Koddan bu adla erişirsiniz.
Field NameDeğerin veritabanında saklanacağı alanın adı.

Behavior

ÖzellikAçıklama
Code TypeÇizilecek barkodun türü (BarcodeType). Hangi simgolojinin kullanılacağını belirler (ör. QR, code128, EAN13). Tam liste için aşağıdaki nota bakın.
Value TypeDeğerin nasıl belirleneceği (BarcodeValueType). Constant = sabit, tasarımda verilen değer; Dynamic = bir alana bağlı, çalışma zamanında üretilen değer. Metin/sayısal ayrımı değildir.
ReadOnlyAlanı salt okunur yapar; kullanıcı değeri değiştiremez.
RequiredAlanı zorunlu yapar; boşsa form kaydedilmez.
Tab IndexTab tuşuyla geçiş sırasını belirler.
not
Code Type (BarcodeType) değerleri

BarcodeType enum'u ~50 simgoloji içerir. Tamamı:

QR, Codebar, code11, code39standard, code39extended, code93standard, code93extended, code128, gs1code128, pharmacode, datamatrix, actec, pdf417, macropdf417, australipost, postnet, EAN8, EAN13, EAN14, SCC14, SSCC18, UPCA, UPCE, ISBN, ISSN, ISMN, Standard2of5, Interleaved2of5, Matrix2of5, ItalianPost25, IATA2of5, ITF14, ITF6, MSI, VIN, DeutschePostIdentcode, DeutschePostLeitcode, OPC, PZN, Code16K, Planet, OneCode, RM4SCC, DatabarOmniDirectional, DatabarTruncated, DatabarLimited, DatabarExpanded, SingaporePost, GS1DataMatrix, AustralianPosteParcel, SwissPostParcel.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
TitleNesnenin başlığı (çok dilli MultiLanguageText).

Olaylar

Barcode tek değerli bir giriş nesnesidir; değeri değiştiğinde değer olayları, doğrulama sırasında ise doğrulama olayı tetiklenir. Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda.

Değer değiştiğinde: OnValueChanging (iptal edilebilir) → OnValueChanged. Ayrıca doğrulama sırasında OnValidating çalışır.

Sunucu olayları (Server)

OlayNe zaman çalışır
OnValueChangingDeğer değişmeden hemen önce. e.Cancel = true ile iptal edilebilir.
OnValueChangedDeğer kesinleştiğinde. En sık kullanılan olaydır.
OnValidatingDeğer doğrulanırken; geçersiz bir değeri burada reddedebilirsiniz.

İstemci olayları (Client)

OlayNe zaman çalışır
OnValueChanging / OnValueChangedDeğer değişmeden önce / sonra.
Olay parametreleri

OnValueChanging olayının parametresi (args TS, e C#) şunları taşır:

  • newValue / NewValue — yeni değer (string)
  • oldValue / OldValue — önceki değer (string)
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir (yalnızca Changing olayında)

OnValueChanged olayında cancel yoktur (değişiklik artık gerçekleşmiştir).

Kod örnekleri

Bir Barcode'a üç yerden erişebilirsiniz. Barcode'un tek değer taşıyıcısı .Value'dur; bu nesnenin .Text üyesi yoktur. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.

Form kodu (C#, sunucu)

Form kodunda nesneye doğrudan adıyla erişirsiniz:

// Oku
string kod = Barkod1.Value?.ToString();

// Yaz
Barkod1.Value = "8690000000001";

Akış (Flow) kodu (C#, sunucu)

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:

// Oku
string kod = Document1.Controls["Barkod1"].Value?.ToString();

// Yaz
Document1.Controls["Barkod1"].Value = "8690000000001";

İstemci kodu (TypeScript, tarayıcı)

İstemci tarafında nesnelere this. ile erişilir ve özellik adı küçük harfle yazılır (value):

this.Barkod1.value = "8690000000001";
ipucu
Sadece .Value

Barcode'un tek değer üyesi .Value'dur (string). TextBox'taki gibi ayrı bir .Text üyesi yoktur; barkod simgesi, sakladığınız .Value metninden Code Type'a göre otomatik çizilir. Bu yüzden değeri set ederken yalnızca .Value yazın.

Örnek: okunan değeri doğrulama (OnValueChanging)

OnValueChanging değer kesinleşmeden hemen önce çalışır; istemediğiniz bir değeri burada iptal edebilirsiniz. Aşağıdaki örnekte yalnızca 869 ile başlayan kodlar kabul edilir.

İstemci (TypeScript):

async Barkod1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<string>) {
if (!args.newValue.startsWith("869")) {
args.cancel = true; // Geçersiz değeri iptal eder
this.showMessage("Uyarı", "Sadece 869 ile başlayan kodlar girilebilir.", "Validation");
args.newValue = ""; // İptal edilen değeri boşaltır
}
}

Sunucu (C#):

void Barkod1_OnValueChanging(object sender, PropertyChangingEventArgs<string> e)
{
if (e.NewValue == null || !e.NewValue.StartsWith("869"))
{
e.Cancel = true;
ShowMessage("Uyarı", "Sadece 869 ile başlayan kodlar girilebilir.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}

Örnek: sunucuda geçerlilik kontrolü (IsValid)

Barcode, DataBoundControl'den gelen IsValid() metodunu devralır. Nesnenin Required gibi kurallarını çalışma zamanında sunucuda denetlemek için kullanılır:

if (!Document1.Controls["Barkod1"].IsValid())
{
ShowMessage("Uyarı", "Barkod alanı geçerli değil.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}

İpuçları

  • Code Type özelliğini çizeceğiniz etikete göre seçin; QR kodlar için QR, ürün barkodları için genelde code128 ya da EAN13 uygundur.
  • Value Type özelliği değerin nereden geleceğini belirler: sabit bir kod için Constant, formdaki bir alana bağlı dinamik üretim için Dynamic. Bu özellik değerin metin/sayı oluşuyla ilgili değildir.
  • Nesnenin Required özelliğini kullanarak kod ile boş/dolu kontrolü yapmanıza gerek kalmaz; gerekirse sunucuda IsValid() ile denetleyin.
  • Değer doğrulamasını OnValueChanging (iptal edilebilir) ya da OnValidating olayında yapın.
Tüm tasarımcı özellikleri (tam liste)

General: Name, Field Name

Behavior: Code Type (BarcodeType), Value Type (BarcodeValueType: Constant / Dynamic), ReadOnly, Required, Tab Index

Appearance: Visible, Client Visible, Enabled, Client Enabled, Title

Olaylar (Server): OnValueChanging, OnValueChanged, OnValidating

Olaylar (Client): OnValueChanging, OnValueChanged