Domino 9 und frühere Versionen > ND8: Entwicklung

Alternative für "Editgotofield"?

(1/3) > >>

manboo8000:
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?

Klafu:
Das klingt für mich alles nach einer Teilmaske in einer Dialogbox.
Die Basics solltest du dafür aber am Besten können

manboo8000:
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

--- Ende Code ---


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.

Tode:
Am besten fängst Du in der Hilfe bei @DialogBox mit lesen an... Dann sparst Du Dir den ganzen Script- Code...

Keydins:
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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln