Rechercher un nom spécifique par IFBonjour
J'ai créé une nouvelle colonne " Nom de la broche "
et je souhaite ajouter un certain nombre de code PIN
Cela signifie que si vous contientz gp_0 dans la colonne " Nom du test " ça devrait être GP_0
ou si vous avez contient gp_1 dans le nom du test, cela devrait être GP_1 dans la colonne "Nom du code PIN"
ou si vous avez contient gp_11 dans le nom du test, cela devrait être GP_11 dans la colonne "Nom du code PIN"
J'ai écrit le scénario
Colonne(dt,"PIN_NAME") << Formule ( Si ( Contient( :TEST_NAME, "gp_0" ), "GP_0",
Si( Contient( :TEST_NAME, "gp_1" ), "GP_1",
Si( Contient( :TEST_NAME, "gp_10" ), "GP_10",
Si( Contient( :TEST_NAME, "gp_11" ), "GP_11",
If( Contains( :TEST_NAME, "gp_12" ), "GP_12" ))))));
mais je vois la formule ajouter GP_1 même si j'ai gp_11 dans le nom du test.
donc ma question est la suivante : comment puis-je définir exactement le nom pour la recherche ?

Automatisation et scriptsles fenêtresRe : Rechercher un nom spécifique par IFJMP mettra fin à la boucle If() dès qu'une condition sera remplie.Techniquement, "gp_11" contient "gp_1"...
Vous pouvez réécrire la boucle If() à l'envers, comme
If(
Contains( :TEST_NAME, "gp_12" ), "GP_12",
Contains( :TEST_NAME, "gp_11" ), "GP_11",
Contains( :TEST_NAME, "gp_10" ), "GP_10",
Contains( :TEST_NAME, "gp_1" ), "GP_1"
);
Mais cela va devenir très long et fastidieux si vous avez beaucoup de médecins généralistes à consulter.Peut-être que quelque chose comme ça fonctionnerait pour vous.
Uppercase( Regex( :TEST_NAME, "io_(gp_\d+)", "\1", IGNORE CASE ) );
Il recherche "io_" suivi de "gp_" et n'importe quel nombre de chiffres."IGNORE CASE" est activé pour que "GP" satisfasse également la Regex.Si ce n'est pas le comportement que vous souhaitez, laissez simplement cette partie de côté.
Re : Rechercher un nom spécifique par IFJ'ai travaillé ce code et il semble fonctionner, et cela fonctionne assez vite
names default to here(1);
dt=current data table();
dt << new column("PIN_NAME", character);
theRows = dt << get rows where( contains(:TEST_NAME,"_gp_"));
for each( {fndRow,i}, theRows,
:PIN_NAME[fndRow] = word(1,uppercase(substr(:TEST_NAME[fndRow],contains(:TEST_NAME[fndRow],"_gp_")+1)),"[]")
);