[GELÖST] Unterformular und abhängiges Listenfeld befüllen

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

Moderator: Moderatoren

gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

[GELÖST] Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Hallo die Cracks,

hier ist ein totaler Anfänger am Werk. Ich will die EDV-Geräte der Mitarbeiter verwalten

Ich habe nun folgendes Problem . Meine Anwendung beseht aus einem Formular das ein Subformular enthält.

Das Hauptformular enthält Name, Vorname, Titel, Zimmernr. des Mitarbeiters.
Das Subform enthält Geräteart, Gerätebezeichnung Menge Zugangsdatum Abgangsdatum.

Die Geräteart ist in der Tabelle Geräteklassen festgelegt. Die Gerätebezeichnung in der Tabelle GeräteBezeichner. Zwischen Beiden besteht eine Beziehung in der ID_GeräteArt. Soweit alles kein Problem.

Jetzt möchte ich folgende Funktionalität haben:

Im Subform sollen die beiden Felder Geräteart und Gerätebezeichnung als Listenfelder angelegt werden.
Das Listenfeld Geräteart entnimmt die Werte der Tabelle Geräteklassen.
Das Listenfeld Gerätebezeichner entnimmt die Werte der Tabelle Gerätebezeichner wobei die Werte in Gerätebezeichner abhängig sein sollen von den Werten in dem Feld Geräteart.

Diese Funktionalität bekomme ich leider nicht hin.

Bisher habe ich diesen Code probiert.

Code: Alles auswählen

Sub UKatFuellen
	dim oDoc as object
	Dim oForm as object
	Dim oList 
	Dim sKategorie
	Dim sSQL

'	msgbox "Test"
	oDoc = ThisComponent
'	Msgbox oDoc.drawpage.forms.hasByName("MainForm")
	oForm=oDoc.drawpage.forms.getByName("MainForm")
	sKategorie = oForm.getByName("SubForm").getByName("SubForm_Grid").getByName("GeraeteArt").getCurrentValue()
'	msgbox sKategorie
'	sSQL = "SELECT UKategorie FROM tblKategorie WHERE Kategorie = '" & sKategorie & "' ORDER BY UKategorie"
    sSQL= "SELECT ""Para_Werte"".""GeraeteBezeichnung"", ""Para_Klasse"".""Name"", ""Para_Werte.aktiv""FROM ""Para_Werte"",""Para_Klasse"" WHERE ""aktiv""= 0 and ""Para_Klasse"".""Name"" = sKategorie"
'	msgbox ssql
'	oList.ListSource = sSQL
	msgbox olist
	oList=oForm.getByName("SubForm").getByName("SubForm_Grid").getByName("GeraeteBezeichnung").ssql
End Sub
Ich finde leider den Fehler nicht.

Hat jemand einen Tipp für mich

Beste Grüße Gerald
Zuletzt geändert von gerald3659 am Di, 09.08.2011 19:36, insgesamt 2-mal geändert.
Nur tote Fische schwimmen mit dem Strom
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von DPunch »

Aloha

Code: Alles auswählen

oList.ListSource = sSQL
Das funktioniert so nicht. Die Eigenschaft "ListSource" erwartet immer eine Sequenz (Array). Zudem müsstest Du wohl noch ListSourceType anpassen, ala

Code: Alles auswählen

oList.ListSourceType = com.sun.star.form.ListSourceType.SQL
oList.ListSource = Array(sSQL)
Ich frage mich ausserdem gerade, warum Du in Deiner SQL-Abfrage für die ListSource 3 Felder (GeraeteBezeichnung, Name, aktiv) ausliest - damit kann das Listenfeld sowieso nichts anfangen.
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Ich hatte ursprünglich vor Parameter die nicht mehr gebraucht werden, im Listenfeld nicht mehr darstellen zu lassen. Ich habe aber gerade in einer kleinen Testversion gemerkt, dass dann auch die Daten in der Tabelle gelöscht werden. Dies ist allerdings nicht in meinem Sinn. Deshalb wer dich die Geschichte aktiv wieder rausnehmen.

Erst mal vielen Dank für deinen Tipp werde es ausprobrieren und rüclkmelden

Beste Grüße
Gerald
Nur tote Fische schwimmen mit dem Strom
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Hallo DPunch

habe gestern abend noch bis 2 Uhr rumprobiert. Ich raffs nicht.

Kannst Du mir das mal angepasst zu meinem Code zeigen. Wie gesagt: Ich bin ein Newbie. Den Code den ich eingestellt habe habe ich aus dem Forum un dann anzupassen versucht. Deshalb weiss ich im Moment nicht was schief läuft.

Besten Dank im Voraus
Nur tote Fische schwimmen mit dem Strom
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von DPunch »

Aloha
gerald3659 hat geschrieben:Deshalb weiss ich im Moment nicht was schief läuft.
Ich weiss noch viel weniger, was schief läuft, solange Du nicht sagst, wo es hängt.

Mein Hinweis betraf die Zeile

Code: Alles auswählen

oList.ListSource = sSQL
die Du durch

Code: Alles auswählen

oList.ListSourceType = com.sun.star.form.ListSourceType.SQL
oList.ListSource = Array(sSQL)
ersetzen sollst.
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Hallo DPunch,

ich erhalte beim Austausch meiner Zeile

Code: Alles auswählen

    oList.ListSource = sSQL
durch deine Zeilenkombination

Code: Alles auswählen

oList.ListSourceType = com.sun.star.form.ListSourceType.SQL
oList.ListSource = Array(sSQL)
den gleichen Effect wie Vorher

Basic Laufzeitfehler: Objektvariable nicht belegt
Angemeckert wird jetzt die Zeile 1 deines Codeschnippsels
wie krieg ich den denn weg

Außerdem läßt sich ooo nicht sauber beenden Wie kriege ich das hin. Bei Laufzeitfehler muss ich ooo immer über den Taskmanager abschießen. Gibt es keinen anderen Weg?

Vielleicht noch als Hinweis: ich weiss nicht ob es wichtig ist. Die Listenfelder die ich befüllen will sind Teil eines Tabellenkontrollelements.
Nur tote Fische schwimmen mit dem Strom
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von F3K Total »

gelöscht
Gruß R
Zuletzt geändert von F3K Total am Fr, 05.08.2011 12:16, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von F3K Total »

gelöscht
Gruß R
Zuletzt geändert von F3K Total am Fr, 05.08.2011 12:16, insgesamt 1-mal geändert.
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Da ich mich zu Anfang anscheinend falsch ausgedrückt habe hier mal ein paar Bilde von dem was ich vorhabe
1. meine Tabellen und Beziehungen
https://docs.google.com/leaf?id=0B-srrT ... ist&num=50

2. Meine Maske
https://docs.google.com/leaf?id=0B-srrT ... ist&num=50

In der Spalte neben "Art" soll die "Bezeichnung" abhängig von Art gefüllt werden.
Dazu dienen die Tabellen Para_Klassen und Para_Werte.

Die Spalte "Art" enthält alle Einträge aus der Tabelle Para_Klassen"
Nun soll die Spalte "Bezeichnung" abhängig vom ausgefüllten Feld in der Spalte "Art" mit Bezeichnungen aus der Tabelle Para_Werte gefüllt werden.

Ich raffe einfach nicht wie das funktioniert.
Die Links die Du mir geschickt hast waren mir zu kompliziert.

Besten Dank
Nur tote Fische schwimmen mit dem Strom
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von F3K Total »

Hallo Gerald,
es tut mir Leid, die Sachen sind auch nicht nötig, ich habe mich verbastelt.
Du willst mit Deinem sSQL ja nur die Listsource füllen.
Mein Fehler. Ich lösche meine o.a. Beiträge.
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von F3K Total »

Hallo Gerald,
versuche es mal hiermit:

Code: Alles auswählen

Sub UKatFuellen

   Dim sSQL(0) as string

   oDoc = ThisComponent
   oForm=oDoc.drawpage.forms.MainForm
   sKategorie = oForm.SubForm.SubForm_Grid.GeraeteArt.CurrentValue
   sSQL(0)= "SELECT ""Para_Werte"".""GeraeteBezeichnung"", ""Para_Klasse"".""Name"", ""Para_Werte.aktiv""FROM ""Para_Werte"",""Para_Klasse"" WHERE ""aktiv""= 0 and ""Para_Klasse"".""Name"" = "+sKategorie
   oList=oForm.SubForm.SubForm_Grid.GeraeteBezeichnung
   oList.ListSource = sSQL
End Sub
Gruß R
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Ich habs gerade gemacht.
Ich erhalte zumindest mal keine Fehlermeldung. Aber das Listenfeld bleibt leer. Mal nachsehen ob ich mich irgendwo vertippt habe bei derVariablendefinition. Gebe dann Rückmeldung.
Nur tote Fische schwimmen mit dem Strom
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Ich habe jetzt alle Schreibweisen überprüft, die sind korrekt. Wie gesagt, ich bekomme jetzt keine Fehlermeldung, aber ein leeres Listenfeld "Gerätebezeichnung".
Trotzdem danke für Deine bisherige HIlfe, hat mich ein gutes Stück weiter gebracht.
Nur tote Fische schwimmen mit dem Strom
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von DPunch »

Aloha
gerald3659 hat geschrieben:Wie gesagt, ich bekomme jetzt keine Fehlermeldung, aber ein leeres Listenfeld "Gerätebezeichnung".
Kannst Du das Feld akivieren?

Möglicherweise solltest Du mal eine Beispieldatei hochladen.
gerald3659
*
Beiträge: 19
Registriert: Di, 14.12.2010 07:55

Re: Unterformular und abhängiges Listenfeld befüllen

Beitrag von gerald3659 »

Hallo die Cracks,

ja aktivieren lässt sich das Feld,
aber es enthält keine Einträge.

Ich komm so nicht weiter.

Im Anhang habe ich mal meine Datenbank, sie ist ziemlich einfach, angehängt.
Dateianhänge
EDV-Geräte.odb
(25.02 KiB) 66-mal heruntergeladen
Nur tote Fische schwimmen mit dem Strom
Antworten