Interface utilisateurSalut,
J'ai créé une interface utilisateur et j'aimerais y apporter quelques modifications. Ceci est illustré ci-dessous :
J'aime déplacer "OK" et "Annuler" en bas de la fenêtre et dans "Sélectionner le nom du produit", choisissez uniquement le produit (combinez la droite et la gauche). J'aimerais également savoir comment choisir ces options et les mettre dans une variable à utiliser pour d'autres scripts.
J'ai joint le script réel.
Merci beaucoup pour votre aide.

Objet : interface utilisateurMerci beaucoup.
Objet : interface utilisateurVous pouvez saisir le produit sélectionné dans le code du bouton OK.
okb = button box("OK",
one_product = rb1 << get selected;
),Objet : interface utilisateurJe pense que si vous comprenez le code qui vous a été donné, vous devriez pouvoir étendre l'interface utilisateur pour capturer le nom de la variable par vous-même.
Objet : interface utilisateurMerci. Cela fonctionne bien maintenant. Qu'en est-il du choix de l'utilisateur pour le nom du produit ? Comment puis-je capturer cela en tant que nom de variable et l'utiliser après la fermeture de la fenêtre.
J'apprécie ton aide. Merci
Objet : interface utilisateurPuisque vous utilisez une fenêtre modale, vous devez déplacer la commande de groupe dans la nouvelle fenêtre() :
)
rb1 << group(rb2),
);
Objet : interface utilisateurLe problème est que vous utilisez une fenêtre modale.Je ne traiterai pas cette ligne qui regroupe les boîtes radio jusqu'à ce que vous fermiez la fenêtre.
Vous pouvez le faire et conserver la fenêtre modale :
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
rb1 << group(rb2);
),
Objet : interface utilisateurSalut,
Merci. Votre script fonctionne comme prévu. Mais lorsque je le combine avec le personnel en haut de "Choisir un produit", je vois l'image ci-dessous :

J'ai joint le script après modifications. Merci de votre aide.
Objet : interface utilisateurHa ha, ils m'ont beaucoup appris sur JSL à Poudlard.
Mais vraiment la sauce secrète est le Script Index.Utilisez tout le temps.
Objet : interface utilisateur
@pmroz a écrit:
Si vous utilisez la méthode de groupe <<, vous pouvez avoir des boîtes radio côte à côte qui agissent comme une seule boîte radio, c'est-à-dire qu'une seule option peut être sélectionnée.Voici un exemple :
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);
Mec, c'est de la sorcellerie là.Bon conseil !Merci.
Objet : interface utilisateurSi vous utilisez la méthode de groupe <<, vous pouvez avoir des boîtes radio côte à côte qui agissent comme une seule boîte radio, c'est-à-dire qu'une seule option peut être sélectionnée.Voici un exemple :
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);

Objet : interface utilisateurUne chose que je recommanderais est de déplacer les lignes qui définissent les formats pour str1 et str2 en dehors de la fonction New Window().Vous pouvez d'abord définir toutes les zones d'affichage à l'intérieur de New Window(), puis modifier ces zones d'affichage.Cela gardera votre code un peu plus propre.
Ensuite, vous pouvez déplacer la parenthèse fermante de la zone de liste V à la fin de la liste des zones d'affichage.La zone de liste H qui contient les boutons OK et Annuler est imbriquée dans la même zone de liste H qui contient les zones de panneau avec vos boutons radio.Déplacez simplement la boîte de liste H contenant OK et Annuler en dehors de son conteneur de boîte de liste H parent actuel, et faites-en un frère de cette boîte de liste H dans le conteneur parent de la boîte de liste V.Cela déplacera ces boutons vers le bas.
Avoir plusieurs colonnes dans un champ de bouton radio est délicat, et je ne suis pas sûr que cela en vaille la peine.Vous aurez besoin de 2 d'entre eux comme vous en avez maintenant (bien que je les placerais tous les deux dans la même boîte de panneau au lieu de les séparer).Le problème est que vous ne pouvez pas avoir une boîte radio qui n'a pas sélectionné quelque chose.Par conséquent, il serait impossible qu'une case radio soit effacée de sorte qu'il n'y ait qu'une seule sélection sur les deux cases radio.Envisagez plutôt une zone de liste afin de pouvoir la garder compacte avec une barre de défilement et de définir le nombre de lignes à afficher.
Voici le résultat avec mes suggestions :
Clear Log();
// Time filtering //
defuplim = Today();
deflowlim = Today() - In Days( 150 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
//<<MODAL></MODAL>lb << Set Max Selected(1);
Pour accéder aux informations dans les boîtes d'affichage de l'utilisateur, il suffit de définir une fonction pour le bouton OK qui fait cela.Voir l'Index des scripts dans le menu Aide.Si vous recherchez "boîte d'édition de numéro" et modifiez le menu déroulant de "Toutes les catégories" à "Boîte d'affichage", vous pouvez voir tous les messages que vous pouvez envoyer à une zone d'édition de numéro.L'un d'eux est "Obtenir".Il y a un message similaire pour chaque boîte d'affichage avec une entrée utilisateur.
Votre fonction pour le bouton OK pourrait ressembler à ceci :
Ok_btn << Set Script(On OK());
On OK = Function({},
start_date = str1 << Get;
end_date = str2 << Get;
Print(start_date, end_date);
);