texttabelle daten einfügen über Range (gelöst)

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

Moderator: Moderatoren

benjy
*
Beiträge: 19
Registriert: Mo, 03.10.2005 12:20

texttabelle daten einfügen über Range (gelöst)

Beitrag von benjy »

hi ich möchte ein lehre texttabele mit daten füttern.

Code: Alles auswählen

otabrange = newTable.getCellRangeByName("A1:E1")
 		otabrange.setdata = (Array ("121","325","-----","15873","sdertert"))
irgendwie funktionert das nicht kann mir einer helfen?

grus benjy
Zuletzt geändert von benjy am Sa, 10.06.2006 06:27, insgesamt 1-mal geändert.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey benjy
irgendwie funktionert das nicht kann mir einer helfen?
Was bekommst du denn für eine Fehlermeldung?

Bei Texttabellen kannst du mit "setData " an sich nur Zahlen (Werte) schreiben - keine Texte (Stings), so wie du das da machst .

Du könntest es mit "setDataArray" versuchen - der kann auch Strings enthalten. Bisher ahbe ich den allerdings nur auf die komplete Tabelle angewendet - sollte aber auch auf Tabellenbereiche funktionieren.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
benjy
*
Beiträge: 19
Registriert: Mo, 03.10.2005 12:20

Beitrag von benjy »

setDataArray kommt diese fehlermeldung hatte ich als erstes versucht
BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.lang.IllegalArgumentExeption
Massage: arguments len differ!.

kurzzeitig hatte ich es auch mal mit der ganzen tabelle probiert allerdings war der Array nicht so gros wie die meine Tabelle. ab und zu hatte ich auch noch ander fehler meldungen wie variable nicht belegt und ähnliches. habe halt schon einiges probiert.

grus benjy
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Benjy,
Massage: arguments len differ!.
Na ja, das ist , wie ich gedacht hatte: kannst du nur auf die gesammte Tabelle anwenden.

Also, ich denke in deinem Fall kommst du am besten voran durch Befüllen der einzelnen Zellen - über eine Schleife. Da kannst du dann selektiv wirklich alles erledigen :-)

Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Hallo Benjy,

der Code zu setdata und wahrscheinlich auch setdataarray ist falsch.
Setdata und Setdataarrays sind Methoden und keine Properties.

Richtig ist:

Code: Alles auswählen

otabrange.setdata(array(array("121","325","-----","15873","sdertert")))
'oder
otabrange.setdataarray(array(array("121","325","-----","15873","sdertert")))
Wobei bei setdata statt des Textes nur Nullen eingetragen werden.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
benjy
*
Beiträge: 19
Registriert: Mo, 03.10.2005 12:20

Beitrag von benjy »

diese schreibweise hatte ich auch schon probiert nur mit der einschränkung das ich kein doppeltes Array gemommen hatte.
allerdings wird mir jetzt einiges klar das erste Array definiert die Zeilen und im zweiten sind die Daten der einzelnen Zellen.

danke Thomas
danke Michael

das hilft mir nun doch schon sehr weiter. Da es mit dem text bei der setData wariante nicht klapt habe ich es jetzt über eine schleife gelöst die den text in jede zelle einseln schreibt. und danach werden alle numerischen zellen noch Formatiert. dann stimmt es. Dieses SetData kommt aber mit sicherheit bei meinem zweiten projeckt zum einsatz. *g

Gruß benjy
Antworten