Autor Thema: Alternative für "Editgotofield"?  (Gelesen 5005 mal)

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Alternative für "Editgotofield"?
« am: 09.06.15 - 16:04:09 »
Hey, ich habe da mal wieder eine Frage. Bitte nicht gleich mit Steinen werfen, ich lerne noch :-)

Und zwar möchte ich folgendes erreichen:

In einem Feld (z. B. Bemerkungen) stehen verschiedene Daten drin, die bei Bedarf aber angepasst werden sollen/müssen. Klar könnte man jetzt das Dokument einfach bearbeiten, zum Feld scrollen und dort Sachen rausschmeißen, finde ich aber nicht wirklich elegant.

Habe jetzt schonmal mit Editgotofield gebastelt, sodass der Cursor also gleich beim richtigen Feld ist, finde ich aber auch nicht so ganz perfekt.

Am Liebsten hätte ich folgendes:

- Eine separate Aktionsschaltfläche im Dokument
- Aktion zeigt den Inhalt des Feldes in einem Popup (Prompt?) an und man kann dort den Text ändern.
- Der geänderte Text wird in das Feld übernommen.

Geht das ohne großartig mit Lotus Script anzufangen?

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Alternative für "Editgotofield"?
« Antwort #1 am: 09.06.15 - 16:07:11 »
Das klingt für mich alles nach einer Teilmaske in einer Dialogbox.
Die Basics solltest du dafür aber am Besten können
„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...“

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Alternative für "Editgotofield"?
« Antwort #2 am: 09.06.15 - 16:25:31 »
Grundlagen sind soweit vorhanden (auch wenn ich viel nachgucken muss).

Also das Feld um das es geht, wird durch Benutzer mittels einer Aktion befüllt. Die Aktion sieht so aus:
Code
Sub Click(Source As Button)
	Dim session As New notessession     
	Dim ws As New notesuiworkspace
	Dim db As notesdatabase
	Dim dialogDoc As notesdocument
	Dim uidoc As notesuidocument
	
	Set uidoc = ws.currentdocument
	Set db = session.currentdatabase
	uidoc.EditMode=True
	
	zs = Chr(13) & Chr(10)
	
	
	Set doc = db.createdocument
	flag = ws.DialogBox( "Bemerkungen" ,True , True, False, False, False, False, "Bemerkungen", doc )
	If doc.dialogBemerkungenText(0) = "" Then
		Call uidoc.Close
		Exit Sub
	End If
	
	tempText = zs+"---------------- " + Cstr(Now) & " / " + session.commonusername + " ----------------" +  zs + doc.dialogBemerkungenText(0)+zs          
	
	Call uidoc.FieldAppendText("Bemerkungen", tempText )
	Call uidoc.Save
 	Call uidoc.refresh
	Call uidoc.Save
	Call uidoc.Close
End Sub


Nun möchte ich auf mehr oder weniger elegante Weise halt auch über eine Aktion es (einem begrenzten Kreis) ermöglichen, daraus auch Sachen wieder zu entfernen.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Alternative für "Editgotofield"?
« Antwort #3 am: 09.06.15 - 16:26:12 »
Am besten fängst Du in der Hilfe bei @DialogBox mit lesen an... Dann sparst Du Dir den ganzen Script- Code...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Alternative für "Editgotofield"?
« Antwort #4 am: 10.06.15 - 08:16:10 »
Ist das Bemerkungsfeld ein Textfeld oder ein RichTextFeld?

Bei einem normalen Textfeld besteht das Problem, dass die Menge an Text, die es aufnehmen kann, begrenzt ist. Wird die Grenze überschritten gibt dir Lotus Notes beim Speichern einen 32k-Fehler aus.

Ist bei uns auch mal nach Jahren in einer Anwendung passiert, bei der wir ein Textfeld als 'Historie' genutzt hatten. Der bei jedem Bearbeiten geschriebene Text war ca. 5 Zeilen lang, bei einer freien Kommentarfunktion könnte da allerdings deutlich mehr Text zusammen kommen und das 'Problem' dann deutlich eher auftreten.

Optional zum Einsatz eines RichTextFeldes kann man die Feldeigenschaft 'Summary' eines Textfeldes auf 'False' setzen (NotesItem.IsSummary = false). Dadurch kann man den Inhalt jedoch nicht mehr in Ansichten anzeigen, aber das ist für Bemerkungsfelder mit viel Text ja eher unüblich.
 
 
Gruß Dirk
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Alternative für "Editgotofield"?
« Antwort #5 am: 10.06.15 - 11:05:10 »
Derzeit ist es ein normales Textfeld. Dass das Feld überläuft, kann an sich nicht passieren, da sich die erfassten Bemerkungen in Grenzen halten und jedes Dokument immer nur eine gewisse Gültigkeit hat, in der es auch zur Verfügung steht.


Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Alternative für "Editgotofield"?
« Antwort #6 am: 10.06.15 - 11:23:31 »
Ich hab ein ähnliches Szenarion in einer meiner Datenbanken.
Dort gibt es ein paar Felder die "wichtig" sind und deshalb nur gesondert änderbar sein sollen.

Ich hab eine Teilmaske erstellt und dort die Textfelder im einer Tabelle im vorher - nachher Vergleich dargestellt. Der Aufruf der Teilmaske über die Dialogbox aus dem Dokument (in einem Button) ist relativ überschaubar:

Code
Aenderungen = ws.DialogBox ("Teilmaske", True , True, False, True, False, False, "Dialog Box",,True)
Beim schließen der Teilmaske werden dann die Änderungen in das Dokument geschrieben.

Guck dir einfach mal die verschiednen Möglichkeiten von Dialogbox und Teilmasken an.

Chris
„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...“

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Alternative für "Editgotofield"?
« Antwort #7 am: 11.06.15 - 09:34:05 »
so, also ich habe es jetzt soweit, dass ich die Teilmaske eingebaut habe und der normale User über eine Schaltfläche was eintragen kann.

Ich habe es auch soweit hin, dass ein bestimmter Userkreis über eine Schaltfläche die Dialogbox aufbekommt, un die eingetragenen Werte aus dem Feld angezeigt bekommt und bearbeiten kann. Was nicht klappt ist, dass Änderungen anschließend auch übernommen werden.

Irgendwie bin ich zu blöd dafür. Ich dachte, dass wenn in der Dialogbox auf "ok" geklickt wird (Rückgabe = @True?), die Werte mit einem @Replace übernehmen könnte. Das haut aber irgendwie nicht hin.

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Alternative für "Editgotofield"?
« Antwort #8 am: 11.06.15 - 10:02:55 »
Bist du, wenn die Teilmaske kommt, im Ursprungsdokument im Bearbeitungsmodus (uidoc.EditMode=True)?

Ergänzung: Achja. Ein @Replace brauchst du dabei garnicht. Das Feld in der Teilmaske muss so heißen wie das Feld im Dokument.
« Letzte Änderung: 11.06.15 - 10:08:14 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...“

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Alternative für "Editgotofield"?
« Antwort #9 am: 11.06.15 - 10:09:57 »
danke, jetzt gehts - komplett über Formeln

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Alternative für "Editgotofield"?
« Antwort #10 am: 12.06.15 - 12:33:27 »
lässt sich eigentlich in einer bestehenden Datenbank, in der es auch schon Dokumente mit Bemerkungen gibt, problemlos aus dem Feld eine Teilmaske bauen? Werden dabei die vorhandenen Bemerkungen übernommen?

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Alternative für "Editgotofield"?
« Antwort #11 am: 12.06.15 - 12:48:53 »
Du kannst in einer Datenbank jederzeit eine Teilmaske aufbauen, die den aktuellen Wert eines Feldes aus dem Dokument anzeigt. Es muss sich dabei nicht mal um ein Feld handeln, welchs im Dokument dargestellt wird.

Chris
„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...“

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz