Ausgabe in for-SchleifeHallo zusammen, ich kann nicht herausfinden, warum diese for-Schleife-Formel nicht funktioniert. Es wird einfach eine neue Spalte erstellt, wenn Einheiten in der Zeit sind, und sie dann in Stunden umgewandelt. Beispieldaten sind auch beigefügt. Danke.
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 );
SkripterstellungBetreff: Ausgabe in for-SchleifeDas Problem besteht darin, dass das Formula-Element die dargestellte Formel nicht analysiert und dann den resultierenden Code in die Formel einfügt.Daher muss das, was dem Formelelement präsentiert wird, genau die JSL sein, die die Formel sein muss.Unten ist eine Überarbeitung Ihres 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" ) ) )
),
)
);Betreff: Ausgabe in for-SchleifeSie könnten auch die Verwendung in Betracht ziehen JSL-Zitat () , wodurch der Code hervorgehoben bleiben kann
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 ) )
) ) ) )
)
);