Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Matze69 am 19.07.06 - 21:37:54

Titel: Name der einzelnen Felder rausfinden
Beitrag 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?
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: koehlerbv am 19.07.06 - 21:55:16
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Matze69 am 19.07.06 - 22:26:09
ich suche nur den Feldnamen - brauche den, um mir ne Ansicht zu basteln oder um dieses Feld in einer anderen DB auslesen zu lassen.
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: koehlerbv am 19.07.06 - 22:33:36
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Glombi am 20.07.06 - 09:09:19
Wenn es bearbeitbare Felder sind kannst Du Dir ein Smarticon basteln mit folgender Formel:

@Prompt([ok];"Aktueller Feldname";@ThisName)


Andreas
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: botschi am 20.07.06 - 10:17:56
Ich hab mir mal ein SmartIcon gemacht und der Rückgabewert der Formel ist immer "" ?
Was ist mein Fehler...?
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Axel am 20.07.06 - 10:30:01
Die Funktion lässt sich nur innerhalb von Feldformeln, also Eingabeübersetzung, -validierung nutzen.

Siehe Designer-Hilfe:

Zitat
Verwendung

Diese @Funktion gibt außerhalb einer Feldformel eine leere Zeichenfolge zurück.

Axel
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: botschi am 20.07.06 - 10:31:57
Danke.
Also würde es mit einem SmartIcon niemals hinhauen.
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Thomas Schulte am 20.07.06 - 10:46:06
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.
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: botschi am 20.07.06 - 10:49:34
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.
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: HH am 20.07.06 - 14:21:40
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Glombi am 20.07.06 - 14:34:17
Sorry für den falschen Tip. Mal wieder ein Beispiel für eine nicht ganz zuende gedachte Funktion...

Andreas
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: ata am 20.07.06 - 14:41:23
... lass uns nicht dumm sterben - wie heißt denn die Fehlermeldung?

Toni
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: HH am 20.07.06 - 14:54:44
Fehlermeldung lautet:

Die Formel hat die maximal zulässige Speicherbelegung überschritten.

Hubert
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: botschi am 20.07.06 - 16:50:34
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: Driri am 20.07.06 - 17:04:40
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.
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: HH am 20.07.06 - 18:46:50
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: koehlerbv am 20.07.06 - 18:57:10
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
Titel: Re: Name der einzelnen Felder rausfinden
Beitrag von: HH am 20.07.06 - 19:43:27
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