Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Matze69 am 19.07.06 - 21:37:54
-
Hallo,
wie kann ich die Namen der einzelnen Felder am Schnellsten rausfinden? Muß ich über Designer - dann die Maske suchen, dann das Feld suchen.... oder gibt es einen schnelleren Weg?
-
Deine Frage ist jetzt nicht ganz verständlich: Suchst Du alle Felder (also Frontend-Gestaltungselemente), oder suchst Du Items (also im Backend die einzelnen Inhalte tragende Elemente eines Notes-Dokuments)? Das eine hat nämlich mit dem anderen nicht unbedingt etwas zu tun ...
Bernhard
-
ich suche nur den Feldnamen - brauche den, um mir ne Ansicht zu basteln oder um dieses Feld in einer anderen DB auslesen zu lassen.
-
Also suchst Du den Item-Namen und nicht den Feldnamen!
Du kannst nun hergehen und über die document properties (zweiter Tab) die Item-Namen durchgehen. Du kannst Dir aber auch Hilfsmittel heranziehen, zum Beispiel den "DocViewer" von MayflowerSoft (benutze mal die Suche des Forums - den Link zu der Freeware habe ich hier schon öfters gepostet), oder Du brauchst sowas häufiger und brauchst eine ganz komfortable Möglichkeit (dann bietet sich z.B. Ytria's ScanEZ an).
Worauf ich hier besonders hinweisen will: Es braucht kein "Feld" (Frontend-Designelement), um ein Item in einem Notes-Dokument zu erzeugen. Ich habe genügend Apps geschrieben, die mehr Items haben, die nicht durch Felder in Masken erzeugt werden, als es Felder in Masken gibt. Gib Dich also nicht dem Trugschluss hin, dass Du alle Items durch Felder in Masken repräsentiert findest.
Bernhard
-
Wenn es bearbeitbare Felder sind kannst Du Dir ein Smarticon basteln mit folgender Formel:
@Prompt([ok];"Aktueller Feldname";@ThisName)
Andreas
-
Ich hab mir mal ein SmartIcon gemacht und der Rückgabewert der Formel ist immer "" ?
Was ist mein Fehler...?
-
Die Funktion lässt sich nur innerhalb von Feldformeln, also Eingabeübersetzung, -validierung nutzen.
Siehe Designer-Hilfe:
Verwendung
Diese @Funktion gibt außerhalb einer Feldformel eine leere Zeichenfolge zurück.
Axel
-
Danke.
Also würde es mit einem SmartIcon niemals hinhauen.
-
Lad von Ytria ScanEz runter. Oder von MartinScott Noteman oder das Tool das Bernhard schon genannt hat bevor du hier ewig und fünf Tag rumprobierst. Alternativ kannst du dir auch noch ein Script schreiben das alle Items eines Dokumentes ausliest und ausgibt.
-
Nein, nein ;)
Mich hat die Sache mit dem SmartIcon nur interessiert. Ich finde solche kleinen Helferlein halt immer toll. Den Debugger habe ich mir auf solch ein Icon gelegt und Schablonenwechsel usw.
Den Hinweis mit dem Feldnamen kann man sicher auch manchmal gebrauchen, bevor man in den Eigenschaften des Doks sucht oder in den berechneten Teilmasken forscht.
Für solche kleinen Dinge habe ich immer ein offenens Ohr.
-
Ich verwende die folgende Formel in einem SmartIcon um mir die Felder und teilweise deren Inhalt anzeigen zu lassen:
_maxLength := 20 ;
@For( i := 1 ; i <= @Elements( @DocFields ) ; i := i + 1 ;
_wert := @Left(@Implode( @GetField( @DocFields ) ) ; _maxLength ) ;
_strOut := _strOut : ( @DocFields + " = " +
@If( @IsText( _wert ) ; _wert ; @Text( _wert ) ) ) ) ;
@Prompt([OkCancelList]; "Felder"; "" ; "" ; @Trim( _strOut ) )
Bei Dokumenten mit sehr vielen Feldern (genauer Grenzwert ist mir nicht bekannt) liefert die Formel leider eine Fehlermeldung.
Hubert
-
Sorry für den falschen Tip. Mal wieder ein Beispiel für eine nicht ganz zuende gedachte Funktion...
Andreas
-
... lass uns nicht dumm sterben - wie heißt denn die Fehlermeldung?
Toni
-
Fehlermeldung lautet:
Die Formel hat die maximal zulässige Speicherbelegung überschritten.
Hubert
-
Traumhaft, danke dafür! ;D
Leider werden Datums- und Zahlenwerte nicht richtig angezeigt.
Ich habe mal versucht die Formel um ein @IsNumber zu erweitern, aber ging auch nicht.
Gruss, Matthias
-
Also ich finde den Weg über den von Bernhard schon erwähnten DocViewer (http://www.maysoft.com/web3.nsf/page/products-document_viewer-overview) immer noch am schönsten.
Erstens ist das Tool kostenlos und zweitens zieht man sich einfach kurz das gewünschte Dokument in die Datenbank, öffnet es und bekommt eine schöne Liste aller Items und der zugehörigen Werte.
Das benutze ich besonders gerne bei der Entwicklung von Workflows. Da kann man dann wunderbar die einzelnen Steps nachvollziehen.
-
Sorry, da hab ich wohl wegen der Fehlermeldung mit dem Speicher etwas zuviel hin- und hergedaddelt und eine nicht korrekte Version geposted. Mit der folgenden funktionieren nun auch Datum- und Zeitwerte:
_maxLength := 30 ;
@For( i := 1 ; i <= @Elements( @DocFields ) ; i := i + 1 ;
_wert := @GetField( @DocFields ) ;
_strOut := _strOut : ( @DocFields + " = " +
@Left( @Implode( @If( @IsText( _wert ) ; _wert ; @Text( _wert ) ) ) ; _maxLength ) ) ) ;
@Prompt([OkCancelList]; "Felder"; "" ; "" ; @Trim( _strOut ) )
Hubert
-
Fehlermeldung lautet:
Die Formel hat die maximal zulässige Speicherbelegung überschritten.
Hubert
Was auch klar ist: Messagebox (oder @Prompt) haben eine beschränkte Ausgabekapazität - irgendwann ist da Schluss. Den genauen Wert für CANCELLIST habe nicht herausfinden können, aber es dürften wohl weniger als 16k sein. Es wird dann ja auch unübersichtlich.
Da man in die DB dann ja immer auch einen Button werfen muss, halte ich die Lösung von MayFlowerSoft für entschieden freundlicher, vor allem, da man zu Vergleichszwecken die Feld-/Feldwert-Tabellen auch ausdrucken kann.
Ytrias ScanEZ ist natürlich der Rolls Royce solcher Werkzeuge (und kann noch viel, viel mehr - unter anderem kann man Feldwerte natürlich auch gleich ändern oder direkt miteinander vergleichen usw. usf.), aber dafür kostet das Ding auch sein Geld. Für einen Rolls Royce sehr preiswert, aber eben nicht kostenlos.
Bernhard
-
Ich plaziere die Funktion nicht in einer Datenbank, sondern als SmartIcon in der Symbolleiste (deshalb auch mit @functions). Damit steht sie mir unabhängig von der jeweiligen Anwendung zur Verfügung. Um mal eben schnell die Feldinhalte zu betrachten halte ich das für eine ausreichende Lösung.
Das Tool von MayFlower kannte ich bislang nicht, macht aber auf mich auch einen recht positiven Eindruck.
Hubert