Zugriff auf aktuelle Datensatz

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

Moderator: Moderatoren

Luke78
**
Beiträge: 29
Registriert: Do, 27.09.2012 19:43

Zugriff auf aktuelle Datensatz

Beitrag von Luke78 »

Hallo zusammen

gibt es irgendeine Möglichkeit auf die Werte eines gerade gespeicherten Datensatzes zuzugreifen?

Ich brauch in einem Unterformular die Autowert ID eines neu gespeicherten Datensatzes. Ich käme natürlich an die ID, wenn ich die in einem verknüpften Textfeld anzeigen lasse, das möchte ich aber aus verschiedenen Gründen nicht.

Gibt es einen Zugriff a la oSubForm.currentRow oder ähnliches? Hab mir schon n Wolf gesucht, verzweifel aber mal wieder an der imho mangelhaften Doku von Base.

Besten Gruß
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Zugriff auf aktuelle Datensatz

Beitrag von F3K Total »

Moin,
klar, gibt es:
Angenommen dein Formular heißt im Formularnavigator MainForm, das Subformular SubForm und die ID, ein Integer Wert, steht in der zugrundeliegenden Tabelle/Abfrage in der ersten Spalte:
  • oform = ThisComponent.drawpage.Forms.getbyname("MainForm").getbyname("SubForm")
    nID = oform.getint(1)

    kurz, auf Groß- und Kleinschreibung achten:
  • oform = ThisComponent.drawpage.Forms.MainForm.SubForm
    nID = oform.getint(1)

    ...oder wenn du die Spalte nicht kennst, aber die Bezeichnung, z.B. ID
  • oform = ThisComponent.drawpage.Forms.MainForm.SubForm
    ncolumn = oform.findcolumn("ID")
    nID = oform.getint(ncolumn)
Gruß R
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: Zugriff auf aktuelle Datensatz

Beitrag von juetho »

Zwei kleine Ergänzungen:
1. Die ID kann erst nach insertRow zur Verfügung stehen. (Ob noch andere Umstände berücksichtigt werden müssen, habe ich nicht geprüft; ich habe keine geeignete odb-Testdatei.)
2. Wenn die ID den Datentyp INTEGER verwendet, muss in Makros (sicherheitshalber) getLong verwendet werden. Die Datentypen integer sind in Basic (Makros) und den Datenbanken unterschiedlich definiert. (In der Neufassung des Handbuchs weisen wir darauf ausdrücklich hin.)
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Luke78
**
Beiträge: 29
Registriert: Do, 27.09.2012 19:43

Re: Zugriff auf aktuelle Datensatz

Beitrag von Luke78 »

Hi erstmal Danke!

Das mit der mangelhaften Dokumentation war nicht persönlich gemeint :) , bin da glaub ich von Flash auch etwas verwöhnt.

Hatte es mit analag zu updateInt mit getInt ausprobiert, aber das scheiterte dann wohl an der groß/kleinschreibung bzw. werde ich es mal mit Long ausprobieren.

Grüße
LO 3.6.5.2 auf Windows 7 64bit
"Ein Programm ist immer nur so gut wie sein Benutzer" - "Software has no brain, use your own"
Antworten