Question
[Résolu]PowerShell et MSChart
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
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
[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.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
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 \"`nFaites votre choix \"
$donnees = Concatenation_Mensuelle
$resultat=@{}
$crit = Read-Host \"Le nombre de connexions doit être strictement supérieur à \"
$donnees.GetEnumerator()|% {
$Nom=$_.Name
$valeur=$_.Value
if(!($valeur -le $crit)){
$resultat.Add($Nom, $valeur)
}
}
$rep=frmGraphique($resultat)
[/code:1]
[code:1]
Import-Module .\module.psm1
$chemin = 'H:\scripts\Powershell\Graph\2010\'
Write-Host 'Choix possibles :'
Get-ChildItem $chemin -exclude *.* -name
$mois = Read-Host \"`nFaites votre choix \"
$donnees = Concatenation_Mensuelle
$resultat=@{}
$crit = Read-Host \"Le nombre de connexions doit être strictement supérieur à \"
$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.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
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 \"Rapport\" permet de créer le fichier \"Chart.png\" et le fichier \"rapport.html\".
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
<br><br>Message édité par: JLB, à: 14/05/10 00:10
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
Connexion ou Créer un compte pour participer à la conversation.
- Jean Luc B
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
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(\";\", \",\"«») } |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(\";\", \",\") } |Set-Content .\sortie.csv Uniformisation des séparateurs, car dans mes fichiers il arrive qu'il y ait des \";\" et des \",\" Création d'un fichier
Remove-Item .\sortie.csv Suppression du fichier après utilisation
voilou voilou
[code:1]
function Concatenation_Mensuelle(){
$t = @{}
foreach($fichier in Get-ChildItem $chemin$mois -name ){ #-include *.*){
Get-Content $chemin$mois\$fichier |Foreach{ $_.Replace(\";\", \",\"«») } |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(\";\", \",\") } |Set-Content .\sortie.csv Uniformisation des séparateurs, car dans mes fichiers il arrive qu'il y ait des \";\" et des \",\" 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.038 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]PowerShell et MSChart