[Résolu] Problème de retour à la ligne

Vous voulez de l'aide ? Postez ici :)
Post Reply
Sergent-Quentin
Posts: 273
Joined: 11 Jun 2014, 14:45

[Résolu] Problème de retour à la ligne

Post by Sergent-Quentin » 30 Sep 2015, 20:58

Bonsoir,


J'ai écrit un petit bout de script qui contient une liste de sélection ainsi qu'une action "Code", quand je fais mon choix dans la liste de sélection le code devrait me renvoyer sur la liste de sélection, or ce n'est pas le cas ^^, sauriez-vous y remédier svp ?

Voici le script :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actiona" version="3.9.0" scriptVersion="1.1.0" os="Windows"/>
    <actions>
        <action name="ActionMultiDataInput" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionMultiDataInput" label="Liste">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="maximumChoiceCount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">Action</subParameter>
            </parameter>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="windowTitle">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="question">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="items">
                <subParameter name="value" code="0">Selectionne moi
</subParameter>
            </parameter>
            <parameter name="defaultValue">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="mode">
                <subParameter name="value" code="0">list</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" label="Code">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">
if (Action=="Selectionne moi") {

Script.nextLine = "Liste";

var Input_Dialog = new InputDialog({
title: "Titre",
labelText: "Titre :",
okButtonText: "Suivant",
cancelButtonText: "Annuler",
inputType: InputDialog.Text
});
Input_Dialog.showModal();
}</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
Je vous remercie

Cordialement

Sergent-Quentin
Last edited by Sergent-Quentin on 06 Oct 2015, 18:58, edited 1 time in total.

Fredy123
Posts: 152
Joined: 15 Jun 2011, 23:07

Re: Problème de retour à la ligne

Post by Fredy123 » 30 Sep 2015, 23:58

Retire ce bout ?

Code: Select all

var Input_Dialog = new InputDialog({
title: "Titre",
labelText: "Titre :",
okButtonText: "Suivant",
cancelButtonText: "Annuler",
inputType: InputDialog.Text
});
Input_Dialog.showModal();

Sergent-Quentin
Posts: 273
Joined: 11 Jun 2014, 14:45

Re: Problème de retour à la ligne

Post by Sergent-Quentin » 01 Oct 2015, 16:10

Salut,

Je l'ai laissé exprès ^^, avec un retour à la ligne 001 juste avant.

En théorie, une fois l'action choisie, il devrait retourner à la liste de sélection or il exécute quand même :

Code: Select all

var Input_Dialog = new InputDialog({
title: "Titre",
labelText: "Titre :",
okButtonText: "Suivant",
cancelButtonText: "Annuler",
inputType: InputDialog.Text
});
Input_Dialog.showModal();

Sergent-Quentin
Posts: 273
Joined: 11 Jun 2014, 14:45

Re: Problème de retour à la ligne

Post by Sergent-Quentin » 02 Oct 2015, 16:55

Bonjour,

J'ai fait un code plus simple, Il y en 001 une boite de dialogue nommée "Coucou" et en 002 un code :

Code: Select all

Script.nextLine = "Coucou";

var Boite = new MessageBox({
title: "Message",
text: "Mon texte",
icon: MessageBox.Information,
buttons: MessageBox.Yes | MessageBox.No
});
Boite.showModal();
Le problème c'est qu'il exécute quand même tout ce que contient le code, or j'aimerais qu'il exécute directement Script.nextLine = "Coucou"; , soit retourner sur la boite de dialogue nommée "Coucou".

Auriez-vous une solution pour y remédier svp ?^^

Je vous remercie

Cordialement

Sergent-Quentin

francois
Posts: 325
Joined: 18 Oct 2010, 10:33
Location: France

Re: Problème de retour à la ligne

Post by francois » 05 Oct 2015, 07:59

Bonjour,

a)
Comme te le conseille fredy123, pourquoi conserver après Script.nextLine = "Coucou" :

Code: Select all

var Boite = new MessageBox({
    title: "Message",
    text: "Mon texte",
    icon: MessageBox.Information,
    buttons: MessageBox.Yes | MessageBox.No
    });
    Boite.showModal();
Si c'est pour vérifier qu'il ne va pas directement à "Coucou", mets un truc genre "Console.print("Ne va pas directement à Coucou")

b)
Concernant le fonctionnement de Script.nextline, j'ai eu le même type d’interrogation que toi.
Réponse de JMGR :
Non c'est normal : un script est toujours exécuté jusqu'à la fin. Avoir un script qui bloque paralyserait toute l'exécution.
La solution dans ce cas c'est de créer une autre action code avec la partie qui doit être exécutée sur l'action ciblée par "nextline".
Une fois que c'est pris en compte, cela ne pose pas de pb.

Avec le bout de script suivant, tu peux tester :

Code: Select all

a=25
    if (a > 10)
    {
    Script.nextLine ="suite";
    Console.print("Dans IF apres Script.nextLine ")
    }
    Console.print("Hors IF ")
Ajouter après une ligne
avec 'suite' comme label à la place du numéro de ligne
et comme contenu : Console.print("suite")

Francois

Sergent-Quentin
Posts: 273
Joined: 11 Jun 2014, 14:45

Re: Problème de retour à la ligne

Post by Sergent-Quentin » 05 Oct 2015, 20:35

Salut,
francois wrote:La solution dans ce cas c'est de créer une autre action code avec la partie qui doit être exécutée sur l'action ciblée par "nextline".
Hum... un peu embêtant ^^

Pour être plus précis (j'aurai du l'être avant :mrgreen: ), il y a plusieurs entrées de données (en code), c'est pour par exemple ajouter un livre (titre, nombre de pages, etc...), Lorsque je clique sur annuler, je voudrais que ça revienne au menu. Si j'ai bien compris dans mon cas ce n'est pas possible (je mettrais le script en dessous).

La solution pour moi serait de faire le menu (Liste de sélection) en code dans une fonction, qui sera exécutée si je clique sur annuler. J'avais trouvé comment faire une liste de sélection avec un menu déroulant, mais pour ce qui est de faire les autres choix (Liste, cases à cocher, etc... ), je n'ai pas trouvé, voici le topic que j'avais créer pour cela :

https://www.jmgr.net/forum/viewtopic.php?f=30&t=1396

Script :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actiona" version="3.9.0" scriptVersion="1.1.0" os="Windows"/>
    <actions>
        <action name="ActionCode" version="1.0.0"/>
        <action name="ActionMultiDataInput" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionMultiDataInput" label="Menu">
            <exception id="1" action="0" line=""/>
            <exception id="0" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="mode">
                <subParameter name="value" code="0">list</subParameter>
            </parameter>
            <parameter name="question">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="windowTitle">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">Action</subParameter>
            </parameter>
            <parameter name="maximumChoiceCount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="defaultValue">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="items">
                <subParameter name="value" code="0">Ajouter un livre
</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" label="Code">
            <exception id="1" action="0" line=""/>
            <exception id="0" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">if (Action=="Ajouter un livre") {

// Titre
var Input_Dialog = new InputDialog({
title: "Livre",
labelText: "Titre :",
okButtonText: "Suivant",
cancelButtonText: "Retour menu",
inputType: InputDialog.Text
});
var Reponse = Input_Dialog.showModal();
var Titre = Input_Dialog.value;

if (Reponse==1) {
Console.print("Etape suivante");
}
if (Reponse==0) {
Console.print("Annuler");
Script.nextLine = "Menu";
}

// Nombre de pages
var Input_Dialog = new InputDialog({
title: "Livre",
labelText: "Nombre de pages :",
okButtonText: "Suivant",
cancelButtonText: "Retour menu",
inputType: InputDialog.Text
});
var Reponse = Input_Dialog.showModal();
var Titre = Input_Dialog.value;

if (Reponse==1) {
Console.print("Fini !");
}
if (Reponse==0) {
Console.print("Annuler");
Script.nextLine = "Menu";
}
}

else {
Console.printWarning("Tu n'as pas fait de choix");
Script.nextLine = "Menu";
}</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
Merci pour ton aide

Cordialement

Sergent-Quentin

francois
Posts: 325
Joined: 18 Oct 2010, 10:33
Location: France

Re: Problème de retour à la ligne

Post by francois » 06 Oct 2015, 07:53

Bonjour,
Lorsque je clique sur annuler, je voudrais que ça revienne au menu. Si j'ai bien compris dans mon cas ce n'est pas possible
C'est possible mais en prenant en compte le fonctionnement de Nexline ( voir exemple donné dans le msg précédent)

Ton script plante dans le else de

Code: Select all

if (Action=="Ajouter un livre";)
Actiona te dit qu'il ne connait pas la variable Action. (quand tu clic sur annuler)
Il faut donc plutôt que tester une valeur, tester si cette variable existe :

Code: Select all

if (typeof Action != 'undefined') 
Francois

Sergent-Quentin
Posts: 273
Joined: 11 Jun 2014, 14:45

Re: Problème de retour à la ligne

Post by Sergent-Quentin » 06 Oct 2015, 18:57

Bonjour,
francois wrote:C'est possible mais en prenant en compte le fonctionnement de Nexline ( voir exemple donné dans le msg précédent)
D’accord ^^
francois wrote:Actiona te dit qu'il ne connait pas la variable Action. (quand tu clic sur annuler)
Il faut donc plutôt que tester une valeur, tester si cette variable existe :

Code : Tout sélectionner
if (typeof Action != 'undefined')

Oki ^^, merci pour l'info :p

Cordialement

Sergent-Quentin

Post Reply