Creazione report da datatable

di il
31 risposte

Creazione report da datatable

Buonasera a tutti,
mi trovo con un applicativo windows form con una schermata principale.
l'utente popola un datatable direttamente da un portale web.
dalla form principale,con un pulsante apre la form di stampa dove l'utente ha 5 checkbox per scegliere COSA stampare del datatable.
l'oggetto sono prenotazioni di gruppi per viaggi in treno (quindi quanti saliti,quanti discesi,quali carrozze ecc)
Per mettere a video questi dati popolo delle listbox tramite delle query linq.
Per stamparli l'unica è creare un report.ho letto di report viewer però ho trovato solo esempi con DB esterni mentre io
ho solo un datatable (fra l'altro da filtrare con apposite query).
secondo voi è possibile ?
grazie

31 Risposte

  • Re: Creazione report da datatable

    Ciao,

    Ms ReportViewer puoi usarlo anche con il DATATABLE come datasource anche se non è proprio il massimo... e comunque per popolare il tuo datatable sicuramente dietro ci stà un Database e allora puoi legare quello al tuo report.

    Ti consiglierei di usare il CrystalReport se vuoi che per sviluppatori e gratuito e da cui deriva (nel lontano passato lo stesso Reportviewer ) dipende tutto da quanto complesso e a cosa ti serva il report che hai in mente.

    comunque documentati in rete, trovi milioni di esempi di stampe.

    BYeee
  • Re: Creazione report da datatable

    Quando vado a usarlo mi chiede la sorgente dati e mi fa cercare sui file esterni e mai mi fa selezionare il datatable.
    il db è su un sito esterno a cui non posso accedere,ma riesco ad ottenere un json.
    su google e youtube trovo tutti esempi in cui la sorgente dati è un datase con un table adapter e un origine dati esterna
    grazie lo stesso
  • Re: Creazione report da datatable

    Non mi ricordo bene, ma potresti provare
    Report. Datasource?tuadatatable
    Tenendo presente che la datable puoi popolarla come ti pare ed indipendentemente dal db
  • Re: Creazione report da datatable

    Io temo di non aver ben compreso l'utilizzo dei vari elementi : da un json riempo il datatable.poi quando cerco di fare il report ,L'IDE mi chiede un origine dati che è un db ...ma non ho possibilit di dirgli di usare il mio datatable
  • Re: Creazione report da datatable

    Il tuo oggetto report ha una proprietà DataSource?
    per capire meglio puoi inviare il nome completo di namespace dell'oggetto Report che utilizzi?
  • Re: Creazione report da datatable

    eurostar_italia ha scritto:


    Io temo di non aver ben compreso l'utilizzo dei vari elementi : da un json riempo il datatable.poi quando cerco di fare il report ,L'IDE mi chiede un origine dati che è un db ...ma non ho possibilit di dirgli di usare il mio datatable
    Se ti resta comodo in fase di design del report puoi anche farti una tabella su un db di comodo
    che sarà lo specchio della tua datatable popolata a partire dal json;

    a report viewver non interessa da dove vengono i dati ma solo il loro schema
    per cui nel funzionamento a runtime non avrai bisogno di un db

    Spero di essermi spiegato;

    P.S.
    secondo me potresti disegnare il report anche generandoti un dataset tipizzato o un object datasource
    ... ma forse la via più semplice è quella di un db di comodo
    HTH
  • Re: Creazione report da datatable

    Io NON posso usare db esterni...e per quello uso un datatable.
    creo il dataset e dentro disegno 3 datatable (mi servono 3 datatable per fare il contfronto dei dati presenti tra loro e che carico con 3 json differenti).
    a runtime
     For Each msg In data
     DataSet1.treno1.Rows.Add(msg("departureLocationName"), msg("arrivalLocationName"), msg("pnrCode"),msg("wagon"), msg("seat")) 
    Next
    i miei datatable NON hanno table adapter....e quindi non vede lo schema.
    o mi sto perdendo in un bicchier d'acqua o ho toppato qualcosa
  • Re: Creazione report da datatable

    eurostar_italia ha scritto:


    Io NON posso usare db esterni...e per quello uso un datatable.
    ...
    mi sa che mi sono spiegato male oppure non ho capito il tuo problema;

    ma il report lo hai preparato si o no ?
    .... io ho capito di no per chè ti chiede di usare un db per disegnarlo.... giusto ?

    se è così usa un db *di comodo* solo per disegnare il report
    e di cui non avrai nessun bisogno durante il normale funzionamento del programma
    perchè i dati li fornirai tramite il datatable che popolerai *ignorando* il db di comodo.

    Scusa se non ho capito
  • Re: Creazione report da datatable

    Il mio problema è che sono autodidatta e per quanto mi documenti non riesco a risolvere.
    credo di non aver capito come si crei un report con report viewer perchè ogni volta che cancello e lo aggiungo mi da una procedura diversa
  • Re: Creazione report da datatable

    Ultimo tentativo ; lasciamo stare il db di comodo.

    Aggiungi un dataset,
    aggiungi una datatable al dataset ed impostane le colonne
    aggiungi reportviewver , quindi "design new report" ed a questo punto potrai scegliere il dataset come datasource del report

    HTH
  • Re: Creazione report da datatable

    Ho aggiunto il datataset,il datatable e impostato le colonne (a codice)
    se invece provo ad aggiungere un dataset dal wizard mi chiede la stringa di connessione al db,che però io non ho perchè non ho un DB!
    i valori (ottenuti tramite query linq ) del datatable inserito a codice li visualizzo nelle mie listbox
    ho aggiunto un report (report1.RDLC) e gli ho passato dataset e le colonne di mio interesse.
    quindi ho aggiunto il reportviewer che ha l'intestazione ma non carica dati (in teoria senza filtri dovrebbe caricare tutto il datatable).
    mi sto incartando in qualcosa
    è dalle 7 che ci combatto,tanto sto in quarantena
    EDIT la finestra di report si apre solo DOPO che il datatable è popolato ovviamente.
  • Re: Creazione report da datatable

    VS 2015 Community
    progetto win form

    pulsante dx sul progetto, add new item, dati, dataset
    si apre il designer del dataset; toolbox
    aggiungo una datable dalla toolbox
    click sulla datable ed aggiungo le colonne.

    apro form1
    aggiungo ReportViewver da toolbx
    design a new report
    scelgo come datasource il dataset creato prima e posso selezionare sotto la datatable
  • Re: Creazione report da datatable

    Ed è quello che ho fatto!
    ma poi non mi carica i dati...e non capisco perchè..
  • Re: Creazione report da datatable

    Se posti un progetto di test chi vuole se lo guarda
    altrimenti prova a fare una cosa del genere
    
    reportViewer1.LocalReport.DataSources.Clear();
    
    ReportDataSource rprtDTSource = new ReportDataSource("TITLE",table);
    
    reportViewer1.LocalReport.DataSources.Add(rprtDTSource);
    reportViewer1.RefreshReport();
    
Devi accedere o registrarti per scrivere nel forum
31 risposte