DocumentMetadata
Dokümanın kendi kimlik bilgisini forma getiren nesnedir. Sistemin ürettiği iki bilgiden birini gösterir: dokümanın numarası (DM Id) ya da oluşturma tarihi. Hangisinin gösterileceği MetadataType ayarıyla seçilir.
Değer tipi: String (doküman numarası ya da DateFormat'a göre biçimlenmiş oluşturma tarihi).
Nesnenin Value özelliği her zaman bir String'dir. DocumentMetadataType ise yalnızca hangi bilginin gösterileceğini belirleyen MetadataType özelliğinin tipidir; nesnenin değerinin tipi değildir. Kodda değer her zaman string olarak okunup yazılır (ör. "DV-2026-0001").
Ne zaman kullanılır?
Formun başında dokümanın numarasını ya da oluşturma tarihini göstermek istediğinizde kullanılır. Bu bilgiyi kullanıcı elle yazmaz; nesne MetadataType ayarına göre değeri sistemden çeker. Otomatik numaralandırılan dilekçe, talep ya da evrak formlarında idealdir.
Tasarımcı özellikleri
Bir DocumentMetadata seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. DocumentMetadata1). Koddan bu adla erişirsiniz. |
Field Name | Veritabanındaki alanın adı (EntityPath). |
Indexable | Değerin arama dizinine eklenip eklenmeyeceği. |
Behavior
| Özellik | Açıklama |
|---|---|
MetadataType | Hangi üst verinin gösterileceğini belirler. Yalnızca iki değer alır: Id (doküman numarası / anahtar) veya CreateDate (oluşturma tarihi). |
DateFormat | MetadataType CreateDate ise tarihin biçimi (ör. dd.MM.yyyy). |
PullNewNumber | Forma her girişte yeni bir numara çeker. |
PullNumberOnStart | Numarayı form ilk açıldığında çeker. |
ReadOnly / Default ReadOnly | Alanı salt okunur yapar (varsayılan salt okunur durumu dahil). |
Required | Alanı zorunlu yapar; boşsa form kaydedilmez. |
MetadataType değerleri
| Değer | Anlamı |
|---|---|
Id | Dokümanın numarası / kimliği (DM Id). |
CreateDate | Dokümanın oluşturma tarihi (DateFormat ile biçimlenir). |
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü. |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı. |
Default Enabled / Default Client Enabled | Tasarım zamanı (varsayılan) aktiflik durumu. |
Title | Nesnenin başlığı (çok dilli MultiLanguageText). |
Caption | Nesnenin etiket bloğu (ControlCaption). |
Text | Ekranda görünen metin. |
Size Type | Genişlik davranışı (sabit / esnek). |
Custom Class Name | Nesneye eklenecek özel CSS sınıfı. |
Container Style / Style | Nesnenin ve sarmalayan hücrenin stili. |
Diğer
| Özellik | Açıklama |
|---|---|
Context Menu Key / Context Menu Column Key / Context Menu Target | Nesneyi bir ContextMenu nesnesine bağlar. |
Loading | Nesnenin üzerinde yükleniyor göstergesini açar/kapatır (ShowLoading() / HideLoading()). |
Olaylar
DocumentMetadata, değeri çoğunlukla sistem doldurduğu için zengin bir olay yüzeyi sunmaz. Kod tarafında doğrulanmış tek olay ValidatingEvent'tir; bu, form kaydedilmeden önce alanın geçerliliğini denetlemenizi sağlar.
TextBox gibi giriş nesnelerinin aksine DocumentMetadata (taban sınıfı MetadataControl1) üzerinde ValueChanged/ValueChangingya daTextChanged/TextChanging` olayı bulunmaz. Değer kullanıcı tarafından değil sistem tarafından üretildiği için bu olaylar tanımlı değildir.
Sunucu olayları (Server)
| Olay | Ne zaman çalışır |
|---|---|
OnValidating | Form kaydedilmeden önce, alanın geçerliliği denetlenirken. İptal edilebilir (e.Cancel = true). |
İstemci olayları (Client)
Görsel taban sınıftan (VisualControl) gelen genel etkileşim olayları kullanılabilir:
| Olay | Ne zaman çalışır |
|---|---|
OnClick / OnDoubleClick | Nesneye tıklanınca / çift tıklanınca. |
Kod örnekleri
Bir DocumentMetadata'ya iki yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz:
// Oku (null-güvenli)
string numara = DocumentMetadata1.Value?.ToString();
// Yaz (genelde platform doldurur; gerekirse elle yazabilirsiniz)
DocumentMetadata1.Value = "DV-2026-0001";
DocumentMetadata1.Text = "DV-2026-0001";
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz. Değer null olabileceği için okurken her zaman null-güvenli ?.ToString() kullanın:
// Oku (null-güvenli idiom)
string numara = Document1.Controls["DocumentMetadata1"].Value?.ToString();
// Yaz
Document1.Controls["DocumentMetadata1"].Value = "DV-2026-0001";
Document1.Controls["DocumentMetadata1"].Text = "DV-2026-0001";
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (value, text):
this.DocumentMetadata1.value = "";
this.DocumentMetadata1.text = "";
.Value saklanan değerdir, .Text ekranda görünen metindir. Numarayı kodla yazıyorsanız genelde ikisini de aynı yazıyla set etmeniz gerekir.
Güçlü tipli nesne nesnesini elinizde tutuyorsanız GetValueAsObject() ile değeri kutulanmış object olarak, GetData() ile değeri tip etiketiyle birlikte (FormControlDataWithType) okuyabilirsiniz. Tasarım zamanı varsayılanını düşürmek için ClearDefaultValue() kullanılır.
object ham = DocumentMetadata1.GetValueAsObject();
Örnek: değeri doğrulama (OnValidating)
Bu nesnede değer değişim olayı olmadığı için doğrulamayı OnValidating olayında yaparsınız. Olay form kaydedilmeden önce çalışır; geçersiz bir değeri burada e.Cancel = true ile reddedebilirsiniz.
Sunucu (C#):
void DocumentMetadata1_OnValidating(object sender, ValidatingEventArgs e)
{
if (string.IsNullOrEmpty(DocumentMetadata1.Value?.ToString()))
{
e.Cancel = true;
e.Messages.Add(new Bimser.CSP.FormControls.RuleManager.ValidationMessage
{
Type = Bimser.CSP.FormControls.RuleManager.AlertType.Validation,
Message = "Doküman numarası boş olamaz."
});
}
}
İpuçları
MetadataTypeözelliği yalnızcaId(doküman numarası) veyaCreateDate(oluşturma tarihi) değerlerini alır; başka bir üst veri türü yoktur.- Numaranın form açılır açılmaz gelmesini istiyorsanız
PullNumberOnStartözelliğini açın; her girişte yeni numara içinPullNewNumberkullanın. CreateDategösteriyorsanızDateFormatile biçimi (ör.dd.MM.yyyy) belirleyin.- Numarayı kullanıcı değiştirsin istemiyorsanız
ReadOnlyözelliğini açık tutun. - Akış kodunda değer
nullolabilir; her zamanValue?.ToString()ile null-güvenli okuyun.
Tüm tasarımcı özellikleri (tam liste)
General: Name, Field Name (EntityPath), Indexable
Behavior: MetadataType (Id / CreateDate), DateFormat, PullNewNumber, PullNumberOnStart, ReadOnly, DefaultReadOnly, Required
Appearance: Visible, ClientVisible, Enabled, ClientEnabled, DefaultEnabled, DefaultClientEnabled, Title, Caption, Text, Value, SizeType, CustomClassName, ContainerStyle, Style, Loading
Diğer: ContextMenuKey, ContextMenuColumnKey, ContextMenuTarget, ControlId
Metotlar: GetValueAsObject(), GetData(), IsValid(), ClearDefaultValue(), LoadData(), GetDifferences()
Olaylar (Server): OnValidating
Olaylar (Client): OnClick, OnDoubleClick