Aide avec l'instruction IfJ'essaie actuellement d'écrire un script qui lit une colonne de ma table de données et exécute un ensemble différent de fonctions en fonction de la valeur de cette colonne. Par exemple,
Si les données de la colonne A = A, créez une nouvelle colonne appelée « A » et exécutez les fonctions (A à C) ci-dessous.
Si les données de la colonne A = B, créez une nouvelle colonne appelée « B » et exécutez plutôt les fonctions (D à F) ci-dessous.
Sinon, créez une nouvelle colonne appelée « N/A ».
Lorsque j'exécute mon script, il créera toujours la nouvelle colonne « N/A » même si la valeur est « A » ou « B ». Il n'exécutera également aucune des fonctions que j'ai écrites pour les conditions "A" et "B". J'ai l'impression qu'il me manque quelque chose de très évident.
dt = Current Data Table();
If(
:Column A == "A", dt << New Column( "A", character, nominal ),
Function A
Function B
Function C
:Column B == "B", dt << New Column( "B", character, nominal ),
Function D
Function E
Function F
dt << New Column( "N/A", character, nominal )
)
Automatisation et scriptsÉtudes de consommation et de marchéMélange et nettoyage des donnéesPersonnalisation de masseIngénierie Qualité et ProcédésRe: Aide avec l'instruction IfBon point sur le changement de nom de colonne. Il est plus difficile d'écrire le JSL pour un traitement ultérieur. Vous voulez probablement le même nom de colonne pour tous les cas, quelque chose comme "statut" ou "type d'action".
Re: Aide avec l'instruction IfCompte tenu des scénarios que vous avez spécifiés, le script ci-dessous génère les 3 cas
A existe dans la colonne A
B existe dans la colonne B
Ni A ni B n'existent

Names Default To Here( 1 );
A = Function( {},
Show( "Function A" )
);
B = Function( {},
Show( "Function B" )
);
C = Function( {},
Show( "Function C" )
);
D = Function( {},
Show( "Function D" )
);
EE = Function( {},
Show( "Function EE" )
);
F = Function( {},
Show( "Function F" )
);
// First Example Column A has the value A
dt1 = New Table( "Example1",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {"A"} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {""} ) )
);
Wait( 5 );
If(
:Column A[1] == "A",
dt1 << New Column( "A", character, nominal );
A();
B();
C();,
:Column B[1] == "B", dt1 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt1 << New Column( "N/A", character, nominal )
);
// Second Example Column B has the value B
dt2 = New Table( "Example2",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {""} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {"B"} ) )
);
Wait( 5 );
If(
:Column A[1] == "A",
dt2 << New Column( "A", character, nominal );
A();
B();
C();,
:Column B[1] == "B", dt2 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt2 << New Column( "N/A", character, nominal )
);
// Third Example Neither column A has and A nor Column B has a B
dt3 = New Table( "Example3",
Add Rows( 1 ),
New Column( "Column A", Character, "Nominal", Set Values( {""} ) ),
New Column( "Column B", Character, "Nominal", Set Values( {""} ) )
);
Wait( 5 );
If(
dt3:Column A[1] == "A",
dt3 << New Column( "A", character, nominal );
A();
B();
C();,
dt3:Column B[1] == "B", dt3 << New Column( "B", character, nominal );
D();
EE();
F();
,
dt3 << New Column( "N/A", character, nominal )
);
Je suppose que ce n'est pas ce que tu veux
Re: Aide avec l'instruction IfSi secrets pourrait aider. Des virgules séparent le clauses dans une instruction if. Instructions séparées par des points-virgules dans une clause.
Vous voulez probablement quelque chose comme ça
dt = Current Data Table();
If( :Column A == "A", // condition, followed by a comma
dt << New Column( "A", character, nominal ); // one or more stmts
Function A(); // with ; separators
Function B();
Function C(); // last statement has optional ; and required comma next line
, /* else if */ :Column B == "B", // 2nd condition followed by comma
dt << New Column( "B", character, nominal );
Function D();
Function E();
Function F() // again, another comma. ; omitted for example...I prefer to use them
, /* else */
dt << New Column( "N/A", character, nominal ) // no more commas, this is the otherwise
);J'aime mettre en retrait et commenter le /* else if */ et /* else */ pour le rendre plus facile à suivre.