J'ai cette interface graphique et j'ai des lignes que j'ai créées
Ce que je fais, c'est utiliser un gestionnaire d'état de ligne pour détecter quand quelqu'un sélectionne des formes mappées dans un graphique.
Cela montre quelles lignes ils ont réellement sélectionnées.
Maintenant, j'ai également 2 "formes de carte" d'assistance dans ce graphique. lorsqu'ils sélectionnent quelque chose dans le graphique principal, je dois également le mettre en surbrillance dans les graphiques auxiliaires.
Voici donc mon code, et je veux que la sélection soit mise à jour en direct pour être 1 ou 2 afin que je puisse le suivre avec quelques autres lignes qui disent :
obtenez les helper_rows qui ont le même nom de clé que les lignes sélectionnées et sélectionnez-les également afin que l'utilisateur sache qu'elles sont liées et que je puisse ensuite les obtenir pour un sous-ensemble qui se trouve dans ma prochaine étape.
alors mon projet :
1. obtenir la liste de toutes les lignes du tableau, il doit y avoir un meilleur moyen que cela ...
all_rownums = subset_JMP_Master_Table << GetRowsWhere (:Name != -99999);
2. à l'intérieur du gestionnaire d'état de ligne : récupère les lignes sélectionnées
3. soustraire les lignes sélectionnées de la liste totale des lignes ? Obtenez 2 listes : 1 qui contient des lignes sélectionnées et l'autre qui contient des lignes qui ne sont pas sélectionnées.
4. Affectez l'indicateur sélectionné comme 1 ou 2 à la colonne sélectionnée.
5. Lignes d'assistance de recherche basées sur le nom de la clé + la colonne sélectionnée = 1
6. sélectionnez également les lignes d'assistance et créez un sous-ensemble pour les étapes suivantes.
subset_JMP_Master_Table << New Column( "selected",
Numeric
, Ordinal
,set each value(0)
);
all_rownums = subset_JMP_Master_Table << GetRowsWhere (:Name != -99999);
//rows_in_subset_table = subset_JMP_Master_ Table << Select All Rows;
//show(rows_in_subset_table);
select_sync_rsh = subset_JMP_Master_Table << MakeRowStateHandler(
Function(
{a}
,if(
select_sync_script_on
,( //start doing things based on script
print(a);
r = subset_JMP_Master_Table << get selected rows;
Column(subset_JMP_Master_Table, "selected")[r] = 1;
q = subset_JMP_Master_Table << GetRowsWhere (:selected != 1);
Column(subset_JMP_Master_Table, "selected")[q] = 2;
)//end doing things based on script
)// end if
); //end function
);
Vous pouvez également utiliser la syntaxe 1 ::n produire une matrice :
subset_JMP_Master_Table=current data table();
b = 1::nrows(subset_JMP_Master_Table);
Je pense que vous pouvez obtenir votre matrice rownum avec
subset_JMP_Master_Table=current data table();
all_rownums = index(1,nrows(subset_JMP_Master_Table));
subset_JMP_Master_Table << New Column( "selected", Numeric, Ordinal, set each value( 0 ) );
fhg = N Rows( subset_JMP_Master_Table );
all_rownums = subset_JMP_Master_Table << GetRowsWhere( :Name != -99999 );
//rows_in_subset_table = subset_JMP_Master_ Table << Select All Rows;
//show(rows_in_subset_table);
select_sync_rsh = subset_JMP_Master_Table << MakeRowStateHandler(
Function(
{a}
,
If(
select_sync_script_on
,
(//start doing things based on script
Print( a ) ;
subset_JMP_Master_Table:selected << Set Each Value( 2 ) ; // just blanket set everything to 2
curr_selected_rows = subset_JMP_Master_Table << get selected rows ; // get the selected rows
subset_JMP_Master_Table:selected[curr_selected_rows] = 1 ; //update the selected rows to 1
)//end doing things based on script
)// end if
); //end function
); //end row state handler