Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: maerchen am 18.03.04 - 16:49:54

Titel: Maske mit Werten einer View füllen
Beitrag von: maerchen am 18.03.04 - 16:49:54
Hallo,

ich habe folgendes Problem:
Ich habe eine Maske mit Teilmasken.
Außerdem sind in einer View Dokumente (die Anzahl ist konstant), die alle das Attribute 'Namen' haben.
Nun möchte ich das beim Initialisieren der Maske, die Teilmasken mit jeweils dem 1. 'Namen' des Dokuments der View gefüllt wird, die 2. Teilmaske mit dem 2. 'Namen', usw.
Wie kann ich die in Lotus die Datensätze durchgehen. Mit getFirstdocument bekomme ich doch nur das erste Dokument. Kann denn die zweite Teilmaske mit getNextDocument das zweite Dokument bekommen?
Mit welchem Befehl kann ich das realisieren?
Das ganze wäre im relationalen Datenbanksystem eine m:n Beziehung, nur das ich in der Maske auch den jeweiligen Namen speichern möchte.
Dazu muss ich vielleicht sagen, das ich im Moment mein Praxissemester mache und noch nicht sehr tief in Lotus eingestiegen bin :-(
Viele Grüße & danke im Voraus
Maren
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Semeaphoros am 18.03.04 - 17:02:11
Uiuiui, eine m:n Beziehung in LoNo abzubilden, ist alles andere als einfach. Dafür ist LoNo nun mal nicht gemacht. Und wenn man das machen will, ist es zwar machbar, aber ziemlich aufwändig. Den Ansatz dazu kannst Du Dir holen, wenn Du auf meiner Homepage http://www.ligonet.ch von der Developer 2003 die Beispiele von der Einführun in Object Orentiertes Programmieren holst, da ist eine m:n Beziehung beschrieben. Ich befürchte aber, dass Du Dir das Ziel im Moment vieeel zu weit gesteckt hast.
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Axel am 18.03.04 - 18:33:14
Hi,

ich werde aus deiner Beschreibung nicht so ganz schlau. Kannst du mal ein paar mehr Infos geben, was du mit dem Ganzen bezwecken willst.

Was Relationen und m:n - Beziehungen angeht, kann ich Semeaphoros nur recht geben.

Axel
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: maerchen am 22.03.04 - 09:04:58
Hallo,

danke für die Antworten und sorry, das ich erst jetzt antworte, aber mein Browser hatte ein Cookie Problem :-(( (aber mit Netscape wird jetzt alles besser!!)

Ich versuche nochmal anders zu erklären, was ich gerne möchte:
Ich habe eine View mit folgenden Spalten (ID, Name, Vorname), die mit Hilfe einer Maske gefüllt worden ist.
Diese View enthält immer fünf  Dokumente und die ID ist eindeutig.

Nun möchte ich eine Maske haben, die genau fünfzehn Felder enthält: 5xID, 5xName, 5xVorname.
Ich weiß zwar, dass ich mit @DBColumn die erste ID-Spalte auslesen kann, um die Werte in einer Dialogliste anzuzeigen, aber das möchte ich nicht.
Ich möchte ein ganz normales Textfeld haben, in dem sozusagen der erste Wert von DBColumn hineingeschrieben wird. In das zweite Feld der dazugehörige Name, etc.
Dann die Daten des zweiten Namens, usw.

Das ist erstmal eine sehr vereinfachte Version, nachher soll es dann möglich sein, die Zahl der Namen flexibel zu halten und wenn dann anstatt fünf sieben Namen in der View stehen, zwei weitere Teilmasken mit Feldern anzuzeigen.
Aber wenn das erste klappt, wäre ich schon super glücklich.

Vielen lieben Dank
Maren

Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Semeaphoros am 22.03.04 - 09:18:50
Du kannst @dbcolumn auch dazu verwenden, um Werte in (berechnete) Felder einzutragen. Aber so, wie Du das jetzt darstellst, scheint mir, dass Du die Funktionalität einer "Embedded View" suchst.  Das ist ja schliesslich eine View-Darstellung, wenn Du in verschiedenen Kolonnen Werte von Dokumenten darstellen willst. Schau mal in der Designer-Hilfe nach.
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Axel am 22.03.04 - 10:48:26
Hi,

du kannst auch in deine View eine versteckte Spalte einbauen in der du die Werte die du brauchst mit einem Trennzeichen zusammenbaust. So z.B.

ID + "~" + Name + "~" + Vorname

Diese Spalte kannst du auch verstecken.

In deinen Textfeldern fügst du folgende Formel ein (Annahme: die Spalte isst die 4.):

Für ID:
@Word(@DBColumn("":"NoCache"; ""; "Name der Ansicht", 4); "~"; 1)

Für Name:
@Word(@DBColumn("":"NoCache"; ""; "Name der Ansicht", 4); "~"; 2)

Für Vorname:
@Word(@DBColumn("":"NoCache"; ""; "Name der Ansicht", 4); "~"; 3)

Axel
 
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: koehlerbv am 22.03.04 - 10:58:59
@Axel:
Und warum nicht gleich jeweils ein @dbColumn auf die jeweilige betreffende Spalte ?

@maerchen:
Mir ist aber immer noch unklar, was das ganze soll ? In einer Maske erneut die gleiche Info wie in der Ansicht ? Eine DB mit nur fünf Dokumenten ? Oder später doch sieben ? By the way: Die Feldanzahl kannst Du nicht dynamisch beeinflussen.

Jens hatte ja schon eine embedded view empfohlen. Wenn wir Sinn und Zweck des ganzen verstehen, fällt uns ja vielleicht noch was anderes ein ...

Bernhard
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: maerchen am 22.03.04 - 11:24:43
Hallo,
das Beispiel mit den Namen ist nicht so toll, aber der Einfachheit halber hab ich das mal so gewählt.

Eigentlich geht es um Kostenstellen:
In einem ExcelFile stehen jeweils Kostenstellen drin und zwar so:
KST-Nummer KST-Name KSt-Bemerkung
Diese lade ich ich in eine View. Funktioniert auch wunderbar.
Die Anzahl gültiger KST kann schwanken zwischen 10 und 30.
Nun hatte ich gedacht, lese ich die Anzahl aus, speichere sie in einem Profildokument und zeige der Anzahl entsprechend Teilmasken an.
War ganz schön schreibarbeit, klappt aber auch. Zu den Kostenstellen sollen später Zeiten gebucht werden. Also geht das mit der Embedded View nicht.
Eigentlich möchte ich jetzt nur, das mir im ersten Feld die erste KST-Nummer angezeigt wird. Den Namen und Bermerkung kann ich dannja über DBLookup holen.
Im zweiten KST-Feld soll die zweite Wert aus dem DBColumn stehen.
Wenn das Ergebnis aus dem DBColumn ein Feld wäre, könnte man vielleicht eine Schleife machen mit der Anzahl und dann so drauf zugreifen:
@dbColumn(ergebnis) (Pseudocode)
Hoffe, diesmal habe das ganze besser beschrieben und vielleicht hat jemand noch einen Tipp
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Semeaphoros am 22.03.04 - 11:29:26
a) dbLookup kann man - wie schon einmal geschrieben - als Formel in ein Feld schreiben und hat das Ergebnis dann in dem Feld verfügbar.

b) Für Schleifen brauchst Du in R5 Script und nicht Formel

c) warum soll das nicht mit Embedded View gehen? Die darunterliegenden Dokumente lassen sich eruieren und ggf. editieren.
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: koehlerbv am 22.03.04 - 11:34:31
Aber es geht doch offensichtlich darum, später Dokumenten (gebuchte Zeiten) eine Kostenstelle aus einer Kostenstellen-Auswahl zuzuweisen. Was um Himmels Willen sollen die Kostenstellen dann alle in einer Maske ? Dazu braucht man doch nur je ein Setup-Dok pro Kostenstelle, und das / die Kst-Feld/er in der Erfassungsmaske greifen dann per @dbColumn (Auswahl) bzw. @dbLookup (Zuordnung der Beschreibung entspr. KstNr) darauf zu.

Bernhard
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: maerchen am 22.03.04 - 11:53:10
Das mit der eingebetteten View geht nicht, denn es geht eben da rum, die Daten einzugeben und die späteren Anwender möchten sich eifnahc mit Tab dadurch hangeln...
Ansonsten ist das wahrscheinlich die schönste und sauberste Lösung.

@Bernhard: So ganz habe ich das nicht verstanden, was meinst Du mit setup-doc?

Gruß
Maren
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: Axel am 22.03.04 - 11:59:36
@Bernhard

Hast ja recht. Ich war mit den Gedanken irgendwie bei @DbLookup.

Axel
 
Titel: Re:Maske mit Werten einer View füllen
Beitrag von: maerchen am 23.03.04 - 10:17:44
Ich gaube ich versuche es jetzt doch mal mit einer View, das geht am einfachsten.

Euch allen vielen Dank  :)