2014-12-01 15 views
10

Raporlama Hizmetleri tasarımcısına bir kod sınıfından veri sağlama Yerel bir SQL Server Raporlama Hizmetleri raporu (.rdlc dosya) oluşturmaya çalışıyorum ve bu raporu kodda oluşturduğum bazı veri kümelerine (doğrudan SQL Server bağlantısı). VS 2013

Ben kriterlerin çeşitli kümeleri için IList<T> döndüren bazı örnek yöntemleri ile ReportDataProvider sınıf oluşturmak - ama Visual Studio 2013

içine Raporlama Hizmetleri tasarımcı gösterilmesini yöntemleri sağlayarak bu veriyi yapmak için bir yol bulmak gibi olamaz

Report Data explorer penceresindeki Datasets düğümündeki Add DataSet düğümü tıklatıldıktan sonra görüntülenen iletişim kutusuna baktığımda, orada listelenen sınıflarımın bir tonunu görüyorum - ancak veri sağlayıcı sınıfımı göremiyorum.

enter image description here

Farkında olmam gereken özel bir şey (sınıf static? Bazı özniteliği ile süsleyin yapmak?) Sırayla mümkün veri kaynaklarının bu açılır listede göstermek için var mı? Çeşitli şeyleri denedim, ancak düzgün çalışması için herhangi bir yol bulamadı ...

cevap

3

Bazı araştırmalar yapıyorum ve ders eklemek için farklı yollar deniyorum. Ne yazık ki bu tasarımcıda statik sınıflarını göremezsiniz. Farklı yollar denedim ama şans yok. olmayan statik sınıflar için

bu kılavuz bile IList gibi Interfaces ile benim için her zaman çalışır, ancak ben burada temsil etmemektedir:

  1. projenizde senin Veri Raporu sınıfları ile ad mevcut olduğundan emin olun .rdlc dosyaları ile. Referans eklemeniz gerekebilir.
  2. Veri Raporu Yazma Sınıfı ve çözümü yeniden oluşturun.
  3. VS'nizdeki .rdlc dosyalarını kapatın ve yeniden açın.

    using System.Collections.Generic; 
    
    namespace YourReportNamespace 
    { 
        public class ReportClass 
        { 
         public List<string> TestReportData() 
         { 
          return new List<string>(); 
         } 
         public static List<string> StaticTestReportData() 
         { 
          return new List<string>(); 
         } 
        } 
    
    
        public class ReportWithFieldsClass 
        { 
         private List<string> Data = new List<string>(); 
    
         public List<string> TestReportData() 
         { 
          return Data; 
         } 
    
         public List<string> TestReportData2() 
         { 
          return Data; 
         } 
    
         public static List<string> StaticTestReportData() 
         { 
          return new List<string>(); 
         } 
        } 
    
        public static class ReportWithFieldsStaticClass //This class will not appear 
        { 
         private static List<string> Data = new List<string>(); 
    
         public static List<string> StaticTestReportDataFromField() 
         { 
          return Data; 
         } 
         public static List<string> StaticTestReportData() 
         { 
          return new List<string>(); 
         } 
        } 
    } 
    

    Bu şimdiye kılavuzda geçmesinin ardından ben tasarımcı ne var olduğunu:

Ben Bu benim sınıfları olan VS 2013 Ultimate Güncelleme 2.

kullanılarak

enter image description here

+0

Çabalarınız için teşekkürler - ne yazık ki, ben de denedim, ve - sadece benim için hiç işe yaramıyor. Sınıfı veya yöntemleri "durağan" yapsam da olmasa da, bunları raporla aynı meclise ya da farklı (başvurulan) birine koyup koymamam farketmez - sınıfımı asla geçerli bir "DataSource" olarak görmedim. .... –

+1

Çevreyi araştırdığımda, bunu [cevap] buluyorum (http://stackoverflow.com/a/4888113/1849444). Maby, sorunun cevabı bu mu? Jenerik tip kullandığınız kadarıyla. –

0

Benzer bir sorunla karşılaştı. Hata içermeyen bir derleme elde etmeyi başardıysa, ad alanımın veri kaynaklarından seçtiği görünüyordu.