Autor Thema: Verständnisfrage: Building Databases Tutorial  (Gelesen 3803 mal)

Offline yabo

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
  • Notes / Domino Neuling
Verständnisfrage: Building Databases Tutorial
« am: 21.03.11 - 14:20:09 »
Hi,

ich lerne gerade Notes und Designer mit diesem Tutorial*.
In Kapitel 2, S. 17 ist folgendes Beispiel gegeben:

Code
@For(n :=1; n<=@Elements(FirstName); n := n + 1;
FIELD FullName := @If(n=1;FirstName[n] + " " + LastName[n]; FullName :
(FirstName[n] + " " + LastName[n]))); FullName

If FirstName contains:
"John" : "Patty" : "Mary"

and LastName contains:
"Williams" : "Keats" : "Foster"

the result in the FullName field is:
"John Williams; Patty Keats; Mary Foster"

Was genau macht die @If-Abfrage und was bedeuten die "[n]" nach FirstName und LastName?



*Building Databases Tutorial: http://www-1.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&dc=DA400&uid=swg27007539&loc=en_US&cs=UTF-8&amp;lang=en&rss=ct463lotus

Vielen Dank
yabo
Viele Grüße

Marten

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #1 am: 21.03.11 - 14:25:17 »
Aus zwei einzelnen Listen Firstname und Lastname wird eine neue Liste Firstname + " " + Lastname gebildet.
Wenn der Schleifenzähler bei 1 ist, wird erstmalig ein String als erstes Element der neuen Liste gebildet, ansonsten wird das bisherige Ergebnis (in Fullname) um das neue Konstrukt erweitert.

Bernhard

klaussal

  • Gast
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #2 am: 21.03.11 - 14:42:26 »
Falsch gelesen; es gibt ja 2 x if.....  :-\

Offline yabo

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
  • Notes / Domino Neuling
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #3 am: 21.03.11 - 14:50:07 »
Aus zwei einzelnen Listen Firstname und Lastname wird eine neue Liste Firstname + " " + Lastname gebildet.
Wenn der Schleifenzähler bei 1 ist, wird erstmalig ein String als erstes Element der neuen Liste gebildet, ansonsten wird das bisherige Ergebnis (in Fullname) um das neue Konstrukt erweitert.

Bernhard

Leider zu kompliziert für mich als Einsteiger. Was macht z.B. die @If-Anweisung?
Die Beispiele der Hilfeseite sind leider ähnlich schwer.
Viele Grüße

Marten

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #4 am: 21.03.11 - 14:53:22 »
Was macht z.B. die @If-Anweisung?
Genau das habe ich beschrieben.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #5 am: 21.03.11 - 14:54:46 »
Hallo,

Was ist daran kompliziert.

Wenn Zaehler = 1, dann "Vorname" + "Nachname" in das Feld "FullName" geschrieben.

Wenn Zaehler > 1 dann wird der bereits vorhandene Inhalt des Feldes "FullName" um "Vorname" + "Nachname" erweitert.


Andreas

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #6 am: 21.03.11 - 15:06:19 »
Zitat
@If evaluates a condition; if the condition is True, Lotus Notes/Domino performs the action appearing immediately after that condition, and stops. If the condition is False, Lotus Notes/Domino skips to the next condition and tests it, and so on. If none of the conditions is True, Lotus Notes/Domino performs the else_action.
Syntax
@If( condition1 ; action1 ; condition2 ; action2 ; ... ; condition99 ; action99 ; else_action )
Parameters
condition
Expression that returns a Boolean. If this expression returns True, action is performed. If it's False, Lotus Notes/Domino skips to the next condition, if there is one. Otherwise, Lotus Notes/Domino performs else_action.
action
An action to be performed or a value to be returned if the governing condition returns True.
else_action
An action to be performed or a value to be returned if none of the conditions returns True.
Usage
In its simplest form, the If statement looks like this: @If( condition ; action ; else_action ).
You can list up to 99 conditions and corresponding actions, followed by just one action to be performed when all the conditions are False. As soon as a condition evaluates to True, Lotus Notes/Domino performs the associated action and ignores the remainder of the @If statement.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #7 am: 21.03.11 - 15:13:55 »
@Elements liefert die Anzahl der Einträge im Feld "Firstname", also 3.

Wenn n = 1 ist, setze jeweils den ersten Wert von Firstname und Lastname in das Feld Fullname.
Wenn n > 1, dann ergänze das Feld Fullname um First- und Lastname.

Die Schleife wird solange durchlaufen bis n > 3 ist.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #8 am: 21.03.11 - 15:24:08 »
If FirstName contains:
"John" : "Patty" : "Mary"

Um das Feld FirstName mit dem Inhalt zu versehen, schreibst Du

FIELD FirstName := "John" : "Patty" : "Mary"

Durch den Doppelpunkt werden die einzelnen Namen als neue Elemente in das Feld aufgenommen. Das Feld FirstName enthält also danach drei Einträge.

FirstName[1] ist "John", FirstName[2] ist "Patty" usw.

Folglich ist in einer Schleife, in der n die Zählvariable ist, FirstName[n] "John", wenn n = 1 ist.

In der Schleife wird das Feld FullName gefüllt, n ist die Zählvariable der Schleife.

FIELD FullName := @If(n=1;FirstName[n] + " " + LastName[n]; FullName : (FirstName[n] + " " + LastName[n]))

Ist n = 1 (n = 1 -> True), wird der blaue Teil ausgeführt (also Fullname mit Vor- und Nachnamen des jeweils ersten Eintrags gefüllt)

Ist n > 1 (n = 1 -> False), wird der grüne Teil ausgeführt (also Vor- und Nachnamen des jeweils n-ten Eintrages als neues Element an Fullname angehängt (wie oben bei FirstName, mittels Doppelpunkt))


Offline yabo

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
  • Notes / Domino Neuling
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #9 am: 21.03.11 - 16:24:38 »

Jaa, super! Jetzt habe ich es auch begriffen!  ;D

Ich wusste gar nicht, dass man Werte in Feldern abspeichern kann. Im bisherigen Tutorial kamen sie nur als Auswahl- und Eingabefelder vor.
Ich hielt "FirstName" und co. für Variablen und war verwirrt, dass sich dort mehrere Werte abspeichern lassen.
Zu meiner Verteidigung muss ich aber auch sagen, dass das vorher nie erwähnt wurde. Auch nicht im Kapitel über Felder.


Danke nochmal, ihr habt mir den Tag gerettet.  ;)
« Letzte Änderung: 21.03.11 - 16:29:16 von yabo »
Viele Grüße

Marten

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Verständnisfrage: Building Databases Tutorial
« Antwort #10 am: 21.03.11 - 16:32:43 »
Obicht: Wenn das nicht der komplette Code ist, können Lastname und Firstname auch Variable sein.
Und: In diesem Fall spricht man nicht von "Feldern" (das ist ein Element des Frontends, mit dem der Benutzer interagiert), sondern von Items. Und dazwischen ist ein sehr grosser Unterschied.

Du möchtest Dich im Zusammenhang mit der Formelsprache auch mit "Listen" beschäftigen. In allen Item-Typen ausser RichText kannst Du prinzipiell Listen abspeichern (diese werden programmtechnisch auch immer als Listen angesehen - ggf. halt nur mit einem Element).

Bernhard

PS: Ein ansprechbarer Vorname unter Deinen Postings wäre noch gut und AtNotes-typisch, das motiviert auch die potentiellen Antwortgeber weiterhin.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz