Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


On Wednesday 18 May 2011, 20:52:43 Hans-Peter Jansen wrote:
On Wednesday 18 May 2011, 19:56:48 Uwe Haas wrote:

Woher soll die Funktion wissen, welche Daten gebraucht werden?
Die Quellangaben sind nicht vorhanden.

Wenn ich Datenquellen richtig verstehe, dann arbeite ich tatsächlich 
ohne (weil das Zuweisen der Daten als Datenquelle starr ist, ich aber 
während des manuellen Einlesens Strukturen fülle, die ich später noch 
brauche und Ende-Kriterien auswerte, die nur sinnvolle Daten 
durchlassen.

Wie gesagt, dies ist ein stark reduziertes Beispiel eines komplexeren 
Dokuments: Fahrtanweisung in einer Spedition, wo es Zugmaschinen, 
Motorwagen, Auflieger und Anhänger gibt, die nicht beliebig gemixt 
werden können, einen Stammfahrer haben, etc..

Ich bin blutiger Basic Anfänger, welche Quellangaben fehlen? Muss ich
in der Funktion bekannt geben, dass ich auf eine globale
Modulvariable zugreifen will?

Heisst dass, diese Deklaration zu Beginn des Moduls ist nicht
ausreichend:

Type Vehicle
      Vehicle as String
      Driver as String
End Type
Global vehicleList() as Vehicle
Global driverList() as String

Alles, was ich brauche, ist sowas wie Static auf Modulebene.

Also nochmal zum Verständnis:

Beim Laden des Dokuments wird das Makro OnLoad ausgeführt 
(Ereignis: "Laden des Dokuments beendet" in 
Extras->Anpassen->Ereignisse). Diese Funktion liest im Beispiel die 
Daten manuell aus Tabelle2 und besetzt sowohl die Comboboxen 
(driverListBox und vehicleListBox), als auch das globale Feld 
vehicleList. Nach Laden des Dokuments zeigt die MsgBox, dass die 3 
Beispiel-Datensätze korrekt geladen wurden:

        LBound: 0, UBound: 3

Wenn der Benutzer nun einen Fahrer auswählt, wird das Makro 
OnDriverChanged ausgeführt (Ereignis: "Text modifiziert" von 
Kombinationsfeld driverListBox). 

Eigentlich erwartete ich, den Inhalt von vehicleList unversehrt 
wiederzufinden. Die MsgBox zeigt nun aber:

        driver: <Name des ausgewählten Fahrers>, vehicle: <>
        LBound: 0, UBound: -1

Die letzte Zeile ist mein Problem: sie dokumentiert, dass das Feld 
vehicleList von irgendwas zwischenzeitlich geleert wurde. Dieses Feld, 
als 

Global vehicleList() as Vehicle

deklariert, verliert zwischen den beiden Events seinen Inhalt. Es 
scheint, dass jeder Event-Aufruf das gesamte Modul erneut 
initialisiert, und die Frage ist, wie kann ich den Inhalt einer 
globalen Modul-Variable von einem zum anderen Event hinüber retten, 
oder bin ich hier total auf dem Holzweg?

Pete

-- 
Informationen zum Abmelden: E-Mail an users+help@de.libreoffice.org
Tips zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.