Autor Thema: Computed Column Values  (Gelesen 4389 mal)

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Computed Column Values
« am: 06.08.12 - 10:13:15 »
Hallo zusammen,

ich habe mal eine Frage bzgl computed column values. Vielleicht könnt ihr mir einen Tipp geben, ob das überhaupt geht, was ich mir vorstelle:

Ich habe zwei views in der Datenbank. In beiden views habe ich eine Spalte in der jeweils gleiche Werte drinstehen.

View1:

Spalte 1 - Werte A
Spalte 2 - Werte B

View2:

Spalte 1 - Werte A
Spalte 2 - Werte C
Spalte 3 - Computed

Ist es möglich das wenn in einer Zeile die Werte aus Spalte 1 / Werte A übereinstimmen, das in view 2 in Spalte 3 der Wert aus View 1 Spalte 2 / Wert B eingetragen wird?

Ich weiß, wie ich die beiden Spalten gegeneinander abgleichen kann, nur fehlt mir momentan ein Ansatz oder eine Lösung, wie ich dann in der jeweiligen Zeile in View2 das richtige ausgebe. Leider finde ich hier auch nichts passendes im Internet / Forum zu.

Danke für eure Hilfe.

Gruß

René

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Computed Column Values
« Antwort #1 am: 06.08.12 - 10:20:11 »
Hallo,

Etwas verwirrend.

Woher kommen denn die in Ansicht 1 - Spalte 1 angezeigten Werte (welche Form, welches Feld in der Form)?
Und woher kommen die in der Ansicht 2 - Spalte 1 angezeigten Werte (welche Form, welches Feld)?

Ansonsten weiss ich noch nicht so genau, was Du ueberhaupt erreichen willst.


Andreas

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Computed Column Values
« Antwort #2 am: 06.08.12 - 10:24:12 »

// key from column A, view2
var key = viewRow.getColumnValue("title of a column");
// lookup key in view A ,view 1 and return column B
var lookup = @DbLookup(@DbName(), "viewname", key, 2);
return lookup

in etwa so ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: Computed Column Values
« Antwort #3 am: 06.08.12 - 10:45:52 »
Zu dem Hintergrund für meine Anfrage:

Erstmal ich bin noch recht jungfreulich im Thema und habe wahrscheinlich noch nicht die optimalsten Ideen, um etwas zu lösen. Momentan bin ich an einer Datenbank, wo Events eingetragen werden, zu welchen sich Benutzer eintragen können. Die Events sind jedoch Platztechnisch beschränkt.
Beim Anlegen eines solchen Events (Form1) wird im Hintergrund ein zweites Dokument erzeugt (Form 2). In beiden Dokumenten steht die Kursnummer - Werte A / Spalte 1. In Form 2 wollte in Spalte 2 / Werte B ich die freien Sitzplätze speichern.
Dies hat den Hintergrund: Wenn ich dies in dem eigentlichen Eventdokument speichere und mehrere Personen gleichzeitig auf das Dokument zugreifen, um sich ein oder auszutragen, wird sich das Dokument vermehren, da ich bei jeder Änderung das Dokument ja speichern muss. Wenn jemand teilnehmen klickt, wird ein drittes Dokument (Form 3) erzeugt mit Kursnummer und Teilnehmernamen und in Form 2 die Anzahl der Plätze um 1 reduziert bzw. beim Abmelden das Dokument mit der Kursnummer und dessen Namen wieder gelöscht und in Form 2 die Anzahl der Sitzplätze wieder erhöht.
Wie gesagt, wahrscheinlich nicht der beste Weg, aber mit ein wenig Errorhandling finde ich das für ca 400 User eine akzeptable Lösung. Die Wahrscheinlichkeit das zwei Personen genau gleichzeitig teilnehmen klicken, ist recht gering.

@ Ulrich:

Ähnliches habe ich auch schon gefunden bzw. eine nette Anleitung für computed values in der gleichen view auf der XPage ( http://www-10.lotus.com/ldd/ddwiki.nsf/dx/VideoXPagesViewControlDisplayHTMLComputedCol.htm ).
Bei deiner Lösung habe ich noch ein Problem: Auf der XPage wo die view brechnet wird, habe ich nur View2. Wie kriege ich den key?
Ich hatte folgendes gefunden, um mir eine ganze Spalte zu holen. Mit dem getColumnValue kriege ich dann jedoch eine Fehler.

var v:NotesView = database.getView("vwCourse");
var vcourse:java.util.Vector = v.getColumnValue("Seats");



Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Computed Column Values
« Antwort #4 am: 06.08.12 - 10:57:24 »
So wie ich es verstanden habe, ist key doch Value A von view2. Und die lookup spalte ist ColA view 1
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: Computed Column Values
« Antwort #5 am: 06.08.12 - 11:05:22 »
ja das ist richtig. Bei dem key bzw eher bei viewRow habe ich dann momentan noch ein Problem, denn bei

var v:NotesView = database.getView("vwCourse");
var vcourse:java.util.Vector = v.getColumnValue("Seats");

kriege ich einen TypFehler:
TypeError] Error calling method 'getColumnValue(string)' on an object of type 'lotus.domino.local.View [Static Java Interface Wrapper, lotus.domino.local.View: lotus.domino.View]

Hier fehlt mir irgendwie noch ein Baustein.



Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Computed Column Values
« Antwort #6 am: 06.08.12 - 11:20:16 »
var key = viewRow.getColumnValue("title of a column");

wobei du natürlich viewRow antsprechend deinem eigenen Wert ( var= ) setzen musst

"title of a column" = programmatischer Name von col A in view 2
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: Computed Column Values
« Antwort #7 am: 06.08.12 - 13:27:56 »
Ich steh momentan echt auf den Schlauch, kannst du mir das vielleicht etwas genauer erklären? Woher ich das viewRow nehme, da hängt es bei mir grade.

Ich kann mir über database.getView("vwCourse") die View holen die ich brauche. Nur wenn ich jetzt darauf getColumnValue("Titel der Spalte") anwende, bekomme ich den o.g. Typfehler.



Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Computed Column Values
« Antwort #8 am: 06.08.12 - 13:55:44 »
z,B.

      <xp:dataTable id="view_IE_WillFuckItUp" rows="15"
         styleClass="coisDataTable" var="viewRow" value="#{iefail}"
         partialExecute="true" partialRefresh="true" rowClasses="oddrow, evenrow"
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sutpen

  • Junior Mitglied
  • **
  • Beiträge: 51
Re: Computed Column Values
« Antwort #9 am: 06.08.12 - 15:57:03 »
Dank Dir.

War die ganze Zeit wohl in eine andere Richtugn am denken, aber letztendlich klappts :-)

Danke

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz