Autor Thema: Alternative zu uidoc.Copy und uidoc.Paste?  (Gelesen 3960 mal)

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Alternative zu uidoc.Copy und uidoc.Paste?
« am: 08.07.15 - 16:08:07 »
Hallo,

ich habe ein soweit ganz gut funktionierendes Script, dass den Inhalt eines Feldes eines geöffneten (nicht gespeicherten) Dokuments kopiert und in ein Feld einer anderen Form einfügt.
Also im groben:

Code
		uidoc.Gotofield("Body")
		Call uidoc.Selectall
		Call uidoc.Copy
		Set tempdoc = New NotesDocument(db)
		tempdoc.Form = "Dummy"
		tempdoc.SaveOptions = "0"
		Call tempdoc.Save(True, False, True)
		Set tempuidoc = ws.Editdocument(True, tempdoc)
		tempuidoc.Gotofield("Body")
		Call tempuidoc.Paste

Das Problem ist aber, dass in Einzelfällen der Benutzer vorher schon etwas in die Zwischenablage kopiert hat und der Inhalt mit Ausführen des Sripts verloren geht oder dass ungewollt alter Inhalt aus der Zwischenablage eingefügt wird, wenn das Quell-Feld leer ist (dann wird durch SelectAll und Paste die Zwischenablage nicht gelöscht)

Gibt es daher eine andere Möglichkeit?


Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #1 am: 08.07.15 - 16:16:20 »
Wie wäre es, wenn du mit einer Variable arbeitest? Das sollte doch auch gehen.

Variable = uidoc.FieldGettext("Feld")

und dann

doc.Feld = Variable

Chris
« Letzte Änderung: 08.07.15 - 16:34:24 von Klafu »
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Mitch

  • Gast
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #2 am: 09.07.15 - 07:06:33 »
Ich mache auch sowas, allerdings übergebe ich den Inhalt eines Richtextfeldes nach Word.

Beim "uidoc.Copy" kommt ein Fehler wenn nichts markiert ist. Den fange ich ab, so dass ich zumindest nicht bereits in der Zwischenablage vorhandene Daten ins Ziel paste.

Bei erfolgreichem Kopieren sind vorhandene Daten in der Zwischenablage aber weg, da habe ich auch keine Lösung für.

Gruß,

Mitch

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #3 am: 09.07.15 - 07:27:41 »
Wie wäre es, wenn du mit einer Variable arbeitest? Das sollte doch auch gehen.

Variable = uidoc.FieldGettext("Feld")

und dann

doc.Feld = Variable

Chris

Meinem Verständnis nach bekomme ich mit FieldGettext ja nur den reinen Text. In RichText-Feldern können aber auch Bilder und Anhänge enthalten sein.
Die würden damit verloren gehen.  :-\

@Mitch: Das ist ja genau ein Teil des Problems. Wenn das Feld leer ist fange ich auch den Fehler beim Copy ab. Aber damit wird nicht die Zwischenablage geleert und beim anschließenden Paste wird der noch vorhandene Inhalt der Zwischenablage eingefügt.


Ich überlege schon, ob ich eine weitere Dummy-Maske erstelle, nur um die Zwischenablage zwischenzuspeichern und anschließend wiederherzustellen zu können. Aber das könnte ich mir sparen, wenn es eine andere Möglichkeit gäbe, den Inhalt eines RichText-Feldes in eine andere Maske zu übertragen ohne Copy&Paste zu verwenden.



Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Mitch

  • Gast
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #4 am: 09.07.15 - 07:47:14 »
@Mitch: Das ist ja genau ein Teil des Problems. Wenn das Feld leer ist fange ich auch den Fehler beim Copy ab. Aber damit wird nicht die Zwischenablage geleert und beim anschließenden Paste wird der noch vorhandene Inhalt der Zwischenablage eingefügt.
Wenn der Fehler beim Copy geworfen wird, wird natürlich nicht gepastet.

Die Idee mit dem Zwischenspeichern eventuell vorhandenen Inhalts finde ich gar nicht schlecht. Im Idealfall wird der Nutzer die neue Maske gar nicht sehen, da der Prozess so schnell vorbei ist.

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #5 am: 09.07.15 - 08:18:54 »
Wenn der Fehler beim Copy geworfen wird, wird natürlich nicht gepastet.

Hmm, der Paste passiert erst einige Zeilen später. Da müsste ich wohl im Fehlerhandling eine Variable setzen, die ich prüfen kann.

Die Idee mit dem Zwischenspeichern eventuell vorhandenen Inhalts finde ich gar nicht schlecht. Im Idealfall wird der Nutzer die neue Maske gar nicht sehen, da der Prozess so schnell vorbei ist.
Ich finde die Idee ist eher die Notlösung, da ich nicht gerne mit Hilfsmasken arbeite, deren Dokumente ich wieder löschen muss etc. Das Ganze ist doch ziemlich umständlich. Für ein bisschen Feld1 nach Feld2 kopieren.  :-\
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Mitch

  • Gast
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #6 am: 09.07.15 - 08:25:45 »
Hmm, der Paste passiert erst einige Zeilen später. Da müsste ich wohl im Fehlerhandling eine Variable setzen, die ich prüfen kann.
Genauso mache ich das auch.

Ich finde die Idee ist eher die Notlösung, da ich nicht gerne mit Hilfsmasken arbeite, deren Dokumente ich wieder löschen muss etc. Das Ganze ist doch ziemlich umständlich. Für ein bisschen Feld1 nach Feld2 kopieren.  :-\
Ja, ist es. Musst du denn speichern? Ich habe noch nicht mit mehreren "uidocs" experimentiert. Vielleicht kann man ja hin und her wechseln. Also neue Temp-Maske aufmachen, pasten, Quelldokument in den Vordergrund holen, kopieren, Zieldokument öffnen, pasten, Temp-Maske nach vorne und wieder kopieren. Dann schließen ohne zu speichern.

Offline DominoDancing

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
  • Kugel im Käfig, lsmf, hurz ...
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #7 am: 09.07.15 - 10:12:13 »
Hallo K.,  ;D

"... dass den Inhalt eines Feldes eines geöffneten (nicht gespeicherten) Dokuments kopiert ..." <- und dass das Dokument nicht gespeichert ist, ist tatsächlich Voraussetzung?! Warum wird dann der Inhalt des Feldes nicht gleich in das temporäre Dokument geschrieben, wenn der Inhalt im Ursprungsdokument selbst gar nicht gespeichert wird? Ansonsten wäre ja bei der temporären Maske ein einfaches 'Formeln übernehmen Werte aus gewähltem Dokument' mit bearbeitbarem/berechnetem RichText-Feld Body und Wert/Vorgabewert = Body ausreichend ...

Viele Grüße
René
... ich fühl' mich so ... Regenbogen ... ;D
... man muss die Ursache des Problems finden ... oder eine Tüte Glitzerfeenstaub ...
... Ich bin rhythm, I'm a dancer und I don't like Influenzer ...

Offline schroederk

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.924
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #8 am: 09.07.15 - 11:09:22 »
@ René:
Stell dir das Erstellen eines Berichts vor. Im Bericht werden automatisiert Platzhalter angezeigt, die der Anwender ersetzen kann.
Der Bericht darf aber erst gespeichert werden, dadurch entstehen Entwürfe, die ich schwer bis gar nicht von gewünschten Entwürfen unterscheiden kann.
Daher der Inhalt eines RichText-Feldes das in eine Hilfsmaske kopiert wird, damit das Hilfsdokument gespeichert werden kann.
Speichern muss ich das Hilfsdokument, da ich ansonsten den Inhalt nicht das entsprechende Item bekomme.
Suchen & Ersetzen (also z.B. Funktionen wie CreateNavigator, CreateRange und FindAndReplace) funktionieren meines Wissens nach nur bei Items.
Da ich hier nach Alternativen frage, kenne ich keinen anderen Weg, um den Inhalt eines nicht gespeicherten Feldes irgendwie übernehmen zu können.

Vermutlich werde ich aber tatsächlich eine weitere Hilfsmaske zum Sichern der Zwischenablage einbauen müssen.
Ich wäre ja gerne weniger egoistisch, aber was hab ich davon?

Offline DominoDancing

  • Aktives Mitglied
  • ***
  • Beiträge: 141
  • Geschlecht: Männlich
  • Kugel im Käfig, lsmf, hurz ...
Re: Alternative zu uidoc.Copy und uidoc.Paste?
« Antwort #9 am: 09.07.15 - 12:27:36 »
Hallo K.,

... dös habsch net geschnallt *gehirnvereisung*.  ;D Nein, ich kenne auch keine andere Möglichkeit, Inhalte nicht gespeicherter Richtext-Felder übernehmen zu können. Daher war mein Ansatz eher der, die Herangehensweise zu ändern, um dies vermeiden zu können. Aber ich entnehme Deinen Worten, dass dies so nicht möglich zu sein scheint.  :-[

Sorry
René
... ich fühl' mich so ... Regenbogen ... ;D
... man muss die Ursache des Problems finden ... oder eine Tüte Glitzerfeenstaub ...
... Ich bin rhythm, I'm a dancer und I don't like Influenzer ...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz