Sfondo:Problemi Impostazione RDLC Origine dati di opporsi
Sono stato incaricato con la conversione di un'applicazione database di Access a ASP.Net C# MVC. Questa è la mia prima applicazione MVC.
Ci sono 10 report che devono essere convertiti. Stiamo usando file RDLC e reportviewer. Sto usando Visual Studio 2010 con tutte le patch più recenti. Ci stiamo collegando a un database SQL Server che è stato popolato dal database Access esistente, quindi la struttura della tabella è praticamente scolpita nella pietra, altrimenti dovremo provare a convertire 10 anni di dati.
Ho completato tutte le relazioni tranne due. I report finali richiedono più elaborazione e non si limitano a visualizzare i dati dal database. Il modo più semplice per farlo sarebbe creare un oggetto C# e fare tutto il lato server di elaborazione, quindi utilizzare RDLC per visualizzare i risultati.
Problema
Il problema che sto avendo è che Visual Studio non riconoscerà gli oggetti che ho creato come potenziali origini dati. Ogni volta che provo a "aggiungere set di dati" richiama la "procedura guidata di configurazione dell'origine dati" e offre solo il database SQL Server come possibile connessione dati. So che esiste uno schermo che ti permette di selezionare un oggetto come set di dati, ma non vedo mai quello schermo.
Ecco gli oggetti (funzioni di elaborazione asportate per chiarezza):
public class TurnAroundVal
{
// Registration Package information
public string dataType { get; set; }
// Calculated totals; values only set through constructor or calculation function
public int packageCount { get; private set; }
public int dayCount { get; set; }
public double avgTurnAround { get; private set; }
public int upperRange { get; private set; }
public int lowerRange { get; private set; }
}
public class TurnAroundVals
{
// Public Variables
public IEnumerable<TurnAroundVal> TurnArounds { get; private set; }
public DatePass dates { get; set; }
public int pkgTotal { get; private set; }
public double dayTotal { get; private set; }
public double avgAllTurnArounds { get; private set; }
}
anche io essere disposti a usare l'IEnumerable di "TurnAroundVal" come origine dati, e passare solo le date, int, e doppie in come parametri. O avrebbe funzionato.
Domanda
È ci una regolazione in Visual Studio 2010 che mi manca per consentire al progettista RDLC per vedere gli oggetti che ho creato? Mi sbaglio persino nel pensare che questo funzionerà con le classi che ho definito?
risposta
Tutti i suggerimenti dati erano disponibili, ma in ultima analisi, ciò che ha a lavorare per me è stato quello di creare un progetto non-web temporanea nella stessa soluzione e creare il RDLC lì. Quando sono andato ad aggiungere un set di dati, mostra "Oggetti" come opzione. Devi aggiungere un riferimento al tuo progetto web in modo che i tuoi oggetti siano visibili, ma poi puoi scegliere quello che vuoi e usarlo nell'RDLC. Dopodiché, puoi semplicemente trascinare il file RDLC nel tuo progetto web, eliminare il progetto temporaneo e sei a posto. Ricorda che devi aggiungere manualmente le origini dati nel codice e devono essere nominate come quelle specificate nell'RDLC.
Già provato, ma sono comunque buone informazioni. Quello che ho finito di fare è stato creare un nuovo progetto non web nella stessa soluzione, creando lì il RDLC, quindi trascinandolo/rilasciandolo nel progetto web. Probabilmente c'è un modo meno sfacciato di farlo, ma questo ha funzionato. – War2d2