Ms word + Open Office

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Ms word + Open Office

Beitrag von Koverhage »

Hallo,

habe folgendes Problem:
Ein Kunde hat einen Samba Server und auf dem Arbeitsplatz OpenOffice
und MS Word installiert.

Wenn der Kunde jetzt über Software ein MS Word Dokument drucken
möchte, wird folgende XppError.log erstellt.

------------------------------------------------------------------------------
FEHLERPROTOKOLL von "O:\hka\wexe\le0.EXE" Datum: 30.04.2007 11:18:09

Xbase++ Version : Xbase++ (R) Version 1.90.331
Betriebssystem : Windows XP 05.01 Build 02600 Service Pack 2
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: Visible
-> VALTYPE: L VALUE: .F.
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Unbekannter Name.
Member-Variable ist f r dieses Objekt unbekannt
oError:filename : NIL
oError:genCode : NIL
oError:operation : Visible
oError:osCode : -2147352570
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------

Called from WORDFILLANSHKA(1089)
Called from HK_ANSBEN(3473)
Called from LE230(613)
Called from (B)CREATEMENUSYSTEM(1755)
Called from MAIN(325)

In Open Office gibt es Visible nicht. Was könnte ich tun damit Open Office erst gar nicht angesprochen wird, bzw. gibt es eine Lösung dafür?
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo Klaus,

benutzt du den gleichen Code von Andreas bezlg. Wórd-drucken??
schau dir mal thema "xbpprtf" in Drucken - Vielleicht ist in deinem quellcode ein unterschied.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Klaus,

kann es sein, dass du das Standardanwendungsprogramm aufrufst und dieses auf diesem Rechner OpenOffice ist ?
Normalerweise übergibt man doch den Namen des Anwendungsprogrammes (ActiveX Beispiele von Alaska oder das oben erwähnte) und dann dürfte OpenOffice auch nicht angesprochen werden.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Hallo Hubert,

jein. Hier der falsche Code, woher immer der auch kommt ;-)

Code: Alles auswählen

// Erzeugen einer ActiveX-Komponente
  oWord := CreateObject("opendocument.WriterDocument.1")
  IF Empty( oWord )
     oWord := CreateObject("Word.Application")
  ENDIF
  IF Empty( oWord )
    MsgBox( mess1 )
  ENDIF
Das heisst es wird abgeprüft ob Open Office installiert ist, nur wenn
nicht wird auf MS Word geprüft.

also dann den richtigen Code:

Code: Alles auswählen

// Erzeugen einer ActiveX-Komponente
  oWord := CreateObject("Word.Application")
  IF Empty( oWord )
    MsgBox( mess1 )
    Return NIL
  ENDIF
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Klaus.

Wenn ich das richtig verstehe, erzeugst Du ein Active-X-Objekt, je nach vorhandener Installation von Word oder OpenOffice, was m.E. nicht mit der gleichen ProgID gehen dürfte, aber geschenkt. Und wenn es OpenOffice ist, gibt es die iVar "visible" nicht, das ist das Problem, richtig? Ich denke, Du solltest Dich für diesen Fall mit "set/getNoIvar()" auseinandersetzen, also der Definition für eine Methode, die angesprochen wird, wenn eine Instanzvariable (visible) nicht existiert.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Koverhage hat geschrieben:

Code: Alles auswählen

// Erzeugen einer ActiveX-Komponente
  oWord := CreateObject("opendocument.WriterDocument.1")
Also ist das die Zeile, die OpenOffice Writer startet. :idea:

Ich würde bei solchen 'gewünschten' Auswahlen auf der Systemseite einen Schalter oder eine Auswahlbox einbauen wo sich der Kunde einstellen kann mit was er drucken will (speichern in INI oder Registry). Dann für jedes Programm eine eigene Routine. Die ist übersichtlicher als eine Routine für alle Programme... oder per Do Case verschachteln.

Wenn das Programm aber immer von Word ausgehen kann, warum nicht.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Hubert,

momentan ist MS Word die Vorgabe, habe keine Ahnung wie ich das mit Open Office bzw. MS Word hinkriegen soll. Der Schalter ist nicht das Problem, das wäre in ein paar Minuten erledigt.
Gibt es bei Open Office überhaupt Textmarken, etc. und wie würde das ersetzen der Bookmarks in Open Office funktionieren.
Vielleicht hat ja jemand hier im Forum ein Beispiel hierfür.
Mir ist bekannt das mehrere Kunden Open Office einsetzen.

Tom,

mir würde es schon reichen wenn ich wüsste das MS Word nicht installiert ist.
Werde die Abfrage mal umbasteln, erst MS Word abfragen, dann Open Office.
So kann ich dann den Schalter visible unterdrücken.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Klaus,
schaue doch mal bitte in die Wissensbasis!
Da hat der Günter einen wunderbaren Abriss zu genau diesem Thema (Open Office und ActiveX) geschrieben!
(Die Suchfunktion ist doch was wunderbares...)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Klaus,

schau mal hier

http://www.xbaseforum.de/viewtopic.php? ... pen+office

Günther hat eine ZIP mit Sachen zu OpenOffice und ActiveX gemacht, die man dort laden kann.

Olaf hat vor kurzem einen shareware COM Assistant (oder so ähnlich) genannt, mit dem er die COM Objecte analysiert. Dieser kann aus einer COM Bibliothek eine Windows Hilfedatei generieren mit allen Methoden etc.
Ich meine es war bei Drucken von rtf oder Word Dokumenten...

Schau mal hier ...
http://www.devcomponents.com/comassistant/download.html
Gruß
Hubert
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Herunterladen kann man den COMAssistant hier:

http://www.devcomponents.com/comassistant/download.html
Viele Grüße
Wolfgang
Antworten