FieldDatabase

FieldDatabase class

DATABASE alanını uygular.

Daha fazla bilgi edinmek için şu adresi ziyaret edin:Alanlarla Çalışma belgeleme makalesi.

public class FieldDatabase : Field

yapıcılar

İsimTanım
FieldDatabase()Default_Constructor

Özellikleri

İsimTanım
Connection { get; set; }Verilere bir bağlantı alır veya ayarlar.
DisplayResult { get; }Görüntülenen alan sonucunu temsil eden metni alır.
End { get; }Alan sonunu temsil eden düğümü alır.
FileName { get; set; }Veritabanının tam yolunu ve dosya adını alır veya ayarlar
FirstRecord { get; set; }Eklenecek ilk veri kaydının tamsayı kayıt numarasını alır veya ayarlar.
Format { get; }Bir tane alırFieldFormatalanın biçimlendirmesine yazılmış erişim sağlayan nesne.
FormatAttributes { get; set; }Tabloya hangi format niteliklerinin uygulanacağını alır veya ayarlar.
InsertHeadings { get; set; }Alan adlarının veritabanından sütun başlıkları olarak eklenip eklenmeyeceğini alır veya ayarlar.
InsertOnceOnMailMerge { get; set; }Bir birleştirmenin başına veri eklenip eklenmeyeceğini alır veya ayarlar.
IsDirty { get; set; }Belgede yapılan diğer değişiklikler nedeniyle alanın geçerli sonucunun artık doğru (eski) olup olmadığını alır veya ayarlar.
IsLocked { get; set; }Alanın kilitli olup olmadığını alır veya ayarlar (sonucunu yeniden hesaplamamalıdır).
LastRecord { get; set; }Eklenecek son veri kaydının tamsayı kayıt numarasını alır veya ayarlar.
LocaleId { get; set; }Alanın LCID’sini alır veya ayarlar.
Query { get; set; }Veritabanını sorgulayan bir dizi SQL talimatını alır veya ayarlar.
Result { get; set; }Alan ayırıcısı ile alan sonu arasındaki metni alır veya ayarlar.
Separator { get; }Alan ayırıcısını temsil eden düğümü alır.hükümsüz .
Start { get; }Alanın başlangıcını temsil eden düğümü alır.
TableFormat { get; set; }Veritabanı sorgusunun sonucuna uygulanacak formatı alır veya ayarlar.
virtual Type { get; }Microsoft Word alan türünü alır.

yöntemler

İsimTanım
GetFieldCode()Alan başlangıcı ile alan ayırıcısı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür. Hem alan kodu hem de alt alanların alan sonucu dahil edilir.
GetFieldCode(bool)Alan başlangıcı ile alan ayırıcısı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür.
Remove()Alanı belgeden kaldırır. Alanın hemen ardından bir düğüm döndürür. Alanın sonu, üst düğümünün son alt ‘siyse, üst paragrafını döndürür. Alan zaten kaldırılmışsa, şunu döndürürhükümsüz .
Unlink()Alan bağlantısını kaldırma işlemini gerçekleştirir.
Update()Alan güncellemesini gerçekleştirir. Alan zaten güncelleniyorsa fırlatır.
Update(bool)Bir alan güncellemesi gerçekleştirir. Alan zaten güncelleniyorsa fırlatır.

Notlar

Bir veritabanı sorgusunun sonuçlarını bir WordprocessingML tablosuna ekler.

Örnekler

Bir veritabanından verinin nasıl çıkarılacağını ve bir belgeye alan olarak nasıl ekleneceğini gösterir.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Bu DATABASE alanı bir veritabanında sorgu çalıştıracak ve sonucu bir tabloda gösterecektir.
FieldDatabase field = (FieldDatabase)builder.InsertField(FieldType.FieldDatabase, true);
field.FileName = DatabaseDir + "Northwind.accdb";
field.Connection = "Provider=Microsoft.ACE.OLEDB.12.0";
field.Query = "SELECT * FROM [Products]";

Assert.AreEqual($" DATABASE  \\d {DatabaseDir.Replace("\\", "\\\\") + "Northwind.accdb"} \\c Provider=Microsoft.ACE.OLEDB.12.0 \\s \"SELECT * FROM [Products]\"", field.GetFieldCode());

// Tüm ürünleri brüt satışlara göre azalan düzende sıralayan daha karmaşık bir sorgu içeren başka bir VERİ TABANI alanı ekleyin.
field = (FieldDatabase)builder.InsertField(FieldType.FieldDatabase, true);
field.FileName = DatabaseDir + "Northwind.accdb";
field.Connection = "Provider=Microsoft.ACE.OLEDB.12.0";
field.Query =
    "SELECT [Products].ProductName, FORMAT(SUM([Order Details].UnitPrice * (1 - [Order Details].Discount) * [Order Details].Quantity), 'Currency') AS GrossSales " +
    "FROM([Products] " +
    "LEFT JOIN[Order Details] ON[Products].[ProductID] = [Order Details].[ProductID]) " +
    "GROUP BY[Products].ProductName " +
    "ORDER BY SUM([Order Details].UnitPrice* (1 - [Order Details].Discount) * [Order Details].Quantity) DESC";

// Bu özellikler LIMIT ve TOP ifadeleriyle aynı işleve sahiptir.
// Sorgu sonucunun yalnızca 1 ila 10. satırlarını alanın tablosunda görüntüleyecek şekilde yapılandırın.
field.FirstRecord = "1";
field.LastRecord = "10";

// Bu özellik tablomuz için kullanmak istediğimiz biçimin dizinidir. Tablo biçimlerinin listesi "Tablo Otomatik Biçimlendirme..." menüsündedir
// Microsoft Word'de bir DATABASE alanı oluşturduğumuzda ortaya çıkar. İndeks #10 "Renkli 3" formatına karşılık gelir.
field.TableFormat = "10";

// FormatAttribute özelliği, birden fazla bayrağı depolayan bir tamsayının dize gösterimidir.
// TableFormat özelliğinin işaret ettiği formatı, bu özelliğe farklı bayraklar ekleyerek patriyal olarak uygulayabiliriz.
// Kullandığımız sayı, tablo stilinin farklı yönlerine karşılık gelen değerlerin birleşiminden oluşan bir sayıdır.
// 63, 1 (kenarlıklar) + 2 (gölgelendirme) + 4 (yazı tipi) + 8 (renk) + 16 (otomatik sığdırma) + 32 (başlık satırları) değerini temsil eder.
field.FormatAttributes = "63";
field.InsertHeadings = true;
field.InsertOnceOnMailMerge = true;

doc.FieldOptions.FieldDatabaseProvider = new OleDbFieldDatabaseProvider();
doc.UpdateFields();

doc.Save(ArtifactsDir + "Field.DATABASE.docx");

Ayrıca bakınız