2014-06-05 21 views
5

Çalışma zamanında SSRS raporları için veri kaynağını dinamik olarak belirtmem gerekiyor. Ben bu çözümleri bulundu: Crystal Reports gibiGözetimsiz yürütme hesabı olmadan SSRS raporları için veri kaynağını dinamik olarak ayarlayın.

Change SSRS data source of report programmatically in server side

SSRS Dynamic Shared Data Source

Diğer teknolojiler bizi çok kolaylıkla bu kesmek hala bana tuhaf görünüyor böylece yıllardır iradesiyle veri kaynağını değiştirmek için izin vermiş Bunu başarmanın en iyi yolu, ancak durumun üstlenilmesi: katılımsız yürütme hesabını etkinleştirmeden bunu yapmak mümkün mü?

+0

SSRS geliştirme çoğu zaman ne istediğinizi üretmeye kandırmak için bir dizi çirkin kesmek kullanmaya gelir. Bazen, geri adım atmak ve genel gereksinimlere bakmak diğer seçenekleri ortaya çıkarabilir. Farklı veri kaynakları için çalıştırmanızın gerekçesi nedir? Sonlu bir sayısı var mı? Her biri farklı bir veri kaynağı kullanarak aynı raporun birden çok kopyasını dağıtmak daha kolay olabilir mi? – kyzen

+1

@kyzen Evet, bence başlangıçta bunu yapacağız (farklı veri kaynaklarıyla kopyaları dağıtın). Veri kaynağını değiştirmek istememin iki nedeni var. Birincisi, raporları üretim sunucusuna karşı geliştirme sunucusuna işaret etmek ve diğeri ise verilerini ayrı veritabanlarında bulunduran müşteriler içindir. – BVernon

+1

Tamamen özel bir powershell dağıtım komut dosyası yazarak veya Visual Studio'da birden çok dağıtım yapılandırması kullanarak kendiniz için * küçük * biraz daha kolaylaştırabilirsiniz. Visual Studio, daha az ön çalışma olacak, ancak dağıtım yapısı açısından biraz katı olacaktır. Powershell ile, yapılandırma verilerini harici olarak (XML, tablo, vb.) Depolayabilir, böylece uzun vadede karmaşık dağıtım kurallarını yönetebilirsiniz. – kyzen

cevap

7

Çalışma zamanında bir veri kaynağını nasıl değiştiririm.

  1. Veritabanı parametresi bir rapor parametresi oluşturun.
  2. Bir rapor parametresi DatebaseName oluşturun.
  3. Rapor için bir dsTest veri kaynağı oluşturun (Bu yerel olarak sınama içindir).
  4. Test veritabanınıza işaret etmek için dsTest veri kaynağını ayarlayın.
  5. başka bir "dsDynamic" veri kaynağı oluşturun ve aşağıdaki ile bağlantısı dize ifadesini ayarlayın: ="Data Source="+Parameters!DatabaseServer.Value+";Initial Catalog="&Parameters!DatabaseName.Value

  6. Build'a ve 3. adımda

  7. Seti oluşturulan deney bağlantısına tüm veri setlerini ayarlayarak raporu sınamak Raporun, canlı dağıtımdan önce 5. adımda oluşturulan dinamik veri kümesine ait veri kümeleri.
  8. Başka bir veritabanı örneğini işaret etmek için veritabanı adı ve sunucu adını raporlarınızdan raporlarınıza gönderin.
+1

Sonunda ne yaptığımı hatırlamıyorum, ama bu cevabı sadece bir tanesi olduğu için işaretliyorum ve sizin için çalıştığını varsayalım :) :) – BVernon

+0

Bunu da işaretledim, bunun yanı sıra başarı ile kullandım. Teşekkürler @lrb. – callisto

+0

"&" 5. adımda ne yapıyor? – mcolegro