Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: stitze am 15.02.05 - 09:28:10

Titel: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 09:28:10
Hallo,

ich Programmiere gerade an einem System, das bei bestimmten Sachverhalten eine eMail generieren und verschicken soll, klappt alles wunderbar, so wie ich mir das gedacht habe, nur an einer kleinen Sache hackt es ein wenig.
In einem Formular befindet sich ein bearbeitbares Namensfeld. Ich möchte nun am Ende meiner generierten eMail diesen Namen stehen haben, eigentlich keine große Sache, jedoch bekomme ich beim zuweisen des Feldes in eine String Variable einen Type Missmatch Error.
Eine Konvertierung mit der Str - Funktion führt ebenfalls zu einem Type missmatch. Kann mich mal jemand aufklären was ich nicht beachtet habe, hat jemand eine Idee, mit freundlichen Grüßen

Sebastian
Titel: Re: Namensfeld konvertieren
Beitrag von: Thomas Schulte am 15.02.05 - 09:33:36
Leser oder Autoren Feld, kein Item verwendet, wie hast du den Code geschrieben. Lauter Faktoren die für die Fehlerfindung wichtig wären die du aber leider mit keinem Wort erwähnst. Les dir mal den Post eins weiter unten komplett durch, dann merkst du wie ein Mangel an Information zu nicht hinreichend fundierten Aussagen führen kann.
Titel: Re: Namensfeld konvertieren
Beitrag von: Driri am 15.02.05 - 09:34:17
Hallo und herzlich willkommen im Forum,

ich glaube wir könnten dir wesentlich besser helfen, wenn Du ein bißchen Code spendieren würdest.
Titel: Re: Namensfeld konvertieren
Beitrag von: Semeaphoros am 15.02.05 - 09:35:24
Hallo Sebastian, willkommen im Forum.

Kannst Du mal die Zeile posten, in der Du diesen Namen auslesen willst? Es scheint mir, dass dort die Syntax wohl nicht ganz passt. Mit STR-Funktion nehme ich mal an, dass wir hier von LotusScript ausgehen und nicht von Formelsprache?


PS: Wenns "hackt", dann würde ich in den Garten gehen, der Bildschirm könnte sonst kaputt gehen .....  ;D
Titel: Re: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 09:53:21
strBodyText = strBodyText + viewDoc.GetItemValue( "rpAersteller" )

Das war meine erste Idee hat nicht funktioniert

Meine zweite Idee war

strBodyText = strBodyText + Str(viewDoc.GetItemValue( "rpAntragsteller" ))

Klappt auch nich ebenfalls Type Missmatch

PS: Ich habe meinen Monitor in einem Blumenbet gepflanzt, das klappt ganz gut mit dem "Hacken", nur mit dem gießen muss man vorsichtig sein ;)
Titel: Re: Namensfeld konvertieren
Beitrag von: Driri am 15.02.05 - 09:56:12
GetItemValue liefert dir einen Array zurück. Wenn Du nur einen Wert in dem Feld hast, müßtest Du das so machen :

strBodyText = strBodyText + CStr(viewDoc.GetItemValue( "rpAersteller" )(0))

MIt (0) holst Du den ersten Wert aus dem Array,
Titel: Re: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 09:58:56
Sauber, so funktioniert das, ich hatte auch schon probiert

strBodyText = strBodyText + Str(viewDoc.GetItemValue( "rpAersteller" )(0))

dass hat aber auch nicht geklappt, also denke ich jetzt mal, dass das Problem an dem CStr lag, kannst du mir auch noch was zu den unterschieden der beiden funktioenn sagen.

PS.: vielen dank für die sehr schnelle hilfe
Titel: Re: Namensfeld konvertieren
Beitrag von: Thomas Schulte am 15.02.05 - 10:01:50
Warum Umständlich wenn es einfach doch auch geht.
mit viewdoc.getfirstitem("rpAersteller").text bekommst du aus dem Item direkt den Text zurückgeliefert und wenn es mehrere Einträge sind das ganze als zusammengesetzten Text.
Titel: Re: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 10:03:43
Naja ich bin noch kein Notes Experte, ich komme aus der Oracle, C++/C# Ecke und habe nur einen zwei Wochen Kurs Lotus Notes belegt (nur Formelsprache) und beshcäftige mich gerade mal 5 Tage auf der Arbeit mit Notes, mir fehlt die Erfahrung :(

Aber Danke für deinen Tipp...
Titel: Re: Namensfeld konvertieren
Beitrag von: Driri am 15.02.05 - 10:04:30
Gerne.

Str wandelt Zahlen in Text um, wobei Vorzeichen beachtet werden (z.B. bei positiven Zahlen wird ein Leerzeichen vorgestellt, bei negativen ein Minuszeichen).
CStr ist universeller, d.h. auch für Datum, etc. nutzbar.

Ehrlich gesagt, hab ich Str noch nie verwendet. Könnte mir höchstens vorstellen, daß das bei der Formattierung von Zahlenreihen Sinn macht.


P.S. : Hab gerade deinen letzten Post gelesen. Du solltest Dir auf jeden Fall ein gutes Buch besorgen. Und die Designer-Hilfe ist extrem empfehlenswert.
Titel: Re: Namensfeld konvertieren
Beitrag von: Semeaphoros am 15.02.05 - 10:06:24
... und wenn man es genau wissen will, empfiehlt es sich, die Designer-Hilfe zu Rate zu ziehen.

Ingo, ich denke mal, STR ist da, weil es in anderen Sprachimplementationen vorhanden ist. Daneben dürfte es deutlich schneller sein als CStr (was aber wohl in einer "normalen" Anwendung überhaupt keine Rolle spielen dürfte)
Titel: Re: Namensfeld konvertieren
Beitrag von: Driri am 15.02.05 - 10:07:17
Warum Umständlich wenn es einfach doch auch geht.
mit viewdoc.getfirstitem("rpAersteller").text bekommst du aus dem Item direkt den Text zurückgeliefert und wenn es mehrere Einträge sind das ganze als zusammengesetzten Text.

Wobei das in dem Fall etwas komisch aussieht, wenn da mehrere Namen quasi als Unterschrift am Ende des Textes stehen.
Titel: Re: Namensfeld konvertieren
Beitrag von: Driri am 15.02.05 - 10:08:15
@Jens :

Mag sein, ich hab mich von Anfang an mit CStr begnügt und hatte einfach noch nie die Notwendigkeit, Str zu nutzen.  ;)
Titel: Re: Namensfeld konvertieren
Beitrag von: Thomas Schulte am 15.02.05 - 10:11:42
Wobei das in dem Fall etwas komisch aussieht, wenn da mehrere Namen quasi als Unterschrift am Ende des Textes stehen.
Dafür das dem nicht so (einfach) ist kann man ja im Form Design sorgen. Kein Multivalue erlauben und schon hat man es nich mehr mit purer Ignoranz oder Dummheit, sondern nur noch mit Böswilligkeit zu tun.
Und manchmal kann dieser Effekt ja durchaus erwünscht sein.
Titel: Re: Namensfeld konvertieren
Beitrag von: Semeaphoros am 15.02.05 - 10:12:55
No problem, Ingo, war nur als ergänzende Info gedacht gewesen, weil Du nach dem Warum gefragt hattest (indirekt :) ) Ich würd mich an Deiner Stelle auch nicht von CStr abhalten lassen, mir rutscht meistens das STR raus, aus alten Gewohnheiten. Wenns dann nen TypeMismacht gibt, greif ich mich an den Kopf: "Natürlich, mit C convertiert er besser ... ;) "
Titel: Re: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 10:13:12
Ja die Hilfe ist sehr gut, aber ich finde sie manchmal etwas unübersichtlich, dass mag aber auch an meiner geringen Erfahrung im Umgang mit Lotus Notes liegen. Man hat mir auch ein Buch zur hand gegeben, Domino Designer R5 aus dem C&L Verlag, das Buch ist aber eher Schlecht als Recht... hätte jemand von euch eine Buchempfehlung, etwas Kompendienartiges, wo sich ein investition von üblichen 50 € lohnt?
Titel: Re: Namensfeld konvertieren
Beitrag von: koehlerbv am 15.02.05 - 10:14:07
Auch von mir ein "Herzlich willkommen" im Forum - und gleich noch einen Tip: Das Pluszeichen ist NICHT der String-Concenator, sondern das Ampersant-Zeichen "&". Das Pluszeichen kann Dich in bestimmten Konstellationen übel in die Falle führen (von der Sprachdefinition hier mal ganz abgesehen).

HTH,
Bernhard
Titel: Re: Namensfeld konvertieren
Beitrag von: stitze am 15.02.05 - 10:16:18
Hallo, danke auch für diesen Tipp.