IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Champs calculé + DataList


Sujet :

ASP.NET

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut Champs calculé + DataList
    Bonjour,

    Je doit réaliser une sorte de "cadie", celui-ci est alimenter par une base de donnée.
    Je souhaiterais obtenir une datalist de cet forme :

    NomArticle Quantité PrixUnitaire PrixTotal
    Art1------------5----------2------- 10
    Art2------------3----------5------- 6
    --------------------TotalHorsTaxe---16
    --------------------TVA-------------3.1
    --------------------Total------------19.1

    J'arrive bien a remplir le début de la datalist a partir de ma datalist. Mais a partir de la ligne TotalHorsTaxe, je ne sais pas comment faire.
    Le problème est donc, comment ajouter un champs calculé a partir des valeurs de chaque enregistrement ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    FooterTemplate du DataList te permet de définir la partie basse de ta liste. Tu peux y insérer ce que tu veux. Tu trouveras un exemple ici.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut
    Merci de ta réponse,
    J'avais déjà commencé a faire cela avec un FooterTemplate. Mais enfaite le problème se situe plus au niveau de la conception du calcul en lui même. Je vois pas comment additionner les enregistrement précédent.

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Si la source de données du datalist est un dataset ou datatable, c'est assez simple. Il suffit d'itérer sur les DataRow du datatable, de récupérer la valeur associée à la colonne "Prix Total" pour incrémenter une variable "TotalHorsTaxe "que tu auras déclaré avant. Après, il suffit de faire référence à cette variable dans le footerTemplate du datalist et le tour est joué.

    Je n'ai pas d'exemple de code à te fournir, mais tu as la philosophie ...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    Salut,

    J'ai déjà eu ce genre de cas à résoudre, tu peux t'inspirer du code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
        //Création de variables de niveau page pour le calcul de totaux dans le GridViewDetailVente
        double _totalTTC = 0;
        double _totalHT = 0;
        double _totalGeneral = 0;
        int _NbreElements = 0;
        int _idVente = 0;
     
     
        protected void GridViewDetailVente_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // Reference the DetailVenteRow via the e.Row.DataItem property
                Vente.T_VENTE_DETAILRow _detailVente = (Vente.T_VENTE_DETAILRow)
                                                    ((System.Data.DataRowView)e.Row.DataItem).Row;
     
                //définition du coefficient multiplicateur de prix : quantité
                int _Qte = 0;
                if (_detailVente.IsID_ARTICLENull()||_detailVente.ID_ARTICLE==0)
                    _Qte = 1;
                else
                    _Qte = _detailVente.Quantite;
     
                // Increment the running totals (if they're not NULL!)
                if (!_detailVente.IsPrix_Unitaire_HTNull())
                {
                    _totalHT += (_detailVente.Prix_Unitaire_HT * _Qte);
                    _totalTTC += (_detailVente.Prix_Unitaire_TTC * _Qte);
                    _totalGeneral += (_detailVente.Total_Article * _Qte);
                }
     
                //incrémente le nombre d'élément même si la valeur est NULL
                _NbreElements+=_Qte;
            }
            else if (e.Row.RowType == DataControlRowType.Footer)
            {
                e.Row.Cells[0].Text = "Nbre d'élts:" + _NbreElements.ToString();
                e.Row.Cells[1].Text = "Total:";
                e.Row.Cells[2].Text = _totalHT.ToString("c");
                e.Row.Cells[4].Text = _totalTTC.ToString("c");
                e.Row.Cells[6].Text = _totalGeneral.ToString("c");
            }
     
            //Récupération de l'ID_VENTE du détailsview
            VenteBLL _Vente = new VenteBLL();
            DetailsView Dv = (DetailsView)DetailsViewVente;
            int _idVenteDv = (int)Dv.DataKey.Value;
            _Vente.UpdateTotalByIDVente(_totalHT, _totalTTC, _idVenteDv);
            Dv.DataBind();
     
        }
    Fab

Discussions similaires

  1. Group by à partir d'un champ calculé || substr
    Par SegmentationFault dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/07/2004, 15h55
  2. Recherche sur champ calculé
    Par srvremi dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/07/2004, 14h04
  3. Réponses: 2
    Dernier message: 22/03/2004, 10h50
  4. champ calculé
    Par tomm dans le forum Bases de données
    Réponses: 22
    Dernier message: 25/02/2004, 00h31
  5. [TQuery] champs calculés
    Par Amenofis dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/01/2004, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo