C# Affichage dans un listView

Fermé
Sephi - 15 mars 2010 à 10:09
 Sephi - 16 mars 2010 à 09:21
Bonjour,

Voila, alors ça va pas être simple à éxpliquer mais je vais éssayer.
Tout d'abord, normalement je sais remplir un listView, mais la je sèche.
Je souhaite obtenir un affichage du genre :

NomClient | Taux de travail   |prix HT| prix TTC
_________ |_____________ _____|_______|___________
truc      |50%                |100    |119.6
_________ |___________________|_______|___________
muche     |25%                |1000   |1196
__________|___________________|_______|___________
machin    |25%                |1      |1.196


J'effectue une requête depuis mon programme dans ma base de données access, je dois récuperer les informations qui m'interessent, les calculer, puis les afficher correctement.
Il faut compter les clients pour pouvoir calculer le taux de travail, mais chaque client n'apparait qu'une fois dans la listview avec la somme de tout ses prix HT et TTC.
Dans ma base de donnée , le prix Hors taxe est calculé par le tarif à la tonne* le nombre de tonnes

Pour l'instant j'ai ce code la, qui est totalement faux parce que je me suis emmêlé les pinceau et je ne sais plus trop ou j'en suis ! Vous devriez y trouver le nom des champs de ma base pour la requête et le nom des contrôles.

public void statGlobal()
        {
             
            lvStat.Items.Clear();
            clients.Clear();
           
           //Je récupère tout les clients
            cmd2 = new OleDbCommand("SELECT DISTINCT nomClient FROM tableTarifs,clients WHERE numClient = client", cnx);
            //Execution de la requete
            dr2 = cmd2.ExecuteReader();
            //Lecture du resultat
            while (dr2.Read())
            //Remplissage du cboBox 
            {

                 ListViewItem lvitem = new ListViewItem(dr2[0].ToString());

                 
                 for (int j =0; j <= dr2.FieldCount -1; j++)
                 {
                     clients.Insert(j, dr2[0]);
                     
                       
                    cmd = new OleDbCommand("SELECT nomClient, numTarif, tarif, nbTonne FROM tableTarifs,Clients WHERE client IN( SELECT DISTINCT numClient FROM Clients)", cnx);
                     //Execution de la requete
                    dr = cmd.ExecuteReader();
                     //Lecture du resultat
                    

                    while (dr.Read())
                     //Remplissage du cboBox 
                    {
                        
                        // test
                            if (clients[j].ToString() == dr[0].ToString())
                            {

                                prixHT = (Convert.ToDouble(dr[2].ToString()) * Convert.ToDouble(dr[3].ToString())).ToString();
                                lvStat.Items[lvStat.Items.Count -1].SubItems.Add(prixHT);
                                prixTTC = (Convert.ToDouble(prixHT) + Convert.ToDouble(prixHT) * 19.6 / 100).ToString();
                                prixTTCArrondi = Math.Round(Convert.ToDouble(prixTTC), 2);
                                lvStat.Items[lvStat.Items.Count - 1].SubItems.Add(prixTTCArrondi.ToString());

                                for (int i = 1; i <= dr.FieldCount - 1; i++)
                                {
                                    lvitem.SubItems.Add(dr[i].ToString());
                                }
                            }
                     }

                    lvStat.Items.Add(lvitem);
                    dr.Close();
                 }
            }  


Pourriez-vous s'il vous plait m'indiquer le code qui permettrait de faire ce que j'attend? Si il vous manque quoi que ce soit pour répondre, demandez. Car je sais pas trop ce dont vous avez besoin pour comprendre et aider.
A voir également:

1 réponse

badlou Messages postés 128 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 15 mars 2010 48
15 mars 2010 à 17:43
Il faut que tu utilises une gridview pour réaliser ce type d'affichage.
0
Je ne sais pas faire tout ce qui est binding dataSet etc... c'est pour ça que je demandais pour une listView
0