Question pb variables vides apres un form load

Plus d'informations
il y a 10 ans 5 mois #20817 par mick
bonjour à tous,

je fais appel à vos lumières je sèche!

j'ai fait un script avec powershell studio v12, sous seven cela fonctionne très bien, le même sous 8.1 je n'ai plus le contenu de mes variables après le $FormEvent_Load de terminé

il y a une subtilité dans le passage de powershell v2 à 4?

dans le $FormEvent_Load je fais une requête sql contenu dans une table, le numéro de ligne est dans une variable qui s’incrémente a chaque clic sur le bouton suivant, mais a l'affichage de cette variable elle est vide....

merci de me donner une piste car la.....

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

Plus d'informations
il y a 10 ans 5 mois #20818 par Laurent Dardenne
mickit écrit:

il y a une subtilité dans le passage de powershell v2 à 4?

Disons qu'il existe de nombreux breakings change :).
Il te faut lire les releases notes de la v3 et de la v4.

Pour ton problème utilise le modificateur de portée script:

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 5 mois #20819 par mick
merci pour ta réponse, me doute bien que ma portee n'est pas bonne mais je n'arrive pas a debugger!
[code:1]function MAJchanps {
$txtboxnom.Text = ($dataset.Tables[\"users\"].rows[$col][0])
}
$buttonsuivant_Click = {
write-host \"col:$global:col\"
$global:col= $global:col + 1
$recordcounttest = $global:recordcount-1
if ($global:col -eq $recordcounttest)
{
$buttonsuivant.Enabled= $false
}
if ($global:col -le $global:recordcount)
{
resetchamp
supfichier
MAJchanps
triedatastore
$buttoncreer.Enabled = $true
$buttonpresedent.Enabled = $true
}
else
{
resetchamp
supfichier
$buttoncreer.Enabled = $false
$buttonsuivant.Enabled = $false
}
}

$FormEvent_Load={
[int]$col = 0
$recordCount = $dataAdapter.Fill($dataSet, \"users\"«»)
MAJchanps
}

$buttonpresedent_Click={
if ($global:col -ge \"0\"«»)
{
$global:col= $global:col-1
resetchamp
supfichier
MAJchanps
triedatastore
$buttoncreer.Enabled = $true
$buttonsuivant.Enabled= $true
}
else
{
resetchamp
supfichier
$buttoncreer.Enabled = $false
$buttonpresedent.Enabled = $false
}
if ($global:col -eq \"0\"«»)
{
$buttonpresedent.Enabled = $false
}
}[/code:1]
dans la fontion majchamp si je passe a la variable col a global, mon champ est vide.
le reste me semble bon.... voila pourquoi je seche!

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

Plus d'informations
il y a 10 ans 5 mois #20820 par Laurent Dardenne
Utilise la portée script: et teste sur des entiers et pas sur des chaînes :
[code:1]if ($script:col -ge 0)[/code:1]
Si une variable a une portée particulière, chaque fois que tu la références tu dois utiliser la même portée.
Par exemple ici :
[code:1]
$FormEvent_Load={
[int]$col = 0
[/code:1]
$col est une variable locale et pas celle du script.

Ce n'est peut être pas la solution à ton pb, mais au moins à la relecture de ton code on sait quelle variable tu références.

Dans le code soumis, la fonction MajChamps est correcte, mais elle s'appuie sur un comportement implicite, selon les modifications de ton code le comportement pourra être différent.<br><br>Message édité par: Laurent Dardenne, à: 6/10/15 13:03

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 5 mois #20828 par mick
pb reglé merci!

cela venait effectivement des variables et du tableau....

:evil:

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

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