Variables de fonction locale dans un boutonBonjour,
Je cherche une solution pour accéder aux variables locales lors de la création d'un contrôle ButtonBox dans une fonction. J'ai vu une discussion sur ce forum où la solution proposée consistait à assigner les variables à l'espace de noms de la fenêtre. Cependant, je ne pense pas que cela convienne aux rapports que je dois créer, car ils contiennent plusieurs éléments réutilisés dans la même fenêtre.
Dans mon exemple, j'essaie simplement d'afficher les valeurs de ma liste chaînée, mais je voudrai faire beaucoup plus avec les scripts finaux (tous fonctionnels lors des tests/triche à l'aide de variables globales).
// General Component - List Box
make_a_list_box = Function( {list_in},
{Default Local},
l_box = List Box( list_in );
Return( l_box );
);
// General Component - Button linked to a specific list box
linked_button_box = Function( {button_name, target_list_box},
{Default Local},
b_box = Button Box( button_name, Print( target_list_box << Get Items ) ); // Name Unresolved: target_list_box
Return( b_box );
);
// Basic Module - Expect multiple in a shared window
report_module = Function( {list_in, button_name},
{Default Local},
report_list = make_a_list_box( list_in );
report_button = linked_button_box( button_name, report_list );
report = H List Box( report_list, report_button );
Print( report_list << Get Items );
Return( report );
);
// Example Window using multiple modules
New Window( "Test",
V List Box(
report_module( {"A", "B", "C"}, "Letter" ),
report_module( {"1", "2", "3"}, "Number" )
)
);
Automatisation et scriptageRe : Variables de fonction locale dans une boîte à boutonsVous pouvez utiliser la boîte de contexte
Names Default To Here(1);
make_a_list_box = Function({list_in},
{Default Local},
l_box = List Box(list_in);
Return(l_box);
);
// General Component - Button linked to a specific list box
linked_button_box = Function({button_name, target_list_box},
{Default Local},
b_box = Context Box(
box:target_list_box = target_list_box,
Button Box(button_name,
Print(box:target_list_box << Get Items)
)
);
Return(b_box);
);
report_module = Function({list_in, button_name},
{Default Local},
report_list = make_a_list_box(list_in);
report_button = linked_button_box(button_name, report_list);
report = H List Box(report_list, report_button);
Print(report_list << Get Items);
Return(report);
);
nw = New Window("Test",
V List Box(
report_module({"A", "B", "C"}, "Letter"),
report_module({"1", "2", "3"}, "Number")
)
);
Write();