[RESUELTO] Cambiar propiedad 'Solo añadir datos'
[RESUELTO] Cambiar propiedad 'Solo añadir datos'
Hola,
Necesito cambiar la propiedad 'Solo añadir datos' del formulario dependiendo del botón que lo llame.
Deseo utilizar el mismo formulario para editar y para añadir nuevos registros.
He conseguido posicionar el formulario en un nuevo registro (moveToInsertRow) pero no me interesa conservar el acceso a otros registros desde la barra de navegación.
Existe un desplegable para esto en las propiedades del formulario, solo necesito decidir el valor de este desplegable al abrirlo.
Saludos.
Necesito cambiar la propiedad 'Solo añadir datos' del formulario dependiendo del botón que lo llame.
Deseo utilizar el mismo formulario para editar y para añadir nuevos registros.
He conseguido posicionar el formulario en un nuevo registro (moveToInsertRow) pero no me interesa conservar el acceso a otros registros desde la barra de navegación.
Existe un desplegable para esto en las propiedades del formulario, solo necesito decidir el valor de este desplegable al abrirlo.
Saludos.
Última edición por mauricio el Lun Abr 30, 2018 6:25 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
Razón: Marcar icono de resuelto
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Sigo atascado.
Nadie puede ayudarme un poco con esto?
Gracias.
Nadie puede ayudarme un poco con esto?
Gracias.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Hola,
Lo simple mejor que lo complicado. Dos formularios, uno solo para introducir datos y otro para consultar, y que cada botón abra un formulario. Respecto a cambiar la propiedad solo introducir datos por mi parte no te puedo ayudar.
Saludos
Lo simple mejor que lo complicado. Dos formularios, uno solo para introducir datos y otro para consultar, y que cada botón abra un formulario. Respecto a cambiar la propiedad solo introducir datos por mi parte no te puedo ayudar.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: Cambiar propiedad 'Solo añadir datos'
Buenas!
Mira a ver si esto te vale:
Un saludo! 
Mira a ver si esto te vale:
Código: Seleccionar todo
Sub Datos(Event)
Form=Event.Source.Model.Parent
form.AllowInserts= "False"
Form.AllowDeletes= "False"
Form.AllowUpdates= "False"
End sub Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Gracias por vuestras respuestas.
Para RMG: Mantener las modificaciones a largo plazo en dos formularios, aparentemente gemelos, resulta mucho más complicado que en uno solo.
Para Logni: Estas propiedades son las primeras que probé, no deshabilitan los botones de navegación de la barra, no funcionan como la propiedad "Solo Añadir Datos". Yo uso los valores lógicos True/False sin comillas.
Saludos.
Para RMG: Mantener las modificaciones a largo plazo en dos formularios, aparentemente gemelos, resulta mucho más complicado que en uno solo.
Para Logni: Estas propiedades son las primeras que probé, no deshabilitan los botones de navegación de la barra, no funcionan como la propiedad "Solo Añadir Datos". Yo uso los valores lógicos True/False sin comillas.
Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Buenas!
A mi sí que me funciona según está.
Otra posibilidad es inhabilitar cada uno de los controles como te pongo en este código, que no inhabilita botones, porque cuando lo hice no me lo planteé, pero puedes añadirlos siguiendo el ejemplo:
A ver si esto te va mejor.
Otro saludo!
A mi sí que me funciona según está.
Otra posibilidad es inhabilitar cada uno de los controles como te pongo en este código, que no inhabilita botones, porque cuando lo hice no me lo planteé, pero puedes añadirlos siguiendo el ejemplo:
Código: Seleccionar todo
oDrawPage = ThisComponent.DrawPage ' Página de dibujo
For i = 0 to oDrawPage.Count - 1 ' Recorremos todas los elementos de dibujo del documento
oShape = oDrawPage.getByIndex(i) ' Elemento de dibujo a inspeccionar en este momento
If oShape.name="Marco1" Then ' Si se llama Marco1
oShape.setPropertyValue("BackColor", RGB(204,255,204)) ' Aplicamos color
End if ' Acabamos la condición
next ' Vamos al siguiente elemento de dibujo
oForm = Evento.Source ' El formulario activo
Controles = oForm.getCount()-1 ' Número total de controles del formulario
For i=0 to Controles ' Ciclo que recorre todos los controles
Control = oForm.getByIndex(i) ' Control que toca en este momento
If Control.supportsService("com.sun.star.form.component.TextField") Then ' Si el control es de texto..
'oShape.layerID=2
Control.enabled = False ' Lo deshabilitamos
End If ' Acabamos la condición
If Control.supportsService("com.sun.star.form.component.ComboBox") Then ' Si el control es un ComboBox..
Control.enabled = False ' Lo deshabilitamos
End If ' Acabamos la condición
If Control.supportsService("com.sun.star.form.component.ListBox") Then ' Si el control es un listBox
Control.enabled = False ' Lo deshabilitamos
End If ' Acabamos la condición
If Control.supportsService("com.sun.star.form.component.GridControl") Then ' Si el control es un control de tabla...
Control.enabled = False ' Lo deshabilitamos
End If ' Acabamos la condición
Next ' Pasamos al siguiente control
Otro saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Hola,
Me refería a deshabilitar algunos controles de la barra de navegación, no del formulario, sobre todo los referentes a la navegación entre registros. Esto sería una posible solución, aunque no es la idea original.
No puedo ocultar la barra porque contiene otros botones personalizados que quiero mantener activos.
Saludos.
Me refería a deshabilitar algunos controles de la barra de navegación, no del formulario, sobre todo los referentes a la navegación entre registros. Esto sería una posible solución, aunque no es la idea original.
No puedo ocultar la barra porque contiene otros botones personalizados que quiero mantener activos.
Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Puedes ocultar la barra y en su lugar pones botones de acción hechos por ti, de tal manera que solo manejas los registros con los botones que hagas tu, y la barra la ocultas.
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Gracias por la ayuda.
Sería mi última opción. Las mismas acciones que en modo edición, pero con otro tipo de botones no resulta muy 'elegante'.
Para que el usuario se sienta cómodo debería tener un aspecto similar a la barra original, es importante mantener una interfaz similar en toda la aplicación. Intentar imitar esta falsa barra de navegación puede ser complicado.
Creo que sería mejor crear una nueva barra solo para cuando abro en modo añadir, donde muchos botones fueran simplemente imágenes sin acción asignada para simular que están deshabilitados.
En cualquier caso, me parece que es complicarse la vida inútilmente, yo solo necesito cambiar un True por False desde código al cargar el form, en lugar del modo diseño.
Saludos.
Sería mi última opción. Las mismas acciones que en modo edición, pero con otro tipo de botones no resulta muy 'elegante'.
Para que el usuario se sienta cómodo debería tener un aspecto similar a la barra original, es importante mantener una interfaz similar en toda la aplicación. Intentar imitar esta falsa barra de navegación puede ser complicado.
Creo que sería mejor crear una nueva barra solo para cuando abro en modo añadir, donde muchos botones fueran simplemente imágenes sin acción asignada para simular que están deshabilitados.
En cualquier caso, me parece que es complicarse la vida inútilmente, yo solo necesito cambiar un True por False desde código al cargar el form, en lugar del modo diseño.
Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
La opción más razonable es la de RMG, pero lo que yo sugería es que el formulario no tenga barra de ningún tipo, y que hagas botones para las opciones que tiene la barra.
Después podrás dejar inutilizado cada botón que quieras con la macro (por ejemplo según el nombre), y dejas el botón para inactivar todo lo demás como activo. Luego necesitarías otra macro igual para reactivarlos. El aspecto sería el mismo en la primera opción que en la segunda, salvo que todo queda como difuminado.
Después podrás dejar inutilizado cada botón que quieras con la macro (por ejemplo según el nombre), y dejas el botón para inactivar todo lo demás como activo. Luego necesitarías otra macro igual para reactivarlos. El aspecto sería el mismo en la primera opción que en la segunda, salvo que todo queda como difuminado.
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Encontré esto:
El hilo es https://forum.openoffice.org/es/forum/v ... =33&t=3590
El autor es Cascabel, así que ofrece todas las garantías posibles.
Otro saludo!
Código: Seleccionar todo
Sub sDesactiva(Event As Object)
Dim oForm As Object
Dim vRow As Integer
oForm=Event.Source.Model.Parent
If oForm.IsModified And Not oForm.IsNew Then oForm.CancelRowUpdates
oForm.AllowDeletes=Not(oForm.AllowDeletes)
oForm.AllowInserts=oForm.AllowDeletes
oForm.AllowUpdates=oForm.AllowDeletes
vRow=oForm.Row
oForm.Reload
oForm.Absolute(vRow)
End SubEl autor es Cascabel, así que ofrece todas las garantías posibles.
Otro saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Gracias por las respuestas.
Parece que no es lo que necesito, este código al parecer permite o deniega las actualizaciones.
Lo que quiero es abrir en modo añadir registro o en modo editar, me da igual hacerlo con la orden de abrir el formulario o luego una vez abierto cambiarle el modo de trabajo.
Saludos.
Parece que no es lo que necesito, este código al parecer permite o deniega las actualizaciones.
Lo que quiero es abrir en modo añadir registro o en modo editar, me da igual hacerlo con la orden de abrir el formulario o luego una vez abierto cambiarle el modo de trabajo.
Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: Cambiar propiedad 'Solo añadir datos'
Lo he solucionado con algo parecido a esto:
Gracias a todos por vuestras sugerencias.
Código: Seleccionar todo
Sub ToggleAddDataOnly(oEv as object)
Dim oForm as object
oForm = oEv.Source.Model.Parent
If oForm.IgnoreResult = TRUE then
oForm.setPropertyValue("IgnoreResult", FALSE)
else
oForm.setPropertyValue("IgnoreResult", TRUE) ' modo solo añadir
end if
oForm.reload
oForm.moveToInsertRow
End Sublibreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Re: [RESUELTO] Cambiar propiedad 'Solo añadir datos'
Gracias por compartirlo.
Saludos
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)