Share via


Deyimler (Reporting Services) veri türleriyle çalışma

Veri türleri, verimli bir şekilde depolanıp işlenebilmeleri için farklı çeşitlerdeki verileri temsil eder.Tipik veri türleri arasında metin (dize olarak da bilinir), ondalık basamaklı veya basamaksız sayılar, tarih ve saatler ile resimler bulunur.Verimlilik için veriler bir veri türü kullanılarak depolanabilir, ancak raporda görüntülenirken tercihinize göre biçimlendirilebilir.Örneğin, para birimini temsil eden bir alan, kayan noktalı sayı olarak depolanabilir, ancak seçtiğiniz biçim özelliğine bağlı olarak çeşitli biçimlerde görüntülenebilir.Görüntü biçimleri hakkında daha fazla bilgi için bkz: Raporlar ve rapor öğeleri biçimlendirme.

Değerleri karşılaştırmak veya birleştirmek üzere ifadeler yazarken, örneğin grup veya filtre ifadeleri tanımlarken ya da toplamları hesaplarken veri türlerinin anlaşılması önemlidir.Karşılaştırmalar ve hesaplamalar yalnızca aynı veri türündeki öğeler arasında geçerlidir.Veri türleri eşleşmiyorsa, rapor öğesindeki veri türünü, ifade kullanarak açık olarak dönüştürmeniz gerekir.Aşağıdaki listede, verileri farklı bir veri türüne dönüştürmeniz gerekebilecek durumlar açıklanmaktadır:

  • Bir veri türündeki rapor parametresinin değerini farklı veri türündeki bir veri kümesi alanıyla karşılaştırma.

  • Farklı veri türlerinin değerlerini karşılaştıran filtre ifadeleri yazma.

  • Farklı veri türlerinin alanlarını birleştiren sıralama ifadeleri yazma.

  • Farklı veri türlerinin alanlarını birleştiren grup ifadeleri yazma.

  • Veri kaynağından alınmış değeri bir veri türünden farklı bir veri türüne dönüştürme.

Rapor Verilerinin Türünü Belirleme

Bir rapor öğesinin veri türünü belirlemek için, veri türünü döndüren bir ifade yazabilirsiniz.Örneğin, alan veri türünü gösterir. MyField, bir tablo hücresine aşağıdaki ifade ekleyin: =Fields!MyField.Value.GetDataType().ToString().The result displays the CLR data type used to represent MyField, for example, System.String or System.DateTime.

Veri Kümesi Alanlarını Farklı Veri Türüne Dönüştürme

Ayrıca, veri kümesi alanlarını raporda kullanmadan önce dönüştürebilirsiniz.Aşağıdaki listede, varolan veri kümesi alanını dönüştürebileceğiniz yollar açıklanmaktadır:

  • Veri kümesi sorgusunu, dönüştürülmüş verileri olan yeni bir sorgu alanı ekleyecek şekilde değiştirin.İlişkisel veya çok boyutlu veri kaynaklarında, bu işlem, dönüşümü gerçekleştirmek üzere veri kaynaklarını kullanır.
  1. Bir sonuç kümesi sütunundaki tüm verileri farklı veri türündeki yeni bir sütuna dönüştüren bir ifade yazarak, varolan rapor veri kümesi alanını temel alan bir hesaplanan alan oluşturun.Örneğin, aşağıdaki ifade alan yıl arasında bir tamsayı değer dize değerine dönüştürür: =CStr(Fields!Year.Value).For more information, see Nasıl Yapılır: Ekleme, düzenleme veya raporu veri bölmesinde alan silme.
  • Kullandığınız veri işleme uzantısının önceden biçimlendirilmiş verileri almak için meta veri içerip içermediğini denetleyin.For example, a SQL Server Analysis Services MDX query includes a FORMATTED_VALUE extended property for cube values that have already been formatted when processing the cube.Daha fazla bilgi için bkz: Bir Analysis Services DataSet için Genişletilmiş Alan Özellikleri'ni kullanma.

Parametre Veri Türlerini Anlama

Rapor parametrelerini beş veri türlerinden biri olmalıdır: Boole, DateTime, ınteger, float veya metin (dize olarak da bilinir). Veri kümesi sorgusu sorgu parametreleri içeriyorsa, rapor parametreleri otomatik olarak oluşturulur ve sorgu parametrelerine bağlanır.Rapor parametresinin varsayılan veri türü Dize'dir.Bir rapor parametresinin varsayılan veri türünü değiştirmek için , doğru değeri seçin: Veri türü kapalı açılan listedeGenel sayfaRapor, parametre özellikleri iletişim kutusu.

Not

Tarih/Saat veri türlerindeki rapor parametreleri milisaniyeleri desteklemez.Milisaniyeleri içeren değerleri temel alan bir parametre oluşturabilseniz de, milisaniyeler içeren Tarih veya Saat değerleri olan kullanılabilir değerler açılır listesinden bir değer seçemezsiniz.

Veri Türlerini Dönüştüren veya Veri Bölümlerini Ayıklayan İfadeler Yazma

Metin ve veri alanları art arda ekleme işleç (kullanarak hangi koşullarda Birleştir&), ortak dil çalışma zamanı (CLR), genellikle varsayılan biçimler sağlar. Veri kümesi alanını veya parametresini açık olarak belirli bir veri türüne dönüştürmeniz gerektiğinde, verileri dönüştürmek için bir CLR yöntemini veya Visual Basic çalışma zamanı kitaplık işlevini kullanmanız gerekir.

Aşağıdaki tabloda, veri türü dönüştürme örnekleri gösterilmiştir.

Dönüşüm türü

Örnek

Tarih/Saat'i Dize'ye

=CStr(Fields!Date.Value)

Dize'yi Tarih/Saat'e

=DateTime.Parse(Fields!DateTimeinStringFormat.Value)

Dize'yi DateTimeOffset'e

=DateTimeOffset.Parse(Fields!DateTimeOffsetinStringFormat.Value)

Yılı Ayıklama

=Year(Fields!TimeinStringFormat.Value)

-- or --

=Year(Fields!TimeinDateTimeFormat.Value)

Boole'yi Tamsayı'ya

=CInt(Parameters!BooleanField.Value)

-1 True ve 0 False'tur.

Boole'yi Tamsayı'ya

=System.Convert.ToInt32(Fields!BooleanFormat.Value)

1 true ve 0 yanlış.

DateTimeOffset değerinin yalnızca Tarih/Saat kısmı

=Fields!MyDatetimeOffset.Value.DateTime

DateTimeOffset değerinin yalnızca Fark kısmı

=Fields!MyDatetimeOffset.Value.Offset

Değerin görüntülenme biçimini denetlemek için Format işlevini de kullanabilirsiniz.Daha fazla bilgi için bkz: Işlevler'i (Visual Basic).

Gelişmiş Örnekler

Veri kaynağındaki tüm veri türleri için dönüşüm desteği sağlamayan veri sağlayıcısı olan bir veri kaynağına bağlandığınızda, desteklenmeyen veri kaynağı türlerinin varsayılan veri türü Dize'dir.Aşağıdaki örnekler, dize olarak döndürülen belirli veri türlerine çözümler sağlar.

Dize ile CLR DateTimeOffset Veri Türünü Birleştirme

Farklı veri türlerine bir dize kullanarak değerleri art arda bağlamak çoğu veri türleri için CLR varsayılan dönüştürmeleri sunar, böylece & işleç. Örneğin, aşağıdaki ifade metni birleştirir. "tarih ve saat: "bir dataset ile olan StartDate alanındaki birDateTime değer: ="The date and time are: " & Fields!StartDate.Value.

Bazı veri türlerinde, ToString işlevini eklemeniz gerekebilir.Örneğin, aşağıdaki ifade CLR veri türünü kullanarak aynı örneği gösterir. DateTimeOffset, hangi tarih ve saati UTC saat dilimini göreceli olarak bir saat dilimi uzaklığı içerir: ="The time is: " & Fields!StartDate.Value.ToString().

Dize Veri Türünü CLR DateTime Veri Türüne Dönüştürme

Veri işleme uzantısı veri kaynağında tanımlı tüm veri türlerini desteklemiyorsa, veriler metin olarak alınabilir.Örneğin, bir datetimeoffset(7) veri türü değeri bir dize veri türü alınabilir. In Perth, Australia, the string value for July 1, 2008, at 6:05:07.9999999 A.M.would resemble:

2008-07-01 06:05:07.9999999 +08:00

Bu örnek, tarihi (1 Temmuz 2008), ardından 7 basamaklık duyarlılığa kadar saati (06:05:07.9999999) ve sonra saat ve dakika cinsinden UTC saat dilimi farkını (artı 8 saat, 0 dakika) gösterir.Aşağıdaki örnekler için bu değer, yerleştirildi bir String adlı alan MyDateTime.Value.

Bu verileri bir veya daha fazla CLR değerine dönüştürmek için, aşağıdaki stratejilerden birini kullanabilirsiniz:

  • Metin kutusunda, dizenin bölümlerini ayıklamak için ifade kullanın.Örneğin:

    • Aşağıdaki ifade, yalnızca UTC saat dilimini parçası mahsup edilen ve dakikaya dönüştürür saat ayıklayan: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60

      Sonuç 480.

    • Aşağıdaki ifade dönüştürür dize için bir tarih ve saat değeri: =DateTime.Parse(Fields!MyDateTime.Value)

      If the MyDateTime.Value dize has a UTC offset, the DateTime.Parse işlev first adjusts for the UTC offset (7 A.M. - [+08:00] to the UTC time of 11 P.M.the night before).The DateTime.Parse işlev then applies the local rapor sunucusu UTC offset and, if necessary, adjusts the saat again for Daylight Saving saat. Örneğin, Redmond, Washington, yerel saat uzaklığı ışığından yararlanma saati için ayarlanmış olur. [-07:00], veya 11 PM'den önceki 7 saat. Sonuç şudur DateTime değer: 2007-07-06 04:07:07 PM (Temmuz 2007'in 6 açıklaması saat 4: 07 P.M).

      Dizeleri için dönüştürme hakkında daha fazla bilgi için DateTime veri türleri için bkz: Tarih ve saat dizeleri ayrıştırma and Belirli bir kültür için tarih ve saat biçimlendirme msdn.

  • Rapor veri kümesine, dizenin bölümlerini ayıklamak için ifade kullanan yeni bir hesaplanan alan ekleyin.Daha fazla bilgi için bkz: Nasıl Yapılır: Ekleme, düzenleme veya raporu veri bölmesinde alan silme.

  • Kullanılacak rapor dataset sorgusunu değiştirme Transact-SQL işlevler, bağımsız olarak ayrı bir sütun oluşturmak için tarih ve saat değerlerini ayıklamak için. Aşağıdaki örnek, işlevin nasıl gösterir. DatePart yıl ve UTC saat dilimi için bir sütun için sütun eklemek için dakikaya dönüştürülür:

    SELECT

    MyDateTime,

    DATEPART(year, MyDateTime) AS Year,

    DATEPART(tz, MyDateTime) AS OffsetinMinutes

    FROM MyDates

    Sonuç kümesinin üç sütunu vardır.İlk sütun tarih ve saat, ikinci sütun yıl ve üçüncü sütun da dakika cinsinden UTC farkıdır.Aşağıdaki satır örnek verileri göstermektedir:

    2008-07-01 06:05:07 2008 480

SQL Server veritabanı türleri hakkında daha fazla bilgi için bkz: Veri türleri (Veritabanı Altyapısı) ve Tarih ve saat veri türleri ve işlevler (Transact-SQL).