Opened 14 years ago
Closed 14 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 14 years ago by
comment:2 Changed 14 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 14 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.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
(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