Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Problema griglia
domenica 09 novembre 2008 - 15.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
dom 9 nov 2008 - 15:25
Ciao a tutti ho un dataset in cui voglio inserire dei totali tra le righe
per fare questo ho dato un ordine (numero) ad ogni mia riga e poi inserisco una nuova riga (con l'ordine che identifica la posizione) e poi calcolo i totali
tutto OK... sarebbe funzionato, unico problema non sempre ho tutte le righe nel mio DataSet iniziale
ho pensato di risolvere il problema ... facendo io un controllo io iniziale ed inserendo manualmente la riga (con valori zero) qualora non ci fosse una riga da utilizzare per i totali
in questo modo partirei sempre da un dataset con X (25) righe ... anche se alcune teoricamente non ci sono nella base dati
il fatto di avere 25 righe fisse mi consente di poter recupare la riga dr[i] nelle varie somme
mi incasino però con l'ordinamento... sembra che non venga tenuta traccia dell'ordinamento che io inserisco
private void VerificaStruttura()
{
//Elementi recuperati dal DB
dsElenco = msnHelper.DataHelper.GetFlussi(sqlConnection, ddlAnno.SelectedValue);
DataView dv;
//Viene aggiornato il DataSet locale aggiungendo eventuali righe mancanti
if (dsElenco.Tables[0].Rows.Count > 0)
{
int controllo = 0;
//Cerco la riga tra quelle della griglia
for(int i=0; i<dsElenco.Tables[0].Rows.Count-1; i++)
{
if(dsElenco.Tables[0].Rows[i][0].ToString() == "Riga 1" )
controllo = 1;
}
if (controllo == 0)
CreaRiga("Riga 1", "10");
for(int i=0; i<dsElenco.Tables[0].Rows.Count-1; i++)
{
if(dsElenco.Tables[0].Rows[i][0].ToString() == "Riga 2" )
controllo = 1;
}
if (controllo == 0)
CreaRiga("Riga 2", "20");
... questo per tutte le righe (verifico se esistono e le creo se mancano)
}
dv = new DataView(dsElenco.Tables[0]);
dv.Sort="Ordine";
gwElenco.DataSource = CalcolaTotali(dv); //dv;
gwElenco.DataBind();
}
private DataView CalcolaTotali(DataView dv)
{
dv.Sort="Ordine";
if (dv.Table.Rows.Count > 0)
{
//Inserimento riga "Saldo 1"
DataRow dr = dv.Table.NewRow();
dr[0] = "Saldo 1";
dr[1] = "30";
//Mesi
for(int i=2; i<=13; i++)
{
dr[i] = Convert.ToString(Convert.ToDecimal(dv.Table.Rows[0][i])+Convert.ToDecimal(dv.Table.Rows[1][i]));
}
dv.Table.Rows.Add(dr);
//Inserimento riga "Totale 2"
dr = dv.Table.NewRow();
dr[0] = "Totale 2";
dr[1] = "120";
//Mesi
for(int i=2; i<=13; i++)
{
dr[i] = Convert.ToString(Convert.ToDecimal(dv.Table.Rows[2][i])+Convert.ToDecimal(dv.Table.Rows[3][i])+Convert.ToDecimal(dv.Table.Rows[4][i])+Convert.ToDecimal(dv.Table.Rows[5][i]));
}
dv.Table.Rows.Add(dr);
....
private void CreaRiga(String Nome, String Ordine)
{
DataRow dr = dsElenco.Tables[0].NewRow();
dr[0] = Nome;
dr[1] = Ordine;
//Mesi
for(int i=2; i<=13; i++)
{
dr[i] = "0,00"; //Tutte le colonne a zero
}
dsElenco.Tables[0].Rows.Add(dr);
}
Cosa sbaglio?? Come dicevo mi incasinano gli ordinamenti... sembra che non vengano mantenuti quando calcolo i vari totali ...
Grazie mille!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !