[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/privacyprotection/cron/task/anonymize_ip.php on line 83: A non-numeric value encountered
Inoffizielles deutsches Xbase-Forum • Dateien-Kollision
Seite 1 von 1

Dateien-Kollision

Verfasst: Do, 26. Apr 2012 7:05
von Jan
Wenn mein Kunde eine Excel-Datei öffnet (Dateiauswahl über XbpFileDialog)

Code: Alles auswählen

// Das Excel-Objekt erstellen
oExcel := CreateObject("Excel.Application")
// Hat dass funktioniert?
IF Empty(oExcel)
   MsgBox("Excel ist nicht installiert", "Achtung")
   RETURN .F.
ENDIF

// Excel auf jeden Fall nicht anzeigen
oExcel:visible := .F.

// Rückmeldungen von Excel unterdrücken
oExcel:DisplayAlerts := .F.

// Die übergebene Datei öffnen
oBook := oExcel:workbooks:open(cDateiname)
oSheet := oBook:ActiveSheet
und dann manuell eine andere XLS öffnet, wird die per ActiveX geöffnete Datei ebenfalls mit aufgeführt. Wenn das das manuell geöffnete Excel geschlossen wird, wird die per ActiveX geöffnete Datei ebenfalls mit geschlossen. Ganz böse Falle.

Die beim Kunden installierte Excel-Version ist 2002. Bei mir ist 2010 installiert, da passiert das nicht.

Wie kann ich das beim Kunden verhindern? Der ist verständlicherweise nicht begeistert, das er während langwieriger Arbeiten mit meinem Programm nicht parallel mit Excel arbeiten kann.

Jan

Re: Dateien-Kollision

Verfasst: Do, 26. Apr 2012 7:20
von AUGE_OHR
Jan hat geschrieben:Die beim Kunden installierte Excel-Version ist 2002. Bei mir ist 2010 installiert, da passiert das nicht.
der Kunde möge auf die Win7 / 2010 wechseln weil IMHO die "alte" Version es nicht kann.
erst ab der 2007 (Ribbon) konnte man dann eine weiter Instanz aufrufen der auch im Xbase++ Thread läuft.

Re: Dateien-Kollision

Verfasst: Do, 26. Apr 2012 7:28
von Jan
LOL. Ich glaube, darüber wird der Kunde sich nicht freuen. Die arbeiten in der gesamten Firma mit Office 2002, größtenteils auf Windows XP. Und werden nicht nur wegen meinem kleinen Programm wechseln.

Aber Danke für die Bestätigung meines Verdachts. Genau das war auch meine Befürchtung gewesen. Und meine Hoffnung ist, das man das mit irgendeinem Schalter , Parameter, o. ä. einstellen kann.

Jan

Re: Dateien-Kollision

Verfasst: Do, 26. Apr 2012 8:32
von georg
Hallo, Jan -


da gibt es eine einfache Lösung: nicht mit Excel arbeiten, während parallel mit Office Automation (!) gearbeitet wird.

Das liegt daran, dass Office Automation (meist) im Hintergrund ausgeführt wird. Öffnet der Anwender jetzt eine Excel-Tabelle, wird geprüft, ob Excel ausgeführt wird. Ergebnis: ja, wird ausgeführt. Also wird das neue Sheet dem laufenden Excel "untergeschoben", wie wir es beim normalen Betrieb auch erwarten würden. Und damit sind die Probleme "programmiert".

Das ist so "by Design".

Meines Wissens hatte ich die gleichen Probleme auch bei Office 2010, so dass auch dies keine Option darstellt.


Gruss,

Georg

Re: Dateien-Kollision

Verfasst: Do, 26. Apr 2012 8:43
von Rolf Ramacher
Hi Jan,

muß der Kunde im dienem geöffenten Excel etwas ändern. ? Vielleicht hilft es ja , wenn du visible:=.t. stellst

Re: Dateien-Kollision

Verfasst: Do, 26. Apr 2012 23:35
von AUGE_OHR
georg hat geschrieben:Öffnet der Anwender jetzt eine Excel-Tabelle, wird geprüft, ob Excel ausgeführt wird. Ergebnis: ja, wird ausgeführt.
das wäre noch eine Möglichkeit es aus Xbase++, per Thread, zu prüfen und dem Anwender "abzuweisen"
georg hat geschrieben:Meines Wissens hatte ich die gleichen Probleme auch bei Office 2010, so dass auch dies keine Option darstellt.
der grosse Unterschied ab der Office 2007 ist nicht die Ribbonbar sondern "warum" sie verwendet wird.
ein Menu gilt ja nur für ein Fenster also eine Instanz. ab Office 2007 kann man aber mehre Instanzen öffnen und alle arbeiten mit der selben Ribbonbar.
Rolf Ramacher hat geschrieben:visible:=.t.
ja ... mit einer "grossen" Meldung "bitte warten ..." ;)