[RESUELTO] Seleccionar elemento en COMBO BOX

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Bernardo Paris
Mensajes: 3
Registrado: Vie Ago 07, 2015 10:52 pm

[RESUELTO] Seleccionar elemento en COMBO BOX

Mensaje por Bernardo Paris »

Un saludo para todos los foristas. He programado en VB en excel y estoy haciendo mi primer programa en basic de open office. e elaborado un cuadro de dialogo que contiene un Combo Box el cual cargo con los datos al iniciar el diálogo. Necesito que al escoger un elemento del combobox me devuelava la posición del elemento para poder seguir con otrac acciones. Después de consultar los manuales y seguir instrucciones no ha funcionado ninguna y ya no tengo alternativa para lograrlo. Adjunto el código que estoy usando el cual me devuelve que no se conoce el método o la propiedad del objeto.

Código: Seleccionar todo

Sub CargaDatosRecall()
		Dim oDialogo As Object
		Dim Hoja as object
		Dim Posicion as Integer
		Dim oControl as object
	
		oDialogo = CreateUnoDialog( DialogLibraries.Standard.getByName("DReCal") )
		oControl=oDialogo.getControl("CBRepNum")
		Posicion=oControl.getSelectedItemPos()
		Hoja= ThisComponent.getSheets.getByName("Datos Generales")
		hoja.getCellByPosition(0,1).setFormula(Posicion)
		
End sub
Agradezco su ayuda enormemente.
Última edición por mauricio el Mié Ago 12, 2015 3:54 am, editado 1 vez en total.
Razón: Marcar como RESUELTO
OpenOffice 4.1.1 con OSX Yosemite v. 10.10.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Seleccionar elemento en COMBO BOX

Mensaje por mauricio »

¿que manuales has consultado?, en la wiki esta claramente explicado:

https://wiki.openoffice.org/wiki/ES/Man ... omboBox.29

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Bernardo Paris
Mensajes: 3
Registrado: Vie Ago 07, 2015 10:52 pm

Re: Seleccionar elemento en COMBO BOX

Mensaje por Bernardo Paris »

Gracias Mauricio, pero este es uno de los ejemplos que he usado y he consultado el manual general en donde se explican las propiedades de cada control, pero parece ser que faltara una biblioteca o algo así porque con ninguna instrucción encontrada funciona y es por eso que decidí entrar a los foros. Siempre me dice que la propiedad o el método no se encuentran. La única manera para que corra la macro es con la instrucción Posicion=oControl.Text pero siempre me devuelve el valor 0, no importa el número que escoga en el combobox.
Gracias.
OpenOffice 4.1.1 con OSX Yosemite v. 10.10.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Seleccionar elemento en COMBO BOX

Mensaje por mauricio »

perdón, leí que querías obtener el elemento seleccionado, cuando dices que quieres saber la posición... los controles combo no incorporan la propiedad ItemPos, pues su finalidad es otra, mi recomendación es que si quieres limitar los elementos que selecciona el usuario, usa un control ListBox que para eso es y este si tiene esta propiedad, los controles ComboBox son para dar una serie de opciones al usuario, pero además permitirle introducir algo diferente... si aun quieres usar un Combo, usa el siguiente código:

Código: Seleccionar todo

REM  *****  BASIC  *****
Dim dlg As Object
Dim combo as object

Sub Main():
   
    dlg = CreateUnoDialog(DialogLibraries.Standard.getByName("Dialog1"))
    combo = dlg.getControl("ComboBox1")
    dlg.execute()

End Sub

Sub Test(Event)
Dim i, pos

	pos = - 1        
	MsgBox combo.Text
	
	For i = 0 To combo.getItemCount() - 1
		If combo.getItem(i) = combo.Text Then
			pos = i	
			Exit For
		End If
	Next

	If pos < 0 Then
		MsgBox "No se selecciono ningún elemento"
	Else
		MsgBox "Elemento seleccionado: " & CStr(pos)
	End If
      
End Sub
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Bernardo Paris
Mensajes: 3
Registrado: Vie Ago 07, 2015 10:52 pm

Re: Seleccionar elemento en COMBO BOX

Mensaje por Bernardo Paris »

[RESUELTO] Gracias.
OpenOffice 4.1.1 con OSX Yosemite v. 10.10.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Seleccionar elemento en COMBO BOX

Mensaje por mauricio »

Por favor, cuando consideres que un tema ha sido resuelto, marcalo como tal, mira aquí como marcar como [RESUELTO] un tema

Ahora lo hago por ti, procura hacerlo tu en el futuro.

Gracias.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
MEKGAN
Mensajes: 7
Registrado: Mar Mar 27, 2018 12:46 am

Re: [RESUELTO] Seleccionar elemento en COMBO BOX

Mensaje por MEKGAN »

Buen dia Ingenieros

Aunque no me considero digno de cuestionar la sabiduria de Mauricio, te puedo plantear una solucion generica que en otro tiempo tuve que evaluar

Compañero "Bernardo Paris", si bien los elementos de un ComboBox no se pueden listar la igual que el de un ListBox, al cargarlos al sistema por parte de un Array si podemos identificarlos numericamente dentro de la Matriz de modo tal que tambien tendriamos la posicion, es decir

Definimos una Array que tiene varios elementos

Dim DatosArray()
DatosArray() = Array("Casa", "Perro", "Amo", "Pelao")

ahora cuando cargamos los datos de la Array al ComboBox
OBlstTitutlos.getModel.StringItemList = DatosArray ()

REM ***** BASIC *****, datos del amigo Mauricio
Dim dlg As Object
Dim combo as object

Sub Main():
dlg = CreateUnoDialog(DialogLibraries.Standard.getByName("Dialog1"))
combo = dlg.getControl("ComboBox1")
combo .getModel.StringItemList = DatosArray ()
dlg.execute()
End Sub


y despues programamos en el boton un Sub que nos captura el movimiento generado y nos muestre en un msgbox el item seleccionado (por asi decirlo)

Sub ItemSeleccionado()
Dim Encontrados as Integer
Dim Comprobar as String

If (dlg.Model.ComboBox1.text) = "" Or (dlg.Model.ComboBox1.text) = Empty Then
Else

Comprobar = dlg.Model.ComboBox1.text

For Encontrados = LBound(DatosArray ()) To UBound(DatosArray ())
If DatosArray (Encontrados) = Comprobar Then
msgbox(Encontrados)
Else
End If
Next

End If
End Sub


bueno ese seria mi codigo creo que debe tener unos errores porque el que yo tengo esta atado a un Diaglogo que tiene internamente el ComboBox, pero espero hacerme entender


:knock: :knock: :knock: :knock: :knock:
OpenOffice 4.5 en Windows Seven
Responder