Macro in OpenOffice Forms

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

Moderator: Moderatoren

Christian K.
**
Beiträge: 24
Registriert: Mi, 20.07.2005 10:55
Kontaktdaten:

Macro in OpenOffice Forms

Beitrag von Christian K. »

Morgen,

bei OpenOffice Forms gibt es ja die Felder: TableControl wo man Tabellen der einzelnen Datensätze anzeigen lassen kann.
Hierzu habe ich eine kleine Grundsatzfrage:
Wie kann man ein bestimmten Wert in diesen TableControls abfragen? Funktionieren diese TableControls wie Calc Sheets mit Spalten und Zeilen oder wie funktioniert das genau?

Über Hinweise wäre ich sehr dankbar!

LG

Christian
zap
**
Beiträge: 20
Registriert: Di, 11.01.2005 13:18
Wohnort: Hannover

Beitrag von zap »

Hi Christian,

Formulare sind nicht unbeding mein Spezialgebiet, d.h. ich bitte die Anderen meine Fehler zu korrigieren.

Superkurzform: In OOo kann man die Kontrollfelder von Formularen an bestimmte Datenbankfelder binden. Damit dass funktioniert, hat jedes Formular genau eine zugeordnete Datenquelle. Aus dieser Datenquelle ist fuer das Formular genau eine Zeile aktiv.

Als Beispiel habe ich die Bibiography-Datenbank an ein Grid gebunden:

Code: Alles auswählen

sub formulare
  doc = thiscomponent
  ' nur ein formular vorhanden, es hat den index 0 
  formular = doc.drawpage.forms(0)
  ' aktive zeile abfragen. zaehlung beginnt bei 0
  msgbox formular.getrow()  
  ' naechste zeile auswaehlen. solange es weitere zeilen
  ' gibt, gibt next true zurueck.
  msgbox formular.next
  ' alle felder der aktiven zeile anzeigen
  ' aktiv ist die 2. zeile, da wir sie gerade mit next gewaehlt haben
  table = formular.getByName("TableControl")
  for i = 0 to table.Count-1
    row = table.getByIndex(i)
    s = s & row.label & ": " & row.string & vbLf
  next
  msgbox s 
end sub
geht deine Frage in diese Richtung?

zap
Christian K.
**
Beiträge: 24
Registriert: Mi, 20.07.2005 10:55
Kontaktdaten:

Beitrag von Christian K. »

Ja vielen Dank!
Mit deinen bisherigen Infos sollte es mir auch schon möglich sein meine Lösung zu basteln!
zap
**
Beiträge: 20
Registriert: Di, 11.01.2005 13:18
Wohnort: Hannover

Beitrag von zap »

Hi,

ich muss mich auch mal korrigieren:

Code: Alles auswählen

  ' FALSCH: aktive zeile abfragen. zaehlung beginnt bei 0
  ' RICHTIG: die zaehlung beginnt bei 1

Code: Alles auswählen

  for i = 0 to table.Count-1
    row = table.getByIndex(i)
    ' FALSCH: row ist der falsche Variablenname. Es handelt sich 
    ' um eine Spalte, also muesste man "column" nehmen
    ' man koennte auch "Feld" nehmen, wenn man es als Datenbankfeld interpretiert
    s = s & row.label & ": " & row.string & vbLf
  next
zap
Antworten