- 2.0- 2.0.3

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

- 2.0- 2.0.3

Beitrag von moritz »

Ich kämpfe immer noch mit den Makros beim Umstieg von OO 2-0 auf 2.0.3
Mit diesen Befehlen verändere ich die Datenbankabfrage in OO
DatabaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Adressen")
QueryDefinitions = DataSource.getQueryDefinitions()
QueryDefinition = QueryDefinitions(0) 'es gibt mindestens 1 Abfrage
QueryDefinition.Command= strSQLName
Bei "QueryDefinition.Command= strSQLName" kommt die Fehlermeldung "Basic Laufzeitfehler, Es ist eine Exception aufgetreten. Type unknown, Message: Component is already disposed.! Dann bricht das Programm ab. Die SQL- Afrage wird aber ganz korrekt in den Datenbankbrowser eingetragen.
Kann mir hier jemand einen Tip geben?
Moritz
Kalinka
*
Beiträge: 15
Registriert: Mi, 22.03.2006 11:05
Wohnort: Hamburg

Beitrag von Kalinka »

Hallo,

sieht aus, wie mein Problem nach dem Umstieg von 2.0.2 auf 2.0.3. Das ist ein Fehler in 2.0.3 (es gibt dazu auch ein Issue). Schlage vor, Du versuchst 2.0.2 und wartest auf 2.0.4.

Gruß, Rado
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Danke

Beitrag von moritz »

Wegen einem ähnlich blöden Fehler, der ab 2.0.1 auftritt habe ich bis jetzt kein Update gemacht. Nun habe ich überall gelesen, daß die 2.0 viele Fehler hat. Doch ich merke, daß für mich die 2.0 die wenigsten Fehler hat. ein großes Problem ist bei mir Issue 60950. Dieser tritt seit 2.0.1 immer auf und ist bis jetzt nicht behoben. Bin dankbar für jeden Vote. Das jetzige Problem tritt anscheinend zumindest bei mir nur sporadisch auf (bei ca. 50% der Aufrufe).
Danke für den Hinweis
Moritz
laura36
**
Beiträge: 27
Registriert: Fr, 24.03.2006 16:29

Re: Danke

Beitrag von laura36 »

moritz hat geschrieben:Wegen einem ähnlich blöden Fehler, der ab 2.0.1 auftritt habe ich bis jetzt kein Update gemacht. Nun habe ich überall gelesen, daß die 2.0 viele Fehler hat. Doch ich merke, daß für mich die 2.0 die wenigsten Fehler hat. ein großes Problem ist bei mir Issue 60950. Dieser tritt seit 2.0.1 immer auf und ist bis jetzt nicht behoben. Bin dankbar für jeden Vote. Das jetzige Problem tritt anscheinend zumindest bei mir nur sporadisch auf (bei ca. 50% der Aufrufe).
Danke für den Hinweis
Moritz
Hi,
der Issue 60950 (Das Verstecken von leeren Absätzen bei Abfragen als Datengrundlagen geht nicht ) stört tatsächlich ziemlich. Mein Workaround dafür: Ich schreibe die Konditionen für einen versteckten Absatz sozusagen in meine SQL-Statement in der Abfrage:

Z.B. bei einem Adressfeld. In der Abfrage werden alle notwendigen Angaben (Anrede, Name, Institution, Strasse, PLZ, Ort, Land) in eine Spalte gepackt.

Mit "IF LENGHT" kucke ich, ob es einen Eintrag in der Spalte gibt. Wenn ja, wird der Wert ausgegeben und in eine neue Zeile geschaltet (\n). Wenn nicht, kommt der nächste Wert dran...

Mein Beispiel:

Code: Alles auswählen


concat(
IF(LENGTH(pvorname), concat(pvorname,' '),''),
IF(LENGTH(pnachname), concat(pnachname, '\n'),''),
IF( LENGTH( `organisationen`.`oname` ), concat(`organisationen`.`oname`,'\n'), ''), 
IF( LENGTH( `organisationen`.`oco` ), concat(`organisationen`.`oco`, '\n' ),''),

......) AS Adresse, 

-- Wir brauchen Die Postleitzahl aber noch als Extra-Feld zum Sortieren:

concat( IF( LENGTH( `pplz` ), `pplz`, '' ), IF( LENGTH( `organisationen`.`oplz` ), `organisationen`.`oplz`, '' ), IF( LENGTH( `organisationen_1`.`oplz` ), `organisationen_1`.`oplz`, '')) AS `PLZ`,


Zugegeben, die SQL-Statements werden etwas komplexer. Dieses Vorgehen hat ohnehin Vorteile (Es ist für den Anwender viel leichter zu handhaben, weil er/sie nur ein Feld irgendwo einfügen muß und sich keine Gedanken um versteckte Absätze machen muß...) und Nachteile, weil es natürlich weniger flexibel ist (wenn man andere Zusammenstellungen braucht, muß mensch eine neue Abfrage basteln ...).

Aber für mich war es der Weg, um konsistent bei OO 2.0.x zu bleiben und nicht z.B. zum Ettiketten-Drucken wieder 1.3 zu verwenden.

grüße
laura
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Danke

Beitrag von moritz »

Vielen Dank für Deine Hilfe. Klar könnte ich das Makro erweitern. Das wäre aber sehr umständlich. Bei mir geht es darum: Ich habe in der Datenbank die Anreden Frau und Herr. Die entsprechenden Datensätze stammen aus der Datenbank eines anderen Programmes und werden mit einer SQL- Abfrage im Browser angezeigt. Die Datensätze klicke ich dann einzeln an, die Felder werden als Serienbrieffelder angezeigt und ausgedruckt. Nun soll im Fall der Herren "z.Hdn. von " <Anrede> ein "n" an das "Herr" gedruckt bzw. bei "geehrte" ein "r" drangehängt werden. Wegen dem Fehler ab 2.0.1 müßte ich jetzt den Datensatz anklicken und dann ein Makro zur Korrektur laufen lassen. Da kann ich die Korrektur auch gleich manuell machen und weiterhin auf eine Fehlerbereinigung hoffen.
Moritz
Antworten