Wie "Eval unterdrücken" ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo
versuchen, eine Formel zu setzen, die einfach zählt (inkrementiert), basierend auf dem Vorkommen derselben Asset_num in der Zeit.
Ich mag es, wenn diese Formel einmal berechnet wird und dann entweder eval unterdrückt oder sogar Formeln gelöscht werden.
Jede Hilfe wird geschätzt.
unten habe ich versucht, eval(false) zu unterdrücken, um die Formel berechnen zu lassen, und dann suppress eval(true) um es zu unterdrücken...
Es hat nicht funktioniert.
Danke
::MyCntDwn2 = Function( {dt}, {Default Local},
col=New Column("Countdown",Numeric,"Continuous",Format("Best", 12 ));
col<
Wenn (Zeile() > 1,
If( :asset_num == Lag( :asset_num, 1 ),
Verzögerung( : Countdown, 1 ) + 1,
1
),
1
)
);
col << unterdrücke eval(false);
col << unterdrücke eval(true);
);
Betreff: Wie "Eval unterdrücken" ?Deine beiden Formeln haben funktioniert. Vielen Dank ...
Schätzen Sie die Hilfe.
Betreff: Wie "Eval unterdrücken" ?Hallo Altug,
In solchen Fällen lösche ich normalerweise einfach die Formel danach:
dt = Aktuelle Datentabelle ();
dt << neue Spalte("Countdown",
Formel((Row() - Col Minimum( Row(), :asset_num )) + 1)
);
Spalte(dt, "Countdown") << Formel löschen;
Betreff: Wie "Eval unterdrücken" ?Ich denke, die <
Verwenden Sie <
...
Kol << eval-Formel ;
Kol << Auswertung unterdrücken ( Stimmt ) ;
...
Aber, wenn Sie nicht wirklich eine Formel brauchen, können Sie die Werte einfach einmal berechnen:
:: MyCntDwn2 = Funktion ({ dt } ,
Kol = dt << Neue Spalte ( "Countdown" , Numerisch , "kontinuierlich" , Format ( "Am besten" , 12 )) ;
Für jede Reihe (
Kol [] = Wenn ( Zeile () > 1 ,
Wenn ( : Asset_num [] == Verzögerung ( : Asset_num [] , 1 ) ,
Verzögerung ( Kol [] , 1 ) + 1 ,
1
) ,
1
)
) ;
) ;