Hallo Gert, danke für Deine Antwort. Sieht gut aus, leider ist die Syntax für das Makro3 falsch. Folgenden Code habe ich abgekupfert:
Code: Alles auswählen
sub TestMakro
' Datenbank und Tabelle der Registrierungsdatenbank
CONST OOoBase = "OOo_Registry"
CONST OOoTabelle = "RegBase"
' Objekte deklarieren
DIM DatabaseContext AS OBJECT
DIM Datenquelle AS OBJECT
DIM Verbindung AS OBJECT
' Datenbankkontext erzeugen
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
' Datenquelle für OOo-Registry
Datenquelle = DatabaseContext.getByName(OOoBase)
end sub
Die Zeile "Datenquelle = DatabaseContext.getByName(OOoBase)" generiert einen Laufzeitfehler NoSuchElementException. Schade.
Auch ein anderes meiner Probleme ist in dem Makro behandelt. Zur Laufzeit steuere ich eine generierte Nummer zu. Das ist die letzte bekannte Nummer + 1. Den erzeugten Wert schreibe ich in das Datenfeld "MitgliedsNr":
Code: Alles auswählen
Sub FokusVerlustNachname
dim l_Next_nr as Integer
gsInitDbConnection()
gsInitObjFrmMitglieder()
If goMitgliedsNr.text = "" Then
If goNachname.text <> "" Then
l_Next_nr = fGetNextMglNummer()
goMitgliedsNr.text = l_Next_nr
End If
End If
End Sub
Beim Speichern des Datensatzes erklärt mir die Laufzeitumgebung, daß der Satz nicht gespeichert werden könne, weil das Feld leer sei: "Für das Feld 'MitgliedsNr' ist eine Eingabe erforderlich". Gehe ich mit dem Cursor in das Feld (in dem der Wert korrekt angezeigt wird!) und drücke EINGABE, dann kann der Satz gespeichert werden!
Folgenden Code habe ich aus Makro3 übernommen:
Code: Alles auswählen
DIM Textdokument AS OBJECT
DIM Textfelder AS OBJECT
DIM DatabaseContext AS OBJECT
DIM Datenquelle AS OBJECT
DIM Verbindung AS OBJECT
DIM Authentifizierung AS OBJECT
DIM SQL_Anweisung AS OBJECT
DIM Abfrageergebnis AS OBJECT
' Hilfsvariablen
DIM Benutzerfeld, Rechnungsnummer AS STRING
DIM Sql AS STRING
DIM Msg AS STRING
Textdokument = thisComponent
Textfelder = Textdokument.TextFieldMasters
Textdokument.textfields.refresh()
Aber auch hier ist das Feld angeblich leer. *verzweifel*
Hast Du noch Ideen für meine Probleme?
Gruß
Stefan
Der vollständige Stillstand ist nur erreichbar durch Rennen entgegen der Erdrotation.
[Eroc]
OOo 3.1.0 mit Sun Report Builder 1.1.0 unter Windows Vista