Enlace a maestro se cambia en edición


([N1] Giuseppe::Komenco) #1

Me está pasando algo bastante curioso, que entiendo debe ser un bug y bastante molesto por cierto.
.
Tengo un formulario de facturas donde está la entidad, las condiciones de pago, etc...
A nivel de datos, los campos de forma de pago y condición de pago, están con contenido inicial igual a los seleccionados en la entidad. Con una nueva factura, estos campos cogen los valores correctos.
.
Pues bien cuando edito una factura ya grabada correctamente (con los campos mencionados con valores distintos a los por defecto), cuando el campo entidad pierde el foco, también me cambia los valores de estos campos a sus contenido iniciales.
.
Si cambiara la entidad, lo entendería, pero no estoy cambiando nada.
.
Ejemplo:
La entidad Fulanito tiene como forma de pago por defecto "Efectivo", y como condición de pago, "Contado".
En un nuevo pedido que nos ha hecho, al hacerle la factura, al ser muy grande, nos ha pedido, que esa factura en particular, la quiere pagar por trasferencia, y a 30/60/90.
.
Al hacer la factura, y elegir la entidad Fulanito, nos coge los valores correctos por defecto de Efectivo y Contado como formas de pago por defecto, pero nosotros, los cambiamos, a Transferencia y 30/60/90 como nos ha pedido. Guardamos, y todos felices y contentos.
.
En administración, se dan cuenta que se han olvidado meter un producto. Abren la factura para editarla (el formulario tiene foco directo en el campo entidad), y al darle para añadir una nueva linea (y por lo tanto, el campo de entidad pierde el foco), los campos de Forma de pago y Condiciones de Pago, se vuelven a poner en los valores establecidos de sus contenidos iniciales.
.
No tengo ningún evento conectado a ninguna señal ni nada al perder el foco. Ésto, lo está haciendo Velneo él solito.


([N4] innovadb) #2

Hola Giuseppe

Algo tienes mal, por que a nosotros no nos da ese problema en ningún formulario.

Un saludo


([N4] Infortic) #3

Hola Giuseppe.

Creo que a mi me pasaba lo mismo.

Revisa este hilo a ver si lo puedes solucionar como lo hice yo:

http://velneo.es/foros/topic/contenido-inicial#post-16248

Un saludo.


([N1] Giuseppe::Komenco) #4

@innovadb
.
El tema es que, en el año que llevo "trabajando" con Velneo, tampoco me suena que me pasar algo similar.
.
@info.tic-software
.
El control es una edición alfanumérica que apunta a #ENT.NAME no a ENT ni al ID, así que, por ahí no irían los tiros. Lo que sí me he dado cuenta, es que sí tengo un evento al perder el foco del control, que comprueba si la entidad dispone de avisos para mostrar un mensaje. Igualmente, no veo que tenga por qué afectar al resto de controles. Son dos simples enlaces a maestro, con contenido inicial programado.
.
No sé, seguiré indagando. De momento, me ha tocado deshabilitar el control de la entidad en modificación, algo, que no me gusta para nada (y si se ha equivocado al introducir el cliente? con lo coñazo que es "cancelar la transacción" de la ficha)

[attachment=20832,1649] [attachment=20832,1650]


([N1] Giuseppe::Komenco) #5

Confirmado, es el evento mostrado en mi anterior mensaje lanzado al perder el foco. Si lo lanzo en el pierde foco de otro control, pasa lo mismo. Si lanzo el evento desde un botón, o desde el inicializado del formulario funciona, pero yo quiero que sea algo automático, al cambio de entidad obviamente.

Alguna idea?

Simplemente quiero, que al seleccionar una entidad, si tiene un campo a TRUE, lance un mensaje (con el mensaje introducido en el campo MENSAJE_AVISO)


([N2] gegeo) #6

@Giuseppe,

¿Y utilizando la instruccion Ha cambiado el campo en el evento al ganar foco?
Que te compruebe, si ha cambiado, y si lo ha hecho, que revise si el campo que te interesa es TRUE, si es si, mostrar MENSAJE

No se, se me ha ocurrido a estas horas, asi que... :(

Saludos ;)


([N1] Giuseppe::Komenco) #7

@gegeo

Pero me encuentro en las mismas. He modificado el evento para que sólo compruebe el valor si ha cambiado el campo, y además, que me lance un mensaje de si ha cambiado o no. AL perder el foco, me salta el mensaje con "0", no me muestra el mensaje como es de esperar, pero los campos COND_PAGO y FORMAS_PAGO vuelven a sus valores de "Contenido Inicial"


([N2] gegeo) #8

Una duda que me surge...

Los campos COND_PAGO y FORMAS_PAGO que ves en el form, ¿son de la tabla FACTURA o de la tabla ENTIDADES?


([N1] Giuseppe::Komenco) #9

En el formulario muestro los campos de la tabla de la factura en cuestión.
Si funcionar funcionan correctamente, se graban y todo ok, salvo el "problemilla" que se cambian solos.

[attachment=20845,1651]


([N2] gegeo) #10

Ok son de la tabla factura.

Pero, ¿No deberia ser un campo sin enlace, pero que en sus propiedades, en el contenido inicial, SI contenga el enlace?

De la forma que lo tienes, esta enlazado el campo, no solo el contenido inicial, entonces siempre te va a coger el campo de la entidad que hayas seleccionado.

Estas eligiendo el campo de la entidad, no el contenido inicial del campo de la factura.

¿no?

O estoy demasiado despistao... a estas horas... :(


([N2] gegeo) #11

Vamos, lo que te he explicado con mejores palabras:

Ese campo quitale el enlace de las propiedades, pon el mismo tipo de dato que el campo COND_PAGO que el de la tabla ENT, y el contenido inicial, deja el que tienes #ENT.COND_PAGO

Asi te pondra en el alta como contenido inicial la COND_PAGO de la entidad, y si lo modificas, grabara en el campo el dato que hayas grabado.


([N1] Giuseppe::Komenco) #12

@gegeo
Yo creo que vas despistao (o yo, quien sabe :P)
Son enlaces, pero a sus tablas maestras no a entidades. Si en la factura se quiere cambiar la condición de pago, debe ser por una que exista y sea válida (dentro de la subindexación). El contenido inicial, como su nombre indica, debería tomar el dato especificado en un alta, pero no en una modificación.


([N1] Giuseppe::Komenco) #13

@gegeo
Además, repito, si quito el evento funciona de lujo, es el evento de marras el que lo fastidia


([N1] Synetic) #14

La tabla es submaestra? Estoy experimentando algunos problemas con tablas submaestras con campos de datos iniciales obtenidos de la tabla maestra. Lo tengo en soporte pendiente de respuesta.


([N1] Pepeto) #15

@Giussepe

Porque no quitas el evento y el mensaje y en su lugar, muestras el mensaje en un Edit del formulario con condicion de visibilidad.

De este modo no necesitaras el evento a la perdida del foco.

un saludo
José Luis
http://www.ascsl.com


([N1] Giuseppe::Komenco) #16

@Pepeto

No se me había ocurrido. Luego lo pruebo a ver.

P.D.: Cuando en 2013 termine vCervezas, te las paso todas que las tengo anotadas aquí en papel :)

@Fernando

No trabajo con submaestras


([N1] Giuseppe::Komenco) #17

@Pepeto

Lo he cambiado a según tu consejo, y obviamente, ahora no falla, porque no está el evento (el evento si lo lanzaba en un botón tampoco estaba el problema), pero, curiosamente, me acabo de dar cuenta, que si cambio el valor del combo de la forma de pago (enlace a estática) también afecta, y me cambia el valor de la condición de pago (a la establecida por defecto en la entidad).

Raro raro raro.

P.D.: Esta noche me hago un proceso que regenere area de datos e índices de todas las tablas a ver.... y mañana lo reporto a soporte a ver qué me dicen.


([N1] Giuseppe::Komenco) #18

He vuelto a tener problemas con este tema. Quizás, nunca dejé de tenerlos pero no me dí cuenta.
.
En mi último post, conseguí solucionar el problema al perder el foco del control, pero hace unos días, me dí cuenta, que al abrir una factura, los campos de COndición y forma de pago, mostraban automáticamente los valores por defecto establecidos como contenidos iniciales.
.
La activación de estos contenidos iniciales, se estaba realizando , ya que en el on_init del formulario tenía definido un "Modificar Campo" de un campo de la tabla (nada que ver con la entidad, nada que ver con las condiciones de pago etc..).
.
El parecido con el problema de este hilo, es, que los controles que usan estos campos, se encuentran dentro de un separador de formularios, y no he probado aún a eliminar el separador y crearlo de nuevo.
.
Lo he podido solucionar encapsulando el método de "modificar campo" dentro de un IF comprobando si es un registro nuevo, y está arreglado, pero me parece un bug gravísimo. Supuestamente, un contenido inicial, sólo debería tenerse en cuenta, en una nueva alta, no en una modificación, y muchísimo menos aún, si encima, esos campos, ya se encuentran con valores registrados en la tabla.


([N3] blavan) #19

Hola Giuseppe.
Lo que expones es grave, pero algo escondido te debe dar la lata porque yo un poco asustado revisé todo lo mio y no encuentro ese problema, no soy capaz de generar ese problema
Gracias por el aviso


([N4] master) #20

Hola,

Tengo una estructura prácticamente idéntica a la que comentas, he intentando reproducir el problema y no lo he conseguido.

Pienso que debes estar modificando de alguna forma el campo #ENT

1. El campo Entidad tiene como contenido inicial otro campo #X, si modificas el campo #X fuerzas que se dispare el contenido inicial de la entidad y a continuación el resto de campos.

2. Modificas el campo #ENT con el mismo valor que ya tiene, aunque el valor del campo no cambie se disparan los contenidos iniciales.

Un saludo,
Joaquín.