Seite 1 von 1

Drawpape

Verfasst: Do 5. Jul 2012, 19:45
von elfenkrieger
Hallo zusammen,

ich weiß ist vielleicht eine total bescheuerte Frage aber ich komme einfach nicht weiter. Ich soll für meine Firma eine Datenbank erstellen (diese hat als Schreibprogramm Libreoffice), Grundkonzept steht auch schon aber ich komme einfach mit den Makro´s nicht mehr weiter. Egal welche Funktion ich setzen will es bringt mir immer einen Fehler

Basic-Laufzeitfehler
Eigenschaft oder Methode nicht gefunden: Drawpape

Ich hoffe ihr könnt mir helfen ich hab nämlich echt keine Ideen mehr.

Re: Drawpape

Verfasst: Do 5. Jul 2012, 20:13
von F3K Total
elfenkrieger hat geschrieben:Eigenschaft oder Methode nicht gefunden: Drawpape
Hallo,
ohne genauere Angaben, besser ein Beispieldokument geht nix.
Der Fehler weißt darauf hin, dass ein Makro die Drawpage sucht aber nicht findet, also von einem Ort gestartet wird, von wo aus die Drawpage nicht auf dem beschriebenen Weg gefunden wird.
Beispiel:
Du hast ein Makro für ein Formular, da findest du die Drawpage z.B. unter "ThisComponent.drawpage" bei einem Calc Dokument z.B. unter "ThisComponent.sheets(0).drawpage" usw.

Gruß R

Edit: Es kann auch sein dass Du ein Makro für ein Formular aus der BASIC-IDE starten willst, die hat unter ThisComponent auch keine Drawpage.

Re: Drawpape

Verfasst: Do 5. Jul 2012, 20:35
von elfenkrieger
Also da ich gerade mal zuhause bin und die Datenbank nicht mitgenommen habe, hab ich mir jetzt eine odb-Datei Schüler gezogen und dort ganz normal diesen SQL-Befehl eingefügt:

REM ***** BASIC *****

SUB Filter
DIM oDrawpage AS OBJECT
DIM oForm1 AS OBJECT
DIM oFeldList1 AS OBJECT
oDoc=thisComponent
oDrawpage=oDoc.drawpage
oForm1=oDrawpage.forms.getByName("Adressliste")
oFeldList1=oForm1.getByName("Liste_1")
oFeldList1.commit()
oForm1.updateRow()
oFeldList1.refresh()
oForm2.reload()
END SUB

Re: Drawpape

Verfasst: Do 5. Jul 2012, 20:43
von F3K Total
Ja und, gehts, wenn Du das Makro aus dem Formulardokument startest? (Extras/Makros/...Ausführen)

Re: Drawpape

Verfasst: Do 5. Jul 2012, 20:51
von elfenkrieger
Nein jetzt bringt er mir

Basic-Laufzeitfehler
Es ist eine Exception aufgetreten
Type:com.stun.star.container.NoSuchElementExeption

bei dieser Zeile

oForm1=oDrawpage.forms.getByName("Adressliste")

Re: Drawpape

Verfasst: Do 5. Jul 2012, 21:10
von F3K Total
Nun, vielleicht gibt es kein Form "Adressenliste"?

Re: Drawpape

Verfasst: Fr 6. Jul 2012, 08:48
von elfenkrieger
Ich habe nur den Namen genommen wie er in meiner Datenbank geschrieben steht

Re: Drawpape

Verfasst: Fr 6. Jul 2012, 12:14
von harald235
Hallo elfenkrieger,

mir ist immer noch nicht klar, wo das Makro gepeichert ist, ob es an eine Ereignis-Eigenschaft des Formulars gebunden ist und ob Du ein Stand-alone-Formular oder eine Base-Datenbank mit Formularen benutzt.

Du hast Dir eine fremde *.odb Schüler "gezogen" (runtergeladen??) und da das Makro mit dem Formularnamen aus Deiner Datenbank eingefügt? Das kann kaum funktionieren.

Lade doch Deine DB mal mit verfremdeten Daten hier hoch, dann hat man ein genaueres Bild.

Gruß harald

Re: Drawpape

Verfasst: Fr 6. Jul 2012, 17:07
von F3K Total
Hallo Elfenkrieger,
nun hast Du schon zweimal den Hinweis bekommen möglichst ein Beispieldokument hochzuladen.
Mit deinen kryptischen Angaben kann man dir schwerlich helfen.
Tip: Der Name, der hier

Code: Alles auswählen

oDrawpage.forms.getByName("<>")
drinstehen muß, ist nicht der den Du siehst, wenn Du die Formulardokumente anschaust, sondern der, den du im Formularnavigator siehst wenn Du dein Formular im Entwurfsmodus bearbeitest.
Meistens per Default "MainForm".

Gruß R

Re: Drawpape

Verfasst: Fr 6. Jul 2012, 17:14
von RobertG
Hallo elfenkrieger,
elfenkrieger hat geschrieben: Type:com.stun.star.container.NoSuchElementExeption:
oForm1=oDrawpage.forms.getByName("Adressliste")
Wenn Du Dein Formular zum Bearbeiten öffnest und Dir über den Formularnavigator schön alles anzeigen lässt: es existiert nicht direkt auf der ersten Formularebene das Formular "Adressliste". Das sagt die Fehlermeldung "NoSuchElementExeption". Vermutlich hast Du eine Konstruktion mit Unterformularen. Das Formular "Adressliste" liegt vielleicht als Unterformular in dem Formular "Name". Dann musst Du Dich zu diesem Unterformular durchhangeln. Dies geht entweder so:

Code: Alles auswählen

oForm1=oDrawpage.forms.getByName("Name")
oForm2=oForm1.getByName("Adressliste")
...dann sprichst Du das Unterformular mit oForm2 an ... oder so:

Code: Alles auswählen

oForm1=oDrawpage.forms.getByName("Name").getByName("Adressliste")
...dann hast Du Dich direkt durchgehangelt und sprichst es als oForm1 an.

Gruß

Robert