Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: alex90 am 18.07.13 - 09:59:04

Titel: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: alex90 am 18.07.13 - 09:59:04
Hallo Zusammen,

ich habe folgendes Problem:

Ich möchte einen größeren Field Hint einbauen als möglich ist.

Die Lösung hatte ich schon , jedoch darf ich kein Java Script nutzen, da wir bis Notes 5 bzw. 6 supporten müssen.

Ich bin also an Lotusscript gebunden.

Meine Idee war ich habe einen Defaultvalue und ersetzte diesen bei "OnFocus" durch naja nichts =)

Um dem immer wieder löschen vorzubeugen , wollte ich das ganze mti einem Counter versehen , der daran erinnert , dass der Defaultvalue bereits gelöscht wurde.

So nach dem Motto If(Counter == 0){Value = "" , Counter = 1}

Jedoch weiß ich nicht, wie ich das Problem unkompliziert in Lotusscript bewältigen kann , da ich mit Script bisher kaum gearbeitet habe.

Vorschläge wären absolut erwünscht, ich danke euch =)

Gruß

Alexander
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: ascabg am 18.07.13 - 10:05:34
Hallo,

Was heisst bei Dir "... einen groesseren Feld-Hint einbauen als moeglich...".

Und der Default-Value wird nur einmal gesetzt, beim ersten Oeffnen der Maske. Wenn du diesen waehrend
die Maske bereits geoeffnet ist veraenderst, musst Du diese auch neu laden.

Und hat das Feld denn kein Label (Beschriftung)?
Dann denke einmal ueber die Verwendung von Hotspots nach.


Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Glombi am 18.07.13 - 10:14:25
Also den Defaultwert dafür zu nehmen, halte ich für keine gute Idee. Wenn jemand das Dokument speichert, ohne den Cursor in das Feld gesetzt zu haben, bleibt der Wert erhalten. Es sei denn, Du nimmst den beim Speichern bspw. in der Eingabeumsetzung heraus - alles sehr aufwendig.
Was hälst Du von einem statischen Text unter dem Feld, der ggf. noch über eine HideWhen Formel gesteuert wird: Beim Lesen und Drucken verbergen oder wenn bereits was im Feld steht.

Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: alex90 am 18.07.13 - 10:41:42
Hallo Andreas'se? :D


Das Feld wird definitiv ausgewählt und verändert werden, ist also ein Pflichtfeld, den Defaultvalue habe ich gewählt , da der dort zu definierende Wert größer sein darf , also im Field unter Properties den "Field Hint" zu benutzen.

Ich möchte halt beim Fokus den Wert des Feldes auf "" also nichts setzen.   Kann man nicht mit

Call source.FieldSetText( "Feld", "" )

arbeiten? Die Frage ist halt wie man wie gesagt "einfach" den akutellen Wert des Feldes einmal löschen kann, mit Java kein Problem, aber das darf ich halt nicht benutzen.


gruß

Alex

Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Glombi am 18.07.13 - 10:54:37
Folgende Formel im OnFocus Event wäre richtig:

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
If uidoc.FieldGetText("Subject") = "Das ist der Vorgabetext" Then
   Call uidoc.FieldSetText("Subject", "")
End If


Subject ist der Feldname. Das musst Du für Dein Feld ändern.
"Das ist der Vorgabetext"  musst Du durch Deinen Vorgabetext ersetzen.

Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: alex90 am 18.07.13 - 11:11:36
Perfekt, dass ist das genau das was ich gesucht habe.

Danke Vielmals,

ich prügel mich grad durch die Lotusscript Introduction^^

( http://www.eview.com/eview/viewr5.nsf/0/1628d76e931f450385256a55007c94e8/$FILE/LotusScript%20for%20the%20Terrified%20R5%20Update.pdf )

Danke nochmal, jetzt funzt es natürlich 
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Glombi am 18.07.13 - 11:23:42
An Deiner Stelle würde ich mir die Designer Hilfe vornehmen. Da gibt's auch ne Menge Beispiele, die man mit Copy-Paste übernehmen kann (was den typsichen Notes Programmierer auszeichnet  ;D ).

Es wäre natürlich hilfreich, wenn Du den Code auch nachvollziehen kannst und verstehst, was da gemacht wird. Dazu musst Du Dich durch die Klassenhierarchie von Lots Notes hangeln und die Methoden und Properties der Objekte kennen lernen.

Oftmals werden dann auch die entsprechenden Aufrufe in Java genannt. Das wird für Dich von Vorteil sein.
Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: alex90 am 18.07.13 - 13:13:39
Darf ich nochmal ne Frage hinterher schicken? Die Methode funktioniert nicht optimal , ich habs grad vereinfacht:

Initialisiering in der Form:

Sub Initialize
   Dim counter As Integer
   counter = 0
End Sub

Im Feld entering:

Sub Entering(Source As Field)
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   If counter = 0 Then Call uidoc.FieldSetText("Materialaufbau"," ")
End Sub


Im Feld Exiting:

Sub Exiting(Source As Field)
   If counter = 0 Then counter = 1
End Sub

-------------------------

Problem:

Er scheint die variable Counter nicht zu verändern bzw. nicht zu speichern, daher wird jedes mal der Wert innerhalb des Feldes gelöscht...


Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: ascabg am 18.07.13 - 13:20:34
Hallo,

Weil keine globale Variable, die in allen Script-Teilen der Maske bekannt ist.
Du definierts diese im Initialize und somit ist diese aus nur im Initialize bekannt.


Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Peter Klett am 18.07.13 - 13:22:42
Dim counter As Integer

gehört in die Declarations, dann gilt die Variable auch außerhalb der Sub Initialize
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: alex90 am 18.07.13 - 15:04:51
Ah ok -.^^   , das hätte eigentlich klar sein müssen, danke vielmals =)
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Glombi am 18.07.13 - 15:24:56
Wozu brauchst Du denn den Counter?
In meinem Beispielscript frage ich ja nach dem Vorgabewert ab und nur wenn der im Feld steht, wird es gelöscht. Das kann dann nur einmal passieren, es sei denn, jemand tippt das alles wieder mühsam ein  ;D

Andreas
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: Peter Klett am 18.07.13 - 15:37:45
Hm, wenn man sich das ganze dem Sinn nach anschaut, sind da noch mehrere Dinge dran zu bemängeln.

1. counter ist eine globale Variable, die solange existiert, solange das Dokument geöffnet ist. Beim erneuten Öffnen des Dokuments ist sie wieder 0 und der Feldinhalt wird "plattgemacht"

2. If counter = 0 Then Call uidoc.FieldSetText("Materialaufbau"," "): Warum füllst Du das Feld mit einem Leerzeichen?
If counter = 0 Then Call uidoc.FieldSetText("Materialaufbau","") wäre besser
Titel: Re: Notes Field Hint erweitern - bzw. Default Value löschen
Beitrag von: ascabg am 18.07.13 - 15:51:41
@Peter,
Eventuell reciht es ja auch schon, eine Kombination aus Counter und Neues Dokument abzufragen, bevor man das Feld
ueberschreibt.
If uidoc.IsNewDoc AND Counter = 0 Then ....


@Glombi
Wenn er nun aber jetzt keinen 'Vorgabewert mehr verwendet, sondern wieder auf den Hint ausgewichen ist?
Was aus meiner Sicht ja noch weniger Sinn macht, da der Hint-Wert ja eh sofort aus dem Feld geloescht wird, wenn
der Cursor in das Feld gestellt wird.


Andreas