Seite 2 von 3

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 11:42
von oropax
@ ebayer,

Vielen Dank für dein Testprogramm. Ich habe es mir mal genauer angeschaut und bin auf zwei Probleme gestossen.

1. Wenn ich die Schaltfläche "Update" (& "Ergebnisse Löschen") betätige wird folgende Fehlermeldung eingeblendet:

BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: Test1.

Ich habe versucht den Fehler zu beheben, war dabei allerdings nicht erfolgreich.

2. Soweit ich die Sache richtig interpretiere, formst du die numerischen Variablen in String Variablen um. Die neu generierte Variable "Ergebnis" wäre dann also auch eine String Variable. Wichtig wäre allerdings, dass die neue Variable "Ergebnis" ebenfalls eine numerische Variable ist. Um dies zu erreichen, habe ich, deinen Vorlagen folgend, versucht ein eigenes Makro (MeineVariante) zu schreiben. Leider funktioniert dieses nicht und ist daher in Bearbeitung...

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 11:47
von oropax
@berndkli

Danke für den Hinweis. Allerdings ist es entscheidend, dass die Werte auch in der Tabelle eingetragen werden. Daher behebt die Variante mit der Abfrage nicht wirklich mein Problem.

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 13:04
von berndkli
Hallo Oropax
1. Wenn ich die Schaltfläche "Update" (& "Ergebnisse Löschen") betätige wird folgende Fehlermeldung eingeblendet:

BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: Test1.
Du musst die Datenbank bei OO anmelden; dann hat's zumindest bei mir funktioniert.
Extras=>Base=> Datenbanken => neu

Gruss Bernd

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 13:22
von oropax
ok, super...

ebayer's variante funktioniert. bei meiner happert's noch ein wenig...

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 14:43
von oropax
Nocheimal zum Problem mit dem Variablentyp:

Soweit ich das beurteilen kann wird eine String-Variable generiert...
Wenn ich aber den Feldtypen in der Tabelle für die Spalte "Ergebnis" (die neu generierte Variable) von Text[] auf Integer[] wechsle und anschliessend das Makro ausführe wird keine Fehlermeldung angezeigt.

Meine Frage: Werden nun die neu generierten Werte in Text (string) oder in numerischem Format gespeichert?

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 15:01
von eBayer
Beim speichern des Strings in die Datenbank wird der Feldtyp automatisch angepaßt.
Also steht nach deiner Änderung in der Tabelle nun das Ergebins als Integer. Du siehst das ganz gut an den Beispieldaten.
Im Ergebnisfeld wird nun die Position 4711 nicht mehr mit führender Null angezeigt, wie das zuvor bei der Definition als Textfeld in der Tabelle der Fall war.
Gruß eBayer

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 16:18
von oropax
Also, das wär ja super...

Allerdings bin ich nicht sicher was du mit der führenden Null meinst:

Also der zweite Wert in der Spalte Ergebnis ist 4711002. Und das ist doch auch gut so? Die Nullen vor der 2 werden übernommen, das ist selbstverständlich wichtig. Und vor der 4 gibts sowieso keine Null. Dementsprechend wird aus 4711 (Feld1) und 2 (ID) der neue Wert 4711002 (Ergebnis) generiert. Und nach ändern des Feldtypen (von Text[] auf Integer[]) werden die neuen Werte in numerischem Format (und nicht string!) gespeichert.

Richtig? Das wär perfekt.

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 16:27
von eBayer
RICHTIG

Re: Generierung neuer Variablen

Verfasst: Mi, 01.04.2009 16:31
von oropax
Super! Herzlichen Dank für die geduldigen und lehrreichen Ausführungen.

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 14:20
von oropax
Offensichtlich bin ich zu doof für base...

Ich versuche gerade das Makro von eBayer auf meine Anwendung zu übertragen: Dürfte ja eigentlich nicht so schwer sein...Namen ändern und fertig, würde man zumindest meinen.

An folgender Stelle tritt allerdings immer ein Fehler auf...

oField = thisComponent.drawpage.forms.getByName("TestFormular").getByName("FormFeld1")

Meine Interpretation: "TestFormular" ist der Name des Formulars, auf welches zurückgegriffen wird und "FormFeld1" der Name des Feldes, welches den zur weiteren Verwendung vorgesehenen Wert enthält. Ist das korrekt?

Fehlermeldung bei meiner Anwendung:

BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: .

Die Fehlermeldung kenne ich bereits (siehe oben). Ich habe verschiedenste Varianten zur Behebung ausprobiert, ohne Erfolg. Vielleicht könnt ihr mir weiterhelfen...

Mein Formular ist folgendermassen aufgebaut:
Formularname: formular
1. Ebene: Article
Subformular: claims (auf dieser Ebene werden die Ausgangsvariablen codiert)

Ich vermute, dass aufgrund des Subformulars die Verknüpfung angepasst werden muss, aber wie?

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 17:51
von eBayer
verlaß Dich nicht darauf, daß Dein Formular so heißt, wie es in der IDE aufgezeigt wird.
Du mußt den Namen verwenden, der IM Formular gespeichert ist!
Falls Du nicht weißt, wie Du dahin kommst....
1. klick mit rechter Maustaste in irgendein Control des Formulars
2. im nun erscheinenden PopUp-Menu "Formular" anklicken
3. Beim tab "Allgemein" im Feld Name steht der von Dir zu verwendende Name des Formulars.
Du kannst diesen auch in Deinem Sinne ändern.
Und nun versuche es nochmal.
Das ist übrigens das was ich schon vor einigen Tagen geschrieben habe...... die nächsten Fragen und Probleme kommen bestimmt und machen es notwendig, sich intensiver mit Base zu beschäftigen.
Gruß eBayer

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 18:05
von oropax
hallo eBayer,
Das habe ich eigentlich schon versucht, trotzdem wird die Fehlermeldung weiterhin angezeigt, keine Ahnung wieso.

Aber ich probier jetzt nocheinmal...

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 18:19
von oropax
Mir scheint, man müsste den Pfad anpassen, wenn man auf ein Subformular zugreifen möchte.

Grund: Wenn ich auf das in der Strukutur höchste Formular zugreife funktioniert es, beim Subformular kommt aber jedesmal eine Fehlermeldung...

1. Ebene: Article
2. Ebene (1. Subformular): claims
3. Ebene (2. Subformular): frames

verwende ich "Article" funktioniert das Makro, verwende ich "claims" kommt die oben beschriebene Fehlermeldung...

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 18:30
von eBayer
habe mit subformularen noch keine erfahrung.
aber ist dein subformular nicht ein control in article?
dann mußt du vermutlich auch entsprechend adressieren (article.subformular) ... in der art.
schade, muß leider passen... aber versuche es mal so.... testweise.
Gruß eBayer

Re: Generierung neuer Variablen

Verfasst: Fr, 03.04.2009 18:37
von oropax
@eBayer
Leider funktioniert die vorgeschlagene Variante "Formular.Subformular" auch nicht. Trotzdem danke für deinen engagierten Einsatz. Sobald ich eine Lösung finde, lass ich es dich wissen.