Question [Résolu]PowerShell et MSChart

Plus d'informations
il y a 15 ans 10 mois #6859 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Module.psm1
[code:1]
function frmGraphique($donnees){
[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 = 600
$Chart.Height = 500
$Chart.Left = 0
$Chart.Top = 0

$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`n 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
$ChartArea.AxisX.Interval = 1

# 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 = \"Rapport\"
$SaveButton.Top = 525
$SaveButton.Left = 450
$SaveButton.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right
$SaveButton.add_click({$Chart.SaveImage(\".\Chart.png\", \"png\"«»)
Creer_HTML($resultat)
$form.close()})

$Form.controls.add($SaveButton)
$Form.StartPosition='centerscreen'
$Form.ShowDialog()
}

function Concatenation_Mensuelle(){
$t = @{}
foreach($fichier in Get-ChildItem $chemin$mois -name -include *.txt){
$tab = @{}
$tab = Import-Csv $chemin$mois\$fichier | foreach { @{Nom=$_.Ordinateur} }
for($i=0;$i -le ($tab.count -1); $i++){
$critere = $tab[$i].nom
if($t.ContainsKey($critere)){
$t[$critere]=($t[$critere] + 1)
}else{
$t.Add($critere, 1)
}
}
}
return $t
}

function Creer_HTML($tableau){
$path = \".\rapport.html\"
[string]$a=\"\"
$compteur=1
$tableau.GetEnumerator()|% {
$nom_=$_.Name
$valeur_=$_.Value
$a+=\"<tr align='center'><td>$nom_</td><td>$valeur_</td></tr>\"
$compteur++
}
New-Item $path –type file -force
Add-Content -Path $path -Value \"<html><head></head><body>
<table border='1'><tr align='center'><td>Graphique</td><td><b>Nom</b></td>
<td><b>NB Connexions</b></td></tr><td rowspan='$compteur+1'><img src='Chart.png'></td>$a</table></body><head></html>\"
ii $path
}

Export-ModuleMember -Function 'frmGraphique', 'Concatenation_Mensuelle', 'Creer_HTML'

[/code:1]

Message édité par: JLB, à: 13/05/10 23:53<br><br>Message édité par: JLB, à: 13/05/10 23:54

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

Plus d'informations
il y a 15 ans 10 mois #6860 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Conca1.ps1
[code:1]
Import-Module .\module.psm1

$chemin = 'H:\scripts\Powershell\Graph\2010\'
Write-Host 'Choix possibles :'
Get-ChildItem $chemin -exclude *.* -name
$mois = Read-Host \&quot;`nFaites votre choix \&quot;
$donnees = Concatenation_Mensuelle
$resultat=@{}
$crit = Read-Host \&quot;Le nombre de connexions doit être strictement supérieur à \&quot;
$donnees.GetEnumerator()|% {
$Nom=$_.Name
$valeur=$_.Value
if(!($valeur -le $crit)){
$resultat.Add($Nom, $valeur)
}
}

$rep=frmGraphique($resultat)

[/code:1]

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

Plus d'informations
il y a 15 ans 10 mois #6861 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Le bouton \&quot;Rapport\&quot; permet de créer le fichier \&quot;Chart.png\&quot; et le fichier \&quot;rapport.html\&quot;.

J'ai préféré virer la transparence pour le graphique car comme vous pouvez le constater plus haut la qualité de l'image n'est pas au rdv.

Voilou et à bientôt :P<br><br>Message édité par: JLB, à: 14/05/10 00:10

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

Plus d'informations
il y a 15 ans 10 mois #6881 par Jean Luc B
Réponse de Jean Luc B sur le sujet Re:PowerShell et MSChart
Petite modification de la fonction :
[code:1]
function Concatenation_Mensuelle(){
$t = @{}
foreach($fichier in Get-ChildItem $chemin$mois -name ){ #-include *.*){
Get-Content $chemin$mois\$fichier |Foreach{ $_.Replace(\&quot;;\&quot;, \&quot;,\&quot;«») } |Set-Content .\sortie.csv
$tab = @{}
$tab = Import-Csv .\sortie.csv | foreach { @{Nom=$_.Ordinateur} }
for($i=0;$i -le ($tab.count -1); $i++){
$critere = $tab[$i].nom
if($t.ContainsKey($critere)){
$t[$critere]=($t[$critere] + 1)
}else{
$t.Add($critere, 1)
}
}
Remove-Item .\sortie.csv
}
return $t
}
[/code:1]
Get-Content $chemin$mois\$fichier |Foreach{ $_.Replace(\&quot;;\&quot;, \&quot;,\&quot;) } |Set-Content .\sortie.csv Uniformisation des séparateurs, car dans mes fichiers il arrive qu'il y ait des \&quot;;\&quot; et des \&quot;,\&quot; Création d'un fichier
Remove-Item .\sortie.csv Suppression du fichier après utilisation

voilou voilou

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

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