Listenfeld

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Loxlay
Beiträge: 4
Registriert: Mi, 07.01.2004 15:40

Listenfeld

Beitrag von Loxlay »

Hallo zusammen!

Ich möchte das ein Makro den Mitarbeiternamen, den ich aus einem Listenfeld auswähle, in die Zelle schreibt wo sich der Curser gerade befindet.
Wie ich Daten in die aktuelle Curserposition schreibe weiß ich, aber ich weiß nicht, wie ich den Ausgewählten Namen aus der Liste bekomme, um ihn einer Variable zuweise um diese dann auszugeben.

Kann mir einer von euch sagen, wie ich im Makro an den Ausgewählten Namen komme ?

Danke schon mal im Vorraus 8)
openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag von openmind »

Kann ich sagen. Eine die Möglichkeit einer Mehrfachselektion macht die Sache ein weniger komplizierter als man meinen könnte:

Code: Alles auswählen

Sub Textit 
	Dim oDocument as Object
	Dim oFormular as Object
	Dim oList as Object 
	Dim selektion as Variant
	Dim count as Integer
	
	' writer document holen
	oDocument = thisComponent
	' Formular holen
	oFormular = oDocument.DrawPage.Forms.getByName( "Standard" )
	' Listenfeld holen
	oList = oFormular.getByName( "testListenfeld" )
	
	' Selektionen in einem Array aus Integern
	' welche die Positionen der selektierten 
	' bezeichnen (Mehrfachauswahl möglich)
	selektion = oList.SelectedItems
	
	' Loop durch alle selektierten Einträge
	for count = LBound(selektion) to UBound(selektion)
		' Wert des Eintrages in dListenFeld
		' auslesen und anzeigen
		MsgBox oList.StringItemList( selektion(count) )
	Next count
End Sub
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Loxlay
Beiträge: 4
Registriert: Mi, 07.01.2004 15:40

Beitrag von Loxlay »

Hi!

Danke schon mal, das sieht ja sehr vielversprechend aus :)

Nur bei mir mekert er in der Zeile:

Code: Alles auswählen

oFormular = oDocument.DrawPage.Forms.getByName( "Standard" )
und sagt mir "Eigenschaft oder Methode nicht gefunden".

Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
Ich habe also noch das erste Sheet mit angegeben und so lief es dann.

Code: Alles auswählen

Sub Textit
   Dim oDocument as Object
   Dim oFormular as Object
   Dim oList as Object
   Dim Sheet as Object
   Dim selektion as Variant
   Dim count as Integer

   ' writer document holen
   oDocument = thisComponent
   ' Sheet holen
   Sheet = oDocument.Sheets.GetByIndex(0)
   DrawPage = Sheet.DrawPage
   ' Formular holen
   oFormular = DrawPage.Forms.getByName("Standard")
   ' Listenfeld holen
   oList = oFormular.getByName( "ListBox" )

   ' Selektionen in einem Array aus Integern
   ' welche die Positionen der selektierten
   ' bezeichnen (Mehrfachauswahl möglich)
   selektion = oList.SelectedItems
    
   ' Loop durch alle selektierten Einträge
   for count = LBound(selektion) to UBound(selektion)
      ' Wert des Eintrages in dListenFeld
      ' auslesen und anzeigen
      MsgBox oList.StringItemList( selektion(count) )
   Next count
End Sub
openmind
****
Beiträge: 184
Registriert: So, 29.06.2003 15:00
Wohnort: Schweiz

Beitrag von openmind »

Loxlay hat geschrieben:Wahrscheinlich lag es daran, das ich drei Sheets Standardmäßig habe.
Nö. Es lag daran, dass ich zu blöd war um zu merken, dass du von einem Calc-Dokument sprichst. Da findest sich die DrawPage im Sheet und nicht im Dokument iwe Du richtigt bemerkts hast.
Meine Installation: AMD Athlon XP 1600+, 512 MB RAM, SuSE Linux 8.2, OpenOffice 1.1
Kostenlose OOo-CD in der Schweiz: http://www.office-cd.ch/
Antworten