Question [Résolu]PowerShell et MSChart

Plus d'informations
il y a 15 ans 10 mois #6836 par Jean Luc B
Bonjour tout le monde.

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 :P ), juste une direction vers laquelle orienter mes recherches

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.

Plus d'informations
il y a 15 ans 10 mois #6850 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:PowerShell et MSChart
Salut JLB,

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.

Plus d'informations
il y a 15 ans 10 mois #6853 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
C'est que le code est assez long. En gros je me suis basé sur le sujet suivant :
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 \&quot;Richard's Weblog\&quot;
[code:1]
[void][Reflection.Assembly]::LoadWithPartialName(\&quot;System.Windows.Forms\&quot;«»)
[void][Reflection.Assembly]::LoadWithPartialName(\&quot;System.Windows.Forms.DataVisualization\&quot;«»)

$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(\&quot;Data\&quot;«»)
$Chart.Series[\&quot;Data\&quot;].Points.DataBindXY($donnees.Keys, $donnees.Values)

# Pour faire jolie :
$Chart.Series[\&quot;Data\&quot;][\&quot;DrawingStyle\&quot;] = \&quot;Cylinder\&quot; # Ajout d'un effet Cylindrique
$chart.Series[\&quot;Data\&quot;].IsValueShownAsLabel = $true
[void]$Chart.Titles.Add(\&quot;Nombre de connexions par mois`net par ordinateur\&quot;«») # Ajout d'un titre au graphique
$ChartArea.AxisX.Title = \&quot;Ordinateurs\&quot; # Ajout d'un titre à X
$ChartArea.AxisY.Title = \&quot;Nb Connexions\&quot; # 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 = \&quot;PowerShell Chart\&quot;
$Form.Width = 600
$Form.Height = 600
$Form.controls.add($Chart)
$Form.Add_Shown({$Form.Activate()})

$SaveButton = New-Object Windows.Forms.Button
$SaveButton.Text = \&quot;Save\&quot;
$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 + \&quot;\Desktop\Chart.png\&quot;, \&quot;png\&quot;«»)})
$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é.

Surtout j'imagine qu'assez peu de peu de gens utilisent les MS Charts Controls

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à :P )

Une fois que mon code sera comme je le souhaite (je suis assez perfectionniste :whistle: ) je souhaiterait le déposer si c'est possible dans la rubrique \&quot;bibliothèque de scripts\&quot; si cela est possible.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #6856 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:PowerShell et MSChart
Arnaud écrit:

Malheureusement sans un bout de script j'ai bien peur que personne ne puisse t'aider.

Je confirme, le plus surprenant est que cela ne vous vienne pas à l'esprit...
JLB écrit:

Mon problème est j'en suis sur de type débutant.

C'est surtout un problème de documentation, comme le dit l'auteur du post que tu cites :

Well, 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

La solution était là sous tes yeux, bon il faut tout de même creuser un peu les exemples ;)
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 = \&quot;Nb Connexions\&quot; # 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.

Plus d'informations
il y a 15 ans 10 mois #6857 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Merci beaucoup pour la réponse quand je pense que je suis passé à coté de \&quot;$ChartArea.AxisX.Interval = 1\&quot;

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.

Plus d'informations
il y a 15 ans 10 mois #6858 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Bonsoir bonsoir,

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 \&quot;\2010\&quot; ;
- A l'intérieur un dossier par mois \&quot;\01\&quot;, \&quot;\02\&quot;, ...
- 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.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena