none
Visualizzazione righe in colonne

    Domanda

  • Salve, 

    da un po' di giorni sto cercando impostare una vista senza riuscirvi. Chiedo il vostro aiuto!

    Parto dai dati. Ho due tabelle una con i dati Anagrafici di pazienti ed un'altra con le Misurazioni effettuate. Di seguito alcuni campi:

    Anagrafica pazienti:

    Cod. Fisc.

    Nome

    Cognome

    ...

     

    Misurazioni:

    Cod. Fisc.

    Cod. Misurazione

    Valore Misurazione

     

    Le due tabelle sono unite tra di loro tramite il cod. fisc. e la relazione tra le 2 tabelle è 1:n. 

    Vorrei tirare fuori una VISTA con due campi:

    Cod. fisc

    Insieme di misurazioni

     

    Il secondo campo deve essere di tipo testo, suddiviso su quattro colonne:

    Età 28 Sesso  M Peso 88 PressMax 120

    PressMin 80 GruppS A CircVita 90 CircTesta 60

    ... ... ... ...

     

    Le misurazioni variano a seconda dei pazienti non sono fisse (per alcuni sono 10 per altri 50, altri 24,...)

     

    giovedì 19 gennaio 2012 10:33

Tutte le risposte

  • usa un listview per visualizzare le misurazioni.

    Questo controllo ti permette di specificare ogni quanti elementi raggruppare, e quindi spezzare in una nuova riga.

    puoi usare dunque 2 datasource, uno con solo i codici fiscali, l'altro con la join tra i CF e tutte le misurazioni.

    Con il primo datasource crei una griglia, con il secondo datasource la ListView come ti ho detto che sarà dentro la cella della griglia.

     

    ciao


    Programamtore ASP.NET
    http://glucolo.wordpress.com
    giovedì 19 gennaio 2012 10:41
  • Il secondo campo deve essere di tipo testo, suddiviso su quattro colonne:

    Età 28 Sesso  M Peso 88 PressMax 120

    PressMin 80 GruppS A CircVita 90 CircTesta 60

    ... ... ... ...

     


    Ciao, cosa intendi quando dici che il secondo campo deve essere di tipo testo con quattro colonne?

    E soprattutto, questa cosa la stai provando a fare con una query TSQL? Perchè in quel caso il recordset è in formato tabellare (nel tuo caso si tratta di un'operazione di tipo PIVOT se ho ben capito il problema), ma non esiste in concetto di "gruppi di colonne".


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter
    giovedì 19 gennaio 2012 11:31
  • Saresti così gentile da scrivermi la sintassi
    giovedì 19 gennaio 2012 12:08
  • la sintassi di cosa?

    ti serve la query? i datasource? la griglia? il listview?


    Programamtore ASP.NET
    http://glucolo.wordpress.com
    giovedì 19 gennaio 2012 12:20
  • Vorrei qlc indicazione su come impastare il tutto. 
    giovedì 19 gennaio 2012 12:46
  • Come ha già detto Glauco, sarebbe ottimo poter avere più info sullo scenario in cui ti trovi per poterti aiutare meglio.

    In ogni caso, a questo link trovi info sull'operatore PIVOT di SQL Server, e in coda all'articolo dei link per poter fare PIVOT dinamico nel caso in cui tu non sappia a priori il numero di colonne (o valori) risultanti, in quanto SQL Server non supporta PIVOT dinamici (quello che in access ottieni tramite la TRANSFORM)

    Ciao!


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter
    giovedì 19 gennaio 2012 13:00
  • vado ad ipotesi, cercando di utilizzare cose semplici:

    Query:

    SELECT DISTINCT CodFisc
    FROM Anagrafica
    
    
    SELECT *
    FROM Anagrafica a
            INNER JOIN Misurazioni m
            ON a.CodFisc = m.CodFisc
    where a.Codfisc=@codFisc

    La prima query la usi per un SqlDataSource semplice

    il primo datasolurce lo agganci ad una gridview con due colonne:
    Prima colonna visualizzi il CodiceFiscale,
    seconda colonna inserisci un ListView ed il secondo datasource agganciato

    nell'evento rowDataBound della gridview, prelevi la chiave della griglia, la imposti come parametro al datasource, chiami il bind del listview

    Non ti ho scritto nessuna riga di codice perché è abbastanza facile fare il tutto. È per te più utile provare a farlo da solo che copiare il codice.

    ciao
     

    P.S.: francesco - mi pare proprio che sia il caso di numero di colonne imprecisato. Una per ogni misurazione fatta.


    Programamtore ASP.NET
    http://glucolo.wordpress.com


    giovedì 19 gennaio 2012 13:27
  • ok, ci provo. Non ho mai usato queste funzionalità
    giovedì 19 gennaio 2012 13:33
  • P.S.: francesco - mi pare proprio che sia il caso di numero di colonne imprecisato. Una per ogni misurazione fatta.


    Si credo anche io, anche se in realtà quello dipende da quante misurazioni diverse esistono. Nel senso che se a priori hai codificato tutte le misurazioni possibili, e non prevedi di aggiungerne altre, puoi impostare una PIVOT fissa utilizzando i codici della tabella misurazioni. Se invece prevedi che queste tipologie di misurazioni possano variare di numero nel tempo allora è meglio optare da subito per una dinamica.

    Ciao!


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter
    giovedì 19 gennaio 2012 13:42
  • Mah! alla fine del lavoro è possibile creare una vista in SqlServer? Utilizzando il comendo Create View
    giovedì 19 gennaio 2012 13:48
  • Mah! alla fine del lavoro è possibile creare una vista in SqlServer? Utilizzando il comendo Create View

    Hm...cosa intendi per "fine del lavoro"? Se puoi creare una vista che contenga il codice per creare la pivot?

    Il fatto è che non ho ancora capito del tutto in che situazione ti trovi, come già detto qualche info dettagliata potrebbe esserci utile per poterti aiutare.


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter
    giovedì 19 gennaio 2012 14:39
  • Sei riuscito?
    Programamtore ASP.NET
    http://glucolo.wordpress.com
    mercoledì 25 gennaio 2012 09:53