Karolus hat geschrieben:Hallo
Ich bin mir ziemlich sicher, das man "ThisComponent.CurrentController" nicht benötigt um an die Namen von Formularfeldern zu kommen.
Und ich sehe auch nirgendwo eine Zeile wo dein 'Controler' irgendetwas tut
Karolus
Es geht mir ja auch weniger um den Namen, da ich diesen ja selbst zusammensetze (im vorherigen Post hab ich nur das Staerke_Change Makro mal gepostet weil es in diesem funktioniert aber leider nicht bei dem wo ich jetzt im Gange bin)
der Controler gibt in eben diesem Beispiel die Kontrolle an das oListBox-Objekt, damit ich dort die position des selektierten Items sehen kann :
Code: Alles auswählen
...
oControler = oDocument.GetCurrentController
oListBox = oControler.GetControl(oForm.GetByName(sAuslesen))
....
Select case oListBox.SelectedItemPos
....
da ich in diesem Fall nicht sofort auf die Listbox zugreifen konnte..
Im aktuellen Fall will ich aber nicht die Position rausfinden sondern selbst sagen : "Wähle den ersten Eintrag aus!"
oder sollte ich mich da ganz irren?
Camuel
Edit :
Eben noch mal schnell getestet, wenn ich anstelle von
Code: Alles auswählen
oListBox = oControler.GetControl(oForm.GetByName(sAuslesen))
nur dies benutze
bekomme ich die Fehlermeldung, dass die Eigenschaft oder Methode SelectedItemPos nicht gefunden wurde. auch wenn dies nicht die von mir benötigte Methode/Eigenschaft die ich benötige um den ersten Eintrag auszuwählen, so bin ich mir doch sicher, dass die benötigte Funktion auch das GetControl benötigt.
Geht ja eigentlich um dieses Makro :
Code: Alles auswählen
REM ***** BASIC *****
Dim iZ as Integer
Sub iZInitiate
iZ = -1
Call CallZC_2
End Sub
Sub CallZC_2
Call ZC_2_Change( 7, 14)
Call ZC_2_Change( 8, 15)
Call ZC_2_Change( 9, 16)
Call ZC_2_Change(10, 17)
Call ZC_2_Change(11, 18)
Call ZC_2_Change(12, 19)
Call ZC_2_Change(13, 21)
End Sub
Sub ZC_2_Change(X,Y)
dim oDocument as Object
dim oSheet(2) as Object
dim oDraw(0) as Object
dim oForm as Object
dim oControler as Object
dim oListe as Object
dim oListBox as Object
dim oRange as Object
dim sTxt(1) as String
dim iNumber as Integer
dim MyControl as Object
dim oListSource
dim aRangeProperty(0) as new com.sun.star.beans.NamedValue
oDocument = StarDesktop.CurrentComponent
oSheet(0) = oDocument.Sheets.GetByName("Bestellformular")
oDraw(0) = oSheet(0).DrawPage
oForm = oDraw(0).Forms.GetByIndex(0)
oControler = oDocument.GetCurrentController
oSheet(1) = oDocument.Sheets.GetByName("HILFSTABELLE")
oSheet(2) = oDocument.Sheets.GetByName("Plattenerfassung")
iNumber = CINT(oSheet(2).GetCellRangeByName("$V$1").String)
Select Case iNumber
Case 1 : oRange = oSheet(2).GetCellRangeByName("$AF$1:$AF3")
Case 2 : oRange = oSheet(2).GetCellRangeByName("$AG$1:$AG2")
Case 3 : oRange = oSheet(2).GetCellRangeByName("$AI$1")
Case 4 : oRange = oSheet(2).GetCellRangeByName("$AH$1")
End Select
aRangeProperty(0).Name = "CellRange"
aRangeProperty(0).Value = oRange.RangeAddress
oListSource = oDocument.CreateInstanceWithArguments("com.sun.star.table.CellRangeListSource",aRangeProperty)
oListe = oForm.GetByName("List Box " & X)
MyControl = oControler.GetControl(oListe)
oListe.ListSourceType = com.sun.star.form.ListSourceType.TABLEFIELDS
oListe.ListEntrySource = oListSource
End Sub