Festlegen von Werten in einer Spalte mit „Auswählen“Ich habe ein Problem, das vermutlich einfach ist, wenn ich mit der Funktion „Auswählen“ Werte in einer Spalte einstelle. Unten finden Sie ein Testskript und eine Tabelle mit der gewünschten Ausgabe.
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
)
)
);
Beachten Sie, dass die Spalte „Agg Minute“ leer ist, wenn Sie das Skript ausführen. Ich habe „Set Values“ und „For Each Row“ und eine Kombination aus beiden ausprobiert, aber es funktioniert einfach nicht.
Wie immer ist jede Hilfe sehr willkommen.
Danke.
Automatisierung und SkriptingmacOSBetreff: Festlegen von Werten in einer Spalte mit „Auswählen“Ich kann es als Spaltenformel zum Laufen bringen, wenn ich eine lokale Variable festlege. Aber dann kann ich mein Kombinationsfeldergebnis nicht verwenden.
Hier ist der Code. Offensichtlich muss ich noch viel mehr über JSL lernen. Es ist sehr einfach, Code automatisch zu generieren. Aber wenn ich versuche, ihn anzupassen, bricht er oft zusammen und ich weiß noch nicht genug, um ihn zu reparieren.
Arrgh.
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
)
)
)
)
);Betreff: Festlegen von Werten in einer Spalte mit „Auswählen“Sie verwenden For Each Row falsch. Sie senden es nicht an eine Spalte, es ist eine Funktion, die Sie mit (optionalen) Datentabellen- und Body-Argumenten bereitstellen, und innerhalb des Bodys können Sie Werte für Spalten festlegen.
Hier ist die korrigierte Version
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
)
)
);Betreff: Festlegen von Werten in einer Spalte mit „Auswählen“Vielen Dank, Jarmo. Es hat wunderbar geklappt.