Te cuento, tengo un cuadro cargado con los parrafo de un contrato. La idea es seleccionar cada parrafo y modificarlo. Esta modificacion seria solo en memoria.
Los datos del cuadro lo utilizo como una plantilla, recien cuando oprimo el botón “Imprimir” voy a guardar los parrafos en una tabla que es distinta de la cual se cargo el cuadro.
El problema que tengo es que una vez que se modifica un parrafo no se actualiza el cuadro.
Intente usar set_cursor pero no se puede porque el cuadro se carga de una tabla (“tipocontratomodelosclausulas”) y se debe guardar en otra(“contratoclausulas”)y estas no tiene relacion.
Intente identificar la fila modificada con el metodo conf_evt__clausulas__seleccion($evento, $fila) y solo obtengo que a medida que se carga el cuadro, en la columna del boton “seleccion” añade el nro. de la fila.
Como puedo actualizar el cuadro?
Te mando un par de imagenes… una es el esquema de la operacion, que por cierto podras ver que estoy experimentado una operacion “Imprimir” como parte de otra operacion, la mas general “contratos”. No se si es factible o estoy fuera del modelo. El problema que planteo aca es en la operacion “Imprimir”.
La segunda imagen directamente es la pantalla sobre la cual tengo dramas.
El tema es el siguiente, vos estas cargando el cuadro desde un datos_tabla y por tanto solo vas a ver las modificaciones que se hagan a dicho datos_tabla.
Por otro lado, si no existe relacion entre “tipocontratomodelosclausulas” y “contratoclausulas”, entonces no deberian formar parte de un datos_relacion.
La solución es simple dentro de todo, lo que podes hacer es lo siguiente:
En el conf__cuadro vas a tener un condicional que distinga si la tabla “contratoclausulas” tiene filas o no.
a) En caso de no tener filas, recuperas mediante una SQL desde la tabla “tipocontratomodelosclausulas” el contenido de la misma, para que actue como inicializadora.
Ese contenido lo agregas a la tabla “contratoclausulas” mediante el metodo nueva_fila.
Luego cargas el cuadro siempre desde la tabla “contratoclausulas” e impactas en la misma cuando realizas alguna modificacion, queda como cualquier ABM comun.
Cuando toques el boton ‘Imprimir’ sincronizas y listo (fijate que estoy asumiendo que “tipocontratomodelosclausulas” ya no es un datos_tabla perteneciente a la relacion).
En el conf__cuadro vas a tener un condicional que distinga si la tabla “contratoclausulas” tiene filas o no.
a) En caso de no tener filas, recuperas mediante una SQL desde la tabla “tipocontratomodelosclausulas” el
contenido de la misma, para que actue como inicializadora. Ese contenido lo agregas a la tabla
“contratoclausulas” mediante el metodo nueva_fila.
Ahora surge otro problema que es cuando selecciono una fila del cuadro. El conf del formulario lo tengo asi:
if ($this->get_relacion_impresion()->esta_cargada()) {
$form->set_datos($this->get_relacion_impresion()->tabla('contratoclausula')->get());
}
Aca surge el problema, pues con el “cargar” busca en la base de dato un registro que aun no fue almacenado y que solo figura en memoria.
Como cargo el registro seleccionado en el formulario??
Lo que podrias hacer es tildar el checkbox Clave - datos_tabla en el cuadro, el cual habilita una interaccion entre cuadro y datos_tabla.
De esta forma, el cuadro utiliza punteros internos del datos_tabla para identificar las filas y de esa manera no tendrias problemas cuando aun no estan creadas.