Verständnisfrage zu verschachtelten Formularen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Verständnisfrage zu verschachtelten Formularen

von Toxitom » Fr, 04.05.2007 08:16

Hallo Andreas,
Ich hätte mir gewünscht, dass man jedes Objekt direkt ansprechen kann.
Na ja, kannst du ja. Nur: Der Name eines Objektes ist eben nur eindeutig über den gesammten Verzeichnisbaum.
Das ist immer so. Denk mal an den Herrn "Müller". Ist ein eindeutiger Name ;-). Um Ihn zu identifizieren, brauchst du einfach den kompletten Namen (Verezichnisbaum - also z.B. der Artur Müller aus Hintertupfingen in der Blumenstrasse 5....
Und so ist da mit den Objekten eben auch.
Dein Kontrollelement heisst "Preis", so kann aber auch ein anderes Kontrollelement auf einem anderen Formular heissen, oder zum Beispiel eine Calctabelle oder eine Grafik. Dieser Name ist somit nicht eindeutig.
Und mit dem Abbilden der Struktur im Basic-Code erzeuge ich natürlich feste Strukturen, die dann ggf. nicht mehr mit der "Realität" übereinstimmen.
Na ja, Festlegungen muss man schon treffen. Andererseits kannst du natürlich auch flexible Strukturen abbilden: Alle Objekte sind auch über Indices erreichbar, dann musst du halt Schleifen zur Suche über alle Indizes programmieren - und somit dein Objekt eindeutig identifizieren. Technisch ist das möglich - ja manchmal sogar notwendig, der Namenszugriff ist aber immer einfacher.

Viele Grüße
Thomas

von agrupe » Do, 03.05.2007 23:28

Na, das kann ich in 2 Monaten gar nicht mehr verstehen ;-)

Ich hätte mir gewünscht, dass man jedes Objekt direkt ansprechen kann. Schließlich hat jedes einen eindeutigen Namen. Denn wenn ich die Baumstruktur ändere bleibt doch die Funktionalität der Felder gleich. Und mit dem Abbilden der Struktur im Basic-Code erzeuge ich natürlich feste Strukturen, die dann ggf. nicht mehr mit der "Realität" übereinstimmen.

Merci für den Einzeiler
:lol:

Andreas

von Toxitom » Do, 03.05.2007 17:55

Hallo Andreas,

nun ja, das ist halt nun mal der Objektbaum. Den brauchst du schon, um an ein so "tief" verschachteltes Objekt zu kommen. Du kannst das natürlich auch in einer Zeile zusammenfassen - das Prinzip bleibt aber das gleiche ;-)

Code: Alles auswählen

nPreis = thisComponent.DrawPage.Forms("Bestellnr").getByName ("Bestellungen").getByName("Artikelauswahl").getByName("Preis").GetCurrentValue()
Aber ob das übersichtlicher ist???

Gruss
Thomas

Verständnisfrage zu verschachtelten Formularen

von agrupe » Do, 03.05.2007 14:41

Hi,

ich habe eine Tabelle in einem Subformular und will daraus Werte auslesen.
Mein Weg klappt zwar, scheint mir aber höchst kompliziert und bricht auch sofort zusammen, wenn man etwas an der Struktur des Formulars ändert. Hoffentlich weiß jemand was besseres:

1) thisComponent zuweisen
2) Formular auf der obersten Ebene selektieren
3) daraus das untergeordnete Formular ansprechen
4) darin die Tabelle selektieren
5) daraus die gewünschte Spalte wählen
6) daraus den aktuellen Wert entnehmen

Warum geht nicht:

1) s.o.
2) gleich das Unterformular, besser noch die Tabelle ansprechen

Hier mein Code:

Dim oForm as Object 'darin wird das Formular gespeichert
Dim oSubForm as Object 'für das Subformular
Dim oDoc as Object 'das eigentliche Dokument
Dim oTabelle as Object 'Artikelauswahltabelle
Dim oElement as Object 'Tabellenspaltenwert
Dim nPreis as Double 'Preis aus Tabelle

oDoc=thisComponent

oForm=oDoc.DrawPage.Forms("Bestellnr")
oSubForm=oForm.getByName ("Bestellungen")

oTabelle=oSubForm.getByName("Artikelauswahl")
oElement = oTabelle.getByName("Preis")
nPreis = oElement.GetCurrentValue()

msgbox "Aktueller Preis: " & nPreis

Bin für jeden Tipp dankbar!

Andreas

Nach oben