#430 closed enhancement (fixed)
Actualizar (o añadir) un DataSet de un modelo
Reported by: | atorre | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | Release 0.6 |
Component: | Edition | Keywords: | Model, DataSet, actualizar |
Cc: |
Description (last modified by )
Hola MMS,
debería existir una opción de actualizar/sincronizar un DataSet de un modelo a partir de una actualización del DataSet o de una nueva versión.
Actualmente, si ya se se ha hecho un proceso de construcción del DataSet y, a partir de éste, se ha creado el modelo, cuando se quiere añadir una nueva variable, hay que generar el DataSet de nuevo con la nueva variable (obvio) y crear de nuevo el modelo a partir de éste.
Change History (6)
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
(In [2097]) Como una alternativa a la resolución del tique #430 se introduce un método ::SetData
para las @Variable
que permite fijar la caché de los datos de manera alternativa, en lugar de reevaluar la expresión.
El método puede facilitar cierta actualización del dataset, actualizando cada variable con llamadas del tipo:
// Se localiza la variable relativa a 'nuevaVariable' y se le cambian los datos por la de ésta Real dataSet::GetVariable(nuevaVariable::GetIdentifier(?))::SetData(nuevaVariable::GetData(?));
Refs #430
comment:3 Changed 14 years ago by
No sé cuántos métodos saldrán exactamente de este ticket pero uno podría ser el de actualizar los datos de las variables a partir de un nuevo DataSet. Sigue una función de usuario que hace eso:
NameBlock MMS_Est_ReplaceDataSet_VxV(NameBlock est, NameBlock dsNew) { NameBlock model = est::GetModel(1); NameBlock ds = model::GetDataSet(1); Set ds_Stat = DataSet_VarStat(ds); Set EvalSet(dsNew::GetVariables(0), Real(NameBlock var) { Real ds::GetVariable(var::GetIdentifier(?))::SetData(var::GetData(?)); Real 0 }); Set ds_Stat_Rep = DataSet_VarStat(ds); Set ds_Stats = [[ ds_Stat, ds_Stat_Rep ]]; est };
comment:4 Changed 14 years ago by
Description: | modified (diff) |
---|
Se han revisado los mecanismos de enlaces entre los objetos de MMS (#556) de modo que ahora es posible sustituir las variables del dataset y comprometer la estabilidad de un modelo.
Para otros mecanismos de edición, como sustituir un objeto por otro, fusionar dos objetos, etc. Véanse los tiques: #556 y #323
comment:5 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [2356]) La sustitución de las variables puede hacerse borrándolas y añadiendo la nuevas que las sustituirán o mediante el método ReplaceVariable
del dataset.
La sustitución del dataset completo se puede hacer con el método SetDataSet
del modelo. Si se desea sustituirlo por varios datasets úsese una primera vez el método SetDataSet
con uno de los nuevos datasets y úsese JoinDataSet
para el resto.
Por ejemplo con el ejemplo Mat.Veh podría hacerse algo como:
Real model::SetDataSet(DS.O); Real model::JoinDataSet(DS.I);
Closes #430
comment:6 Changed 14 years ago by
Component: | Models → Edition |
---|
Por si no está contemplado en lo anterior: estaría bien poder eliminar un DataSet o directamente poder Reemplazar.