Opened 13 years ago
Closed 13 years ago
#884 closed enhancement (fixed)
GetExpression_Recur
Reported by: | atorre | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Release 0.6 |
Component: | Variables | Keywords: | expresión, dependencias |
Cc: | prcoco.bbvasp@… |
Description
Hola MMS,
echo en falta una función que devuelva la expresión de una variable eliminando las "dependencias", esto es, devolviendo la variable dependiente o su expresión en vez de los "%n" que representan a las variables dependientes.
En mi caso, necesito la expresión de la variable en términos de las variables originales (sin dependencias). Sigue una función que lo hace:
Text GetExpression_Recur(NameBlock var) { Real hasDep = var::HasDependences(?); Text expr = var::GetExpression(?); If(Not(hasDep), var::GetName(?), { Set dep = var::GetDependences(?); Set repTab = For(1, Card(dep), Set(Real r) { NameBlock varDep = dep[r]; [[ "%"+ IntText(r), GetExpression_Recur(varDep) ]] }); ReplaceTable(expr, repTab) }) };
Change History (3)
comment:1 Changed 13 years ago by
comment:2 Changed 13 years ago by
Ejemplo:
... NameBlock var = forecast::GetModel(?)::GetDataSet(?)::GetVariable("AdvTVComp5_Coke"); Real WriteLn(var::GetExpression_Recursive(101)); Real WritelLn(""); Real WriteLn(var::GetExpression_Recursive(102)); //Salida "1 - 0.42^(DeltaTransform(((TV_Spend_Pepsi+TV_Spend_PepsiTwist)/1343),0.75)/100)" "1 - 0.42^(DeltaTransform(((GetTVSpend([[ Text _.country = "Pol"; Text _.trademark = "PepsiReg" ]])+GetTVSpend([[ Text _.country = "Pol"; Text _.trademark = "PepsiTwist" ]]))/1343),0.75)/100)"
comment:3 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Se introdujo también este método (GetExpression_Recursive
) en la rama principal de MMS. (Véase [2945])
Note: See
TracTickets for help on using
tickets.
(In [2928]) A la clase MMS::@Variable se le agrega el método: GetExpression_Recursive(Real mode)
Si mode es 101: la extensión llega hasta los nombres de las variables independientes
Si mode es 102: se da un paso más, y se llega hasta la expresión de las variables independientes
El modo por defecto es el 101.
Refs #884