Domanda

Devo aggiungere un secondo datatabili dal dataset principale della nostra app in un report, ma non avere molta fortuna.

Abbiamo diversi semplici report locali nei file RDLC, ciascuno con un singolo generacoloDetagCode basato su una vista nel nostro DB dell'applicazione.Devo migliorare uno dei report per aggiungere informazioni da un'altra tabella.Questa altra tabella è definita nello stesso core DataTable che usiamo per i report nella nostra applicazione .NET 2.0 WinForms.Poiché le due tabelle sono nello stesso set di dati, posso assicurarmi solo che entrambe le tabelle siano caricate nel set di dati e quindi puntare il report presso il set di dati anziché il DataTable?Qualcos'altro?

Inutile dire che ho giocato con questo per un po 'e non vai da nessuna parte.

tia, Matt

È stato utile?

Soluzione

OK, ho avuto questo lavoro e, in retrospettiva, è stato abbastanza facile. Non sapevo solo quali menu usare per ottenere vs per agganciare tutto, e quale ordine per farli entrare.

Guardando il Designer.CS per la mia forma era in realtà la cosa più utile che ho fatto. Ho notato che è stato che il reportViewer ha un binding di default indicato nella prima tabella. Originariamente, ero appeso a cercare di dare al Bindingsource a un set di dati invece di un datatabili, ma poi ho deciso di provare a fare un secondo Bindingsorce invece.

Forse c'è un modo migliore, ma qui è fondamentalmente quello che ho finito per fare:

    .
  1. Con il RDLC nel progettista, ha fatto clic sul menu del report, quindi su origini dati.

  2. Nella finestra di dialogo delle origini dati del report, ha scelto l'aggiuntivo Dataatable dal menu a discesa e cliccato Aggiungi al rapporto. (Ho anche rinominato la nuova fonte di dati per essere solo il nome della tabella dei dati aggiuntivi; vs aveva creato un nome lungo gigantesco in base allo spazio namo completo.) OK per chiudere la finestra di dialogo.

  3. Sul progettista per il modulo che contiene il mio controllo ReportViewer, ha fatto clic sul tag Smart TAG del reportViewer (la piccola freccia nell'angolo in alto a destra del controllo) e quindi è selezionata fonti di dati di rebind selezionati. Questo ha reso un secondo Bindingource nella parte inferiore della superficie del designer.

  4. Secluiva di nuovo il tag Smart TAG del reportViewer e questa volta ha scelto "Scegli origini dati" per confermare che il reportViewer ora ha avuto due origini dati, ciascuna legata a una delle istanze BindingSource ora sul modulo.

    .

  5. ha rivisto il codice onload del mio modulo per caricare righe nel secondo Dataatable.

  6. è tornato al file RDLC, ha aggiunto una nuova tabella e imposta le celle di dettaglio nei campi nel secondo Dataabile - e ha funzionato!

  7. Speriamo che questo salverà qualcun altro un paio di ore un giorno.

Altri suggerimenti

ha capito un modo per usarlo in Visual Studio 2010. Fare clic su Visualizza> ReportData e quando vengono visualizzati i dati del report, fare clic su DataSources e quindi fare clic su ADD.Fallo tante volte del numero di set di dati necessari.

Ora nei tag Smart del reportViewer, fare clic su Scegli dataSources, questo mostrerà ciascuno dei set di dati.Per associare i set di dati con una fonte di binding, dovrai fare clic su Progetto e quindi fare clic su Durante il clic fino a ottenere la classe appropriata, questo farà creare le fonti di rilegatura.

Questo lavoro in giro è molto utile se hai più tablexes e devi associare a una fonte di rilegatura a loro all'interno dello stesso report quando il report viene visualizzato sul visualizzatore del report

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