comment utiliser JSL pour modifier une fenêtre de dialogue modaleQuelle est la bonne approche pour éditer une boîte de dialogue modale via JSL ?
l'idée:
- la fonction ajouter un bouton de mise à jour ajoute un bouton au filtre de données
- cela fonctionne s'il est exécuté APRÈS la création de la fenêtre
- in the actual use case, the return value of the window is used as input for the subsequent code.
Therefore, <<TYPE><BR /> -> la fenêtre sera fermée avant l'exécution <FONT face="courier new,courier">du bouton d'ajout de mise à jour() //post</FONT></TYPE>
- I tried to add the <FONT face="courier new,courier">ajouter un bouton de mise à jour()</FONT> via <FONT face="courier new,courier"><< à l'ouverture (<BR /></FONT>... without success
<CODE class=" language-jsl">Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Properties to Table(
{New Script("reread", JSL Quote(caption("reread ...")), As String( 1 ))});
add update button = function ({},
wait();
Current Report()["Local Data Filter",LineUpBox(1)] <<
append(
b = Button Box( "update",
b << close window();
dt << run script( "reread" );
ShowQueryWindow();
)
));
ShowQueryWindow = Function({},
gui = New Window( "test",
//<<TYPE></TYPE><CODE class=" language-jsl"><LINGO-LABS id="lingo-labs-750202" slang="en-US" mode="UPDATE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL></LINGO-LABS>Re : comment utiliser JSL pour éditer une fenêtre de dialogue modaleUne approche pour cela dans JMP 18 consiste à utiliser un gestionnaire de fenêtre. Le gestionnaire de fenêtre est un wrapper de fonction qui vous permet d'accéder à n'importe quelle fenêtre créée lors de l'exécution de la fonction. Nous cherchons à rendre les comportements modaux et non modaux plus cohérents dans les prochaines versions majeures, ce qui devrait rendre cela plus facile à faire directement via la fonction New Window() à l'avenir.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Properties to Table(
{New Script("reread", JSL Quote(caption("reread ...")), As String( 1 ))});
add update button = function ({win},
win["Local Data Filter",LineUpBox(1)] <<
append(
b = Button Box( "update",
b << close window();
dt << run script( "reread" );
ShowQueryWindow();
)
));
showFilter = Function({},
With Window Handler(
New Window( "test",
<<TYPE></TYPE>
<P> </P>
<P> </P>Re : comment utiliser JSL pour éditer une fenêtre de dialogue modalesalut @danschikore , merci beaucoup
merveilleux:)
Re : comment utiliser JSL pour éditer une fenêtre de dialogue modaleEssayez-vous d'ajouter le bouton de mise à jour à la fenêtre modale ? Si c'est le cas, je ne pense pas que la fenêtre modale soit une fenêtre de rapport (c'est une boîte de dialogue modale ou modale) -> construisez la fenêtre modale de manière différente
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Script("reread", JSL Quote(caption("reread ...")), As String(1));
add update button = Function({ref},
ref["Local Data Filter", Lineup Box(1)] << append(
b = Button Box("update",
b << close window();
dt << run script("reread");
)
);
);
showFilter = Function({},
collector = V List Box(
dt << data filter(local)
);
add update button(collector);
gui = New Window("test", <<TYPE></TYPE>
<P>Je suggérerais également d'essayer d'ajouter {Default Local} (ou des noms de variables définis) à vos fonctions pour éviter d'éventuels problèmes, mais cela nécessitera des scripts supplémentaires.</P>