Autor Thema: Liste mit @DBColumn auf kategorisierte Spalte  (Gelesen 1775 mal)

Offline Skorpion

  • Frischling
  • *
  • Beiträge: 6
  • Ich liebe dieses Forum!
Liste mit @DBColumn auf kategorisierte Spalte
« am: 28.10.03 - 21:10:36 »
Hallo @Notes Gemeinde,

ich bin mir nicht sicher, ob mein Problem nun so trivial ist, dass ich den Wald vor lauter Bäumen nicht sehe oder ob dieses in die Kategorie "man muss halt die Zicken von Notes kennen" fällt.

Aufgabenstellung:  Ich möchte eine sich dynamisch aktualisierende Liste von Autorennamen generieren, die im Web angezeigt werden soll.

Dazu habe ich einfach eine Kombination von PassThru-HTML und einem computed value genommen. Also quasi so:  <table><computed value></table>

In dem <computed value>  verbinde ich String und  @function so:

"<tr><td>" +@DBColumn ("";"";[Viewname];1) + "</tr></td>" +Newline


Damit bin ich eigentlich schon fast am Ziel  -  FAST ...

denn in der Browserpreview im IE  kommt erst mal 100 Zeilen lang nichts außer jeweils ein Komma und eine Leerstelle.

Der Blick in den Quellcode klärt auf:  Jede Zeile (außer der ersten) beginnt mit  ", <tr><td>.......    und endet mit  </tr></td>

Insgesamt also

<table>
, <tr><td>...Autor 1...</tr></td>
, <tr><td>...Autor 2...</tr></td>
, <tr><td>...Autor 3...</tr></td>
, <tr><td>...Autor 4...</tr></td>
</table>


FRAGE:  Was ist die Ursache für die Kommas und die Leerstelle?
Wo hätte ich dazu etwas in der Hilfe oder im Forum finden können?
Ich habe vor diesem Posting über 3 Stunden beide erfolglos durchforstet.

Vielen Dank für deine Mitwirkung bei der Aktion "lass mich nicht dumm sterben"   ;-).

Skorpion

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Liste mit @DBColumn auf kategorisierte Spalte
« Antwort #1 am: 28.10.03 - 21:36:38 »
Was bekommst Du, wenn Du diesen dblookup in Notes anzeigst? Hast Du dort auch Leerzeilen am Anfang? Ich befurchte das fast. Da sollte zumindest noch ein @unique dazu, um Doppeleinträge zu unterdrücken, und dann sollte vielleicht auch noch im View dafür gesorgt werden, dass da keine Leereinträge vorzufinden sind (mit der entsprechenden ViewSelection). Wäre jetzt mal das erste, was ich überprüfen würde.

Ah, im übrigen ist ein dbcolumn auf eine kategorisierte Ansicht nicht so ganz einfach, da müssen diverse Einstellungen stimmen, dass das so erscheint, wie erwartet. Ein Flat-View kombiniert mit @unique um den @dblookup-Aufruf ist zuverlässiger, insbesondere, da vereinzelte Versionen auch schon mal Fehler in dblookup gehabt haben, wenn die Ansicht kategorisiert war.
« Letzte Änderung: 28.10.03 - 21:39:19 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Manfred Dillmann

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 859
  • Geschlecht: Männlich
    • www.madicon.de
Re:Liste mit @DBColumn auf kategorisierte Spalte
« Antwort #2 am: 28.10.03 - 21:57:57 »
Hallo Skorpion!

>>"<tr><td>" +@DBColumn ("";"";[Viewname];1) + "</tr></td>"<<

Dein Problem rüht daher (vorausgesetzt die Lookup-Ansicht ist ansonsten OK, hier könnte auch noch was falsch sein - woher kommen die "," ?), dass @DBColumn eine Liste zurückliefert. Alles was Du um Deine @DBColum "herum" programmierst, wird dann mit jedem zurückgelieferten Listenelement ausgeführt. Das erklärt wohl Dein HTML-SourceCode-Ergebnis.

Infos hierzu (weil Du danach gefragt hattest) könntest Du in der Designer-Hilfe im Zusammenhang mit "Verarbeitung von Listen in der Formelsprache" finden.

Lösung:
Du must die von @DBColum zurückgelieferte, echte Liste in einen einfachen String "rekonvertieren". Das funktioniert z.B. mit der Funktion @Implode( textlistValue ; separator ).

So könnte es (habe es nicht getestet) funktionieren:
"<tr><td>" +@Implode(@DBColumn ("";"";[Viewname];1); @NewLine) + "</tr></td>"

In bestimmten Kontexten funktioniert @Newline nicht, dann nimmst Du @Char(10).

Gruss
Manfred
« Letzte Änderung: 28.10.03 - 22:00:18 von Manfred Dillmann »

Support, Beratung, Schulung, Anwendungsentwicklung oder Tipps & Tricks zu Lotus Notes/Domino?
www.madicon.de

Personalisierte Notes/Domino Serienmails?
madicon easyMail


Offline Skorpion

  • Frischling
  • *
  • Beiträge: 6
  • Ich liebe dieses Forum!
Re:Liste mit @DBColumn auf kategorisierte Spalte
« Antwort #3 am: 01.11.03 - 12:58:11 »
Zitat
Hallo Manfred,

ja, genau die datensatzweise Synthese von Tabelrows mit je einem Listenwert als HTML-Sequenz will ich auch haben. Insofern kein Fehler, sondern das gewünschte Ergebnis.

Problem ist aber, dass ich das Komma und die Leerstelle nicht beabsichtige, welche Notes  jeweils zwischen den Endtag </tr> des einen Datensatzes und den Anfangstag  <tr> des nächsten Eintrags fügt.  (Jedenfalls ist dies das Ergebnis, das mir der Browser als Quelltext zeigt).

In der Browseransicht werden dann aber alle Kommas in der Liste vor dem 1. korrekten Eintrag einsortiert.

Einen echten String habe ich ursprünglich. Diesen wandle ich zuvor über ein Hilfsfeld mittels @Explode in eine Liste um.
Dieses Listenfeld ist dann die Quelle der ViewColumn, die ich mit DBColumn auslese (was ja auch funktioniert).

@Unique wende ich dann auf das @dbcolumn()  an.
Auch das funktioniert offenbar korrekt.

Ob mit oder ohne, die Kommas bleiben, aber die Namensliste im unteren Teil zeigt genau die erwarteten Resultate - mit oder ohne Doppenennung.

Noch eine andere IDEE?

Gruß und Danke

Skorpion


Zitat von: Manfred Dillmann
link=board=7;threadid=11917;start=0#66576 date=1067374677
Hallo Skorpion!

>>"<tr><td>" +@DBColumn ("";"";[Viewname];1) + "</tr></td>"<<

Dein Problem rüht daher (vorausgesetzt die Lookup-Ansicht ist ansonsten OK, hier könnte auch noch was falsch sein - woher kommen die "," ?), dass @DBColumn eine Liste zurückliefert. Alles was Du um Deine @DBColum "herum" programmierst, wird dann mit jedem zurückgelieferten Listenelement ausgeführt. Das erklärt wohl Dein HTML-SourceCode-Ergebnis.

Infos hierzu (weil Du danach gefragt hattest) könntest Du in der Designer-Hilfe im Zusammenhang mit "Verarbeitung von Listen in der Formelsprache" finden.

Lösung:
Du must die von @DBColum zurückgelieferte, echte Liste in einen einfachen String "rekonvertieren". Das funktioniert z.B. mit der Funktion @Implode( textlistValue ; separator ).

So könnte es (habe es nicht getestet) funktionieren:
"<tr><td>" +@Implode(@DBColumn ("";"";[Viewname];1); @NewLine) + "</tr></td>"

In bestimmten Kontexten funktioniert @Newline nicht, dann nimmst Du @Char(10).

Gruss
Manfred

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Liste mit @DBColumn auf kategorisierte Spalte
« Antwort #4 am: 02.11.03 - 08:31:31 »
keine Ahnung, ob der Fehler daher kommt:
dein HTML ist "falsch".
du hast <tr><td>Formel</tr></td> geschrieben.

korrekt wäre
<tr><td>Formel</td></tr>

vielleicht macht das auch das @NewLine
Das brauchst du gar nicht, weil du ja mit <tr></tr> eine Reihe in einer Tabelle definierst. Also lass mal den Zeilenumbruch weg.
« Letzte Änderung: 02.11.03 - 08:33:27 von potsmoker »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz