Necesito ayuda con una duda en openoffice base

Discute sobre las herramientas de la base de datos
Responder
alfon_ts
Mensajes: 29
Registrado: Lun Nov 09, 2009 10:27 am

Necesito ayuda con una duda en openoffice base

Mensaje por alfon_ts »

Buenas, es mi primer mensaje aqui. Tengo varias dudas a ver si me la podeis solucionar.

Estoy haciendo una base de datos para un almacenaje.

1ª.- Tengo creado un formulario principal (Form_princimal) y quiero que al pulsar un boton de ese formulario me ejecute otro formulario (Form_entrada), como indico eso en las propiedades del boton.

2ª.- Al abrir ese formulario de entrada, me deben salir todos los campos vacios para poder insertar el nuevo registro, pero no se porque siempre me aparece el primer dato de la tabla, ¿como puedo hacer para que me aparezca directamente vacio?

3ª.- Cuando introduzco los datos en el formulario de entrada quiero que al pulsar el boton guardar ademas de guardarme los datos en la tabla que lo hace correctamente me gustaria que se grabase la palabra "almacenada" en la variable estado de esa misma tabla pero que es un dato que no quiero que aparezca en el formulario.

Muchas gracias de antemano.

Saludos.
OpenOffice 2.0
QuazzieEvil
Mensajes: 99
Registrado: Sab Dic 13, 2008 6:45 pm

Re: Necesito ayuda con una duda en openoffice base

Mensaje por QuazzieEvil »

1) Para enlasar una macro a un evento de dun elemento de formulario: abre el dialogo de propiedades del elemento (como un botón), leugo abre la pestaña 'Eventos'. Junto al evento que quieres, oprime en el botón con tres puntos [...] y selecciona la macro por medio del asistente.

2) Para abrir un formulario por medio de otro: enlasa esta macro a un botón.

Código: Seleccionar todo

Sub abrirFormulario(Event As Object)
On Error Goto HandleError 
	Dim FormDocs As Object 
	Dim DBDoc As Object 
	Dim DataSource As Object 
	Dim Conn As Object 
	Dim Args(1) As New com.sun.star.beans.PropertyValue 
	Dim FormName As String 
	Dim FormDoc As Object 
	Dim UserName As String
	Dim Password As String
   
	UserName="" : Password=""
	DBDoc=Event.Source.Model.Parent.Parent.Parent.Parent

	DataSource=DBDoc.DataSource
	Conn=DataSource.getConnection(UserName,Password)
	
	FormName="Form1" 
	
	FormDocs=DBDoc.FormDocuments 
	Args(0).Name="ActiveConnection" : Args(0).Value=Conn 
	If FormDocs.hasByName(FormName) Then 
		FormDoc=FormDocs.loadComponentFromURL(FormName,"_self",0,Args() ) 
                Form=FormDoc.DrawPage.Forms.getByindex(0) 'obtener el primer formulario
                Form.load() ' carga el formulario
                Form.moveToInsertRow() ' <=======mueve el puntero de registro a un registro nuevo
		FormDoc.CurrentController.Frame.ComponentWindow.setFocus()
	Else
		MsgBox "No form named: " & FormName
	End If 
HandleError: 
	If Err<>0 Then 
		MsgBox "An error occured while loading the form [ " & FormName & " ]"
		Exit Sub 
	End If 
End Sub
Para modificar una columna al modificar el registro: En lasa la siguente macro el evento 'Before Record Action' del formulario

Código: Seleccionar todo

Sub Form_BeforeRecordAction(Event As Objet)
	Dim Form As Object
	
	If (Event.Action<>2 or Event.Source.ImplementationName<>"com.sun.star.comp.forms.ODatabaseForm") Then exit Sub
	
	Form=Event.Source 
	Form.Columns.getByName("estado").updateString("almacenada")
End Sub
Responder