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
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. Barkod1). Koddan bu adla erişirsiniz. |
Field Name | Değerin veritabanında saklanacağı alanın adı. |
Behavior
| Özellik | Açı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 Type | Değ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. |
ReadOnly | Alanı salt okunur yapar; kullanıcı değeri değiştiremez. |
Required | Alanı zorunlu yapar; boşsa form kaydedilmez. |
Tab Index | Tab tuşuyla geçiş sırasını belirler. |
Code Type (BarcodeType) değerleriBarcodeType 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
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü. |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı. |
Title | Nesnenin 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)
| Olay | Ne zaman çalışır |
|---|---|
OnValueChanging | Değer değişmeden hemen önce. e.Cancel = true ile iptal edilebilir. |
OnValueChanged | Değer kesinleştiğinde. En sık kullanılan olaydır. |
OnValidating | Değer doğrulanırken; geçersiz bir değeri burada reddedebilirsiniz. |
İstemci olayları (Client)
| Olay | Ne zaman çalışır |
|---|---|
OnValueChanging / OnValueChanged | Değer değişmeden önce / sonra. |
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/Cancel—trueyapılırsa değişiklik iptal edilir (yalnızcaChangingolayı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";
.ValueBarcode'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çinQR, ürün barkodları için geneldecode128ya daEAN13uygundur.Value Typeözelliği değerin nereden geleceğini belirler: sabit bir kod içinConstant, formdaki bir alana bağlı dinamik üretim içinDynamic. 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 sunucudaIsValid()ile denetleyin. - Değer doğrulamasını
OnValueChanging(iptal edilebilir) ya daOnValidatingolayı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