[Gelöst] Textfelder ausblenden - Objektvariable nicht belegt

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

Moderator: Moderatoren

retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

[Gelöst] Textfelder ausblenden - Objektvariable nicht belegt

Beitrag 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
Zuletzt geändert von retuwe61 am Do, 29.12.2016 23:27, insgesamt 1-mal geändert.
Angewandt wird LibeOffice Version 5.1.6.2
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Textfelder ausblenden - Objektvariable nicht belegt

Beitrag 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
retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Re: Textfelder ausblenden - Objektvariable nicht belegt

Beitrag 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
Angewandt wird LibeOffice Version 5.1.6.2
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Textfelder ausblenden - Objektvariable nicht belegt

Beitrag 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
retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Re: Textfelder ausblenden - Objektvariable nicht belegt

Beitrag von retuwe61 »

Klasse!
Vielen Dank.
Gruß
Uwe
Angewandt wird LibeOffice Version 5.1.6.2
Antworten