Optionsfelder abhängig eines Listenfeldes

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

Moderator: Moderatoren

DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Optionsfelder abhängig eines Listenfeldes

Beitrag von DITA »

Hallo,

hoffe bin hier richtig, oder muss ich damit nach basic???
nachdem der Umstieg von Excel auf Open Office mit Eurer kompetenten Hilfe voran schreitet, benötige ich aber nochmals Eure Open Office calc/basic Kenntnisse.

Habe ein Listenfeld (macht was es soll) und abhängig des Listenfeldes benötige ich maximal 3 Optionsfelder, wo immer nur eins aktiv sein darf,
und wenns sich machen lässt sollen nur so viele Optionsfelder sichtbar sein wie Einträge in den entsprechenden Feldern vorhanden.

Also konkret das Listenfeld wählt Firmen aus, und die möglichen (max 3) Optionsfelder sollen Mitarbeiter der entsprechenden Firma sein

Da ich noch nie mit diesen Optionsfeldern gearbeitet habe, also programmiert, angeklickt schon, würde ich mich echt freuen, wenn Ihr mir dabei
unterstützend zur Seite stehen würdet - Danke

Habe bei meiner Recherche über Optionsfelder herausgefunden, wenn sie abhängig voneinander sein sollen, müssen diese in einem Rahmen
eingebettet sein, schaut doch bitte ob ich das so richtig angefangen habe.
Optionsfelder.ods
(12.65 KiB) 124-mal heruntergeladen

Mir ist noch nicht klar, wie dabei zum Schluss in einer Zelle etwas (das hoffentlich gewollte) steht.

Gruss Dirk
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von Stephan »

anhängende Datei zeigt das Prinzip, Feinheiten musst Du selbst lösen, Hinweise zu Basic siehe erster Thread im Basic-Unterforum


Gruß
Stephan
Dateianhänge
Optionsfelder-ergänzt.ods
(13.68 KiB) 238-mal heruntergeladen
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von DITA »

Hallo Stephan,

Wow, - Herzlichen Dank

Da war ja mein Lernen wohl nicht sehr erfolgreich - denn den Rahmen scheine ich dann ja nicht zu brauchen.
Mittlerweile hab ich schon ne Variante wie ich zu einem "Ergebnis" komme - verknüpfte Zelle auf wahr überprüfen und auswerten

Das hätte ich ohne Deine Hilfe nicht hin bekommen, vielen vielen Dank

Gruss Dirk
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von Stephan »

denn den Rahmen scheine ich dann ja nicht zu brauchen.
die Zugehörigkeit der Optionsfelder zu einer Gruppe wird bei einem Formular über deren Namen festgelegt (hier "Optionsfeld 1"), ist der Namen gleich gehören sie zur gleichen Gruppe.

(Bei Basic-Dialogen ist das anders, dort gehören Optionsbutton dann zu einer Gruppe wenn sie einen fortlaufenden Index haben.)


Gruß
Stephan
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von DITA »

Hallo,

habe ein Problem mit meinen Optionsfeldern.

Probiere mittlerweile tagelang, finde aber den Fehler nicht, in einer neu (genauso) aufgebauten Tabelle ohne anderen Makros läuft der Code ohne Probleme durch.
Vermute es könnte das "Autostart" makro sein

Bitte schaut doch noch einmal drüber - zuerst war es so das das makro Mitarbeiterauswahl sämtliche Schaltflächen unbenannt hat , nach löschen dieser, und neu anlegen - mit umbenennen, tritt der Fehler auf
Test1.ods
(21.67 KiB) 98-mal heruntergeladen
habe auch die Optionsfelder gelöscht, neu angelegt, gruppiert - mit dem selben Ergebnis
Wo steckt der Fehler???? was mach ich falsch?????

Danke

Gruss Dirk
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von F3K Total »

Hi,
dies geht, wenn du in die Zusatzinformation der Optionsfelder die Zeilennummer einträgst:

Code: Alles auswählen

Sub Mitarbeiterauswahl(event)
    Dim nTag as integer
    D_TC = ThisComponent
    nrow = event.Selected
	Select Case nrow
		Case 0
			spalte = 96
		Case 1                        
			spalte = 104
		Case 2                       
			spalte = 130
		Case 3                         
			spalte = 156
	End Select
	oSheet = D_tc.Sheets().getByName("Eingabe")
	oSourceSheet = D_tc.Sheets().getByName("Intern")
	oFormular = oSheet.drawpage.Forms.getByName("Formular")
	For i = 0 To oFormular.count - 1
	    oOptionsfeld = oFormular(i)
	    if oOptionsfeld.name = "Optionsfeld 1" then
	        nTag = oOptionsfeld.tag
		    If oSourceSheet.getCellByPosition(spalte, nTag).String = "0" Then
				oOptionsfeld.EnableVisible = false
	        else
	  	        oOptionsfeld.Label = oSourceSheet.getCellByPosition(spalte, nTag).String
	  	        oOptionsfeld.EnableVisible = true
		    End If 
        End if
	Next i
End Sub
Viel Spass beim Forschen
Gruß R
PS: (event) gibt das makroauslösende Objekt zurück
Dateianhänge
Test1.ods
(23.26 KiB) 108-mal heruntergeladen
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von DITA »

Hallo F3K Total,

mhmmm - Dein makro arbeitet wie gewollt, hab aber noch ne Frage

bei der 4.Zeile Deines makros:

nrow = Event.selected
heißt ja soviel: Variabel "nrow" = ausgewähltes "Ergebnis" - aber woher weiß er das es Listenfeld 1 ist????

woher erkennt das makro das es nur auf das Listenfeld 1 reagieren soll????
versuche ja immer das ganze nicht nur zu kopieren, sondern auch zu verstehen
ja, bin Anfänger bei OpenOffice calc/Basic - sorry

Dank Dir aber erst mal für weiteren "Lernstoff"

Gruss Dirk
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von F3K Total »

Hi,
wie ich geschrieben habe, (event) in der Kopfzeile des Makros, gibt das makroauslösende Objekt zurück, und das ist das Listenfeld 1.
Ich empfehle Dir die Verwendung eines Introspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
Wenn du in dein Makro z.B

Code: Alles auswählen

XRAY event 'oder
MRI event
einbaust, siehst du, was das Event, (Ereignis) ist.
über

Code: Alles auswählen

XRAY event.source 'oder
MRI event.source
kommst du in diesem Fall an die Eigenschaften des KontrollObjektes

Code: Alles auswählen

XRAY event.source.model 'oder
MRI event.source.model
kommst du in diesem Fall an die Eigenschaften des Modells des KontrollObjektes

HTH R
DITA
***
Beiträge: 91
Registriert: Fr, 16.11.2012 16:23

Re: Optionsfelder abhängig eines Listenfeldes

Beitrag von DITA »

Hallo R - F3K Total,

vielen Dank für Deine Empfehlung, werde ich in der kommenden anstehenden Kur mal ausprobieren/testen
denn, man kann ja viel installieren - verstehen muss man(n) es ja auch ;-)

Im Augenblick bedanke ich mich vielmals für Deine Hilfe, und hoffe ihr helft mir "trotzdem" weiterhin so kompetent bei meinem Umstieg auf OpenOffice

Vielen Dank

Gruss Dirk
Antworten