Seleccionar una ficha concreta en un Formulario Abierto


([N1] domingo.rey) #1

Buenos días,

 

Actualmente estoy haciendo un programa, y me veo con la necesidad de que un formulario no cierre al guardar. He optado por la solución comentada en los foros de cambiar el botón de guardar para que llame a un evento que copie los valores del formulario en variables, cree una ficha en memoria con dichos valores, y la de de alta.

 

La ficha se da correctamente de alta y el formulario sigue abierto con los mismos datos, el problema es que realmente no tengo abierta la ficha que acabo de dar de alta, y las rejillas asociadas al formulario, que permiten añadir datos en un histórico no están guardando contra la ficha que creé, sino que están creando un nuevo registro.

 

He probado a obtener el Código del registro que genero en memoria, y modificar el campo código de la ficha, pero aún así sigue generando un nuevo registro al añadir un nuevo registro a la Rejilla.

 

Lo que realmente solucionaría el problema sería si hay algún método para indicarle a un formulario abierto que debe obtener los datos de una ficha concreta.

 

Espero haberme expresado correctamente y muchas gracias por adelantado,

 

Un saludo.

 


([N4] velavisual) #2

@domingo

 

Prueba con un tubo de ficha lanzado al crearse el formulario.

 

saludos

Antonio Vela

http://www.velavisual.com


([N4] eic) #3

Hola.

Quizá tengas que jugar con tablas en memoria: una tabla en memoria para la información del formulario, otras tablas en memoria para los históricos, etc., de manera que cada vez que creas un registro en esa tabla en memoria se cree el correspondiente registro en las tablas "de verdad". Realmente, es una situación un poco peculiar. 

Saludos,

Fran Varona

 


([N1] domingo.rey) #4

Buenos días,

 

Ante todo gracias por tomaros la molestia de responder. Velavisual, lo que comentas del tubo de ficha no lo había probado, pero sin embargo sí había probado a utilizar en el procedimiento un Pedir Formulario, que tiene el mismo resultado. Como comentaba el registro se da correctamente de alta, y si abro un nuevo formulario los datos son perfectamente correctos, pero lo que trato de evitar es justo eso, abrir un nuevo formulario, mi intención es seguir trabajando con el mismo.

 

Eic.eurosistemas, también había pensado en el tema de utilizar variables globales en memoria para guardar manualmente pero me parece algo bastante sucio, sobretodo teniendo en cuenta que es únicamente para la primera ejecución, ya que cuando abro un registro cualquiera con el formulario todo funciona correctamente, puesto que ya tengo el Código asociado a la ficha.

 

Por si os sirve de algo os comentaré cual es el objetivo de esto. Tengo una tabla "Documentos" que se relaciona con otra tabla "Versiones", el tema nace de que todo documento debe tener al menos una versión. Los documentos ademas están relacionados con otras tablas distintas, lo que al final me deja un Formulario con una serie de datos relativos al documento y una serie rejillas que se relacionan con el documento correspondientes a las versiones y varios maestros más relacionados.

 

Si entendéis el funcionamiento que he explicado veréis que si un usuario da un alta en una de las rejillas Velneo entenderá que debe guardar el contenido de la ficha de Documentos y la relación con esa rejilla, desde este momento tengo un Código de Documento asociado a la ficha y todo el problema está solucionado. Aquí se acabaría mi problema.

 

El problema viene cuando el usuario no guarda ningún dato relacionado sino que guarda el documento en si. Como dije el principio mi objetivo es tener un botón de Guardar Sin Salir, por lo tanto debo guardar el registro de la Ficha actual como una ficha en memoria, en el alta de la ficha recupero el Código del documento y así puedo dar de alta también una primera versión relacionada con el documento. Todo esto ya lo tengo implementado, y hasta este punto tengo un registro en la base de datos con toda la información que necesito, además conozco cual es su código (Clave única). El problema viene en que mi Ficha no está relacionada con ese registro y por lo tanto si doy de alta algún registro relacionado desde otra rejilla de la Ficha me crea una nueva copia del documento.

 

Espero haberme expresado correctamente y que comprendáis cual es mi problema.

 

Gracias por la atención.


([N3] blavan) #5

Tienes experiencia en Velneo ó estás empezando?, te lo pregunto porque hace muchos años cuando empezaba recuerdo que también estaba metido en una lógica como la que presentas, muchas varables et..

Perdona pero voy a entrar en el tema

Si un documento tiene al menos una Version ...., significa que Versiones es plural de documentos no maestro ¿lo tienes así?

Cuando dices que los Documentos está relacionados con otras tablas distintas no capto bien si estás hablando de maestros de Documentos ó Plurales

Parece que son maestros pero entonces para que muestras sus rejillas en el formulario, los maestros se manejan con el Localizador.

El problema viene cuando un usuario da de alta un documento sin versión asociada..... en la V6 se solucionaba muy bien con un proceso posterior al alta en el boton Aceptar

En la V7 esto lo echo de menos , con un evento... pero antes dime va correcta mi interpretación?

Un principio básico cuando se trabaja con Velneo si un proceso de cualquier tipo se complica es que está mal planteado

Como comenté al principio hacia lineas de código a montón y después con el planteamiento de velneo correcto sobraba todo.

 

 

 

 

 

 


([N1] domingo.rey) #6

Buenas tardes Benito,

 

Ante todo gracias por tomarte la molestia de contestar, te diré que en Velneo 7 no tengo experiencia, acabo de comenzar, pero a nivel de bases de datos creo haber hecho todo correctamente. Creo que la confusión viene por la nomenclatura maestro, yo me refería a tablas de tipo maestro, pero tienes razón, me expresé incorrectamente.

 

Volviendo al tema, tanto los Documentos como las Versiones son tablas maestras, esto tiene sentido porque un documento puede tener varias versiones y a su vez cada versión puede tener varias validaciones de usuarios, por lo que en este caso tenemos dos maestros (Tablas Maestras) y un histórico en este caso de la tabla versiones.

 

Como bien comentabas si existiera la posibilidad en Velneo 7 de ejecutar un evento tras el guardado, o si simplemente hubiese implementado un Guardar Sin Salir todo estaría solucionado, pero dado que esto no está disponible creo que no me va a quedar más remedio que complicar las cosas...


([N3] blavan) #7

Voy a seguirte porque aún no veo claro tu planteamiento en cuanto a filosofía Velneo

Tabla Documentos=Maestro correcto, limpia sin apuntar a ninguna version ¿la tienes?

Tabla Versiones=Maestro correcto.

Tabla Validaciones=Maestro  ¿la tienes?

Tabla historico 2º nivel de Versiones y Validaciones  la tienes?

Un documento puede tener varias Versiones Validadas entonces:

TABLA DOCUMENTOS VERSIONES  la tienes?

ALTA DE DOCUMENTOS VERSIONES

Selecciono Documento, si no existe lo doy de alta

Selecciono Versión validada, si no existe la doy de alta, logicamente esta tabla debe estar previamente cargada en configuracion.. ó como quieras

OTRA ALTA CON EL MISMO DOCUMENTO

En la alta anterior me quedo con el codigo del documento anterior y ya lo cargo en la nueva alta para evitar su seleccion

Bueno, es por seguirte y un poco de lo que deduzco de tu planteamiento