Question
[Résolu]PowerShell et MSChart
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 10
- Remerciements reçus 0
J'ai sauté le pas et je me suis mis au PowerShell. Je dois avouer que j'adore
Mais je ne viens pas pour ça mais plus pour un soucis qui je suis sur est anodin, malheureusement je seche totalement.
J'ai suivi un tuto pour l'utilisation du MSChart dans PowerShell.
J'importe donc des CSV, 1 csv par jour avec les pc qui sont restés connectés toute la nuit.
Lorsque j'affiche le Chart j'obtiens le résultat ci-dessous :
Dans le titre il y a écrit \"par mois\" mais c'est plus \"pour un mois\".
Mon problème est j'en suis sur de type débutant. Comme vous le voyez je n'ai que 3 noms d'odinateurs alors que je devrai voir tous les noms d'ordinateurs (1 par barre). J'ai essayé de changer la taille du chart mais rien ne change.
J'ai déjà des recherches sur google (qui il paraît est l'ami de tout le monde), ben... J'en suis au même point.
Merci d'avance. Je ne veux pas forcément la réponse toute faite (ca gache le plaisir
Message édité par: JLB, à: 12/05/10 11:12<br><br>Message édité par: JLB, à: 14/05/10 13:25
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
Malheureusement sans un bout de script j'ai bien peur que personne ne puisse t'aider.
Surtout j'imagine qu'assez peu de peu de gens utilisent les MS Charts Controls.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 10
- Remerciements reçus 0
www.powershell-scripting.com/index.php?o...id=297&Itemid=80
Voici le code pour le form et le graphique comme dans l'exemple du blog de \"Richard's Weblog\"
[code:1]
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void][Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms.DataVisualization\"«»)
$Chart = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$Chart.Width = 500
$Chart.Height = 400
$Chart.Left = 0
$Chart.Top = 5
$ChartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$Chart.ChartAreas.Add($ChartArea)
[void]$Chart.Series.Add(\"Data\"«»)
$Chart.Series[\"Data\"].Points.DataBindXY($donnees.Keys, $donnees.Values)
# Pour faire jolie :
$Chart.Series[\"Data\"][\"DrawingStyle\"] = \"Cylinder\" # Ajout d'un effet Cylindrique
$chart.Series[\"Data\"].IsValueShownAsLabel = $true
[void]$Chart.Titles.Add(\"Nombre de connexions par mois`net par ordinateur\"«») # Ajout d'un titre au graphique
$ChartArea.AxisX.Title = \"Ordinateurs\" # Ajout d'un titre à X
$ChartArea.AxisY.Title = \"Nb Connexions\" # Ajout d'un titre à Y
# Affichage du formulaire :
$Chart.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right -bor
[System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$Form = New-Object Windows.Forms.Form
$Form.Text = \"PowerShell Chart\"
$Form.Width = 600
$Form.Height = 600
$Form.controls.add($Chart)
$Form.Add_Shown({$Form.Activate()})
$SaveButton = New-Object Windows.Forms.Button
$SaveButton.Text = \"Save\"
$SaveButton.Top = 500
$SaveButton.Left = 450
$SaveButton.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right
$SaveButton.add_click({$Chart.SaveImage($Env:USERPROFILE + \"\Desktop\Chart.png\", \"png\"«»)})
$Form.controls.add($SaveButton)
$Form.StartPosition='centerscreen'
$Form.ShowDialog()[/code:1]
$donnees est un tableau avec deux colonnes :
Name Value
Ordi1 17
Ordi2 5
Ordi3 27
...
Value c'est le nombre de nuits que le pc est resté allumé.
J'ai essayé de changer la taille du $chart (width), j'avais peur qu'il n'y ait pas assez de place mais hélas ça n'a rien changé.
Cela veut dire que personne ne fait pas de graphique ou alors qu'il existe quelque chose de plus simple (je suis preneur dans ce cas làSurtout j'imagine qu'assez peu de peu de gens utilisent les MS Charts Controls
Une fois que mon code sera comme je le souhaite (je suis assez perfectionniste
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Je confirme, le plus surprenant est que cela ne vous vienne pas à l'esprit...Malheureusement sans un bout de script j'ai bien peur que personne ne puisse t'aider.
JLB écrit:
C'est surtout un problème de documentation, comme le dit l'auteur du post que tu cites :Mon problème est j'en suis sur de type débutant.
La solution était là sous tes yeux, bon il faut tout de même creuser un peu les exemplesWell, that’s it for this short tutorial, but if you’re hungry for more (and there is a lot more) on using the Chart Controls, download the Chart Control documentation and samples
cf.[code:1]..\WinSamples\ChartFeatures\Axis[/code:1]
Avec les données suivantes :
[code:1]
$donnees=@{ord1=10;ord2=20;ord3=5;ord4=8;ord5=1;ord6=7;ord7=8;ord8=9;ord9=2;ord10=0;ord11=7;ord12=4;ord13=12;ord14=7;ord15=3;ord16=8;ord17=14;ord18=5;ord19=6;ord20=22}
...
$ChartArea.AxisY.Title = \"Nb Connexions\" # Ajout d'un titre à Y
#$ChartArea.Axisx.MajorGrid.Interval=1
#$ChartArea.AxisX.MajorTickMark.Interval = 1
$ChartArea.AxisX.Interval = 1
# Affichage du formulaire :
[/code:1]
Tu peux remarquer qu'étant donné que le nom est affiché à l'horizontale la place manque pour tous les afficher, le composant adapte donc l'affichage sur 2 lignes.
De plus l'accès aux données d'une hashtable n'est pas ordonné, ce qui fait que l'ordre n'est pas respecté.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 10
- Remerciements reçus 0
Pour l'ordre il n'y a pas une grande importance, ce qui compte c'est que l'on connait les ordi qui ne sont pas allumés.
Et désolé d'avoir posté alors que je suis passé à coté d'un truc aussi simple. Je dois encore voir comment je peux faire un rapport et je posterai tout ça.
Connexion ou Créer un compte pour participer à la conversation.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 10
- Remerciements reçus 0
Alors voilà j'ai fini mon petit script du coup je le dépose ici en espérant qu'il pourra être utile à d'autres personnes.
Mais quelques explications pour commencer :
- J'ai un dossier \"\2010\" ;
- A l'intérieur un dossier par mois \"\01\", \"\02\", ...
- Dans chacun des dossiers un fichier par jour qui contient des fichiers .txt au format CSV. Ces fichiers contiennent le nom des ordinateurs qui sont restés allumés la nuit.
Il vous faudra installer le MSChart
www.powershell-scripting.com/index.php?o...id=297&Itemid=80
J'ai 2 scripts : module.psm1 et conca1.ps1<br><br>Message édité par: JLB, à: 13/05/10 23:52
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]PowerShell et MSChart