Seite 1 von 1
[Gelöst] Textfelder ausblenden - Objektvariable nicht belegt
Verfasst: Do, 29.12.2016 10:27
von retuwe61
Guten Morgen.
Ich möchte mehrere Text- und Listenfelder ausblenden. In der Zeile "oFeldaus = oControl.getcontrol (oFeld)" erhalte ich eine Fehlermeldung.
Könnt Ihr helfen?
Danke.
Gruß
Uwe
Code: Alles auswählen
sub Felder_aus
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName ("AssEingabe")
oForm = ThisComponent.DrawPages.getByIndex(1).getForms().getByName( "Formular" )
oFeld1 = oForm.getByName("Textfeld 3")
oFeld2 = oForm.getByName("Listenfeld 2")
oFeld3 = oForm.getByName("Textfeld 4")
oFeld4 = oForm.getByName("Textfeld 6")
oFeld5 = oForm.getByName("Textfeld 7")
oFeld6 = oForm.getByName("Listenfeld 3")
oFeld7 = oForm.getByName("Textfeld 8")
oFeld8 = oForm.getByName("Listenfeld 10")
oFeld9 = oForm.getByName("Formatiertes Feld 1")
if oSheet.getCellbyPosition(1,5).String = "j" then
For i = 1 to 9
oControl = oDoc.getCurrentController()
oFeld = ("oFeld" & i)
'msgbox oFeld
oFeldaus = oControl.getcontrol (oFeld)
oFeldaus.Visible = FALSE
next
end if
end sub
Re: Textfelder ausblenden - Objektvariable nicht belegt
Verfasst: Do, 29.12.2016 10:38
von Stephan
In der Zeile "oFeldaus = oControl.getcontrol (oFeld)" erhalte ich eine Fehlermeldung.
Könnt Ihr helfen?
Ich verstehe diese Zeile ohnehin nicht.
Formularelemente liegen auf der Drawpage des Tabellenblatte, also z.B.:
Code: Alles auswählen
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName ("AssEingabe")
oFeldaus = oSheet.Drawpage.Forms.getByName("Formular").getByName(oFeld)
wobei "Formular" der Name Deines Formulars ist (bei OOo 3.3.0 ist "Formular" der Defaultname, ich weiß aber nicht ob das bei allen LO/OO-Versionen so ist)
Ein Beispiel für einen (ähnlichen) Steuerelementzugriff findest Du hier:
viewtopic.php?f=18&t=66049&p=257347#p257347
Gruß
stephan
Re: Textfelder ausblenden - Objektvariable nicht belegt
Verfasst: Do, 29.12.2016 11:33
von retuwe61
Hallo stephan.
Dieser Code funktioniert. Ich wollte ihn jetzt nur mit einer Schleife ausstatten, da noch weitere Textfelder existieren, die ich ausblenden möchte. Daran scheitere ich.
Gruß
Uwe
Code: Alles auswählen
sub Felder_aus
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName ("AssEingabe")
oForm = ThisComponent.DrawPages.getByIndex(1).getForms().getByName( "Formular" )
oFeld1 = oForm.getByName("Textfeld 3")
oFeld2 = oForm.getByName("Listenfeld 2")
oFeld3 = oForm.getByName("Textfeld 4")
oFeld4 = oForm.getByName("Textfeld 6")
oFeld5 = oForm.getByName("Textfeld 7")
oFeld6 = oForm.getByName("Listenfeld 3")
oFeld7 = oForm.getByName("Textfeld 8")
oFeld8 = oForm.getByName("Listenfeld 10")
oFeld9 = oForm.getByName("Formatiertes Feld 1")
if oSheet.getCellbyPosition(1,5).String = "j" then
'For i = 1 to 9
oControl = oDoc.getCurrentController()
'oFeld = ("oFeld" & i)
oFeldaus = oControl.getcontrol (oFeld1)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld2)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld3)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld4)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld5)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld6)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld7)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld8)
oFeldaus.Visible = FALSE
oFeldaus = oControl.getcontrol (oFeld9)
oFeldaus.Visible = FALSE
'next
end if
end sub
Re: Textfelder ausblenden - Objektvariable nicht belegt
Verfasst: Do, 29.12.2016 12:00
von F3K Total
Hallo,
versuche mal dies:
Code: Alles auswählen
sub Felder_an_aus
dim oFeld(1 to 9) as variant
dim bHide as boolean
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByName ("AssEingabe")
oForm = ThisComponent.DrawPages.getByIndex(1).getForms().getByName( "Formular" )
oFeld(1) = oForm.getByName("Textfeld 3")
oFeld(2) = oForm.getByName("Listenfeld 2")
oFeld(3) = oForm.getByName("Textfeld 4")
oFeld(4) = oForm.getByName("Textfeld 6")
oFeld(5) = oForm.getByName("Textfeld 7")
oFeld(6) = oForm.getByName("Listenfeld 3")
oFeld(7) = oForm.getByName("Textfeld 8")
oFeld(8) = oForm.getByName("Listenfeld 10")
oFeld(9) = oForm.getByName("Formatiertes Feld 1")
bhide = (oSheet.getCellbyPosition(1,5).String = "j")
For i = 1 to 9
oFeld(i).EnableVisible = not bhide
next
end sub
Gruß R
Re: Textfelder ausblenden - Objektvariable nicht belegt
Verfasst: Do, 29.12.2016 12:06
von retuwe61
Klasse!
Vielen Dank.
Gruß
Uwe