Définition des valeurs dans une colonne avec ChoisirJe rencontre un problème simple, j'en suis sûr, avec la définition de valeurs dans une colonne à l'aide de la fonction Choisir. Vous trouverez ci-dessous un script de test accompagné d'un tableau indiquant le résultat souhaité.
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
)
)
);
Notez que lorsque vous exécutez le script, la colonne Minute agrégée est vide. J'ai essayé de définir des valeurs et de définir pour chaque ligne, ainsi qu'une combinaison des deux, mais je n'arrive pas à le faire fonctionner.
Comme toujours, toute aide est grandement appréciée.
Merci.
Automatisation et scriptsmacOSRe: Définition des valeurs dans une colonne avec ChooseJe peux le faire fonctionner comme une formule de colonne si je définis une variable locale. Mais je ne peux alors pas utiliser le résultat de ma zone de liste déroulante.
Voici ce code. Il y a évidemment beaucoup plus à apprendre sur JSL. Il est très facile de générer automatiquement du code. Mais souvent, lorsque j'essaie de le personnaliser, il se bloque et je n'en sais pas encore assez pour le réparer.
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
)
)
)
)
);Re: Définition des valeurs dans une colonne avec ChooseVous utilisez For Each Row de manière incorrecte. Vous ne l'envoyez pas à une colonne, c'est une fonction que vous fournissez avec une table de données (facultative) et un argument body et dans body, vous pouvez définir des valeurs pour les colonnes.
Voici la version corrigée
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: Définition des valeurs dans une colonne avec ChooseMerci beaucoup, Jarmo. Ça a marché à merveille.