Seite 1 von 1

Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 8:40
von Rolf Ramacher
Hallo zusammen,

ich erzeuge Listen in form RTF die dann angezeigt oder auch ausgedruckt werden können.
Die Datei heisst immer gleich. Word läßt aber das erzeugen mit den neuen Daten nicht zu. das funktioniert nur zeitversetzt verzögert.

kann ich das irgendwie umgehen??

Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 9:42
von HaPe
Hallo Rolf !
Ich erzeuge Listen in form RTF die dann angezeigt oder auch ausgedruckt werden können.
Die Datei heisst immer gleich. Word läßt aber das erzeugen mit den neuen Daten nicht zu. das funktioniert nur zeitversetzt verzögert.
Ich kann dir nicht ganz folgen :-(

Du erzeugst per Word-Automation RTF-Listen und stellst diese den Usern zum Anzeigen oder Ausdruck zur Verfügung?
Soweit richtig?
Geht es, wenn du bei der Automation zunächst einen temporären Dateinamen verwendest, die RTF-Liste erstellen läßt und gaaanz zum Schluß kopiert Xbase++ Code die erstellte Liste in den IMMER gleichen Dateinamen?
Das Erstellen der Liste muss ja nicht im gleichen Verzeichnis sein in dem später der Anwender die Datei öffnen kann.

Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 10:04
von Rolf Ramacher
die heisst immer gleich und immer in dem entsprechend eingestellten verzeichnis. die anzeige oder druckfunktion gilt für alle Listen
an die function wird der pfad und die Datei übergeben. d.h. ich müsste mir den neuen dateinamen merken.

aber du bringst mich auf eine idee. ich werde mal testen, wenn der Dateiname existiert ich diesen dann löschen kann. und dann neu erzeugen.

Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 11:09
von Rolf Ramacher
das funktioniert auch nicht. die RTF gibt es nicht wird auch nicht erzeugt.
ich hatte es vorher mit memowrit - da gab es keine Meldung

jetzt habe ich es versucht mit Fcreate - und erhalte die fehlermeldung
fehler beim erzeugen der Datei -

trotz admin-rechte

was ist zu tun?

Code: Alles auswählen

	If File ("artikeller.rtf")
		FErase("artikelker.rtf")
	Endif
	Dateischreiben("artikelker.rtf",cRtf)
	
	hier die function dateischreiben
	#include "Fileio.ch"

Function Dateischreiben(cDatei,cDateiText)
	nHandle := FCreate( cDatei, FC_NORMAL )
	nLen:=Len(cDateiText)
   IF nHandle == -1 
      msgbox("Fehler beim Erzeugen der Datei:", FError() )
   ELSE 
      FWrite( nHandle, cDateiText, nLen ) 
      FClose( nHandle ) 
   ENDIF 

 Return Nil


Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 12:04
von Scarmo
Hallo Rolf

Ich gehe davon aus, dass der Code korrekt ist und es im Beispiel nur ein Tippfehler ist (bei "if file..." prüfst Du auf einen anderen Dateinamen wie bei FErase). Stimmt denn der Pfad zur Datei? Ich würde die Datei immer inkl. Pfad abfragen.

Gruss
Marco

Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 12:04
von ramses
Hallo Rolf

benutzt du ein Netzwerklaufwerk? Dann könnte es an den verschiedenen Varianten des Directory Cache von Windows liegen. Wenn es der Systemadmin zulässt könnte dieses deaktiviert werden andernfalls müsstest du fortlaufende unterschiedliche Dateinamen verwenden.

Re: Erzeugen RTF

Verfasst: Fr, 29. Mai 2020 15:41
von Rolf Ramacher
nein kein Netzlaufwerk. ist auch bei mir die lokale Platte. aber jetzt scheint es anscheinend doch zu funktionieren.

ich werde es beobachten was passiert

Re: Erzeugen RTF

Verfasst: Sa, 30. Mai 2020 8:46
von Herbert
Verwendest du anschliessend Word-Funktionen?
Falls ja, Word blockiert die Datei, so lange von da in Verwendung.

Zudem ist es nicht zu empfehlen, immer denselben Dateinamen zu verwenden. Was machst denn, wenn zwei Benutzer gleichzeitig dasselbe tun?

Re: Erzeugen RTF

Verfasst: Di, 02. Jun 2020 12:33
von Rolf Ramacher
Hallo Herbert

nein ich nehme Word nur zum drucken. Der gleiche Dateiname funktioniert deshalb, da die RTF-Datei in einem lokalen Ordner abgelegt wird.

Re: Erzeugen RTF

Verfasst: Fr, 07. Aug 2020 11:51
von Herbert
Zur Info, unabhängig vom bisherigen Thema.

Unsere Programme packen eine .rtf und füllen an bestimmten Stellen Werte aus Tabellen ein. So weit so klar.
Bei einem Kunde geht das Ersetzen plötzlich nicht mehr. Warum? Ein neues Release der Kaspersky-Antivirensoftware blockiert das. Momentan konnten wir den nur ausschalten, damit das weiter klappt.
Also, wer solche Phänomene trifft, auf den Anti-Virus schauen...

Re: Erzeugen RTF

Verfasst: Fr, 07. Aug 2020 22:22
von AUGE_OHR
hi,
Rolf Ramacher hat geschrieben: Fr, 29. Mai 2020 11:09

Code: Alles auswählen

	If File ("artikeller.rtf")
		FErase("artikelker.rtf")
	Endif
wenn man eine Datei löscht sollte man prüfen (!) ob die Aktion Erfolg hatte

Code: Alles auswählen

IF FErase( <cFilename> ) --> nSuccess 
Rolf Ramacher hat geschrieben: Fr, 29. Mai 2020 11:09 nein kein Netzlaufwerk. ist auch bei mir die lokale Platte
seit Windows 7 besteht das Problem mit dem LOKALEN Cache da der "Lokale Server" immer aktiviert ist.

Re: Erzeugen RTF

Verfasst: Di, 11. Aug 2020 8:55
von Rolf Ramacher
ich mache das jetzt nicht mehr mit memowrit, sondern mit fcreate . funktioniert jetzt mit fcreate