problema en bucle forhola a todos, no puedo entender por qué esta fórmula de bucle for no funciona. Simplemente crea una nueva columna si las unidades están en el tiempo y luego las convierte en Horas. También se adjuntan datos de muestra. Gracias.
ColNames = dt << get column names( string, Numeric, character, continuous, Nominal );
N Items( ColNames );
For( i = 1, i <= N Items( ColNames ), i++,
If( Ends With( ColNames[i], "(secs)" ),
New Column (Concat(ColNames[i], "_to_", "Hr"), Formula(AS Column(ColNames[i])/3600) ),
Ends With( ColNames[i], "(min)" ),
New Column (Concat(ColNames[i], "_to_", "Hr"), Formula(AS Column(ColNames[i])/60) ),)
);
Wait( 0 );
secuencias de comandosRe: Problema en bucle forEl problema es que el elemento Fórmula no analiza la fórmula presentada y luego coloca el código resultante en la fórmula.Por lo tanto, lo que se presenta al elemento de fórmula debe ser exactamente el JSL que debe ser la fórmula.A continuación se muestra una reelaboración de su jsl
Names Default To Here( 1 );
dt = Current Data Table();
ColNames = dt << get column names( string, Numeric, character, continuous, Nominal );
//N Items( ColNames );
For( i = 1, i <= N Items( ColNames ), i++,
If(
Ends With( ColNames[i], "(secs)" ),
New Column( Concat( ColNames[i], "_to_", "Hr" ),
Formula( Eval( Parse( ":\!"" || ColNames[i] || "\!"n / 3600" ) ) )
),
Ends With( ColNames[i], "(min)" ),
New Column( Concat( ColNames[i], "_to_", "Hr" ),
Formula( Eval( Parse( ":\!"" || ColNames[i] || "\!"n / 60" ) ) )
),
)
);Re: Problema en bucle forTambién puede considerar usar Cotización JSL () , que permite que el código permanezca resaltado
Names Default to Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Cols( dt ), i++,
column name = Column( dt, i ) << Get Name;
If( Ends With( column name, "(secs)" ),
Eval( Parse( Eval Insert( JSL Quote(
dt << New Column( "^column name^_to_Hr", Formula( :Name("^column name^" ) / 3600 ) )
) ) ) )
,
Ends With( column name, "(min)" ),
Eval( Parse( Eval Insert( JSL Quote(
dt << New Column( "^column name^_to_Hr", Formula( :Name("^column name^" ) / 60 ) )
) ) ) )
)
);