Ana içeriğe geç

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).

Değer tipi ile MetadataType karıştırılmamalı

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

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. DocumentMetadata1). Koddan bu adla erişirsiniz.
Field NameVeritabanındaki alanın adı (EntityPath).
IndexableDeğerin arama dizinine eklenip eklenmeyeceği.

Behavior

ÖzellikAçıklama
MetadataTypeHangi üst verinin gösterileceğini belirler. Yalnızca iki değer alır: Id (doküman numarası / anahtar) veya CreateDate (oluşturma tarihi).
DateFormatMetadataType CreateDate ise tarihin biçimi (ör. dd.MM.yyyy).
PullNewNumberForma her girişte yeni bir numara çeker.
PullNumberOnStartNumarayı form ilk açıldığında çeker.
ReadOnly / Default ReadOnlyAlanı salt okunur yapar (varsayılan salt okunur durumu dahil).
RequiredAlanı zorunlu yapar; boşsa form kaydedilmez.

MetadataType değerleri

DeğerAnlamı
IdDokümanın numarası / kimliği (DM Id).
CreateDateDokümanın oluşturma tarihi (DateFormat ile biçimlenir).

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
Default Enabled / Default Client EnabledTasarım zamanı (varsayılan) aktiflik durumu.
TitleNesnenin başlığı (çok dilli MultiLanguageText).
CaptionNesnenin etiket bloğu (ControlCaption).
TextEkranda görünen metin.
Size TypeGenişlik davranışı (sabit / esnek).
Custom Class NameNesneye eklenecek özel CSS sınıfı.
Container Style / StyleNesnenin ve sarmalayan hücrenin stili.

Diğer

ÖzellikAçıklama
Context Menu Key / Context Menu Column Key / Context Menu TargetNesneyi bir ContextMenu nesnesine bağlar.
LoadingNesnenin ü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.

Bu nesnede değer/metin değişim olayı yoktur

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)

OlayNe zaman çalışır
OnValidatingForm 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:

OlayNe zaman çalışır
OnClick / OnDoubleClickNesneye 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 mi .Text mi?

.Value saklanan değerdir, .Text ekranda görünen metindir. Numarayı kodla yazıyorsanız genelde ikisini de aynı yazıyla set etmeniz gerekir.

Değeri kutu (object) olarak okuma

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ızca Id (doküman numarası) veya CreateDate (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çin PullNewNumber kullanın.
  • CreateDate gösteriyorsanız DateFormat ile 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 null olabilir; her zaman Value?.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