Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-24 Diskussionsfäden Jörg Kleinfeld
Guten Tag Jörg Schmidt,

am Freitag, 23. Juli 2010 um 01:57 schrieben Sie:

 Zitatanfang 

 option explicit
 dim ser_man
 dim desk
 ...

 Ich denke Du hast nichts übersehen,

= Zitatende =

das bedeutet, dass eine als variant deklarierte Variable auch 
Daten vom Typ object aufnehmen kann!? Geht das sogar soweit, 
dass alle Typen funktionieren?

-- 
Mit freundlichen Grüßen
Jörg Kleinfeld

mailto:joerg.kleinf...@arcor.de
http://www.bsv.de


Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-24 Diskussionsfäden Jörg Schmidt
Hallo,

Jörg Kleinfeld schrieb:
 am Freitag, 23. Juli 2010 um 01:57 schrieben Sie:

  Zitatanfang 

  option explicit
  dim ser_man
  dim desk
  ...

  Ich denke Du hast nichts übersehen,

 = Zitatende =

 das bedeutet, dass eine als variant deklarierte Variable auch
 Daten vom Typ object aufnehmen kann!? Geht das sogar soweit,
 dass alle Typen funktionieren?

Ein bisschen komische Frage weil sich meine Aussage garnicht auf die
Variablendeklaration im DEtail bezog sondern auf das geschilderte
Problem insgesamt und weil ich nicht verstehe wieso Du sowas jetzt
fragst, denn wäre es nicht so wäre ja der ganze Code überhaupt nicht
lauffähig gewesen.

 das bedeutet, dass eine als variant deklarierte Variable auch
 Daten vom Typ object aufnehmen kann!?

ja.

Du kannst Dich auch leicht davon überzeugen das sich der Typ mit
Zuweisung des Inhalts ändert:

dim ser_man
Msgbox TypeName(ser_man)
Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)
Msgbox TypeName(ser_man)

(die erste MsgBox liefert Empty weil nicht explizit mit Typ angegebene
Variablen Variant sind und dann als Empty initialisiert werden, die
zweite MsgBox liefert Object)

 Geht das sogar soweit,
 dass alle Typen funktionieren?

ja, sofern ich nichts Spezielles übersehe ist das im Konkreten wohl so.


Anmerkung:
In Deiner ersten mail liegt kein Type-Problem im Eigentlichen vor,
welches auf einer Variable beruhen würde, lediglich versuchst Du
fälschlich auf eine Zelle innerhalb der Auflistung aller
Tabellenblättter zuzugreifen, was jedoch nur für ein Tabellenblatt geht
und der Wortlaut der Fehlermeldung ist dann mißverständlich.
Nachdem ich bereits geschrieben hatte das:

---
Du kannst Dich auch davon überzeugen das Du die Fehlermeldung deshalb
bekommst weil in:

 Set Cell = Sheet.getCellByPosition (1, 1)

garkein Zugriff auf das richtige Objekt besteht, weil hier von OOo
beliebige Ausdrücke der Zeile davor, z.B. selbst wenn die Mappe weniger
als 11 Blätter hat, der Ausdruck:

Set Sheet = Doc.Sheets(10)

nicht zu einem Fehler führt, sondern dieser quasi immer nur als
Doc.Sheets() verstanden wird.
---


sollte das aber auch verständlich sein.



Gruß
Jörg


-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-22 Diskussionsfäden John Kirste

Hallo,


Zitat von Jörg Schmidt joesc...@web.de:

Ich denke das Folgende tut das Gewünschte, sofern ich die Frage richtig
verstehe:
Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)
Set desk = ser_man.createInstance(com.sun.star.frame.Desktop)
Dim no_arg()
Set Doc = desk.loadComponentFromURL(private:factory/scalc, _blank,
0, no_arg)


nun habe ich Deinen Anfang geringfügig erweitert, um in eine Zelle  
etwas hinzuschreiben und erhalte regelmässig die Fehlermeldung Typen  
unverträglich :-(


option explicit
dim ser_man
dim desk
dim Doc
dim Sheet
dim Cell
dim no_arg()

Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)
Set desk = ser_man.createInstance(com.sun.star.frame.Desktop)
Set Doc = desk.loadComponentFromURL(private:factory/scalc,  
_blank,0, no_arg)

Set Sheet = Doc.Sheets(0)
Set Cell = Sheet.getCellByPosition (1, 1)
Cell.String = HALLO



Was habe ich da übersehen? Ich stehe ein wenig auf dem Schlauch...

Gruss,
John




-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-22 Diskussionsfäden Jörg Kleinfeld
Guten Tag John Kirste,

am Donnerstag, 22. Juli 2010 um 15:44 schrieben Sie:

 Zitatanfang 

 nun habe ich Deinen Anfang
 geringfügig erweitert, um in eine Zelle
 etwas hinzuschreiben und erhalte
 regelmässig die Fehlermeldung Typen  
 unverträglich :-(

 option explicit
 dim ser_man
 dim desk
 dim Doc
 dim Sheet
 dim Cell
 dim no_arg()

= Zitatende =

Aus dem Handbuch StarOffice Basic
Thema Explizite Variablendeklaration:

In seiner einfachsten Form lautet der Befehl für eine explizite 
Variablendeklaration:
Dim MyVar
Dieses Beispiel deklariert eine Variable mit dem Namen MyVar und dem Typ 
Variant. Ein
Variant ist eine Universalvariable, die alle möglichen Werte aufnehmen kann, 
etwa
Zeichenfolgen, ganze Zahlen, Fließkommazahlen und Boolean-Werte. 

Der Datentyp object ist nicht in dieser Liste! Versuche einmal die Variablen 
vom Typ
her zu definieren: 

dim ser_man as object;
usw.

-- 
Mit freundlichen Grüßen
Jörg Kleinfeld

mailto:joerg.kleinf...@arcor.de
http://www.bsv.de


Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-22 Diskussionsfäden John Kirste

Hallo,

Am 22.07.2010 17:19, schrieb Jörg Kleinfeld:

Der Datentyp object ist nicht in dieser Liste! Versuche einmal die Variablen 
vom Typ
her zu definieren:

dim ser_man as object;


das hatte ich zunächst auch gemacht. Es führte sofort zu einer 
Fehlermeldung :-(


Gruss,
John



usw.




-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-22 Diskussionsfäden Jörg Schmidt
Hallo,

John Kirste schrieb:
 nun habe ich Deinen Anfang geringfügig erweitert, um in eine Zelle
 etwas hinzuschreiben und erhalte regelmässig die
 Fehlermeldung Typen
 unverträglich :-(

 option explicit
 dim ser_man
 dim desk
 dim Doc
 dim Sheet
 dim Cell
 dim no_arg()

 Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)
 Set desk = ser_man.createInstance(com.sun.star.frame.Desktop)
 Set Doc = desk.loadComponentFromURL(private:factory/scalc,
 _blank,0, no_arg)
 Set Sheet = Doc.Sheets(0)
 Set Cell = Sheet.getCellByPosition (1, 1)
 Cell.String = HALLO



 Was habe ich da übersehen? Ich stehe ein wenig auf dem Schlauch...

Ich denke Du hast nichts übersehen, einzig ist hier wohl die API wieder
etwas 'murksig'.


Die LÖsung ist das Du die 'Langform' des Zugriffes verwenden mußt, also:

statt:

Set Sheet = Doc.Sheets(0)

mußt du verwenden:

Set Sheet = Doc.Sheets.getByIndex(0)
oder:
Set Sheet = Doc.getSheets.getByIndex(0)

Du kannst Dich auch davon überzeugen das Du die Fehlermeldung deshalb
bekommst weil in:

 Set Cell = Sheet.getCellByPosition (1, 1)

garkein Zugriff auf das richtige Objekt besteht, weil hier von OOo
beliebige Ausdrücke der Zeile davor, z.B. selbst wenn die Mappe weniger
als 11 Blätter hat, der Ausdruck:

Set Sheet = Doc.Sheets(10)

nicht zu einem Fehler führt, sondern dieser quasi immer nur als
Doc.Sheets() verstanden wird.

z.B. würde dEin Code auch in der Form funktionieren:

Set Sheet = Doc.Sheets(0)
Set Cell = Sheet.getByIndex(0).getCellByPosition (1, 1)

obwohl das ja quasi 'doppelt-gemopppelt' ist.


Eine eigentliche Erklärung habe ich nicht, ich kenne diese Dinge nur
weil man auch bei der Programmierung in StarBasic immer wieder mal auf
solche Ungereimtheiten stößt.



Gruß
Jörg


-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-21 Diskussionsfäden Stefan Weigel

Hallo John,

Am 21.07.2010 07:46, schrieb John Kirste:


kann ich Calc-Tabellen auch mittels eines VBS-Scripts erzeugen lassen?
Welche Klassen muß ich da verwenden?


Möglicherweise hilft Dir ein Beispiel für die Automation von OOo 
Writer mit VBA und Du kannst daraus Erkenntnisse auf VBS übetragen.


http://wiki.services.openoffice.org/wiki/User:Stefanw/Tipps/Allgemein/OOo_mit_VBA_steuern 



Dort sind auch Links angegeben mit weiteren Informationen zum Thema.

Bei Michael Dannenhöfer 
(http://www.dannenhoefer.de/faqstarbasic/index.html) findest Du 
Beispiele und Tipps, wie man OOo mit StarBasic bzw. OOo Basic 
steuert. Die so vorgeführten Objekte, Eigenschaften und Methoden 
kannst man auch anderen Programmumgebungen nutzen.


Ein anderer Ansatz wäre, dass man die Calc-Datei erstellt, ohne 
dabei OpenOffice.org zu benutzen. Eine ODT-Datei ist ja nichts 
Anderes, als ein ZIP-Archiv mit XML-Dateien. Speichere mal eine 
Calc-Datei, in der Du in Zelle A1 HALLO hinein geschrieben hast. 
Entpacke die Calc-Datei mit einem ZIP-Programm und schau in die 
content.xml. Dort findest Du im Klartext das Wort HALLO wieder. Du 
könntest mit Deinem VBS-Script die XML-Datei mit Deinen Daten füllen 
und das Paket wieder einpacken.


Gruß

Stefan

--
www.datenpilot.org

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-21 Diskussionsfäden Jörg Schmidt
Hallo,

John Kirste schrieb:
 kann ich Calc-Tabellen auch mittels eines VBS-Scripts
 erzeugen lassen?

Ich denke das Folgende tut das Gewünschte, sofern ich die Frage richtig
verstehe:

Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)
Set desk = ser_man.createInstance(com.sun.star.frame.Desktop)
Dim no_arg()
Set Doc = desk.loadComponentFromURL(private:factory/scalc, _blank,
0, no_arg)



Gruß
Jörg


-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Calc-Tabellen automatisch erzeugen?

2010-07-21 Diskussionsfäden John Kirste

Hallo,

Am 21.07.2010 21:36, schrieb Jörg Schmidt:

kann ich Calc-Tabellen auch mittels eines VBS-Scripts
erzeugen lassen?


Ich denke das Folgende tut das Gewünschte, sofern ich die Frage richtig
verstehe:

Set ser_man = WScript.CreateObject(com.sun.star.ServiceManager)

...


Klasse!!! Das ist genau der Anfang, den ich suchte.

Gruss,
John

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



[de-users] Calc-Tabellen automatisch erzeugen?

2010-07-20 Diskussionsfäden John Kirste

Hallo,

kann ich Calc-Tabellen auch mittels eines VBS-Scripts erzeugen lassen? 
Welche Klassen muß ich da verwenden?


Gruss,
John

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org