Autor Thema: Unverständliches Verhalten: View und separate Einträge bei Array-Werten  (Gelesen 2126 mal)

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Hallo,

ich habe 3 Dokumentenarten, mit denen ich eine Art virtuelle Ordnerstruktur nachbilden möchte. Wichtig dabei: Das unterste Element (genannt: "Dokument") kann in mehreren "Ordner"n vorkommen. Deshalb gibt es entsprechende Array-Felder.

Eines dieser Felder ist "level", welches die Ebene in der Hierarchie speichert. Eine Beispielbelegung ist

3
2

Jetzt habe ich in einer View eine Spalte mit der Formel:

s := "";
nr := @If(@IsNull($levelColumn);0;@If(@IsNumber($levelColumn);$levelColumn;@TextToNumber($levelColumn)));
@If(!(Form="Portal");@For(n:=1; n<=nr;n:=n+1;s:=s+"    ");"");
s+title;

$levelColumn ist die Spalte mit dem level (ist korrekt, habs überprüft)

Die for-Schleife soll einfach entsprechend viele Leerzeichen vor den Titel setzen, um eine Einrückung vorzunehmen.

PROBLEM: Bei o.g. Beispiel wird bei beiden Einträgen im View 3xLeerzeichen davor gestellt. Die Spalte $levelColumn hat aber einmal den Wert 3, das andere Mal den Wert 2.

UND NOCH VERRÜCKTER:
Für Testzwecke habe ich o.g. Formel etwas modifiziert:

s := "";
nr := @If(@IsNull($levelColumn);0;@If(@IsNumber($levelColumn);$levelColumn;@TextToNumber($levelColumn)));
@If(!(Form="Portal");@For(n:=1; n<=nr;n:=n+1;s:=s+"    "+@Text(n)+"/"+@Text(nr));"");
s+title;

Also kurzum habe ich die Zählvariable mit zu den Leerzeichen platziert. Ich habe im View nun folgende 2 Ausgaben:

   1/3   2/3   3/3Dokument 1
   1/2   2/2   3/2Dokument 1

Hä? 3/2? n>nr, was laut der For-Schleife gar nicht sein dürfte.
Was hab ich falsch gemacht?


Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Das Feld $LevelColumn scheint ein Multivalue Feld zu sein-> eine Liste
Ergo wird nr auch eine Liste sein
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Aber wenn ich das Häkchen "Show multiple values as separate entries" setze, sollte doch aus dem Multivalue ein Singlevalue werden, oder hab ich da (mal wieder) ein Verständnisproblem?

Das komische ist ja, ich lasse von 1..nr iterieren. Wenn ich die Variable nr ausgeben lasse, ist sie 2. aber er wertet für die Zählvariable n=3 den Term n<=nr als wahre Aussage.  ???
« Letzte Änderung: 28.07.06 - 10:20:00 von masseur81 »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
also die Spalten- Eigenschaft hat doch nix damit zu tun, welcher Wert im Dokument steht...

Wenn im Dokument das Feld $LevelColumn Mehrfachwerte enthält, dann wertet Deine Formel auch alle diese Werte aus. Dein "Ergebnis" der zweiten Formel zeigt ja auch, dass er ZWEIMAL Dokument1 ausgibt: für jeden Wert in $LevelColumn einmal...

Was ich allerdings absolut nicht leiden kann, sind vermeidbare For- Schleifen in Ansichts- Formeln...

@Repeat( "   " ; nr ) würde das gleiche tun, ganz ohne FOR...

Die Listenverarbeitung ist eine der mächtigsten Funktionen der @- Sprache. Die ganzen neuen Schleifenkonstrukte verwässern diese Funktionalität in meinen Augen. Fast alles, was sich mit ner Schleife machen lässt, funktioniert mit ein wenig Grips auch per direkter Listen- Verarbeitung...

Vielleicht bin ich hier zu konservativ, aber ich finde: Schleifen wo nötig, Listen- Operatoren wo möglich...

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Die Repeat-Funktion hatte ich mittlerweile auch gefunden.
$levelColumn ist der Name der Spalte in der Ansicht, es gibt kein solches Feld in meinem Dokument. Diese Spalte zeigt den korrekten Wert an. Nur wenn ich auf diesen Wert zugreife, dann stimmt er bei der Textausgabe, aber nicht bei Zahlenvergleichen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz