Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Untitled am 27.04.06 - 16:21:26
-
Hallo zusammen
Ich versuche gerade eine Export-Routine in LS zu schreiben. Dabei wird die Anzahl Spalten der Aktuellen View ausgelesen (3). Darunter auch eine Spalte, die den Inhalt "# in View (e.g. 2.1.2)" hat.
Versuche ich nun, mit NotesViewEntry.ColumnValues die Werte aller Spalten auszulesen, erhalte ich jedesmal einen "Subscript out of range"-Fehler.
Diese Spalte wird zwar in der Anzahl Spalten mitgezählt, aber in der Viewentry existiert sie anscheinend nicht, egal wo ich sie positioniere.
Meine Theorie: Da die Werte dieser Spalte nur on-the-fly von Notes berechnet werden, existieren sie in der Zeile nicht als realer Eintrag, sondern werden nur in der View angezeigt.
Falls das wirklich so ist (und das hoffe ich für meinen Monitor nicht), dann beginne ich echt langsam an der Brauchbarkeit von Notes zu zweifeln... >:(
Aber es besteht ja noch Hoffnung, dass jemand von euch Hypercracks mir helfen kann ;D
Grüsse
Moritz
-
Es stimmt: die Werte werden "on the fly" berechnet.
Oder anders gesehen: LoNo müsste dann ja permanent alle Docs updaten, sobald ein Doc in der DB dazukommt, bzw. verwschwindet.
Abär: Du kannst Dir ja einen Agenten bauen, der das erledigt und schon hast Du die gewünschte NUmmerierung.... ;D
-
Danke für die Antwort.
Aber die Lösung mit dem Agenten fällt leider aus, da ich eine dynamische Klasse für den Export schreiben wollte, die die View-Spalten automatisch erkennt und 1 zu 1 exportiert. Nun werden diese Spalten halt ignoriert.
Warum wird das nirgends (!) in der Hilfe erwähnt? Und gibt es noch mehr solcher "Geisterspalten"? Und was zum Teufel haben die sich bei der Programmierung von Notes eigentlich überlegt??
[offtopic]
Ich arbeite seit ca. 6 Jahren mit Microsoft Produkten und habe in de ganzen Zeit ledigliche einen einzigen einzigen Bug gefunden. In Notes hab ich nach fünf Monaten und 100 Bugs aufgehört zu zählen. (Wobei ich dieses Verhalten natürlich nicht als Bug sondern als Bug-ähnlich bezeichnen möchte, da es anscheinend auch unvorhergesehen ist.)
Also sagt über Microsoft was ihr wollt, aber ihre Qualität ist der von Notes bei Weitem voraus.
[/offtopic]
Grüsse, euer schon am Morgen zutiefst frustrierter
Moritz
-
Vielleicht hilft dir ja @DocNumber weiter....
-
Hat leider den selben Effekt (ist glaubich auch das selbe, da ich beim Optionswechsel von "Simple function" auf "Formula" auch gleich diese Formel dort stehen hatte).
Aber danke für deine Bemühungen!!
-
Nicht ganz. Wenn man in der Maske ein berechnetes Feld mit Vorgabewert @docnumber einbaut und das Doc speichert, dann steht da eine Nummer drin. Jetzt frag mich aber nicht, wie die zustande kommt.
-
Yess. "Generic LSE failure (no more info)." Hab ich schonmal gesagt, dass mir Notes unsymphatisch ist? ;D
-
@Klaus
Echt? Gleich mal testen...
Hmm... das gibt mir in der Ansichtsspalte folgende Zahlen in aufsteigender Reihenfolge aus:
1, 2, 2, 3, 5, 6, 2, 3, 9, 10, 2, 3, 1, ... ???
p.s. Dies ist die Reihenfolge nach dem Neuabspeichern, davor sah es ähnlich aus.
-
Wie geschrieben:
Jetzt frag mich aber nicht, wie die zustande kommt.
-
Guten Morgen Moritz,
natürlich hast Du recht damit, sowas müsste in der Hilfe auftauchen. Aber die Jungs bei der IBM sind halt auch nicht perfekt. Und wenn wir die Notes Hilfe mal der MSDN für z.B. VB gegenüberstellen wollen, dann ist die Noteshilfe wesentlich strukturierter.
Und zum Thema 1000 Bugs: Mit deiner langjährigen Erfahrung im Microsoft-Bereich wirst Du wissen, das es einen Unterschied gibt zwischen "Works as designed" und "Bug". Denn nicht jede Funktion, die nicht so funktioniert wie ich mir das Denke ist dann auch immer gleich ein Bug. Kurz um: IBM und Microsoft verfolgen unterschiedliche Gedankenansätze bei ihren Produkten. Und da ist nicht das eine besser als das andere, sondern höchstens geeigneter für die eigenen Aufgabenstellungen.
Aber das mal nur so am Rande. Statusdiskussionen zu diesem Thema gibt es in diesem Forum ja bekanntlich schon genug.
Aber jetzt mal zu deinem eigentlichen Problem:
position$ = notesViewEntry.GetPosition( separator$ )
Returns the position of the entry in the view hierarchy; for example, "2.3" for the third document of the second category.
Und rat mal wo das steht: In der Notes-Hilfe.
Gruß
WilliG.
-
Tja,
@DocNumber und auch "# in View" liefern das super Format: Special Text. Dieses Format kann in Notes nicht weiterverwendet werden.
Gemäss Lotus: Works as designed :-)
Naja was die Designer dabei gedacht/geraucht/getrunken haben will ich gar nicht wissen :-)
-
Und wenn wir die Notes Hilfe mal der MSDN für z.B. VB gegenüberstellen wollen, dann ist die Noteshilfe wesentlich strukturierter.
Da geb ich dir völlig recht. Ich habe noch nie eine so gute Hilfe gesehen. Da bin ich vielleicht verwöhnt worden und hab mich gleich über diese Kleinigkeit beschwert.
Und zum Thema 1000 Bugs: Mit deiner langjährigen Erfahrung im Microsoft-Bereich wirst Du wissen, das es einen Unterschied gibt zwischen "Works as designed" und "Bug". Denn nicht jede Funktion, die nicht so funktioniert wie ich mir das Denke ist dann auch immer gleich ein Bug. Kurz um: IBM und Microsoft verfolgen unterschiedliche Gedankenansätze bei ihren Produkten. Und da ist nicht das eine besser als das andere, sondern höchstens geeigneter für die eigenen Aufgabenstellungen.
Ich glaube, es ist bewiesen, dass Notes (prozentual zur Grösse des Programms) mehr Bugs als jede Microsoft-Applikation hat (aber ich habe Hundert, nicht Tausend geschrieben ;)).
Aber wahrscheinlich hast du recht, ich habe mich zu sehr an Microsoft gewöhnt und falle deshalb so oft auf die Nase mit Notes. Aber du musst zugeben, es gibt hier nicht wenige Dinge, die unlogisch oder unvollständig sind.
position$ = notesViewEntry.GetPosition( separator$ )
Returns the position of the entry in the view hierarchy; for example, "2.3" for the third document of the second category.
Und rat mal wo das steht: In der Notes-Hilfe.
Ja... wie soll ich das anwenden auf mein Problem? Versteh jetzt nicht ganz :-\
Oder falls du meinst, dass daher die seltsamen Zahlen stammen: Ich habe keine Kategorien in der Ansicht...
Aber trotzdem danke für die Hilfe!
@Urs
Das mit dem Special Text hab' ich ja noch nie ghört. :o
Werd mich in der tollen Hilfe gleich mal darüber informieren ;D
Danke für die Info!!
Grüsse
Moritz
-
Es gibt ein paar funktionen die Special Text zurückliefern: die meisten Funktionen die Relativ zu einer Ansicht funktionieren, sprich @docnumber, @doclevel, @docchildren, @responses
Aus dem Glossar:
special text
Special text is a data type that represents the placement information of a document in a view. Because the placement information of a document changes as other documents are added or deleted from a view, special text serves as a marker that is substituted by an integer after a view's column formulas are calculated. Special text represents a changeable value that is automatically recalculated as a post-processing step in view generation. Although special text appears to be a number, it is not. Special text cannot be computed, compared, or translated to text using @Text.
-
Hallo nochmal,
manchmal übertreibe ich es mit den Nullen ein wenig: Stimmt Du hast bei 100 aufgehört zu zählen, nicht bei 1000.
Ich ärgere mich auch regelmäßig über so einiges im Notes. Dazu kommt, das die IBM nicht gerade das beste Informationsmanagement zu SPRs betreibt und man manchmal nicht weiss ob es ein Bug oder einfach nur ein schlecht dokumentiertes Feature ist. Aber das soll hier nicht weiter unser Thema sein.
Jetzt zu deiner Lösung:
Wenn Du über eine ViewEntry die Eigentschaft ColumnProperty(x) ausliest bekommst Du den Wert der Spalte x zurückgeliefert.
Du ignorierst dabei einfach die Spalte mit der Zahl und liest den Wert wie folgt aus:
strPosition = viewEntry.GetPosition(".") wobei der Punkt in diesem Fall das Trennzeichen bei z.B. Responses ist (also z.B. 1.1 - analog der Anzeige von # in View). Das funktioniert auch nicht Ansichten die nur Dokumente und keine Antworten und / oder Kategorien enthalten.
So. Und zu guter Letzt muss ich jetzt doch kleinlaut zugeben: Es gibt einen Fehler in der Sort Order wenn eine Spalte mit #in View vorhanden ist:
http://www-1.ibm.com/support/docview.wss?uid=swg21086853
Daher wäre es besser eine zweite verborgene Ansicht zu erstellen, die diese Spalte nicht enthält.
Gruß
WilliG.
-
@Urs
Vielen herzlichen Dank!!
@Willi
Dann werde ich wohl neue Views erstellen müssen. ::)
Auch dir vielen Dank für deine Bemühungen!!
Grüsse
Moritz