Aiuto con l'istruzione IfAttualmente sto provando a scrivere uno script che legga una colonna dalla mia tabella di dati ed esegua un diverso insieme di funzioni a seconda del valore di quella colonna. Per esempio,
Se i dati nella colonna A = A, crea una nuova colonna denominata "A" ed esegui le funzioni (da A a C) di seguito.
Se i dati nella colonna A = B, crea una nuova colonna denominata "B" ed esegui invece le funzioni (da D a F) riportate di seguito.
Altrimenti, crea una nuova colonna chiamata "N/A".
Quando eseguo il mio script, creerà sempre la nuova colonna "N/A" anche se il valore è "A" o "B". Inoltre, non eseguirà nessuna delle funzioni che ho scritto per le condizioni "A" e "B". Sento che mi manca qualcosa di molto ovvio.
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 )
)
Automazione e scriptingRicerche sui consumatori e sul mercatoCombinazione e pulizia dei datiPersonalizzazione di massaIngegneria della qualità e dei processiRe: Aiuto con la dichiarazione IfBuon punto sulla modifica del nome della colonna. Rende più difficile scrivere il JSL per l'elaborazione successiva. Probabilmente vuoi lo stesso nome di colonna per tutti i casi, qualcosa come "stato" o "tipo di azione".
Re: Aiuto con la dichiarazione IfDati gli scenari specificati, lo script seguente genera i 3 casi
A esiste nella colonna A
B esiste nella colonna B
Non esistono né A né B

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 )
);
È mia ipotesi, che questo non è quello che vuoi
Re: Aiuto con la dichiarazione IfSe Segreti potrebbe aiutare. Le virgole separano il clausole in una dichiarazione if. I punti e virgola separano le dichiarazioni entro una clausola.
Probabilmente vuoi qualcosa del genere
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
);Mi piace indentare e commentare /* else if */ e /* else */ per renderlo più facile da seguire.