Hola a todos,
Estoy trabajando en un proyecto en el cual logré que mi jefe migrara a openoffice, yo soy nuevo en el tema y estoy trabajando con base para hacer un aplicativo de inventarios en Base, el problema es el siguiente:
He creado un formulario para introducir datos a una tabla, dentro de ese formulario hay un par txtfield y otro par de txtlist, lo que necesito hacer es que a partir de una macro poder tomar los valores que se introduzcan en ese textfiel o txlist y poderlos manipular desde la macro, para luego igualmente volverlos a colocar en otro textfiel o txtlist. ya que para introducir datos a la tabla estos dependen de la elección del usuario, entonces necesito tomar esa elección y manipularla
Agradezco su pronta ayuda
Enlazar un txtfield con una macro
-
- Mensajes: 13
- Registrado: Vie Dic 12, 2008 3:20 pm
-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: Enlazar un txtfield con una macro
aqui (http://www.geocities.com/rbenitez22/OOo/index.html) tengo uno documentos con informaccion en este tema. Esta en Ingles, si no le entiendes, me avisas.
Los datos de un Text Box se peuden manipular asi:
este ejemplo usa el evento 'Mouse button pressed' de un botton. si usas otro evento, lo unico que cambia es la forma the obtener la referencia al formulario. el docoumento que te mencione (http://www.geocities.com/rbenitez22/OOo/index.html) esplica various eventos que se pueden usar.
Los datos de un Text Box se peuden manipular asi:
Código: Seleccionar todo
Sub cmdButton_OnClicK(Event As Objct)
Dim Form As Object
Dim Precio As Double
Dim Cantidad As Integer
Dim Total As Double
Form=Event.Source.Model.Parent 'en este ejemplo, esta macro esta enlazada al evento 'Mouse Button Pressed' de un boton
Precio=CDbl(Form.getByName("txtPrecio").Text ) 'hay que convertir el texto a un numero-- ej: 2.99
Cantidad=CInt(Form.getByName("txtCantidad".Text) 'igual..ej 10
Total=Precio * Cantidad
'para actualizar el text field, no se puede simplemente asignar al propiedad 'Text', hay que actualizarlo por el 'BoundField' que es el objecto
'que enlaza el text field y la celda en la table. la propiedad 'BoundField' es un servicio typo 'Column' y tiene un metodo para cada typo the dato
'for ejemplo: updateInt,updateDouble,updateString, etc.
Form.getByname("txtTotal").BoundField.updateDouble(Total)
'otra manera us usando la propiedad 'Columns' de el formulario
Form.Columns.getByName("Total").updateDouble(Total) 'hay que user el nombre de la celda/columna--se supone que este se llama 'Total'
End Sub
-
- Mensajes: 13
- Registrado: Vie Dic 12, 2008 3:20 pm
Re: Enlazar un txtfield con una macro
Hola
Gracias por la ayuda
Estuve mirando el ejemplo, y lo puse a correr, pero no funcionó, sin embargo en la documentación del pdf que dejaste estuve mirando ejemplos al igual que en el libro de Andrew Pitonyak el cual muestra este ejemplo de código
La verdad creí que este me podría ayudar, pero al modificarlo para mis necesidades no me funcionó, si es posible me gustaría que me ayudaras a adaptar este código que ya mas o menos lo entiendo.
Los componente que tengo en el formulario son los siguientes:
"CantidadField" es un numericField
"ListBoxProducto" es un ListBox
"txtNum_Factura" es un TextBox
en el ejemplo anterior, realicé el cambio de nombre en sName, pero no se si estoy cometiendo el error de no tener presente el tipo de objeto (ejemplo el numericfiedl)
Lo que debo hacer es tomar datos de cada uno, manipularlo y luego escribir de nuevo en un textbox.
Agradezco su pronta ayuda
Gracias por la ayuda
Estuve mirando el ejemplo, y lo puse a correr, pero no funcionó, sin embargo en la documentación del pdf que dejaste estuve mirando ejemplos al igual que en el libro de Andrew Pitonyak el cual muestra este ejemplo de código
Código: Seleccionar todo
vDoc = ThisComponent
sName = "Author Name"
sServ = "com.sun.star.text.FieldMaster.User"
If vDoc.getTextFieldMasters().hasByName(sServ & sName) Then
vField = vDoc.getTextFieldMasters().getByName(sServ & sName)
vField.Content = "Andrew Pitonyak"
vField.Value = 2.3 REM If you would rather this were a number
Else
vField = vDoc.createInstance(sServ)
vField.Name = sName
vField.Content = "Andrew Pitonyak"
vField.Value = 2.3 REM If you would rather this were a number!
End If
Los componente que tengo en el formulario son los siguientes:
"CantidadField" es un numericField
"ListBoxProducto" es un ListBox
"txtNum_Factura" es un TextBox
en el ejemplo anterior, realicé el cambio de nombre en sName, pero no se si estoy cometiendo el error de no tener presente el tipo de objeto (ejemplo el numericfiedl)
Lo que debo hacer es tomar datos de cada uno, manipularlo y luego escribir de nuevo en un textbox.
Agradezco su pronta ayuda
WANDREW