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

VB.NET Discussion :

tableau avec date pour chaque colonne


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut tableau avec date pour chaque colonne
    Bonjour tout le monde.
    auriez vous un exemple de fichier ou vous traitez un tableau de type planning : en haut du tableau les dates, et dans la première colonne, les taches a effectuées. J'aimerai regarder comment est ce que vous avez organiser vos datas dans la base de données et comment vous les avez traités pour qu'elles soient facilement lisibles.

    En vous remerciant d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut
    En gros, voici ce que je souhaiterai faire :




    en vous remerciant de votre aide.

    Loic

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonjour,

    Pour créer votre tableau, vous pouvez utiliser un DataGridView.
    Il faut manipuler un peu les données pour créer dans un premier temps les colonnes avec les dates.
    Ensuite, il vous faut créer les lignes et renseigner la propriété HeaderCell.Value avec la désignation.
    Et enfin parcourir toutes les données pour placer le budget dans la bonne cellule.

    Dans l'exemple, je me suis servi d'une classe pour créer les données mais le principe reste le même pour les autres sources.

    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
     
    Public Class Form1
    	Dim lst As New List(Of DataSampleClass)
    	Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    		With lst
    			.Add(New DataSampleClass("Item 1", New Date(2012, 12, 24), 100))
    			.Add(New DataSampleClass("Item 1", New Date(2012, 12, 25), 200))
    			.Add(New DataSampleClass("Item 2", New Date(2012, 12, 24), 150))
    			.Add(New DataSampleClass("Item 2", New Date(2012, 12, 30), 50))
    		End With
    		DrawData(lst)
    	End Sub
     
    	Public Sub DrawData(ByVal _lst As List(Of DataSampleClass))
    		'On commence par créer les colonnes.
    		'On sélectionne les données qui vont servir d'entête de colonne
    		Dim Temp_Lst_SaveDate = From el As DataSampleClass In _lst Select el.SaveDate Distinct
     
    		'Pour chaque date différente, on va créer une colonne
    		For Each _Date As Date In Temp_Lst_SaveDate.ToList
    			Dim col As New DataGridViewTextBoxColumn
    			With col
    				.Name = _Date
    				.HeaderText = _Date
    			End With
    			DataGridView1.Columns.Add(col)
    		Next
    		'Ensuite, il faut ajouter les lignes
    		'On sélectionne les données
    		Dim Temp_Lst_Désignation = From el As DataSampleClass In _lst Select el.Désignation Distinct
    		'Pour chaque désignation différente, on ajoute une ligne et on renseigne la propriété HeaderCell.Value
    		For Each _Str As String In Temp_Lst_Désignation
    			Dim _Row As New DataGridViewRow
    			With _Row
    				.HeaderCell.Value = _Str
    			End With
    			DataGridView1.Rows.Add(_Row)
    		Next
    		'Pour finir, on va placer les données "Budget" dans le tableau
    		For Each _Item As DataSampleClass In _lst
    			Dim _Row = From el As DataGridViewRow In DataGridView1.Rows Select el Where el.HeaderCell.Value = _Item.Désignation
     
    			With _Row.First
    				DataGridView1.Rows(.Index).Cells(_Item.SaveDate).Value = _Item.Budget
    			End With
    		Next
    	End Sub
    End Class

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Bonjour
    ....
    Et les requêtes PIVOT vont être aussi bien vous faciliter la tache

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut
    Merci beaucoup pour votre aide à tous les deux. Je vais regarder ca

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut
    Bonjour,
    J'ai commencé pas travailler sur la deuxième solution (en bon feneant, il elle est plus facile, je la prends ;o) )


    Grace au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.DTGSammary.DataSource = Me.CsDb.ouvrir("SELECT MONTH(MonthDate)&'-'&Year(MonthDate),SUM(Amount)  FROM ForecastAmount GROUP BY MonthDate", "ForecastAmount", ProjectName)
    Voici ce a quoi je suis arrivé :

    Il ya 4 points que j'aimerai régler : avez vous une idée sur la solution.




    Merci d'avance!!
    Loic

Discussions similaires

  1. Réponses: 25
    Dernier message: 14/04/2015, 14h58
  2. [XL-2010] Afficher dans un tableau2 la Valeur MAX pour chaque colonne d'un tableau 1
    Par debutanteVba dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 30/10/2013, 15h28
  3. Réponses: 1
    Dernier message: 15/08/2010, 16h03
  4. [SQL]Somme pour chaque colonne de requete analyse
    Par Kekou03 dans le forum Access
    Réponses: 2
    Dernier message: 12/03/2005, 03h34
  5. [VB.NET] Taille differente pour chaque colonne dans DATAGRID
    Par stephane93fr dans le forum Windows Forms
    Réponses: 14
    Dernier message: 12/01/2005, 16h50

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