Impostazione dei valori in una colonna con ScegliHo quello che sono sicuro sia un semplice problema con l'impostazione dei valori in una colonna usando la funzione Choose. Di seguito è riportato uno script di test insieme a una tabella che mostra l'output desiderato.
Names Default To Here( 1 );
startTime = 3742070400;
endTime = 3742074000;
dt = New Table( "Test",
Add Rows( 60 ),
New Column( "Timestamp", Format( "m/d/y h:m", 19 ), Set Display Width( 175 ) )
);
For Each Row( :Timestamp[] = Sequence( startTime, endTime, 60 ) );
aggOption = 1; // This will eventually be a pulldown menu with choices
New Column( "Agg Minute",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Display Width( 116 )
);
// Script below is the problem. I tried For Each Row and Set Values and a combination
// of both but the column always is blank. See Interpolated Data table for what it
// should look like.
dt:"Agg Minute"n << For Each Row(
Choose( aggOption,
If(
Minute( :Timestamp ) < 15, 15,
Minute( :Timestamp ) < 30, 30,
Minute( :Timestamp ) < 45, 45,
0
),
If(
Minute( :Timestamp ) < 14, 0,
Minute( :Timestamp ) < 29, 15,
Minute( :Timestamp ) < 44, 30,
45
),
If(
0 < Minute( :Timestamp ) <= 15, 15,
15 < Minute( :Timestamp ) <= 30, 30,
30 < Minute( :Timestamp ) <= 45, 45,
0
)
)
);
Nota che quando esegui lo script la colonna Agg Minute è vuota. Ho provato Set Values e For Each Row e una combinazione di entrambi, ma non riesco a farlo funzionare.
Come sempre, ogni aiuto è molto apprezzato.
Grazie.
Automazione e scriptingsistema operativo macOSRe: Impostazione dei valori in una colonna con ChoosePosso farlo funzionare come una formula di colonna se imposto una variabile locale. Ma poi non posso usare il risultato della mia casella combinata.
Ecco il codice. Ovviamente c'è molto altro che devo imparare su JSL. È molto facile generare codice automaticamente. Ma spesso quando provo a personalizzarlo, si rompe e non ne so ancora abbastanza per sistemarlo.
Argh.
New Column( "Agg Minute",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Display Width( 116 ),
Formula(
Local( {aggOption = 1},
Choose( aggOption,
If(
Minute( :Timestamp ) < 15, 15,
Minute( :Timestamp ) < 30, 30,
Minute( :Timestamp ) < 45, 45,
0
),
If(
Minute( :Timestamp ) < 15, 0,
Minute( :Timestamp ) < 30, 15,
Minute( :Timestamp ) < 45, 30,
45
),
If(
0 < Minute( :Timestamp ) <= 15, 15,
15 < Minute( :Timestamp ) <= 30, 30,
30 < Minute( :Timestamp ) <= 45, 45,
0
)
)
)
)
);Re: Impostazione dei valori in una colonna con ChooseStai usando For Each Row in modo errato. Non lo invii a una colonna, è una funzione che fornisci con (facoltativo) argomento tabella dati e corpo e all'interno del corpo puoi impostare valori per le colonne.
Ecco la versione corretta
Names Default To Here(1);
startTime = 3742070400;
endTime = 3742074000;
dt = New Table("Test",
Add Rows(60),
New Column("Timestamp", Format("m/d/y h:m", 19), Set Display Width(175))
);
For Each Row(:Timestamp[] = Sequence(startTime, endTime, 60));
aggOption = 1;
New Column("Agg Minute", Numeric, "Ordinal", Format("Best", 12), Set Display Width(116));
For Each Row(dt,
:"Agg Minute"n = Choose(aggOption,
If(
Minute(:Timestamp) < 15, 15,
Minute(:Timestamp) < 30, 30,
Minute(:Timestamp) < 45, 45,
0
),
If(
Minute(:Timestamp) < 14, 0,
Minute(:Timestamp) < 29, 15,
Minute(:Timestamp) < 44, 30,
45
),
If(
0 < Minute(:Timestamp) <= 15, 15,
15 < Minute(:Timestamp) <= 30, 30,
30 < Minute(:Timestamp) <= 45, 45,
0
)
)
);Re: Impostazione dei valori in una colonna con ChooseGrazie mille, Jarmo. Ha funzionato a meraviglia.