Domanda

Qualcuno può fornire uno snippet di codice, un link Tutorial o informazioni su come creare un report in Microsoft Report da un elenco di oggetti?

Ho la seguente classe Dog:

namespace MyNS
{
   public class Dog
   {
      public int Legs { get; set; }
      public string Name { get; set; }
      public string Breed { get; set; }
   }
}

Quindi, in Window Forms, ho un oggetto ReportViewer che vorrei popolare da un Elenco di MyNS.Dog oggetti come questo:

List<MyNS.Dog> MyDogs = new List<MyNS.Dog>();
// populate array here
// and use it as datasource for ReportViewer

Qualche idea?

Grazie!

È stato utile?

Soluzione

Per un rapporto locale, puoi specificare l'origine dati in questo modo:

var reportViewer = New ReportViewer();
var reportDataSource = New ReportDataSource("MyNS_Dog", MyDogs);
reportViewer.LocalReport.DataSources.Add(reportDataSource);

Altri suggerimenti

Per winview reportviewer: includi il seguente codice

public class Dog
    {

        int legs;

        public int Legs
        {
            get { return legs; }
            set { legs = value; }
        }
        string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        string breed;

        public string Breed
        {
            get { return breed; }
            set { breed = value; }
        }

    }

    public class DogBll
    {
        List<Dog> myDog;
        public DogBll()
        {
            myDog = new List<Dog>();
            myDog.Add(new Dog() { Legs = 10, Name = "mimi", Breed = "german" });
            myDog.Add(new Dog() { Legs = 4, Name = "momo", Breed = "english" });
        }
        public List<Dog> GetDogs()
        {
            return myDog;
        }
    }

crea la tua soluzione, aggiungi un controllo reportviewer al tuo modulo, sullo smarttag reportviewer, crea un nuovo report e scegli l'origine dati oggetto, espandi la tua classe e controlla la classe Dog come origine dati dell'oggetto. seleziona di nuovo il tuo controllo reportviewer e scegli il rapporto appena creato, viene automaticamente creata una DogBindingSource. Nella classe del modulo, aggiungi il codice seguente all'inizio della classe. Puoi usare la prima riga dopo la classe parziale pubblica Form1: Form {istruzione, ma prima del costruttore

private DogBll _dogBll = new DogBll();

Su formload (), aggiungi:

this.DogBindingSource.DataSource = _dogBll.GetDogs();

Per il visualizzatore di report webform: è necessario fornire una funzione che restituirà un elenco di Dog, in questa classe dovrebbe contenere un costruttore predefinito.

namespace MyNS 
{ 
   public class Dog 
   { 
      public int Legs { get; set; } 
      public string Name { get; set; } 
      public string Breed { get; set; } 
   }
   public class DogBll
   {
      public DogBll()
      {
      }
      public List<Dog> GetDogs(List<Dog> myDog)//make sure you set the parameter in object datasource
      {
          return myDog;
      }
    }
} 

aggiungi un controllo della procedura guidata del visualizzatore di rapporti, seleziona l'origine dati come nuova funzione appena creata, GetDogs (), definisci il rapporto in base alle 3 proprietà pubbliche nella tua classe Dog. Aggiungi un'origine dati oggetto nel modulo, punta il rapporto per utilizzare l'origine dati oggetto. Infine, imposta il parametro di GetDogs () nell'origine dati oggetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top