[gelöst]Listenfeld in einem Subform

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

beat4u
**
Beiträge: 23
Registriert: Mi, 29.02.2012 13:08

[gelöst]Listenfeld in einem Subform

Beitrag von beat4u »

Hallo

Ich brauche eure Hilfe!
Ich möchte in einem Subform (Tabelle) an ein Listenfeld (ich habe eine Spalte in ein Listenfeld umgewandelt) ein Makro anhängen, das zum Einsatz kommt, sobald ich dort eine Auswahl getroffen habe.

Wenn das Listenfeld im Hauptfomular stünde, würde ich das Makro ganz klar an das Ereignis "modifiziert" anhängen. Aber dieses Ereignis "modifiziert" existiert überraschenderweise gar nicht in der Auswahl der Ereignisse, wenn das Listenfeld im Subform_Grid liegt. Dort gibt es höchstens das Ereignis "Status geändert", aber dann sind leider noch keine Daten aus dem Listenfeld herauslesbar.

Kennt jemand dieses Problem und wie kann ich mir da aushelfen? Muss ich zuerst das Listenfeld updaten oder modifizieren? Gibt's da einen Basic-Befehl?

Herlichen Dank für eure Mithilfe

beat
Zuletzt geändert von beat4u am Sa, 28.04.2012 14:58, insgesamt 2-mal geändert.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Listenfeld in einem Subform

Beitrag von F3K Total »

Hi beat,
das ist nicht so einfach, weil das Listenfeld in der Spalte im Grid im Subform tief verschachtelt liegt.
Hier ein Beispiel mit Kombinationsfeld, was geht:
viewtopic.php?f=18&t=52579#p196959
Gruß R
beat4u
**
Beiträge: 23
Registriert: Mi, 29.02.2012 13:08

Re: Listenfeld in einem Subform

Beitrag von beat4u »

Danke F3K, ich werds ausprobieren, gebe dann Bescheid

Gruss Beat
beat4u
**
Beiträge: 23
Registriert: Mi, 29.02.2012 13:08

Re: Listenfeld in einem Subform

Beitrag von beat4u »

Gelöst!! YEAH!

Nun haben wir ein häufig auftretendes Problem gelöst! Z.B. wenn jemand eine Rechnung schreiben will, im Hauptformular der Kunde, Im Tabellen-Unterformular die Positionen oder Artikel, die aus einer Artikeltabelle stammen, wobei nur die Artikel_ID und nicht die ganze Artikelbezeichnung abgespeichert wird. Ich werde in Kürze hier (oder wo am Besten?) eine kleine Anwendung ins Netz stellen als Beispiel für eine alltägliche Rechnungserstellung (mit Haupt- und Unterformular). Das könnten sicher viele gebrauchen und für ihre Zwecke anpassen. Ich habe dazu viele Stunden verwendet, um den Fehler zu finden und zu korrigieren.

Ich habe trotz deinem Beispiel mein Listenfeld beibehalten, da ein Kombinationsfeld meine Bedürfnisse nicht abdeckt. Was ich aus deinem Beispiel gelernt habe:

a) ich muss über den controller gehen

und

b) der commit(true) muss auf das ganze Tabellenkontrollfeld des Unterformulars angewendet werden und nicht auf das Listenfeld und auch nicht auf das Unterformular, das sind die wichtigsten Punkte, an denen ich gescheitert bin

Code: Alles auswählen

Dim oForm as object, oSubForm as object, oList as object, Controller as object
  oForm = ThisComponent.DrawPage.Forms.getByName("MainForm") ' Hauptformular
  oSubForm = oForm.getByName("SubForm") ' Subform in Hauptformular         
  oList = oSubForm.getByName("SubForm_Grid") ' das Tabellenkontrollfeld im Unterformular
  Controller = thisComponent.CurrentController
  Control = Controller.getControl(oList)
  Control.commit(true)
Nochmals herzlichen Dank und bis bald
Gruss Beat
Antworten